925 lines
31 KiB
C
925 lines
31 KiB
C
#include "version.h"
|
|
#include <string.h>
|
|
#include "common.h"
|
|
#include "util.h"
|
|
#include "char_event.h"
|
|
#include "char.h"
|
|
#include "item_event.h"
|
|
#include "magic.h"
|
|
#include "pet_event.h"
|
|
#include "npc_townpeople.h"
|
|
#include "npc_Dengon.h"
|
|
#include "npc_door.h"
|
|
#include "npc_healer.h"
|
|
#include "npc_oldman.h"
|
|
#include "npc_warp.h"
|
|
#include "npc_storyteller.h"
|
|
#include "npc_msg.h"
|
|
#include "npc_npcenemy.h"
|
|
#include "npc_action.h"
|
|
#include "npc_windowman.h"
|
|
#include "npc_savepoint.h"
|
|
#include "npc_windowhealer.h"
|
|
#include "npc_itemshop.h"
|
|
#ifdef _VIGOR_SYS
|
|
#include "npc_vigorshop.h"
|
|
#endif
|
|
#include "npc_sysinfo.h"
|
|
#include "npc_duelranking.h"
|
|
#include "npc_petskillshop.h"
|
|
#ifdef _PETSKILL_DEL_SHOP
|
|
#include "npc_petskilldelshop.h"
|
|
#endif
|
|
#include "npc_petshop.h"
|
|
#include "npc_signboard.h"
|
|
#include "npc_warpman.h"
|
|
#include "npc_exchangeman.h"
|
|
#include "petmail.h"
|
|
#include "npc_timeman.h"
|
|
#include "npc_bodylan.h"
|
|
#include "npc_mic.h"
|
|
#include "npc_luckyman.h"
|
|
#include "npc_bus.h"
|
|
#include "npc_charm.h"
|
|
#include "npc_poolitemshop.h"
|
|
#include "npc_quiz.h"
|
|
#include "npc_checkman.h"
|
|
#include "npc_janken.h"
|
|
#include "npc_transmigration.h"
|
|
#include "battle_event.h"
|
|
#include "enemy.h"
|
|
// Robin 0517
|
|
#include "npc_familyman.h"
|
|
#include "npc_bankman.h"
|
|
// add code by shan
|
|
#include "npc_fmdengon.h"
|
|
#include "npc_fmhealer.h"
|
|
#include "npc_petmaker.h"
|
|
#ifdef _FMRANK_POINT
|
|
#include "npc_fmrank.h"
|
|
#endif
|
|
// CoolFish: Family 2001/6/4
|
|
#include "npc_fmwarpman.h"
|
|
#include "npc_fmpkman.h"
|
|
#include "npc_fmpkcallman.h"
|
|
|
|
// Arminius 7.7 Airplane
|
|
#include "npc_airplane.h"
|
|
|
|
// Arminius 7.13 Scheduleman
|
|
#include "npc_scheduleman.h"
|
|
|
|
// Arminius 7.24 manor scheduleman
|
|
#include "npc_manorsman.h"
|
|
|
|
// Robin 0725
|
|
#include "npc_riderman.h"
|
|
#include "npc_fmletter.h"
|
|
|
|
#ifdef _GAMBLE_BANK
|
|
#include "npc_gamblebank.h"
|
|
#endif
|
|
#ifdef _NEW_WARPMAN
|
|
#include "npc_newnpcman.h"
|
|
#endif
|
|
|
|
#ifdef _GAMBLE_ROULETTE
|
|
#include "npc_gambleroulette.h"
|
|
#include "npc_gamblemaster.h"
|
|
#endif
|
|
|
|
#ifdef _TRANSER_MAN
|
|
#include "npc_transerman.h"
|
|
#endif
|
|
|
|
#ifdef _VIP_SHOP
|
|
#include "npc_vipshop.h"
|
|
//#include "npc_vippoint.h"
|
|
#include "npc_newvipshop.h"
|
|
#endif
|
|
#ifdef _RMB_SYSTEM
|
|
#include "npc_rmbshop.h"
|
|
#endif
|
|
#ifdef _STU_SYS
|
|
#include "npc_stushop.h"
|
|
#endif
|
|
#ifdef _NPC_ITEMUP
|
|
#include "npc_itemup.h"
|
|
#endif
|
|
#ifdef _AUTO_PK
|
|
#include "npc_autopk.h"
|
|
#endif
|
|
#ifdef _CFREE_petskill
|
|
#include "npc_freepetskillshop.h"
|
|
#endif
|
|
|
|
#ifdef _PETRACE
|
|
#include "npc_petracemaster.h"
|
|
#include "npc_petracepet.h"
|
|
#endif
|
|
|
|
#ifdef _ITEM_NPCCHANGE
|
|
#include "npc_itemchange.h"
|
|
#endif
|
|
|
|
#ifdef _NPC_MAKEPAIR
|
|
#include "npc_makepair.h"
|
|
#endif
|
|
|
|
#ifdef _NPC_FUSION
|
|
#include "npc_petfusion.h"
|
|
#endif
|
|
|
|
#ifdef _ALLDOMAN // (不可开) Syu ADD 排行榜NPC
|
|
#include "npc_alldoman.h"
|
|
#endif
|
|
|
|
#ifdef _NPC_WELFARE
|
|
#include "npc_welfare.h"
|
|
#endif
|
|
#ifdef _JZ_NEWSCRIPT_LUA
|
|
#include "npc_lua_interface.h"
|
|
#endif
|
|
#ifdef _FM_NPC_LOOK_WAR
|
|
#include "npc_fmlookwar.h"
|
|
#endif
|
|
#ifdef _FM_NPC_LOOK_WAR1
|
|
#include "npc_fmlookwar1.h"
|
|
#endif
|
|
//#define DEBUG
|
|
#include "npc_itemvippointshop.h"
|
|
typedef struct tagCorrespondStringAndFunctionTable
|
|
{
|
|
STRING32 functionName;
|
|
void* functionPointer;
|
|
int hashcode;
|
|
}CorrespondStringAndFunctionTable;
|
|
|
|
static CorrespondStringAndFunctionTable
|
|
correspondStringAndFunctionTable[]=
|
|
{
|
|
{ {"core_PreWalk"}, CHAR_allprewalk, 0 },
|
|
{ {"core_PostWalk"}, CHAR_allpostwalk, 0 },
|
|
{ {"core_Loop"}, CHAR_loopFunc, 0 },
|
|
{ {"core_Dying"}, CHAR_die, 0 },
|
|
{ {"core_PlayerWatch"}, CHAR_playerWatchfunc, 0 },
|
|
{ {"core_PlayerTalked"}, CHAR_playerTalkedfunc, 0 },
|
|
|
|
|
|
{ {"MedicineInit"}, ITEM_MedicineInit, 0 },
|
|
{ {"MedicineUsed"}, ITEM_MedicineUsed, 0 },
|
|
{ {"SandClockDetach"}, ITEM_SandClockDetach, 0 },
|
|
{ {"addTitleAttach"}, ITEM_addTitleAttach, 0 },
|
|
{ {"delTitleDetach"}, ITEM_delTitleDetach, 0 },
|
|
{ {"ITEM_DeleteByWatched"}, ITEM_DeleteByWatched, 0 },
|
|
{ {"ITEM_DeleteTimeWatched"}, ITEM_DeleteTimeWatched, 0 },
|
|
{ {"ITEM_useEffectTohelos"}, ITEM_useEffectTohelos, 0 },
|
|
|
|
// { {"ITEM_useHpRecovery"}, ITEM_useHpRecovery, 0 },
|
|
{ {"ITEM_useRecovery"}, ITEM_useRecovery, 0 },
|
|
#ifdef _ITEM_MAGICRECOVERY
|
|
{ {"ITEM_useMRecovery"}, ITEM_useMRecovery, 0 },
|
|
#endif
|
|
#ifdef _ITEM_USEMAGIC
|
|
{ {"ITEM_useMagic"}, ITEM_useMagic, 0 },
|
|
#endif
|
|
{ {"ITEM_useStatusChange"}, ITEM_useStatusChange, 0 },
|
|
{ {"ITEM_useStatusRecovery"}, ITEM_useStatusRecovery, 0 },
|
|
{ {"ITEM_useMagicDef"}, ITEM_useMagicDef, 0 },
|
|
{ {"ITEM_useParamChange"}, ITEM_useParamChange, 0 },
|
|
{ {"ITEM_useFieldChange"}, ITEM_useFieldChange, 0 },
|
|
{ {"ITEM_useAttReverse"}, ITEM_useAttReverse, 0 },
|
|
{ {"ITEM_useRessurect"}, ITEM_useRessurect, 0 },
|
|
{ {"ITEM_useMic"}, ITEM_useMic, 0 },
|
|
{ {"ITEM_dropMic"}, ITEM_dropMic, 0 },
|
|
{ {"ITEM_useCaptureUp"}, ITEM_useCaptureUp, 0 },
|
|
{ {"ITEM_useRenameItem"}, ITEM_useRenameItem, 0 },
|
|
{ {"ITEM_pickupDice"}, ITEM_pickupDice, 0 },
|
|
{ {"ITEM_dropDice"}, ITEM_dropDice, 0 },
|
|
{ {"ITEM_initLottery"}, ITEM_initLottery, 0 },
|
|
{ {"ITEM_useLottery"}, ITEM_useLottery, 0 },
|
|
{ {"ITEM_useWarp"}, ITEM_useWarp, 0 },
|
|
{ {"ITEM_petFollow"}, ITEM_petFollow, 0 },
|
|
{ {"ITEM_useSkup"}, ITEM_useSkup, 0 }, // Nuke 0624: Hero's bless
|
|
{ {"ITEM_useNoenemy"}, ITEM_useNoenemy, 0 }, // Nuke 0626: Dragon's help
|
|
{ {"ITEM_equipNoenemy"},ITEM_equipNoenemy, 0 }, // Arminius 7.2 Ra's amulet
|
|
{ {"ITEM_remNoenemy"}, ITEM_remNoenemy, 0 }, // Arminius 7.2 Ra's amulet
|
|
{ {"ITEM_useEncounter"}, ITEM_useEncounter, 0}, // Arminius 7.31 cursed stone
|
|
|
|
{ {"ITEM_AddPRSkillPoint"}, ITEM_AddPRSkillPoint, 0},
|
|
{ {"ITEM_AddPRSkillPercent"}, ITEM_AddPRSkillPercent, 0},
|
|
|
|
#ifdef _ITEM_METAMO
|
|
{ {"ITEM_metamo"}, ITEM_metamo, 0 },
|
|
{ {"ITEM_ColorMetamo"}, ITEM_ColorMetamo, 0 },
|
|
{ {"ITEM_CharaMetamo"}, ITEM_CharaMetamo, 0 },
|
|
{ {"ITEM_SexMetamo"}, ITEM_SexMetamo, 0 },
|
|
#endif
|
|
|
|
#ifdef _USEWARP_FORNUM
|
|
{ {"ITEM_useWarpForNum"}, ITEM_useWarpForNum, 0 },
|
|
#endif
|
|
|
|
#ifdef _IMPRECATE_ITEM
|
|
{ {"ITEM_useImprecate"}, ITEM_useImprecate, 0 },
|
|
#endif
|
|
#ifdef _ITEM_FIRECRACKER //Terry add 2001/12/21
|
|
{ {"ITEM_firecracker"}, ITEM_firecracker, 0 },
|
|
#endif
|
|
#ifdef _ITEM_CRACKER //vincent 拉炮
|
|
{ {"ITEM_Cracker"}, ITEM_Cracker, 0 },
|
|
#endif
|
|
#ifdef _ITEM_ADDEXP //vincent 经验提升
|
|
{ {"ITEM_Addexp"}, ITEM_Addexp, 0 },
|
|
#endif
|
|
#ifdef _ITEM_REFRESH //vincent 解除异常状态道具
|
|
{ {"ITEM_Refresh"}, ITEM_Refresh, 0 },
|
|
#endif
|
|
|
|
{ {"ITEM_WearEquip"}, ITEM_WearEquip, 0 },
|
|
{ {"ITEM_ReWearEquip"}, ITEM_ReWearEquip, 0 },
|
|
|
|
#ifdef _ITEM_CONSTITUTION
|
|
{ {"ITEM_Constitution"}, ITEM_Constitution, 0 },
|
|
#endif
|
|
|
|
#ifdef _Item_ReLifeAct
|
|
{ {"ITEM_DIErelife"}, ITEM_DIErelife, 0 },
|
|
#endif
|
|
|
|
#ifdef _ITEM_ORNAMENTS
|
|
{ {"ITEM_PutOrnaments"}, ITEM_PutOrnaments, 0},
|
|
#endif
|
|
#ifdef _CHIKULA_STONE
|
|
{ {"ITEM_ChikulaStone"}, ITEM_ChikulaStone, 0},
|
|
#endif
|
|
|
|
#ifdef _THROWITEM_ITEMS
|
|
{ {"ITEM_ThrowItemBox"}, ITEM_ThrowItemBox, 0},
|
|
#endif
|
|
|
|
#ifdef _ITEM_WATERWORDSTATUS
|
|
{ {"ITEM_WaterWordStatus"}, ITEM_WaterWordStatus, 0},
|
|
#endif
|
|
|
|
#ifdef _ITEM_LOVERPARTY
|
|
{ {"ITEM_LoverSelectUser"}, ITEM_LoverSelectUser, 0},
|
|
#endif
|
|
|
|
#ifdef _Item_MoonAct
|
|
{ {"ITEM_randEnemyEquipOne"}, ITEM_randEnemyEquipOne, 0 },
|
|
|
|
{ {"ITEM_randEnemyEquip"}, ITEM_randEnemyEquip, 0 },
|
|
{ {"ITEM_RerandEnemyEquip"}, ITEM_RerandEnemyEquip, 0},
|
|
#endif
|
|
|
|
#ifdef _SUIT_ITEM
|
|
{ {"ITEM_suitEquip"}, ITEM_suitEquip, 0 },
|
|
{ {"ITEM_ResuitEquip"}, ITEM_ResuitEquip, 0 },
|
|
#endif
|
|
|
|
#ifdef _Item_DeathAct
|
|
{ {"ITEM_useDeathcounter"}, ITEM_UseDeathCounter, 0 },
|
|
#endif
|
|
#ifdef _FEV_ADD_NEW_ITEM // FEV ADD 增加复活守精
|
|
{ {"ITEM_ResAndDef"} , ITEM_ResAndDef, 0 },
|
|
#endif
|
|
|
|
#ifdef _CHRISTMAS_REDSOCKS
|
|
{ {"ITEM_useMaxRedSocks"}, ITEM_useMaxRedSocks, 0 },
|
|
#endif
|
|
|
|
#ifdef _CHRISTMAS_REDSOCKS_NEW
|
|
{ {"ITEM_useMaxRedSocksNew"}, ITEM_useMaxRedSocksNew, 0 },
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_CANNEDFOOD
|
|
{ {"ITEM_useSkillCanned"}, ITEM_useSkillCanned, 0},
|
|
#endif
|
|
|
|
#ifdef _NEW_RIDEPETS
|
|
{ {"ITEM_useLearnRideCode"}, ITEM_useLearnRideCode, 0 },
|
|
#endif
|
|
|
|
#ifdef _EQUIT_DEFMAGIC
|
|
{ {"ITEM_MagicEquitWear"}, ITEM_MagicEquitWear, 0 },
|
|
{ {"ITEM_MagicEquitReWear"}, ITEM_MagicEquitReWear, 0 },
|
|
#endif
|
|
#ifdef _EQUIT_RESIST
|
|
{ {"ITEM_MagicResist"}, ITEM_MagicResist, 0 },
|
|
{ {"ITEM_MagicReResist"}, ITEM_MagicReResist, 0 },
|
|
#endif
|
|
|
|
#ifdef _MAGIC_RESIST_EQUIT // WON ADD 职业抗性装备
|
|
{ {"ITEM_P_MagicEquitWear"}, ITEM_P_MagicEquitWear, 0 },
|
|
{ {"ITEM_P_MagicEquitReWear"}, ITEM_P_MagicEquitReWear, 0 },
|
|
#endif
|
|
|
|
#ifdef _ANGEL_SUMMON
|
|
{ {"ITEM_AngelToken"}, ITEM_AngelToken, 0 },
|
|
{ {"ITEM_HeroToken"}, ITEM_HeroToken, 0 },
|
|
#endif
|
|
#ifdef _HALLOWEEN_EFFECT
|
|
{ {"ITEM_MapEffect"}, ITEM_MapEffect, 0 },
|
|
#endif
|
|
|
|
{ {"ITEM_changePetOwner"}, ITEM_changePetOwner, 0 },
|
|
|
|
{ {"ITEM_useDelRenameItem"}, ITEM_useDelRenameItem, 0 },
|
|
|
|
{ {"ITEM_DANMM"}, ITEM_DANMM, 0 },
|
|
|
|
{ {"core_PetWatch"}, PET_Watchfunc, 0 },
|
|
{ {"PETMAIL_Loop"}, PETMAIL_Loopfunc, 0 },
|
|
#ifdef _USER_CHARLOOPS
|
|
{ {"CHAR_BattleStayLoop"}, CHAR_BattleStayLoop, 0 },
|
|
{ {"PET_CheckIncubateLoop"}, PET_CheckIncubate, 0 },
|
|
#endif
|
|
|
|
#ifdef _PETSKILL_PROPERTY
|
|
{ {"PET_PetskillPropertyEvent"}, PET_PetskillPropertyEvent, 0 },
|
|
#endif
|
|
{ {"core_PetTalk"}, PET_Talkfunc, 0}, // Arminius 8.14 pet talk
|
|
|
|
|
|
/* warp */
|
|
{ {"WarpInit"}, NPC_WarpInit, 0 },
|
|
{ {"WarpPostOver"}, NPC_WarpPostOver, 0 },
|
|
{ {"WarpWatch"}, NPC_WarpWatch, 0 },
|
|
|
|
/* Dengon */
|
|
{ {"DengonInit"}, NPC_DengonInit, 0 },
|
|
{ {"DengonWindowTalked"}, NPC_DengonWindowTalked, 0 },
|
|
{ {"DengonLooked"}, NPC_DengonLooked, 0 },
|
|
|
|
/* FmDengon add code by shan */
|
|
{ {"FmDengonInit"}, NPC_FmDengonInit, 0 },
|
|
{ {"FmDengonWindowTalked"}, NPC_FmDengonWindowTalked, 0 },
|
|
{ {"FmDengonLooked"}, NPC_FmDengonLooked, 0 },
|
|
|
|
/* Healer */
|
|
{ {"HealerInit"} , NPC_HealerInit, 0 },
|
|
{ {"HealerTalked"} , NPC_HealerTalked , 0 },
|
|
|
|
/* FMHealer add code by shan */
|
|
{ {"FmHealerInit"} , NPC_FmHealerInit, 0 },
|
|
{ {"FmHealerTalked"} , NPC_FmHealerTalked , 0 },
|
|
|
|
/* petmaker add code by shan */
|
|
{ {"PetMakerInit"} , NPC_PetMakerInit, 0 },
|
|
{ {"PetMakerTalked"} , NPC_PetMakerTalked , 0 },
|
|
|
|
/* TownPeople */
|
|
{ {"TownPeopleTalked"}, NPC_TownPeopleTalked, 0 },
|
|
{ {"TownPeopleInit"}, NPC_TownPeopleInit, 0 },
|
|
|
|
/* TownPeople */
|
|
{ {"MsgLooked"}, NPC_MsgLooked , 0 },
|
|
{ {"MsgInit"}, NPC_MsgInit, 0 },
|
|
|
|
/* Oldman */
|
|
{ {"OldmanInit"} , NPC_OldmanInit , 0 },
|
|
{ {"OldmanTalked"} , NPC_OldmanTalked , 0 },
|
|
|
|
/* SavePOint */
|
|
{ {"SavePointInit"} , NPC_SavePointInit , 0 },
|
|
{ {"SavePointTalked"} , NPC_SavePointTalked , 0 },
|
|
{ {"SavePointWindowTalked"}, NPC_SavePointWindowTalked, 0 },
|
|
|
|
/* StoryTeller */
|
|
{ {"StoryTellerInit"} , NPC_StoryTellerInit , 0 },
|
|
{ {"StoryTellerTalked"} , NPC_StoryTellerTalked , 0 },
|
|
|
|
/* NPCEnemy */
|
|
{ {"NPCEnemyInit"} , NPC_NPCEnemyInit , 0 },
|
|
{ {"NPCEnemyTalked"} , NPC_NPCEnemyTalked , 0 },
|
|
{ {"NPCEnemyWatch"} , NPC_NPCEnemyWatch , 0 },
|
|
{ {"NPCEnemyLoop"}, NPC_NPCEnemyLoop, 0 },
|
|
{ {"NPCEnemyWindowTalked"}, NPC_NPCEnemyWindowTalked, 0 },
|
|
|
|
/* 失弁扑亦件楝 */
|
|
{ {"ActionInit"} , NPC_ActionInit , 0 },
|
|
{ {"ActionTalked"} , NPC_ActionTalked , 0 },
|
|
{ {"ActionWatch"} , NPC_ActionWatch , 0 },
|
|
|
|
/* 它奴件玉它楝 */
|
|
{ {"WindowmanInit"} , NPC_WindowmanInit , 0 },
|
|
{ {"WindowmanTalked"} , NPC_WindowmanTalked , 0 },
|
|
{ {"WindowmanLooked"}, NPC_WindowmanLooked, 0 },
|
|
{ {"WindowmanWindowTalked"}, NPC_WindowmanWindowTalked, 0 },
|
|
|
|
/* 它奴件玉它甲□仿□ */
|
|
{ {"WindowHealerInit"} , NPC_WindowHealerInit , 0 },
|
|
{ {"WindowHealerTalked"} , NPC_WindowHealerTalked, 0 },
|
|
{ {"WindowHealerLooked"} , NPC_WindowHealerLooked, 0 },
|
|
{ {"WindowHealerWindowTalked"}, NPC_WindowHealerWindowTalked, 0 },
|
|
|
|
{ {"ItemShopInit"} , NPC_ItemShopInit , 0 },
|
|
{ {"ItemShopTalked"} , NPC_ItemShopTalked , 0 },
|
|
{ {"ItemShopWindowTalked"}, NPC_ItemShopWindowTalked, 0 },
|
|
|
|
{ {"ItemVippointShopInit"} , NPC_ItemVippointShopInit , 0 },
|
|
{ {"ItemVippointShopTalked"} , NPC_ItemVippointShopTalked , 0 },
|
|
{ {"ItemVippointShopWindowTalked"}, NPC_ItemVippointShopWindowTalked, 0 },
|
|
|
|
/* Sysinfo */
|
|
{ {"SysinfoInit"}, NPC_SysinfoInit, 0 },
|
|
{ {"SysinfoLoop"}, NPC_SysinfoLoop, 0 },
|
|
{ {"SysinfoTalked"} , NPC_SysinfoTalked , 0 },
|
|
|
|
{ {"DuelrankingInit"} , NPC_DuelrankingInit , 0 },
|
|
{ {"DuelrankingLooked"}, NPC_DuelrankingLooked, 0 },
|
|
{ {"DuelrankingWindowTalked"}, NPC_DuelrankingWindowTalked, 0 },
|
|
|
|
{ {"PetSkillShopInit"} , NPC_PetSkillShopInit , 0 },
|
|
{ {"PetSkillShopTalked"} , NPC_PetSkillShopTalked, 0 },
|
|
{ {"PetSkillShopLooked"} , NPC_PetSkillShopLooked, 0 },
|
|
{ {"PetSkillShopWindowTalked"}, NPC_PetSkillShopWindowTalked, 0 },
|
|
#ifdef _PETSKILL_DEL_SHOP
|
|
{ {"PetSkillDelShopInit"} , NPC_PetSkillDelShopInit , 0 },
|
|
{ {"PetSkillDelShopTalked"} , NPC_PetSkillDelShopTalked, 0 },
|
|
{ {"PetSkillDelShopLooked"} , NPC_PetSkillDelShopLooked, 0 },
|
|
{ {"PetSkillDelShopWindowTalked"}, NPC_PetSkillDelShopWindowTalked, 0 },
|
|
#endif
|
|
{ {"PetShopInit"} , NPC_PetShopInit, 0 },
|
|
{ {"PetShopTalked"} , NPC_PetShopTalked, 0 },
|
|
{ {"PetShopLooked"} , NPC_PetShopLooked, 0 },
|
|
{ {"PetShopWindowTalked"}, NPC_PetShopWindowTalked,0 },
|
|
|
|
{ {"SignBoardInit"} , NPC_SignBoardInit, 0 },
|
|
{ {"SignBoardLooked"} , NPC_SignBoardLooked, 0 },
|
|
{ {"SignBoardWindowTalked"}, NPC_SignBoardWindowTalked, 0 },
|
|
|
|
/*伐□皿穴件 */
|
|
{ {"WarpManInit"}, NPC_WarpManInit, 0 },
|
|
{ {"WarpManTalked"}, NPC_WarpManTalked, 0 },
|
|
{ {"WarpManWatch"}, NPC_WarpManWatch, 0 },
|
|
{ {"WarpManLoop"} , NPC_WarpManLoop, 0 },
|
|
{ {"WarpManWindowTalked"}, NPC_WarpManWindowTalked,0 },
|
|
|
|
|
|
{ {"ExChangeManInit"}, NPC_ExChangeManInit, 0 },
|
|
{ {"ExChangeManTalked"}, NPC_ExChangeManTalked, 0 },
|
|
{ {"ExChangeManWindowTalked"}, NPC_ExChangeManWindowTalked,0 },
|
|
|
|
/*正奶丞穴件 */
|
|
{ {"TimeManInit"}, NPC_TimeManInit, 0 },
|
|
{ {"TimeManTalked"}, NPC_TimeManTalked, 0 },
|
|
{ {"TimeManWatch"} , NPC_TimeManWatch , 0 },
|
|
|
|
/* 示犯奴仿件必□斥 */
|
|
{ {"BodyLanInit"}, NPC_BodyLanInit, 0 },
|
|
{ {"BodyLanTalked"}, NPC_BodyLanTalked, 0 },
|
|
{ {"BodyLanWatch"} , NPC_BodyLanWatch , 0 },
|
|
{ {"BodyLanWindowTalked"} , NPC_BodyLanWindowTalked,0 },
|
|
|
|
/* 穴奶弁 */
|
|
{ {"MicInit"}, NPC_MicInit, 0 },
|
|
{ {"MicTalked"}, NPC_MicTalked, 0 },
|
|
|
|
/* 仿永平□穴件 */
|
|
{ {"LuckyManInit"} , NPC_LuckyManInit , 0 },
|
|
{ {"LuckyManTalked"} , NPC_LuckyManTalked, 0 },
|
|
{ {"LuckyManWindowTalked"}, NPC_LuckyManWindowTalked, 0 },
|
|
|
|
/* 楝 */
|
|
{ {"BusInit"} , NPC_BusInit , 0 },
|
|
{ {"BusTalked"} , NPC_BusTalked , 0 },
|
|
{ {"BusLoop"} , NPC_BusLoop , 0 },
|
|
|
|
/* 加美航空 */ // Arminius 7.7 Airplane
|
|
{ {"AirInit"} , NPC_AirInit , 0 },
|
|
{ {"AirTalked"} , NPC_AirTalked , 0 },
|
|
{ {"AirLoop"} , NPC_AirLoop , 0 },
|
|
|
|
{ {"CharmInit"} , NPC_CharmInit , 0 },
|
|
{ {"CharmTalked"} , NPC_CharmTalked, 0 },
|
|
{ {"CharmWindowTalked"}, NPC_CharmWindowTalked, 0 },
|
|
|
|
{ {"PoolItemShopInit"} , NPC_PoolItemShopInit , 0 },
|
|
{ {"PoolItemShopLoop"} , NPC_PoolItemShopLoop , 0 },
|
|
{ {"PoolItemShopTalked"} , NPC_PoolItemShopTalked , 0 },
|
|
{ {"PoolItemShopWindowTalked"}, NPC_PoolItemShopWindowTalked, 0 },
|
|
|
|
{ {"QuizInit"} , NPC_QuizInit , 0 },
|
|
{ {"QuizTalked"} , NPC_QuizTalked, 0 },
|
|
{ {"QuizWindowTalked"}, NPC_QuizWindowTalked, 0 },
|
|
|
|
|
|
/* 切之匀仁引氏 */
|
|
{ {"CheckManInit"} , NPC_CheckManInit , 0 },
|
|
{ {"CheckManTalked"} , NPC_CheckManTalked, 0 },
|
|
{ {"CheckManWindowTalked"}, NPC_CheckManWindowTalked, 0 },
|
|
|
|
/* 元扎氏仃氏楝 */
|
|
{ {"JankenInit"} , NPC_JankenInit , 0 },
|
|
{ {"JankenTalked"} , NPC_JankenTalked, 0 },
|
|
{ {"JankenWindowTalked"}, NPC_JankenWindowTalked, 0 },
|
|
|
|
/* 鳖戏谛 */
|
|
{ {"TransmigrationInit"} , NPC_TransmigrationInit , 0 },
|
|
{ {"TransmigrationTalked"} , NPC_TransmigrationTalked, 0 },
|
|
{ {"TransmigrationWindowTalked"}, NPC_TransmigrationWindowTalked, 0 },
|
|
|
|
/* Family man */
|
|
{ {"FamilymanInit"} , NPC_FamilymanInit , 0 },
|
|
{ {"FamilymanTalked"} , NPC_FamilymanTalked, 0 },
|
|
{ {"FamilymanLooked"}, NPC_FamilymanLooked,0 },
|
|
{ {"FamilymanWindowTalked"}, NPC_FamilymanWindowTalked, 0 },
|
|
|
|
/* CoolFish: Family WarpMan 2001/6/6 */
|
|
{ {"FMWarpManInit"}, NPC_FMWarpManInit, 0 },
|
|
{ {"FMWarpManTalked"}, NPC_FMWarpManTalked, 0 },
|
|
{ {"FMWarpManLoop"} , NPC_FMWarpManLoop, 0 },
|
|
{ {"FMWarpManWindowTalked"}, NPC_FMWarpManWindowTalked, 0 },
|
|
|
|
/* CoolFish: Family PKMan 2001/7/4 */
|
|
{ {"FMPKManInit"}, NPC_FMPKManInit, 0 },
|
|
{ {"FMPKManTalked"}, NPC_FMPKManTalked, 0 },
|
|
{ {"FMPKManWindowTalked"}, NPC_FMPKManWindowTalked, 0 },
|
|
|
|
/* CoolFish: Family PKCallMan 2001/7/13 */
|
|
{ {"FMPKCallManInit"}, NPC_FMPKCallManInit, 0 },
|
|
{ {"FMPKCallManTalked"}, NPC_FMPKCallManTalked, 0 },
|
|
{ {"FMPKCallManWindowTalked"}, NPC_FMPKCallManWindowTalked, 0 },
|
|
|
|
/* Bank man */
|
|
{ {"BankmanInit"} , NPC_BankmanInit , 0 },
|
|
{ {"BankmanTalked"} , NPC_BankmanTalked, 0 },
|
|
{ {"BankmanLooked"}, NPC_BankmanLooked,0 },
|
|
{ {"BankmanWindowTalked"}, NPC_BankmanWindowTalked, 0 },
|
|
|
|
/* Arminius 7.13 scheduleman */
|
|
{ {"SchedulemanInit"}, NPC_SchedulemanInit, 0},
|
|
{ {"SchedulemanTalked"}, NPC_SchedulemanTalked, 0},
|
|
{ {"SchedulemanWindowTalked"}, NPC_SchedulemanWindowTalked, 0},
|
|
{ {"SchedulemanLoop"}, NPC_SchedulemanLoop, 0},
|
|
|
|
/* Arminius 7.24 manor scheduleman */
|
|
{ {"ManorSmanInit"}, NPC_ManorSmanInit, 0},
|
|
{ {"ManorSmanTalked"}, NPC_ManorSmanTalked, 0},
|
|
{ {"ManorSmanWindowTalked"}, NPC_ManorSmanWindowTalked, 0},
|
|
{ {"ManorSmanLoop"}, NPC_ManorSmanLoop, 0},
|
|
|
|
/* Rider man */
|
|
{ {"RidermanInit"} , NPC_RidermanInit , 0 },
|
|
{ {"RidermanTalked"} , NPC_RidermanTalked, 0 },
|
|
{ {"RidermanLooked"}, NPC_RidermanLooked,0 },
|
|
{ {"RidermanWindowTalked"}, NPC_RidermanWindowTalked, 0 },
|
|
|
|
/* FmLetter man */
|
|
{ {"FmLetterInit"} , NPC_FmLetterInit , 0 },
|
|
{ {"FmLetterTalked"} , NPC_FmLetterTalked, 0 },
|
|
{ {"FmLetterLooked"}, NPC_FmLetterLooked,0 },
|
|
{ {"FmLetterWindowTalked"}, NPC_FmLetterWindowTalked, 0 },
|
|
|
|
|
|
#ifdef _GAMBLE_BANK //银行
|
|
{ {"GambleBankInit"}, NPC_GambleBankInit, 0},
|
|
{ {"GambleBankLoop"}, NPC_GambleBankLoop,0},
|
|
{ {"GambleBankTalked"}, NPC_GambleBankTalked,0},
|
|
{ {"GambleBankWindowTalked"}, NPC_GambleBankWindowTalked,0},
|
|
#endif
|
|
|
|
|
|
#ifdef _PET_LIMITLEVEL
|
|
{ {"ITEM_useOtherEditBase"}, ITEM_useOtherEditBase, 0},
|
|
#endif
|
|
#ifdef _ITEM_EDITBASES
|
|
{ {"ITEM_useFusionEditBase"}, ITEM_useFusionEditBase, 0},
|
|
#endif
|
|
#ifdef _GAMBLE_ROULETTE //赌场轮盘
|
|
{ {"GambleRouletteInit"}, NPC_Gamble_RouletteInit, 0},
|
|
{ {"GambleRouletteLoop"}, NPC_Gamble_RouletteLoop, 0},
|
|
{ {"GambleRouletteTalked"}, NPC_Gamble_RouletteTalked, 0},
|
|
{ {"GambleRouletteWindowTalked"}, NPC_Gamble_RouletteWindowTalked, 0},
|
|
|
|
{ {"GambleMasterInit"}, NPC_Gamble_MasterInit, 0},
|
|
{ {"GambleMasterLoop"}, NPC_Gamble_MasterLoop, 0},
|
|
{ {"GambleMasterTalked"}, NPC_Gamble_MasterTalked, 0},
|
|
{ {"GambleMasterWindowTalked"}, NPC_Gamble_MasterWindowTalked, 0},
|
|
#endif
|
|
|
|
#ifdef _TRANSER_MAN
|
|
{ {"TranserManInit"}, NPC_TranserManInit, 0 },
|
|
{ {"TranserManTalked"}, NPC_TranserManTalked, 0 },
|
|
{ {"TranserManLoop"} , NPC_TranserManLoop, 0 },
|
|
{ {"TranserManWindowTalked"}, NPC_TranserManWindowTalked, 0 },
|
|
#endif
|
|
#ifdef _FM_NPC_LOOK_WAR
|
|
{ {"FmLookWarManInit"}, NPC_FmLookWarManInit, 0 },
|
|
{ {"FmLookWarManTalked"}, NPC_FmLookWarManTalked, 0 },
|
|
{ {"FmLookWarManLoop"} , NPC_FmLookWarManLoop, 0 },
|
|
{ {"FmLookWarManWindowTalked"}, NPC_FmLookWarManWindowTalked, 0 },
|
|
#endif
|
|
#ifdef _FM_NPC_LOOK_WAR1
|
|
{ {"FmLookWarMan1Init"}, NPC_FmLookWarMan1Init, 0 },
|
|
{ {"FmLookWarMan1Talked"}, NPC_FmLookWarMan1Talked, 0 },
|
|
{ {"FmLookWarMan1Loop"} , NPC_FmLookWarMan1Loop, 0 },
|
|
{ {"FmLookWarMan1WindowTalked"}, NPC_FmLookWarMan1WindowTalked, 0 },
|
|
#endif
|
|
#ifdef _VIP_SHOP
|
|
{ {"VipShopInit"}, NPC_VipshopInit, 0 },
|
|
{ {"VipShopTalked"}, NPC_VipshopTalked, 0 },
|
|
{ {"VipShopLoop"} , NPC_VipshopLoop, 0 },
|
|
{ {"VipShopWindowTalked"}, NPC_VipshopWindowTalked, 0 },
|
|
#endif
|
|
|
|
#ifdef _VIP_SHOP
|
|
{ {"NewVipShopInit"}, NPC_NewVipshopInit, 0 },
|
|
{ {"NewVipShopTalked"}, NPC_NewVipshopTalked, 0 },
|
|
{ {"NewVipShopLoop"} , NPC_NewVipshopLoop, 0 },
|
|
{ {"NewVipShopWindowTalked"}, NPC_NewVipshopWindowTalked, 0 },
|
|
#endif
|
|
|
|
#ifdef _RMB_SYSTEM
|
|
{ {"RmbShopInit"}, NPC_RmbshopInit, 0 },
|
|
{ {"RmbShopTalked"}, NPC_RmbshopTalked, 0 },
|
|
{ {"RmbShopLoop"} , NPC_RmbshopLoop, 0 },
|
|
{ {"RmbShopWindowTalked"}, NPC_RmbshopWindowTalked, 0 },
|
|
#endif
|
|
|
|
#ifdef _STU_SYS
|
|
{ {"StuShopInit"}, NPC_StushopInit, 0 },
|
|
{ {"StuShopTalked"}, NPC_StushopTalked, 0 },
|
|
{ {"StuShopLoop"} , NPC_StushopLoop, 0 },
|
|
{ {"StuShopWindowTalked"}, NPC_StushopWindowTalked, 0 },
|
|
#endif
|
|
|
|
#ifdef _AUTO_PK
|
|
{ {"AutoPkInit"}, NPC_AutoPkInit, 0 },
|
|
{ {"AutoPkTalked"}, NPC_AutoPkTalked, 0 },
|
|
{ {"AutoPkLoop"} , NPC_AutoPkLoop, 0 },
|
|
{ {"AutoPkWindowTalked"}, NPC_AutoPkWindowTalked, 0 },
|
|
#endif
|
|
#ifdef _FMRANK_POINT
|
|
{ {"FmRankInit"}, NPC_FmRankInit, 0 },
|
|
{ {"FmRankTalked"}, NPC_FmRankTalked, 0 },
|
|
{ {"FmRankLoop"} , NPC_FmRankLoop, 0 },
|
|
{ {"FmRankWindowTalked"}, NPC_FmRankWindowTalked, 0 },
|
|
#endif
|
|
#ifdef _NPC_MAKEPAIR
|
|
{ {"MakePairManInit"}, NPC_MakePairManInit, 0 },
|
|
{ {"MakePairManTalked"}, NPC_MakePairManTalked, 0 },
|
|
{ {"MakePairManLoop"} , NPC_MakePairManLoop, 0 },
|
|
{ {"MakePairManWindowTalked"}, NPC_MakePairManWindowTalked,0 },
|
|
#endif
|
|
#ifdef _NPC_FUSION
|
|
{ {"PetFusionManInit"}, NPC_PetFusionManInit, 0 },
|
|
{ {"PetFusionManTalked"}, NPC_PetFusionManTalked, 0 },
|
|
{ {"PetFusionManLoop"} , NPC_PetFusionManLoop, 0 },
|
|
{ {"PetFusionManWindowTalked"}, NPC_PetFusionManWindowTalked,0 },
|
|
#endif
|
|
#ifdef _ITEM_NPCCHANGE
|
|
{ {"ItemchangeManInit"}, NPC_ItemchangeManInit, 0 },
|
|
{ {"ItemchangeManTalked"}, NPC_ItemchangeManTalked, 0 },
|
|
{ {"ItemchangeManLoop"} , NPC_ItemchangeManLoop, 0 },
|
|
{ {"ItemchangeManWindowTalked"}, NPC_ItemchangeManWindowTalked, 0 },
|
|
#endif
|
|
#ifdef _NPC_ITEMUP
|
|
{ {"ItemupManInit"}, NPC_ItemupManInit, 0 },
|
|
{ {"ItemupManTalked"}, NPC_ItemupManTalked, 0 },
|
|
{ {"ItemupManLoop"} , NPC_ItemupManLoop, 0 },
|
|
{ {"ItemupManWindowTalked"}, NPC_ItemupManWindowTalked, 0 },
|
|
#endif
|
|
#ifdef _CFREE_petskill
|
|
{ {"FreePetSkillInit"} , NPC_FreePetSkillShopInit, 0 },
|
|
{ {"FreePetSkillTalked"} , NPC_FreePetSkillShopTalked, 0 },
|
|
{ {"FreePetSkillWindowTalked"}, NPC_FreePetSkillShopWindowTalked, 0 },
|
|
#endif
|
|
|
|
#ifdef _PETRACE // 宠物竞速
|
|
{ {"PetRaceMasterInit"}, NPC_PetRaceMasterInit, 0},
|
|
{ {"PetRaceMasterLoop"}, NPC_PetRaceMasterLoop, 0},
|
|
{ {"PetRaceMasterTalked"}, NPC_PetRaceMasterTalked, 0},
|
|
{ {"PetRaceMasterWindowTalked"}, NPC_PetRaceMasterWindowTalked, 0},
|
|
|
|
{ {"PetRacePetInit"}, NPC_PetRacePetInit, 0},
|
|
{ {"PetRacePetLoop"}, NPC_PetRacePetLoop, 0},
|
|
{ {"PetRacePetTalked"}, NPC_PetRacePetTalked, 0},
|
|
#endif
|
|
|
|
#ifdef _NEW_WARPMAN
|
|
{ {"NewNpcManInit"}, NPC_NewNpcManInit, 0},
|
|
{ {"NewNpcManLoop"}, NPC_NewNpcManLoop, 0},
|
|
{ {"NewNpcManTalked"}, NPC_NewNpcManTalked, 0},
|
|
{ {"NewNpcManWindowTalked"}, NPC_NewNpcManWindowTalked, 0},
|
|
#endif
|
|
|
|
#ifdef _ALLDOMAN // (不可开) Syu ADD 排行榜NPC
|
|
{ {"AlldomanInit"} , NPC_AlldomanInit, 0 },
|
|
{ {"AlldomanTalked"} , NPC_AlldomanTalked , 0 },
|
|
{ {"AlldomanWindowTalked"}, NPC_AlldomanWindowTalked , 0},
|
|
#endif
|
|
|
|
#ifdef _NPC_WELFARE
|
|
{ {"WelfareInit"} , NPC_WelfareInit, 0 },
|
|
{ {"WelfareTalked"} , NPC_WelfareTalked , 0 },
|
|
{ {"WelfareWindowTalked"}, NPC_WelfareWindowTalked , 0},
|
|
#endif
|
|
#ifdef _VIGOR_SYS
|
|
{ {"ItemVigorShopInit"} , NPC_ItemVigorShopInit , 0 },
|
|
{ {"ItemVigorShopTalked"} , NPC_ItemVigorShopTalked , 0 },
|
|
{ {"ItemVigorShopWindowTalked"}, NPC_ItemVigorShopWindowTalked, 0 },
|
|
#endif
|
|
#ifdef _TIME_TICKET
|
|
{ {"ITEM_timeticket"}, ITEM_timeticket, 0},
|
|
#endif
|
|
|
|
#ifdef _ITEM_SETLOVER // 结婚物品
|
|
{ {"ITEM_SetLoverUser"}, ITEM_SetLoverUser, 0 },
|
|
{ {"ITEM_LoverWarp"}, ITEM_LoverWarp, 0 },
|
|
{ {"ITEM_LoverUnmarry"}, ITEM_LoverUnmarry, 0 },
|
|
{ {"ITEM_LoverForceUnmarry"}, ITEM_LoverForceUnmarry, 0 }, //强制离婚
|
|
#endif
|
|
|
|
#ifdef _GM_ITEM // GM命令物品
|
|
{ {"ITEM_GMFUNCTION"}, ITEM_GMFUNCTION, 0 },
|
|
#endif
|
|
|
|
#ifdef _VIP_SERVER // 会员服务
|
|
{ {"ITEM_AddMemberPoint"}, ITEM_AddMemberPoint, 0 },
|
|
{ {"ITEM_AddVipPoint"}, ITEM_AddVipPoint, 0 },
|
|
#endif
|
|
#ifdef _VIP_RIDE
|
|
{ {"ITEM_VipRide"}, ITEM_VipRide, 0 },
|
|
#endif
|
|
#ifdef _NEW_NAME //自定义称号
|
|
{ {"ITEM_NewName"}, ITEM_NewName, 0 },
|
|
#endif
|
|
#ifdef _FM_ITEM
|
|
{ {"ITEM_AddFame"}, ITEM_AddFame, 0 },
|
|
#endif
|
|
#ifdef _LUCK_ITEM
|
|
{ {"ITEM_Luck"}, ITEM_Luck, 0 },
|
|
#endif
|
|
#ifdef _FM_METAMO
|
|
{ {"ITEM_MetamoTime"}, ITEM_MetamoTime, 0 },
|
|
#endif
|
|
#ifdef _ITEM_GOLD
|
|
{ {"ITEM_Gold"}, ITEM_Gold, 0 },
|
|
#endif
|
|
#ifdef _MYSTERIOUS_GIFT
|
|
{ {"ITEM_MysteriousGift"}, ITEM_MysteriousGift, 0 },
|
|
#endif
|
|
#ifdef _BATTLE_PK
|
|
{ {"ITEM_BattlePK"}, ITEM_BattlePK, 0 },
|
|
#endif
|
|
#ifdef _SILENTZERO
|
|
{ {"ITEM_SetSilentZero"}, ITEM_SetSilentZero, 0 },
|
|
#endif
|
|
#ifdef _PET_LEVEL_ITEM
|
|
{ {"ITEM_PetLevelItem"}, ITEM_PetLevelItem, 0 },
|
|
#endif
|
|
|
|
#ifdef _ITEM_EFMETAMO
|
|
{ {"ITEM_efMetamo"}, ITEM_efMetamo, 0 },
|
|
#endif
|
|
#ifdef _PET_BEATITUDE
|
|
{ {"PET_BEATITUDE"}, PET_BEATITUDE, 0 },
|
|
#endif
|
|
#ifdef _GET_MULTI_ITEM
|
|
{ {"ITEM_GetMultiItem"}, ITEM_GetMultiItem, 0 },
|
|
#endif
|
|
{ {"ITEM_OldToNew"}, ITEM_OldToNew, 0 },
|
|
#ifdef _SAFE_PASSWORD
|
|
{ {"ITEM_ItemPetLocked"}, ITEM_ItemPetLocked, 0 },
|
|
#endif
|
|
#ifdef _POINT_CARD
|
|
{ {"ITEM_OnlineCost"}, ITEM_OnlineCost, 0 },
|
|
#endif
|
|
#ifdef _SUPER_MAN_ITEM
|
|
{ {"ITEM_SuperManItem"}, ITEM_SuperManItem, 0 },
|
|
#endif
|
|
{ {"ITEM_CharSave"}, ITEM_CharSave, 0 },
|
|
{ {"ITEM_NoDelWarp"}, ITEM_NoDelWarp, 0 },
|
|
{ {"ITEM_RandWarp"}, ITEM_RandWarp, 0 },
|
|
{ {"ITEM_RandMsg"}, ITEM_RandMsg, 0 },
|
|
#ifdef _SQL_BUY_FUNC
|
|
{ {"ITEM_OnlineBuy_recv"}, ITEM_OnlineBuy_recv, 0 },
|
|
#endif
|
|
#ifdef _JOB_AUTOPK
|
|
{ {"ITEM_JobPk"}, ITEM_JobPk, 0 },
|
|
#endif
|
|
{ {"ITEM_SeeEquip"}, ITEM_SeeEquip, 0 },
|
|
#ifdef _VIGOR_SYS
|
|
{ {"ITEM_VigorSave"}, ITEM_VigorSave, 0 },
|
|
#endif
|
|
#ifdef _EV_NUM
|
|
{ {"ITEM_EvItem"}, ITEM_EvItem, 0 },
|
|
#endif
|
|
#ifdef _OFFLINE_SYSTEM
|
|
{ {"ITEM_OFFLINE"}, ITEM_OFFLINE, 0 },
|
|
#endif
|
|
{ {"ITEM_AddProfessionLevel"}, ITEM_AddProfessionLevel, 0 },
|
|
#ifdef _ZHIPIAO_SYSTEM
|
|
{ {"ITEM_ZhiPiao"}, ITEM_ZhiPiao, 0 },
|
|
#endif
|
|
{ {"ITEM_useRandEditBase"}, ITEM_useRandEditBase, 0 },
|
|
#ifdef _DP_ZHIPIAO_ITEM
|
|
{ {"ITEM_DpZhiPiao"}, ITEM_DpZhiPiao, 0 },
|
|
#endif
|
|
{ {"ITEM_UpPointResetItem"}, ITEM_UpPointResetItem, 0 },
|
|
{ {"ITEM_MM"}, ITEM_MM, 0 },
|
|
#ifdef _XC_CANGKU
|
|
{ {"ITEM_ICK"}, ITEM_ICK, 0 },
|
|
{ {"ITEM_PCK"}, ITEM_PCK, 0 },
|
|
#endif
|
|
#ifdef _SPECIAL_SUIT
|
|
{ {"ITEM_SpecialSuitEquip"}, ITEM_SpecialSuitEquip, 0 },
|
|
{ {"ITEM_SpecialResuitEquip"}, ITEM_SpecialResuitEquip, 0 },
|
|
#endif
|
|
#ifdef _NULL_CHECK_ITEM
|
|
{ {"ITEM_NullCheck"}, ITEM_NullCheck, 0 },
|
|
#endif
|
|
#ifdef _MANOR_EQUIP
|
|
{ {"ITEM_ManorEquip"}, ITEM_ManorEquip, 0 },
|
|
{ {"ITEM_ReManorEquip"}, ITEM_ReManorEquip, 0 },
|
|
#endif
|
|
{ {"ITEM_MakePet"}, ITEM_MakePet, 0 },
|
|
{ {"PET_OTHERBEATITUDE"}, PET_OTHERBEATITUDE, 0 },
|
|
{ {"PET_MYBEATITUDE"}, PET_MYBEATITUDE, 0 },
|
|
{ {"ITEM_useExpLv"}, ITEM_useExpLv, 0 },
|
|
#ifdef _ITEM_LUA
|
|
{ {"ITEM_Lua"}, ITEM_Lua, 0 },
|
|
#endif
|
|
#ifdef _JZ_NEWSCRIPT_LUA
|
|
{ {FUNCNAME_INITCALLBACK} , NPC_Lua_InitCallBack, 0 },
|
|
{ {FUNCNAME_WALKPRECALLBACK} , NPC_Lua_WalkPreCallBack, 0 },
|
|
{ {FUNCNAME_WALKPOSTCALLBACK} , NPC_Lua_WalkPostCallBack, 0 },
|
|
{ {FUNCNAME_PREOVERCALLBACK} , NPC_Lua_PreOverCallBack, 0 },
|
|
{ {FUNCNAME_POSTOVERCALLBACK} , NPC_Lua_PostOverCallBack, 0 },
|
|
{ {FUNCNAME_WATCHCALLBACK} , NPC_Lua_WatchCallBack, 0 },
|
|
{ {FUNCNAME_LOOPCALLBACK} , NPC_Lua_LoopCallBack, 0 },
|
|
{ {FUNCNAME_TALKEDCALLBACK} , NPC_Lua_TalkedCallBack, 0 },
|
|
{ {FUNCNAME_OFFCALLBACK} , NPC_Lua_OFFCallBack, 0 },
|
|
{ {FUNCNAME_LOOKEDCALLBACK} , NPC_Lua_LookedCallBack, 0 },
|
|
{ {FUNCNAME_ITEMPUTCALLBACK} , NPC_Lua_ItemPutCallBack, 0 },
|
|
{ {FUNCNAME_WINDOWTALKEDCALLBACK} , NPC_Lua_WindowTalkedCallBack, 0 },
|
|
#ifdef _USER_CHARLOOPS
|
|
{ {FUNCNAME_CHARLOOPSCALLBACK} , NPC_Lua_CharLoopsCallBack, 0 },
|
|
{ {FUNCNAME_BATTLEPROPERTYCALLBACK} , NPC_Lua_BattleProPertyCallBack, 0 },
|
|
#endif
|
|
|
|
{ {FUNCNAME_ITEMPEROVERCALLBACK} , NPC_Lua_ItemPerOverCallBack, 0 },
|
|
{ {FUNCNAME_ITEMPOSTOVERCALLBACK} , NPC_Lua_ItemPostOverCallBack, 0 },
|
|
{ {FUNCNAME_ITEMWATCHCALLBACK} , NPC_Lua_ItemWatchCallBack, 0 },
|
|
{ {FUNCNAME_ITEMUSECALLBACK} , NPC_Lua_ItemUseCallBack, 0 },
|
|
{ {FUNCNAME_ITEMATTACHCALLBACK} , NPC_Lua_ItemAttachCallBack, 0 },
|
|
{ {FUNCNAME_ITEMDETACHCALLBACK} , NPC_Lua_ItemDetachCallBack, 0 },
|
|
{ {FUNCNAME_ITEMDROPCALLBACK} , NPC_Lua_ItemDropCallBack, 0 },
|
|
{ {FUNCNAME_ITEMPICKUPCALLBACK} , NPC_Lua_ItemPickUPCallBack, 0 },
|
|
#ifdef _Item_ReLifeAct
|
|
{ {FUNCNAME_ITEMDIERELIFECALLBACK} , NPC_Lua_ItemDieReLifeCallBack, 0 },
|
|
#endif
|
|
|
|
{ {FUNCNAME_BATTLEWINCALLBACK} , NPC_Lua_BattleWinCallBack, 0 },
|
|
{ {FUNCNAME_BATTLEENDCALLBACK} , NPC_Lua_BattleEndCallBack, 0 },
|
|
#endif //_JZ_NEWSCRIPT_LUA
|
|
};
|
|
|
|
BOOL initFunctionTable( void )
|
|
{
|
|
|
|
int i;
|
|
{
|
|
char* strings[arraysizeof(correspondStringAndFunctionTable)];
|
|
int stringnum=0;
|
|
for( i=0 ; i<arraysizeof(correspondStringAndFunctionTable) ; i++ )
|
|
strings[stringnum++] =
|
|
correspondStringAndFunctionTable[i].functionName.string;
|
|
if( ! checkStringsUnique( strings, stringnum , 1 ) ){
|
|
fprint("Function Name Table is overlapped.\n" );
|
|
fprint("It is not allowed\n");
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
for(i = 0; i < arraysizeof(correspondStringAndFunctionTable) ; i ++ ){
|
|
correspondStringAndFunctionTable[i].hashcode =
|
|
hashpjw( correspondStringAndFunctionTable[i].
|
|
functionName.string);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
void* getFunctionPointerFromName( char* funcname )
|
|
{
|
|
int i;
|
|
int hashcode;
|
|
if( funcname == NULL || funcname[0] == '\0' ){
|
|
return NULL;
|
|
}
|
|
hashcode = hashpjw( funcname );
|
|
for( i=0 ; i<arraysizeof(correspondStringAndFunctionTable) ; i++ )
|
|
if( correspondStringAndFunctionTable[i].hashcode == hashcode )
|
|
if( strcmp( correspondStringAndFunctionTable[i].functionName.string,funcname ) == 0 ){
|
|
return correspondStringAndFunctionTable[i].functionPointer;
|
|
}
|
|
|
|
#ifdef DEBUG
|
|
print("No such Function: %s\n" ,funcname );
|
|
#endif
|
|
return NULL;
|
|
}
|