: c.target! ( target char -- ) "setTarget" { L2Object.class } jexec ; : obj-p@ ( "Property" -- value ) object swap p@ ?dup if else "none" then ; : npc.spawn.location@ ( L2NpcInstance -- location ) "Spawn" p@ ?dup if "Location" p@ else 0 then ; : npc>spawn_id ( L2NpcInstance -- spawn_id ) "Spawn" p@ ?dup if "Id" p@ else 0 then ; : npc.aggro@ ( L2NpcInstance -- location ) dup L2Attackable.class instance-of? if "AggroRange" p@ else 0 then ; : npc.id@ ( L2NpcInstance -- npc_id ) "Template" p@ "npcId" field@ ; : L2NpcInstance.onActionShift object player@ c.target! "npc-data-view" access? if "jbforth/admin/actions/L2NpcInstance.onActionShift.htm" parse show else "jbforth/admin/actions/player.L2NpcInstance.onActionShift.htm" parse show then action-failed true boolean ; : L2MonsterInstance.onActionShift L2NpcInstance.onActionShift ; : L2MinionInstance.onActionShift L2NpcInstance.onActionShift ; : L2TeleporterInstance.onActionShift L2NpcInstance.onActionShift ; : L2RaidBossInstance.onActionShift L2NpcInstance.onActionShift ; : L2PcInstance.onActionShift "players-data-view" access? not if false boolean exit then object player@ c.target! "jbforth/admin/players/character_list.htm" show action-failed true boolean ; " " value accum : npc-drop-list ( hashmap -- ) >r dup r@ 'Iid' m@ 57 - if dup r@ 'sweep' m@ if "