#ifndef __NPC_LUA__ #define __NPC_LUA__ #include "npc_lua_interface.h" #include "../lua/lua.h" #include "../lua/lauxlib.h" #include #include #include #include #define LUA_DATALINE0 0 #define LUA_DATALINE1 2000 #define LUA_DATALINE2 4000 #define LUA_DATALINE3 6000 #define LUA_DATALINE4 8000 #define LUA_DATALINE5 10000 typedef struct __CREATEENEMY { int EnemyId; int BaseLevel; int SkillType; }CREATEENEMY,*PCREATEENEMY; typedef struct __SCRIPTREGLIB { const char *LibName; //函数库名 luaL_reg *FuncRegList; //需要注册的函数库函数列表 }SCRIPTREGLIB,*PSCRIPTREGLIB; typedef struct __SCRIPTREGCLASS { const char *ClassName; //类型名 PSCRIPTREGLIB NewLib; //用于申请类实例的 SCRIPTREGLIB luaL_reg *FuncRegList; //需要注册的类函数列表 }SCRIPTREGCLASS,*PSCRIPTREGCLASS; typedef struct __SCRIPTREGARRAY { const char *ArrayName; //数组名 const char **SetMetaTable; //用于设置数组响应动作 const char **SetFuncName; //用于设置数组响应动作的函数名字 PSCRIPTREGLIB FuncList; //用于响应对应 SetMetaTable 的处理函数列表 }SCRIPTREGARRAY,*PSCRIPTREGARRAY; typedef struct __ARRAY_NTINT { size_t Size; int Num[1]; }ARRAY_NTINT,*PARRAY_NTINT; //创建NPC-返回NPC唯一索引 int NPC_Lua_Create(const char *_DoFile, const char *_InitFuncName, char *_seek, BOOL _IsFly); //删除NPC 传入NPC唯一索引 int NPC_Lua_Del(int _index); //创建战斗 int NPC_Lua_CreateVsEnemy(lua_State *_NLL, int _CharaIndex, int _NpcIndex, const char *_DoFunc, PCREATEENEMY _CreateEnemy, int _ARLen, int _Flg); const char *NPC_Lua_SetErrorStr(const char *ErrStr); //注册扩展调用接口 int NPC_Lua_RegCallEx(lua_State * _NLL, luaL_Reg *_RegList); //注册扩展函数库接口 int NPC_Lua_RegLibEx(lua_State * _NLL, PSCRIPTREGLIB _RegLib); //注册扩展类接口 int NPC_Lua_RegClassEx(lua_State * _NLL, PSCRIPTREGCLASS _RegClass); //注册扩展数组接口 int NPC_Lua_RegArrayEx(lua_State * _NLL, PSCRIPTREGARRAY _RegArray); //扩展类型接口函数 //NTInt int NPC_Lua_NTInt_New(lua_State *_NLL); int NPC_Lua_NTInt_Get(lua_State *_NLL); int NPC_Lua_NTInt_Set(lua_State *_NLL); int NPC_Lua_NTInt_Len(lua_State *_NLL); //接口函数 ////////////////////////////////////////////////NL///////////////////////////////////////////////// int NPC_Lua_NL_GetErrorStr(lua_State *_NLL); //返回错误信息 int NPC_Lua_NL_CreateNpc(lua_State *_NLL); //创建NPC int NPC_Lua_NL_DelNpc(lua_State *_NLL); //删除NPC int NPC_Lua_NL_Mod(lua_State *_NLL); //求余数 int NPC_Lua_NL_GetStringFromIndexWithDelim(lua_State *_NLL); //使用指定字符分割字符串,并返回调用者指定index位置的字符串 //int NPC_Lua_NL_ANSI_PlayerLoop(lua_State *_NLL); //遍历所有存在人物,返回索引号 int NPC_Lua_NL_PetLoopGetNext(lua_State *_NLL); //遍历所有存在宠物,返回宠物索引号 写法类似定时器 int NPC_Lua_NL_ItemLoopGetNext(lua_State *_NLL); //遍历所有存在道具,返回道具索引号 如上 int NPC_Lua_NL_PlayerLoopGetNext(lua_State *_NLL); //遍历所有存在人物,返回人物索引号 如上 int NPC_Lua_NL_GetConfigLineType(lua_State *_NLL); //返回0为字符串形。1为SHORT形。2为INT型。3为DOUBLE型。如果不存在该字段,返回-1. int NPC_Lua_NL_GetConfigLineVal(lua_State *_NLL); //总是返回[字符串]。如果需要转换为数字,请用tonumber()函数。找不到该字段返回nil BOOL NPC_Lua_CheckNpcEventFree(lua_State *_NLL); //检测对象是否满足某条件 int NPC_Lua_DoNpcEventAction(lua_State *_NLL); //执行NPC脚本命令 int NPC_Lua_NL_SetTimer(lua_State *_NLL); //设定一个计时器,所设的函数将按设定的间隔时间周期调用。 int NPC_Lua_NL_DelTimer(lua_State *_NLL); //删除一个计时器。一个计时器被删除,就不会再被周期调用; int NPC_Lua_NL_RunSaFuncII(lua_State *_NLL); //调用一个服务端内定义好的2个INT参数的函数。 int NPC_Lua_NL_RunSaFuncIII(lua_State *_NLL); //调用一个服务端内定义好的3个INT参数的函数(如ITEM_USE等使用道具后的回调函数)。 int NPC_Lua_NL_ANSI_PlayerLoop(lua_State *_NLL); //遍历所有存在人物,返回索引号 int NPC_Lua_NL_ANSI_PetLoop(lua_State *_NLL); //遍历所有存在宠物,返回索引号 int NPC_Lua_NL_ANSI_ItemLoop(lua_State *_NLL); //遍历所有存在道具,返回索引号 int NPC_Lua_NL_ClsMk(lua_State *_NLL); int NPC_Lua_NL_AddCheckNum(lua_State *_NLL); int NPC_Lua_NL_Mkstring(lua_State *_NLL); int NPC_Lua_NL_Mkint(lua_State *_NLL); int NPC_Lua_NL_SendMesg(lua_State *_NLL); ////////////////////////////////////////////////NLG//////////////////////////////////////////////// //功能接口 int NPC_Lua_NLG_UpItem(lua_State *_NLL); int NPC_Lua_NLG_GiveItemOne(lua_State *_NLL); int NPC_Lua_NLG_GivePetOne(lua_State *_NLL); int NPC_Lua_NLG_DelItemByIndex(lua_State *_NLL); int NPC_Lua_NLG_FindPet(lua_State *_NLL); //查找宠物栏空位 int NPC_Lua_NLG_GetMap(lua_State *_NLL); //获得当前位置的建筑物 int NPC_Lua_NLG_PetUp(lua_State *_NLL); //宠物升级 int NPC_Lua_NLG_AddSk(lua_State *_NLL); //给职业技能 int NPC_Lua_NLG_SetZy(lua_State *_NLL); //设定职业 int NPC_Lua_Char_GetPlayerMaxNum(lua_State *_NLL); //获取最大人数 int NPC_Lua_NLG_GetXY(lua_State *_NLL); //获取一个地图的坐标 int NPC_Lua_NLG_WalkJc(lua_State *_NLL); //检查障碍物 int NPC_Lua_NLG_KickPlayer(lua_State *_NLL); //T除指定玩家 int NPC_Lua_NLG_HealOne(lua_State *_NLL); //指定一个对象 回复满HP 满MP int NPC_Lua_NLG_HealAll(lua_State *_NLL); //指定一个玩家MP 回复所有包括宠物HP int NPC_Lua_NLG_LevelUpTo(lua_State *_NLL); //提升对象的等级。 int NPC_Lua_NLG_AddExp(lua_State *_NLL); //给与一个对象经验。 int NPC_Lua_NLG_UpPet(lua_State *_NLL); //更新对象的宠物,用于更新【客户端】宠物数据,在某些后台道具属性被修改的情况下不能把更新数据发送到前台; int NPC_Lua_NLG_DelPetByPos(lua_State *_NLL); //删除 对像 身上指定栏位的宠物 int NPC_Lua_NLG_DelPetByIndex(lua_State *_NLL); //删除 对像 身上指定索引号(非ID)的宠物 int NPC_Lua_NLG_GivePetByIndex(lua_State *_NLL); //给予一只指定索引号的宠物给指定 对像, 返回宠物栏位置 int NPC_Lua_NLG_GiveItemByIndex(lua_State *_NLL); //给与一个道具index指定玩家 返回道具栏位 int NPC_Lua_NLG_WarpToSpecificPoint(lua_State *_NLL); //移动NPC 可做团体移动 BOOL NPC_Lua_NLG_UpSkillupPoint(lua_State *_NLL); //更新人物点数 int NPC_Lua_NLG_StayEncount(lua_State *_NLL); //原地 int NPC_Lua_NLG_CheckInFront(lua_State *_NLL); //用于检查某个对象是否在某个对象面前 int NPC_Lua_NLG_CheckObj(lua_State *_NLL); //检查某个地图位置是否有对象存在 int NPC_Lua_NLG_CharLook(lua_State *_NLL); //设置人物方向(发送更新封包) int NPC_Lua_NLG_CreateBattle(lua_State *_NLL); //创建战斗 int NPC_Lua_NLG_InputCard(lua_State *_NLL); //创建一个对话框让玩家输入虚拟卡号 int NPC_Lua_NLG_CreateBattlePvP(lua_State *_NLL); int NPC_Lua_NLG_SearchWatchBattleRandIndex(lua_State *_NLL); int NPC_Lua_NLG_DelPet(lua_State *_NLL); //删除指定玩家宠物栏一个或多个宠物 int NPC_Lua_NLG_DelHaveIndexPet(lua_State *_NLL); int NPC_Lua_NLG_DelItem(lua_State *_NLL); //删除指定玩家道具栏一个或多个宠物 int NPC_Lua_NLG_DelItemByPos(lua_State *_NLL); //删除指定玩家道具栏一个或多个宠物 int NPC_Lua_NLG_DischargeParty(lua_State *_NLL); //解散 团队 int NPC_Lua_NLG_GivePet(lua_State *_NLL); //给指定玩家一个或多个宠物 int NPC_Lua_NLG_GiveOnePet(lua_State *_NLL); //给指定玩家一个宠物 int NPC_Lua_NLG_GiveItem(lua_State *_NLL); //给指定玩家一个或多个宠物 int NPC_Lua_NLG_GiveOneItem(lua_State *_NLL); //给指定玩家一个道具 int NPC_Lua_NLG_GiveRandItem(lua_State *_NLL); int NPC_Lua_Char_GetOnLinePlayer(lua_State *_NLL); //获取当前在线人数 int NPC_Lua_NLG_ShowWindowTalked(lua_State *_NLL); //在指定玩家客户端显示指定内容、类型的对话框 int NPC_Lua_NLG_SetAction(lua_State *_NLL); //设置对象的动作 int NPC_Lua_NLG_TalkToCli(lua_State *_NLL); //普通说话,可以对全服务器人说 int NPC_Lua_NLG_TalkToFloor(lua_State *_NLL); //对在某一指定地图内的玩家说话 int NPC_Lua_NLG_UpChar(lua_State *_NLL); //向NPC周围的玩家发送NPC的数据更新封包 int NPC_Lua_NLG_UpStateBySecond(lua_State *_NLL); //向指定玩家发送第2类状态更新封包 int NPC_Lua_NLG_UpStateByThird(lua_State *_NLL); //向指定玩家发送第3类状态更新封包 int NPC_Lua_NLG_Update_Party(lua_State *_NLL); //向玩家所在的团队成员发送玩家的状态更新封包 int NPC_Lua_NLG_Warp(lua_State *_NLL); //传送一个对象 int NPC_Lua_NLG_WalkMove(lua_State *_NLL); //移动一个对象 int NPC_Lua_NLG_WatchEntry(lua_State *_NLL); //观战 int NPC_Lua_NLG_HealerAllHeal(lua_State *_NLL); //加血 int NPC_Lua_NLG_GetMaxPlayNum(lua_State *_NLL); //获取服务器最大在线数 int NPC_Lua_NLG_CheckPlayIndex(lua_State *_NLL); //检查玩家索引是否正常 int NPC_Lua_NLG_Save(lua_State *_NLL); ////add by mo int NPC_Lua_NLG_SetExp(lua_State *_NLL); //设置服务器经验倍率 int NPC_Lua_NLG_GetExp(lua_State *_NLL); //获取服务器经验倍率 #ifdef _PETTRANS_RANGE int NPC_Lua_NLG_SetPetTransRange(lua_State *_NLL); //设置宠物转生范围参数 int NPC_Lua_NLG_GetPetTransRange(lua_State *_NLL); //获得宠物转生范围参数 #endif ///////////////////////////////////////////////Char//////////////////////////////////////////////// //设置数据的接口 int NPC_Lua_Char_ClrEvtEnd(lua_State *_NLL); //设置清除结束任务标志 int NPC_Lua_Char_ClrEvtNow(lua_State *_NLL); //设置清除正在做任务标志 int NPC_Lua_Char_ClrEvt(lua_State *_NLL); //设置清除任务标志 int NPC_Lua_Char_GetAllocPoint(lua_State *_NLL); //获取宠物CharIndex的四维成长 int NPC_Lua_Char_GetDataFromEnemyBase(lua_State *_NLL); //获取对应 标志 的宠物模板数据(enemybaseX.txt); int NPC_Lua_Char_GetPlayerIndex(lua_State *_NLL); //玩家索引 int NPC_Lua_Char_FindItemIndex(lua_State *_NLL); //搜索指定对像身上是否拥有某道具为指定的索引号 int NPC_Lua_Char_FindPetIndex(lua_State *_NLL); //搜索指定对像身上是否拥有宠物为指定的索引号 int NPC_Lua_CHAR_CHECKINDEX(lua_State *_NLL); //玩家索引 int NPC_Lua_Char_GetPetSkill(lua_State *_NLL); //取得宠物指定技能栏的技能编号 int NPC_Lua_Char_GetPetSkillNo(lua_State *_NLL); //获取Char数据 int NPC_Lua_Char_RidNo(lua_State *_NLL); //设置清除任务标志 int NPC_Lua_Char_GetEmptyItemBoxNum(lua_State *_NLL); //搜索指定对像身上道具栏空位的数量 int NPC_Lua_Char_GetEmptyPetBoxNum(lua_State *_NLL); //搜索指定对像身上宠物栏空位的数量 int NPC_Lua_Char_GetPlayerItemNum(lua_State *_NLL); //搜索指定对像身上为某ID的道具的数量 int NPC_Lua_Char_GetPlayerPetNum(lua_State *_NLL); //搜索指定对像身上为某ID的宠物的数量 int NPC_ABLua_char_getPlayerMaxNum(lua_State *_NLL); //玩家最大人数 int NPC_ABLua_char_getBattleexp(lua_State *_NLL); //战斗经验倍数 int NPC_Lua_Char_SetPetSkill(lua_State *_NLL); //设置宠物指定技能栏的技能编号 int NPC_Lua_Char_SetPetSkillNo(lua_State *_NLL); int NPC_Lua_Char_ComplianceParameter(lua_State *_NLL); //根据对象属性来重新计算并设置WORK属性,以达到生效的目的。 int NPC_Lua_Char_HcItemId(lua_State *_NLL); //合成用到的搜索身上符合物品。 int NPC_Lua_Char_DelHcItem(lua_State *_NLL); //删除身上某个位置的物品。 int NPC_Lua_Char_GETFM(lua_State *_NLL); //获取家族气势 声望 资金 int NPC_Lua_Char_FindPetEnemyBaseId(lua_State *_NLL); //搜索指定对象身上是否拥有宠物EnemyBase文件的对应ID int NPC_Lua_Char_ITEMID_NAME(lua_State *_NLL); //获得指定道具ID的名字 int NPC_Lua_Char_ITEMID_NAME2(lua_State *_NLL); //获得指定道具ID的说明 int NPC_Lua_Char_ITEMID_LEVEL(lua_State *_NLL); //获得指定道具ID的等级 int NPC_Lua_Char_ITEMID_GOLD(lua_State *_NLL); //获得指定道具ID的价格 int NPC_Lua_Char_ITEMID_RANO(lua_State *_NLL); //获得指定道具ID的图形 //int NPC_Lua_Char_CharRidNo(lua_State *_NLL); //检查对像是否已经吃了某骑宠证; int NPC_Lua_Char_GetPetOwner(lua_State *_NLL); //获得宠物主人的索引号 int NPC_Lua_Char_GetEnemyBaseIdFromEnemyId(lua_State *_NLL); //通过enemy.txt上所设置的宠物编号来查找enemybase.txt上所设定的宠物编号。 int NPC_Lua_Char_GetEnemyIdFromEnemyBaseId(lua_State *_NLL); //通过enemybase.txt上所设置的宠物编号来查找enemy.txt上所设定的宠物编号。 int NPC_Lua_Char_GetIp(lua_State *_NLL); //获取指定对像的IP地址 int NPC_Lua_Char_SetAllocPoint(lua_State *_NLL); //设置宠物CharIndex的四维成长 int NPC_Lua_Char_GetMaxPetIndex(lua_State *_NLL); //获取最大宠物索引 int NPC_Lua_Char_GetMaxPlayerIndex(lua_State *_NLL); //获取最大人物索引 int NPC_Lua_Char_SavePetToString(lua_State *_NLL); //生成一个描述宠物的字符串。 int NPC_Lua_Char_LoadPetFromString(lua_State *_NLL); //根据一个描述宠物的字符串,生成一个宠物。 int NPC_Lua_Char_GetPlayerFromAccAndName(lua_State *_NLL);//根据玩家的帐号和人物名来寻找玩家。帐号和人物名留空也可查找。不可都留空 int NPC_Lua_Char_CheckPet(lua_State *_NLL); //检查宠物索引是否有效。 int NPC_Lua_Char_CheckPlayer(lua_State *_NLL); //检查人物索引是否有效。 BOOL NPC_Lua_Char_JoinParty(lua_State *_NLL); //加入团队 int NPC_Lua_Char_getFamilyPlayIndex(lua_State *_NLL); //获得家族里边人数的索引。 int NPC_Lua_Char_SetEvtEnd(lua_State *_NLL); //设置任务标志为结束状态 int NPC_Lua_Char_SetEvtNow(lua_State *_NLL); //设置任务标志为正在做状态 int NPC_Lua_Char_SetData(lua_State *_NLL); //设置Char数据 int NPC_Lua_Char_getVipPoint(lua_State *_NLL); //会员点更新 int NPC_Lua_Char_getjfPoint(lua_State *_NLL); //积分更新 int NPC_Lua_Char_getxjPoint(lua_State *_NLL); //现金更新 int NPC_Lua_Char_setVipPoint(lua_State *_NLL); //会员点操作 int NPC_Lua_Char_setjfPoint(lua_State *_NLL); //积分操作 int NPC_Lua_Char_setxjPoint(lua_State *_NLL); //现金操作 //事件设置的接口 int NPC_Lua_Char_SetWalkPreEvent(lua_State *_NLL); //设置WalkPre事件响应 int NPC_Lua_Char_SetWalkPostEvent(lua_State *_NLL); //设置WalkPost事件响应 int NPC_Lua_Char_SetPreOverEvent(lua_State *_NLL); //设置PreOver事件响应 int NPC_Lua_Char_SetPostOverEvent(lua_State *_NLL); //设置PostOver事件响应 int NPC_Lua_Char_SetWatchEvent(lua_State *_NLL); //设置Watch事件响应 int NPC_Lua_Char_SetLoopEvent(lua_State *_NLL); //设置Loop事件响应 int NPC_Lua_Char_SetTalkedEvent(lua_State *_NLL); //设置Talked事件响应 int NPC_Lua_Char_SetOFFEvent(lua_State *_NLL); //设置OFF事件响应 int NPC_Lua_Char_SetLookedEvent(lua_State *_NLL); //设置Looked事件响应 int NPC_Lua_Char_SetItemPutEvent(lua_State *_NLL); //设置ItemPut事件响应 int NPC_Lua_Char_SetWindowTalkedEvent(lua_State *_NLL); //设置WindowTalked事件响应 #ifdef _USER_CHARLOOPS int NPC_Lua_Char_SetCharLoopsEvent(lua_State *_NLL); //设置CharLoops事件响应 int NPC_Lua_Char_SetBattleProPertyEvent(lua_State *_NLL);//设置BattleProPerty事件响应 #endif //获取数据的接口 int NPC_Lua_Char_IsEventEnd(lua_State *_NLL); //检查是否结束的任务标志 int NPC_Lua_Char_IsEventNow(lua_State *_NLL); //检查是否正在做的任务标志 int NPC_Lua_Char_FindItemId(lua_State *_NLL); //搜索指定对象身上是否拥有某道具ID int NPC_Lua_Char_FindPetEnemyId(lua_State *_NLL); //搜索指定对象身上是否拥有宠物Enemy文件的对应ID int NPC_Lua_Char_GetData(lua_State *_NLL); //获取Char数据 int NPC_Lua_Char_GetItemId(lua_State *_NLL); //获取指定对象身上指定位置的道具ID int NPC_Lua_Char_GetPetEnemyId(lua_State *_NLL); //获取指定对象身上指定位置的宠物Enemy文件的对应ID int NPC_Lua_Char_GetItemIndex(lua_State *_NLL); //获取指定对象身上指定位置的道具索引 int NPC_Lua_Char_GetPetIndex(lua_State *_NLL); //获取指定对象身上指定位置的宠物对象索引 int NPC_Lua_Char_GetTeamIndex(lua_State *_NLL); //获取队员的对象索引 int NPC_Lua_Char_GetPlayerIndexByCdkey(lua_State *_NLL); //通过帐号查询人物索引 int NPC_Lua_Char_VipPoint(lua_State *_NLL); int NPC_Lua_Char_HealAll(lua_State *_NLL); int NPC_Lua_Char_GetPetSkillId(lua_State *_NLL); int NPC_Lua_Char_GetPetSkillName(lua_State *_NLL); int NPC_Lua_Char_GetPetSkillMsg(lua_State *_NLL); int NPC_Lua_Char_SetPetSkill(lua_State *_NLL); int NPC_Lua_Char_RandMsg(lua_State *_NLL); int NPC_Lua_Char_GetBeatitudeNum(lua_State *_NLL); ///////////////////////////////////////////////GAME//////////////////////////////////////////////// int NPC_Lua_Game_FMPOINT_GetData(lua_State *_NLL); //获得庄园据点的信息 int NPC_Lua_Game_FMPOINT_ACSetFMPoint(lua_State *_NLL); //设定家族据点信息。仅当据点未被占据时有效。 int NPC_Lua_Game_FMPOINT_ACFixFMPoint(lua_State *_NLL); //修改家族据点信息,并清空气势。一般用于族战结束。 int NPC_Lua_Game_FMPOINT_ACCleanFMPoint(lua_State *_NLL); //无条件清除家族据点。 ///////////////////////////////////////////////Item//////////////////////////////////////////////// //获取数据的接口 int NPC_Lua_Item_GetData(lua_State *_NLL); //获取道具数据 int NPC_Lua_Item_GetDataFromItemSet(lua_State *_NLL); //获取ITEMSETX文件的数据 //设置数据的接口 int NPC_Lua_Item_SetData(lua_State *_NLL); //获取道具数据 //事件设置的接口 int NPC_Lua_Item_SetPreOverEvent(lua_State *_NLL); //设置PreOver事件响应 int NPC_Lua_Item_SetPostOverEvent(lua_State *_NLL); //设置PostOver事件响应 int NPC_Lua_Item_SetWatchEvent(lua_State *_NLL); //设置Watch事件响应 int NPC_Lua_Item_SetUseEvent(lua_State *_NLL); //设置Use事件响应 int NPC_Lua_Item_SetAttachEvent(lua_State *_NLL); //设置Attach事件响应 int NPC_Lua_Item_SetDetachEvent(lua_State *_NLL); //设置Detach事件响应 int NPC_Lua_Item_SetDropEvent(lua_State *_NLL); //设置Drop事件响应 int NPC_Lua_Item_SetPickUPEvent(lua_State *_NLL); //设置PickUP事件响应 #ifdef _Item_ReLifeAct int NPC_Lua_Item_SetDieReLifeEvent(lua_State *_NLL); //设置DieReLife事件响应 #endif ///////////////////////////////////////////////BIT/////////////////////////////////////////////// int NPC_Lua_Bit_band(lua_State *_NLL); int NPC_Lua_Bit_bor(lua_State *_NLL); int NPC_Lua_Bit_bxor(lua_State *_NLL); int NPC_Lua_Bit_lshift(lua_State *_NLL); int NPC_Lua_Bit_rshift(lua_State *_NLL); ///////////////////////////////////////////////Obj//////////////////////////////////////////////// //获取数据的接口 int NPC_Lua_Obj_GetType(lua_State *_NLL); //获取OBJ的类型 /* int NPC_Lua_Obj_GetName(lua_State *_NLL); //获取OBJ的名称 int NPC_Lua_Obj_GetDIR(lua_State *_NLL); //获取OBJ的方向 int NPC_Lua_Obj_GetImageNum(lua_State *_NLL); //获取OBJ的形象号 */ int NPC_Lua_Obj_GetCharType(lua_State *_NLL); //获取OBJ对应的Char数据结构的类型 int NPC_Lua_Obj_GetCharIndex(lua_State *_NLL); //获取OBJ对应的Char数据结构的索引 int NPC_Lua_Obj_GetX(lua_State *_NLL); //获取OBJ的X坐标 int NPC_Lua_Obj_GetY(lua_State *_NLL); //获取OBJ的Y坐标 int NPC_Lua_Obj_GetFloor(lua_State *_NLL); //获取OBJ所在的地图编号 //int NPC_Lua_Obj_GetDelTime(lua_State *_NLL); //获取OBJ的删除时间 int NPC_Lua_Obj_SetType(lua_State *_NLL); //获取OBJ的类型 /* int NPC_Lua_Obj_SetName(lua_State *_NLL); //获取OBJ的名称 int NPC_Lua_Obj_SetDIR(lua_State *_NLL); //获取OBJ的方向 int NPC_Lua_Obj_SetImageNum(lua_State *_NLL); //获取OBJ的形象号 */ int NPC_Lua_Obj_SetCharType(lua_State *_NLL); //获取OBJ对应的Char数据结构的类型 int NPC_Lua_Obj_SetX(lua_State *_NLL); //获取OBJ的X坐标 int NPC_Lua_Obj_SetY(lua_State *_NLL); //获取OBJ的Y坐标 int NPC_Lua_Obj_SetFloor(lua_State *_NLL); //获取OBJ所在的地图编号 //int NPC_Lua_Obj_SetDelTime(lua_State *_NLL); //获取OBJ的删除时间 //////////////////////////////////////////////Battle/////////////////////////////////////////////// //获取数据的接口 int NPC_Lua_Battle_GetPlayIndex(lua_State *_NLL); //获取战斗中的玩家索引 int NPC_Lua_Battle_GetData(lua_State *_NLL); //获取战斗数据 int NPC_Lua_Battle_SetData(lua_State *_NLL); //设置战斗数据 int NPC_Lua_Battle_IndexToNo(lua_State *_NLL); //通过对象索引获取所在的战场编号 int NPC_Lua_Battle_NoToIndex(lua_State *_NLL); //通过战场编号获取他的索引 int NPC_Lua_Battle_CheckIndex(lua_State *_NLL); //检查战斗索引是否有效。 //设置数据的接口 int NPC_Lua_Battle_SetNORisk(lua_State *_NLL); //设置是否开启无风险模式 int NPC_Lua_Battle_SetMod(lua_State *_NLL); //设置战斗模式标志 int NPC_Lua_Battle_SetType(lua_State *_NLL); //设置战斗类型 int NPC_Lua_Battle_Exit(lua_State *_NLL); //退出战斗 //事件设置的接口 int NPC_Lua_Battle_SetWinEvent(lua_State *_NLL); //设置Win事件响应 int NPC_Lua_Battle_SetEndEvent(lua_State *_NLL); //设置Win事件响应 ///////////////////////////////////////////////Other/////////////////////////////////////////////// int NPC_Lua_GetFuncPoint(lua_State *_NLL); //获取函数指针 ////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////MAP//////////////////////////////////////////////// int NPC_Lua_Map_CheckCoordinates(lua_State *_NLL); //检测某点是否在地图范围内。 int NPC_Lua_Map_GetExitFloorXY(lua_State *_NLL); //检测地图是否支持登出 int NPC_Lua_Map_GetfloorX(lua_State *_NLL); //获取地图X长度 int NPC_Lua_Map_GetfloorY(lua_State *_NLL); //获取地图Y长度 int NPC_Lua_Map_GetTileAndObjId(lua_State *_NLL); //获取地图某点的地板和装饰层 int NPC_Lua_Map_SetTileAndObjId(lua_State *_NLL); //设置地图某点的地板和装饰层 int NPC_Lua_Map_GetWalkAbleFromPoint(lua_State *_NLL); //获取某点是否可以行走 int NPC_Lua_Map_GetImageData(lua_State *_NLL); //获取图片数据 int NPC_Lua_Map_SetImageData(lua_State *_NLL); //设置图片数据 int NPC_Lua_Map_GetTopObj(lua_State *_NLL); //用来获取地图某点上对象 int NPC_Lua_Map_GetNextObj(lua_State *_NLL); //获取下一个对象索引 int NPC_Lua_Map_CheckImageIndex(lua_State *_NLL); //检测某地图号图片是否存在 int NPC_Lua_Map_CheckIndex(lua_State *_NLL); //检测某地图号地图是否存在 int NPC_Lua_Map_MakeNewMap(lua_State *_NLL); //制造一个新的地图 并返回地图的ID int NPC_Lua_Map_DelNewMap(lua_State *_NLL); //删除一个副本地图 int NPC_Lua_Map_SetExWarp(lua_State *_NLL); //设置人物登出后地图的传送点 int NPC_Lua_Map_SetMapPoint(lua_State *_NLL); //添加地图传送点 int NPC_Lua_Map_DelMapPoint(lua_State *_NLL); //删除地图传送点 int NPC_Lua_Map_getFloorName(lua_State *_NLL); //获得地图名 int NPC_Lua_Map_Upmap(lua_State *_NLL); //更新地图 ///////////////////////////////////////////////MAP//////////////////////////////////////////////// ///////////////////////////////////////////////Spell//////////////////////////////////////////////// int NPC_Lua_Spell_PETSKILL_GetData(lua_State *_NLL); //获取宠物技能ID int NPC_Lua_Spell_PROFESSION_GetData(lua_State *_NLL); //获取职业技能ID int NPC_Lua_Spell_MAGIC_GetData(lua_State *_NLL); //获取精灵技能ID int NPC_Lua_Spell_PETSKILL_SetData(lua_State *_NLL); //设置对应ID的技能数据; int NPC_Lua_Spell_PROFESSION_SetData(lua_State *_NLL); //设置对应ID的技能数据; int NPC_Lua_Spell_MAGIC_SetData(lua_State *_NLL); //设置对应ID的技能数据; ///////////////////////////////////////////////Spell//////////////////////////////////////////////// ///////////////////////////////////////////////SQL///////////////////////////////////////////////// int NPC_Lua_SQL_Push(lua_State *_NLL); //用于推送MySQL指令 int NPC_Lua_SQL_PushPop(lua_State *_NLL); //用于推送MySQL指令并设置响应函数 int NPC_Lua_SQL_PushPopAdv(lua_State *_NLL); //向SAAC发出一个SQL查询请求,并指定当SAAC返回处理结果时对结果进行处理的回调函数,该函数将返回第一行结果,并释放结果集。 int NPC_Lua_SQL_QueryFirstRow(lua_State *_NLL); //回调函数,该函数将返回第一行结果,并释放结果集。 int NPC_Lua_SQL_FetchRow(lua_State *_NLL); //下一条结果 int NPC_Lua_SQL_FreeResult(lua_State *_NLL); //释放结果集 ///////////////////////////////////////////////SQL/////////////////////////////////////////////// #define LRet(r) \ { \ NPC_Lua_SetErrorStr(NULL); \ return r; \ } #define LRetErr(c,r) \ { \ NPC_Lua_SetErrorStr(c); \ return r; \ } ////////////////////////////////////////////////////////////////////// //返回一个nil #define LRetNull(L) \ { \ lua_pushnil(L); \ LRet(1); \ } //返回一个BOOL给LUA引擎 #define LRetBool(L, b) \ { \ lua_pushboolean(L, b); \ LRet(1); \ } //返回一个int给LUA引擎 #define LRetInt(L, i) \ { \ lua_pushinteger(L, i); \ LRet(1); \ } #define LRetMsg(L, c) \ { \ lua_pushstring(L, c); \ LRet(1); \ } //////////////////////////////////////////////////////////////////// //设置一个错误状态和一个错信息 #define LRetErrInt(L, i, c) \ { \ lua_pushinteger(L, i); \ LRetErr(c,1); \ } //返回一个字符串给LUA引擎 #define LRetErrNull(L, c) \ { \ lua_pushnil(L); \ LRetErr(c,1); \ } //返回一个字符串给LUA引擎 #define LRetErrMsg(L, c) \ { \ lua_pushstring(L, c); \ LRetErr(c,1); \ } //用于检查参数是否足够 #define CheckEx(L, n) \ { \ if(lua_gettop(L) != n) \ { \ luaL_argerror(L, 1, "参数数量错误"); \ } \ } #define CheckEx2(L, t, n) \ { \ if(lua_gettop(L) < (t) || lua_gettop(L) > n) \ { \ luaL_argerror(L, 1, "参数数量错误"); \ } \ } #define CheckIndexNull(L, n) \ { \ if(lua_isnil((L), (n))) \ { \ luaL_argerror((L), 1, "对象索引不能为nil"); \ } \ } #define CheckBattleIndexNull(L, n) \ { \ if(lua_isnil((L), (n))) \ { \ luaL_argerror((L), 1, "战斗索引不能为nil"); \ } \ } #define CheckItemIndexNull(L, n) \ { \ if(lua_isnil((L), (n))) \ { \ luaL_argerror((L), 1, "道具索引不能为nil"); \ } \ } #define CheckObjIndexNull(L, n) \ { \ if(lua_isnil((L), (n))) \ { \ luaL_argerror((L), 1, "物件索引不能为nil"); \ } \ } #define LRetArray(L, Array, num) \ { \ Lua_ReturnArray(L, Array, num); \ LRet(1); \ } #ifdef _LUA_Debug int pcall_callback_err_fun(lua_State* L,const char *_InitFuncName); //调试LUA脚本出错信息 #endif #endif //#ifndef __NPC_LUA__