You need to use quotes, cause an event name is a string
There is no evdrawgameplayer in events. There was, but was deprecated.
EVENTS_NAMES = (
    'eviteminfo', 'evitemdeleted', 'evspeech', 'evdrawgameplayer',
    'evmoverejection', 'evdrawcontainer', 'evadditemtocontainer',
    'evaddmultipleitemsincont', 'evrejectmoveitem', 'evupdatechar',
    'evdrawobject', 'evmenu', 'evmapmessage', 'evallowrefuseattack',
    'evclilocspeech', 'evclilocspeechaffix', 'evunicodespeech',
    'evbuffdebuffsystem', 'evclientsendresync', 'evcharanimation',
    'evicqdisconnect', 'evicqconnect', 'evicqincomingtext', 'evicqerror',
    'evincominggump', 'evtimer1', 'evtimer2', 'evwindowsmessage', 'evsound',
    'evdeath', 'evquestarrow', 'evpartyinvite', 'evmappin', 'evgumptextentry',
    'evgraphicaleffect', 'evircincomingtext', 'evmessengerevent',
    'evsetglobalvar', 'evupdateobjstats'
)
# evDrawGamePlayer: deprecated, used no longer (use evDrawObject).
# evDrawObject : [ID : Cardinal] mobiles only
HUMANS = 0x0190, 0x0191
def emergency(serial):
    if serial == Self() and GetType(serial) in HUMANS:
        return
    SetEventProc('evDrawGamePlayer', None)  # turn off the handler
    recall_home()
SetEventProc('evDrawObject', emergency)  # set the handler before leaving a safe zone
Edit: change or to and.