///////////////////////////////////////////////////////////////////////////// // // File : equip_block.skrit // Author(s): Witness (Lisa Hui) // Purpose : when equipping an item, it flags one or more equip slots from // being usable (in conjunction with character.skrit and job_get.skrit) // History : v1.1 [November 8, 2004] // - changed block equip function names // // v1.0 [November 6, 2004] // - basic implementation // //---------------------------------------------------------------------------- // Version: 1.0 Date: November 6, 2004 //---------------------------------------------------------------------------- ////////////////////////////////////////////////////////////////////////////// property bool _server_only$ = false; property eWorldEvent msg_activate$ = WE_EQUIPPED; property eWorldEvent msg_deactivate$ = WE_UNEQUIPPED; property bool block_es_chest$ = false; property bool block_es_feet$ = false; property bool block_es_forearms$ = false; property bool block_es_head$ = false; property bool block_es_melee$ = false; property bool block_es_ranged$ = false; property bool block_es_shield$ = false; owner = GoSkritComponent; ////////////////////////////////////////////////////////////////////////////// // GLOBALS ////////////////////////////////////////////////////////////////////////////// #include "k_inc_block" ////////////////////////////////////////////////////////////////////////////// // STATES ////////////////////////////////////////////////////////////////////////////// startup State Listen$ { Goid wielder$; event OnEnterState$ { wielder$ = Goid.InvalidGoid; } event OnGoHandleMessage$( eWorldEvent e$, WorldMessage /*msg$*/ ) { if ( e$ == msg_activate$ ) { if ( owner.Go.Parent != NULL ) { Go user$ = owner.Go.Parent; wielder$ = user$.Goid; if ( block_es_chest$ ) { BlockEquipSlot$( user$, "block_es_chest" ); } if ( block_es_feet$ ) { BlockEquipSlot$( user$, "block_es_feet" ); } if ( block_es_forearms$ ) { BlockEquipSlot$( user$, "block_es_forearms" ); } if ( block_es_head$ ) { BlockEquipSlot$( user$, "block_es_head" ); } if ( block_es_melee$ ) { BlockEquipSlot$( user$, "block_es_melee" ); } if ( block_es_shield$ ) { BlockEquipSlot$( user$, "block_es_shield" ); } if ( block_es_ranged$ ) { BlockEquipSlot$( user$, "block_es_ranged" ); } } } else if ( e$ == msg_deactivate$ ) { if ( wielder$.IsValidMp ) { Go user$ = wielder$.Go; if ( block_es_chest$ ) { UnBlockEquipSlot$( user$, "block_es_chest" ); } if ( block_es_feet$ ) { UnBlockEquipSlot$( user$, "block_es_feet" ); } if ( block_es_forearms$ ) { UnBlockEquipSlot$( user$, "block_es_forearms" ); } if ( block_es_head$ ) { UnBlockEquipSlot$( user$, "block_es_head" ); } if ( block_es_melee$ ) { UnBlockEquipSlot$( user$, "block_es_melee" ); } if ( block_es_shield$ ) { UnBlockEquipSlot$( user$, "block_es_shield" ); } if ( block_es_ranged$ ) { UnBlockEquipSlot$( user$, "block_es_ranged" ); } } } } }