Log format: LOGLINE ::= int'.'int MESSAGE ::= 'log-start' | 'log-start v2' | 'log-start v3' | 'log-start v4' | | COORD ::= int':'int','int PC ::= 'PC'int MOB ::= 'MOB'int TARGET ::= | SPELLRESULT ::= 'SUCCESS' | 'FAILURE' STATPLACE ::= 'LOGIN' | 'STATUP' | 'STATUP2' | 'STATRESET' XPPLACE ::= 'LOGIN' | 'LEVELUP' XPREASON ::= 'SCRIPTXP' | 'HEALXP' | 'KILLXP' | 'SHAREXP' | 'UNKNOWNXP' ZEROTARGET ::= 'null' | MOB-MESSAGE ::= 'DEAD' PC-MESSAGE ::= 'WPNDMG' int 'FOR' int WPN int # "WPNDMG MOB01 type FOR damage WPN weapon-item" | 'WPNINJURY' int 'FOR' int | 'MOB-TO-MOB-DMG' 'FROM' int 'TO' int 'FOR' int # Summoned monster damage | 'SPELLHEAL-INSTA' FOR int | 'SPELLDMG' FOR int BY spell-id | 'CAST' spell-id | 'STAT' int int int int int int # str agi vit int dex luk | 'XP' int int 'JOB' int int int 'ZENY' int '+' int # level xp job-level skill-xp skill-pts zeny bank-zeny | 'SKILLPOINTS-UP' int # new number of unused skill points | 'MAGIC' int int int int int int 'EXP' int int 'LOGIN' # magic life war transmute nature ether magic-xp healer-xp | 'SKILL-ACTIVATE' int int int # skillid skilllvl skillpower | 'SKILL-UP' int int int # skillid skilllvl skillpower | 'SKILL-DEACTIVATE' int | 'MAGIC-ABSORB-DMG' int | 'GAINXP' int | 'PICKUP' int int # item-id count | 'INJURED-BY' 'FOR' int | 'DEAD' | 'LOGOUT' | 'TRADECOMMIT' 'WITH' int 'GIVE' int 'GET' int # pc-id give-zeny get-zeny | 'TRADECANCEL' | 'TRADEOK' | 'STATUP' | 'STATRESET' | 'STATUP2' NOTES: ------ 1. Any PICKUP between TRADECOMMIT and TRADEOK is part of the trade. 2. TRADECOMMIT is issued for both participants in a trade. 3. INJURED-BY seems to only duplicate information we already have. Illegal items 645, 668, 659, 731, 734, 744, 745, 755, 756, 757, 747, 748, 721, 722 Restricted access 725, 726, 647, 646