function.c

来自「石器时代8.0服务端完整源代码。可以直接编译」· C语言 代码 · 共 794 行 · 第 1/2 页

C
794
字号
#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 _SERVICE// Terry 2001/09/01#include "npc_stoneserviceman.h"#endif#ifdef _NPC_SELLSTH#include "npc_sellsthman.h"#endif//andy#ifdef _GAMBLE_BANK#include "npc_gamblebank.h"#endif#ifdef _NEW_WARPMAN#include "npc_newnpcman.h"#endif#ifdef _MARKET_TRADE#include "npc_mtradenpcman.h"#endif#ifdef _GAMBLE_ROULETTE #include "npc_gambleroulette.h"#include "npc_gamblemaster.h"#endif#ifdef _TRANSER_MAN#include "npc_transerman.h"#endif#ifdef _PAUCTION_MAN#include "npc_pauctionman.h"#endif#ifdef _CFREE_petskill#include "npc_freepetskillshop.h"#endif#ifdef _PETRACE#include "npc_petracemaster.h"#include "npc_petracepet.h"#endif#ifdef _AUCTIONEER#include "npc_auctioneer.h"#endif#ifdef _BLACK_MARKET#include "npc_blackmarket.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 _NPC_WELFARE_2				// WON ADD 职业NPC-2#include "npc_welfare2.h"#endif#ifdef _NPC_VERYWELFARE#include "npc_verywelfare.h"#endif#ifdef _RACEMAN#include "npc_raceman.h"#endif#define DEBUGtypedef struct tagCorrespondStringAndFunctionTable{    STRING32    functionName;    void*       functionPointer;    int         hashcode;}CorrespondStringAndFunctionTable;static CorrespondStringAndFunctionTablecorrespondStringAndFunctionTable[]={    /* 动票反扔□田□    戊□玉匹烂聒今木化中月楮醒分[NPC手仇木     毛勾井丹午五互丐月*/    { {"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 _DEATH_CONTENDWATCH	{ {"ITEM_useWatchBattle"}, ITEM_useWatchBattle, 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 },	{ {"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 */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?