Skip to content

Comparing with Squirrel

  • addEventHandler replaced with decorator event
    @pyg2o.event('onInit')
    async def evtInitFirst():
        print('Hello')
    
    @pyg2o.event('onInit', 100)       # '100' is priority
    async def evtInitSecond():
        print('World')
    

  • Positional arguments inside event handles replaced with keyword arguments (see names of all keywords on the each event page)
    @pyg2o.event('onPlayerChangeColor')
    async def evtColor(playerid, r, g, b):
        pass
    

  • callEvent now also requires to pass keyword arguments instead of positional arguments
    @pyg2o.event('MyTestEvent')
    async def testEvt(name, id):
        print(name, id)
    
    g2o.callEvent('MyTestEvent', name = 'aurumvorax', id = 15)
    # OR
    g2o.callEvent('MyTestEvent', {'name': 'aurumvorax', 'id': 15})
    # OR
    args = {'name': 'aurumvorax', 'id': 15}
    asyncio.create_task(pyg2o.callEvent('MyTestEvent', args))
    

* cancelEvent temporarily disabled

  • isEventCancelled replaced with built-in function property cancelled, alongside with the eventName
    @pyg2o.event('onPlayerDropItem')
    async def evtDrop(**kwargs):
        print(evtDrop.cancelled)
        print(evtDrop.eventName)
    

Now all constants should be called via Constant class

import pyg2o

@pyg2o.event('onInit')
async def evt_init():
    print(pyg2o.Constant.SERVER_SIDE)

* Following functions and classes have been removed RIP :(

* `md5`
* `sha1`
* `sha256`
* `sha384`
* `sha512`
* `setReloadCallback`
* `setUnloadCallback`
* `getTimerExecuteTimes`
* `getTimerInterval`
* `killTimer`
* `setTimer`
* `setTimerExecuteTimes`
* `setTimerInterval`
* `sscanf`
* `hexToRgb`
* `rgbToHex`
* `getTickCount`
* `eventValue`
* `getPlayerMagicLevel`
* `setPlayerMagicLevel`
* `Packet`
* `Way`
* `NpcAction`
  • Following constants has been removed:

    • UNRELIABLE
    • UNRELIABLE_SEQUENCED
    • RELIABLE
    • RELIABLE_SEQUENCED
    • RELIABLE_ORDERED

    • All functions and events that returned/passed a null in the Squirrel, now passes an empty string. Most notable in this list are all equipment related functions and events
    • onPlayerEquipAmulet
    • onPlayerEquipArmor
    • onPlayerEquipBelt
    • onPlayerEquipHandItem
    • onPlayerEquipHelmet
    • onPlayerEquipMeleeWeapon
    • onPlayerEquipRangedWeapon
    • onPlayerEquipRing
    • onPlayerEquipShield
    • onPlayerEquipSpell
    • getPlayerAmulet
    • getPlayerArmor
    • getPlayerBelt
    • getPlayerHelmet
    • getPlayerMeleeWeapon
    • getPlayerRangedWeapon
    • getPlayerRing
    • getPlayerShield
    • getPlayerSpell