📄 function.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"#include "npc_sysinfo.h"#include "npc_duelranking.h"#include "npc_petskillshop.h"#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"// 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"#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 _ALLDOMAN // (不可开) Syu ADD 排行榜NPC#include "npc_alldoman.h"#endif//#define DEBUGtypedef struct tagCorrespondStringAndFunctionTable{ STRING32 functionName; void* functionPointer; int hashcode;}CorrespondStringAndFunctionTable;static CorrespondStringAndFunctionTablecorrespondStringAndFunctionTable[]={ { {"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#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_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 _HALLOWEEN_EFFECT { {"ITEM_MapEffect"}, ITEM_MapEffect, 0 },#endif { {"ITEM_changePetOwner"}, ITEM_changePetOwner, 0 }, { {"core_PetWatch"}, PET_Watchfunc, 0 }, { {"PETMAIL_Loop"}, PETMAIL_Loopfunc, 0 },#ifdef _USER_CHARLOOPS { {"CHAR_BattleStayLoop"}, CHAR_BattleStayLoop, 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 },
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -