/SERVER/GameServer/AppServer/script/Script.cpp
C++ | 3774 lines | 3132 code | 381 blank | 261 comment | 777 complexity | 4545a9738346a6151df3656808f991f8 MD5 | raw file
Large files files are truncated, but you can click here to view the full file
- #include "StdAfx.h"
- #include "script.h"
- #include "variablelist.h"
- #include "..\player.h"
- #include "..\ServerRegion.h"
- #include "../goods/cgoods.h"
- #include "../monster.h"
- #include "../moveshape.h"
- #include "../public/StrType.h"
- #include "../public/StrUnifyInput.h"
-
- #include <vector>
- #include <string>
-
-
-
-
-
-
- CScript::tagStrValueInfo::tagStrValueInfo(void)
- :pStrValue(NULL),lStrValueLen(0)
- {
-
- }
- CScript::tagStrValueInfo::~tagStrValueInfo(void)
- {
-
- }
-
-
- /************************************************
- * 运行一个脚本文件 RunScript(...); *
- ************************************************/
-
- listScript g_Scripts; // 脚本链表表头
- FreeScript g_FreeScriptList; // 预分配的空闲脚本内存
- map<CScript*,string> g_UsingScript; // 正在使用的Script
-
- CVariableList* CScript::g_StackVarList = NULL;
- list<CGUID> CScript::m_DelScripts;
-
- CVariableList* CScript::GetStackVarListInst(void)
- {
- if(NULL == g_StackVarList)
- g_StackVarList = MP_NEW CVariableList;
- return g_StackVarList;
- }
- void CScript::ReleaseStackVarListInst(void)
- {
- MP_DELETE(g_StackVarList);
- }
- ///////////////////
- CScript* PopFreeScript(const char* pszName)
- {
- CScript* tempScript = NULL;
- if( g_FreeScriptList.size() > 0 ) //有空闲Script内存块
- {
- tempScript = g_FreeScriptList.front();
- g_FreeScriptList.pop_front();
- }
- else
- {
- tempScript = MP_NEW CScript;
- }
- tempScript->ResetVariableList();
- tempScript->ResetChildScriptInfo();
- tempScript->SetSrcShape(NULL);
- tempScript->SetDesShape(NULL);
- tempScript->SetRegion(NULL);
-
- if(pszName)
- g_UsingScript[tempScript]=pszName;
- else
- g_UsingScript[tempScript]="";
- return tempScript;
- }
- void PushFreeScript(CScript* freeScript)
- {
- if(NULL == freeScript) return;
-
- g_UsingScript.erase(freeScript);
- // 如果空闲队列没有达到最大数量
- if(g_FreeScriptList.size() <= CGlobeSetup::GetSetup()->lMaxPreAllocedScriptNum)
- {
- freeScript->GetSelfVariableList()->Release();
- g_FreeScriptList.push_back(freeScript);
- }
- else //清除多余空闲内存
- {
- MP_DELETE(freeScript);
- }
- }
-
- //输出脚本信息
- void OutputScriptInfo()
- {
- char pszInfo[1024]="";
- _snprintf(pszInfo,1024,"g_UsingScript:%d,g_Scripts:%d",g_UsingScript.size(),g_Scripts.size());
- PutStringToFile("ScriptInfo",pszInfo);
- map<CScript*,string>::iterator it = g_UsingScript.begin();
- for(;it != g_UsingScript.end();it++)
- {
- bool bFlag = false;
- char pszSrcGuid[50]="";
- const CGUID& guid = (*it).first->GetID();
- (*it).first->GetSrcID().tostring(pszSrcGuid);
- if(guid != NULL_GUID)
- bFlag = ( g_Scripts.find(guid ) != g_Scripts.end() );
- _snprintf(pszInfo,1024,"(SrcType:%d,SrcGuid:%s)flag:%d,IsHang:%d,HangFun:%d,fileame:%s",(*it).first->GetSrcType(),pszSrcGuid,bFlag,(*it).first->IsHang(),(*it).first->GetHangFunc(),(*it).second.c_str());
- PutStringToFile("ScriptInfo",pszInfo);
- }
- }
- // 客户端选择有效性判断
- bool ClientOptIsValid(const CGUID& scriptid, const char* szClientOpt)
- {
- if(scriptid == NULL_GUID) return true;
-
- listScript::iterator itr = g_Scripts.find(scriptid);
- if(itr != g_Scripts.end())
- {
- if( !itr->second->GetClientOptInfo()
- || itr->second->GetClientOptInfo()[0] == '\0') return true;
-
- if(strstr(itr->second->GetClientOptInfo(), szClientOpt))
- return true;
- else
- return false;
- }
- return false;
- }
- // 清除脚本的客户端选择检查数据
- void ClearClientOptData(const CGUID& scriptid)
- {
- listScript::iterator itr = g_Scripts.find(scriptid);
- if(itr != g_Scripts.end())
- {
- if(itr->second)
- itr->second->SetClientOptInfo("");
- }
- }
- // 外部调用脚本
- double RunScript(stRunScript *p, char* pData, int paramA, int paramB)
- {
- if(p==NULL || pData==NULL)
- return false;
-
- #ifdef _RUNSTACKINFO_
- char pszStatckInfo[10240]="";
- _snprintf(pszStatckInfo,10240,"RunScript(FileName:%s) Start",p->pszFileName?p->pszFileName:"");
- CMessage::AsyWriteFile(GetGame()->GetStatckFileName(),pszStatckInfo);
- #endif
-
-
- CScript* tempScript = NULL;
- double lIndexID = 0; //全局的唯一脚本ID
-
- tempScript = PopFreeScript(p->pszFileName);
- #ifdef _SCRIPT_INFO_
- DWORD BeginTime = timeGetTime();
- tempScript->m_RunTime = 0;
- #endif
- // 初始化script对象
- tempScript->m_dwLastTime=0;
- if(p->srcShape && (OBJECT_TYPE)p->srcShape->GetType() == TYPE_PLAYER)
- tempScript->SetPlayerID(p->srcShape->GetExID());
- else
- tempScript->SetPlayerID(NULL_GUID);
- tempScript->SetRegion(p->pRegion);
- tempScript->SetSrcShape(p->srcShape);
- tempScript->SetDesShape(p->desShape);
- tempScript->SetUsedItemID(p->guUsedItemID);
- POINT pointXY;
- pointXY.x = -1;
- pointXY.y = -1;
- tempScript->SetDropGoodsPoint(pointXY);
- CGUID guid;
- CGUID::CreateGUID(guid);
- tempScript->SetID(guid);
- // 加载脚本内容
- double ret = 0; // 返回值
- if( tempScript->LoadScript(p->pszFileName, pData) )
- {
- tempScript->GetVariableList()->AddVar("$ParamA", paramA);
- tempScript->GetVariableList()->AddVar("$ParamB", paramB);
- tempScript->GetVariableList()->AddVar("$Ret", 0.0f);
- // 执行脚本
- if( tempScript->RunStep() == CScript::SR_HANG )
- {
- g_Scripts[guid] = tempScript;
- #ifdef _RUNSTACKINFO_
- _snprintf(pszStatckInfo,10240,"RunScript(FileName:%s) Hang",p->pszFileName?p->pszFileName:"");
- CMessage::AsyWriteFile(GetGame()->GetStatckFileName(),pszStatckInfo);
- #endif
- #ifdef _SCRIPT_INFO_
- tempScript->m_RunTime += timeGetTime() - BeginTime;
- #endif
- return 0;
- }
- else
- {
- ret = tempScript->GetVariableList()->GetVarValue("$Ret", 0);
- }
- }
-
- #ifdef _SCRIPT_INFO_
- GetGame()->AddScriptInfo((p->pszFileName?p->pszFileName:""), timeGetTime() - BeginTime);
- tempScript->m_RunTime = 0;
- #endif
-
- PushFreeScript(tempScript);
-
- #ifdef _RUNSTACKINFO_
- _snprintf(pszStatckInfo,10240,"RunScript(FileName:%s) End",p->pszFileName?p->pszFileName:"");
- CMessage::AsyWriteFile(GetGame()->GetStatckFileName(),pszStatckInfo);
- #endif
-
- return ret;
- }
-
- // 往脚本里添加参数
- static void _AddParamList( CScript *pScript, const VarPairListType &var_list )
- {
- CVariableList *pVarList = pScript->GetVariableList();
- for( VarPairListType::const_iterator it = var_list.begin(); it != var_list.end(); ++ it )
- {
- const stVarPair &vp = *it;
- switch( vp.ValueType )
- {
- case stVarPair::VT_NUMBER:
- pVarList->AddVar( vp.Name.c_str(), vp.NumValue );
- break;
-
- case stVarPair::VT_STRING:
- pVarList->AddVar( vp.Name.c_str(), vp.StrValue.c_str() );
- break;
-
- case stVarPair::VT_GUID:
- pVarList->AddGuid( vp.Name.c_str(), vp.GuidValue );
- break;
-
- default:
- // error
- break;
- }
- }
-
- // add ret
- pVarList->AddVar( "$Ret", (double)0 );
- }
-
- double RunScript( stRunScript *p, char *pData, const VarPairListType &var_list )
- {
- if( p == NULL || pData == NULL )
- {
- return false;
- }
- CScript* tempScript = NULL;
- double lIndexID = 0; //全局的唯一脚本ID
-
- tempScript = PopFreeScript(p->pszFileName);
- tempScript->m_dwLastTime=0;
- if(p->srcShape && (OBJECT_TYPE)p->srcShape->GetType() == TYPE_PLAYER)
- tempScript->SetPlayerID(p->srcShape->GetExID());
- else
- tempScript->SetPlayerID(NULL_GUID);
- tempScript->SetRegion(p->pRegion);
- tempScript->SetSrcShape(p->srcShape);
- tempScript->SetDesShape(p->desShape);
- tempScript->SetUsedItemID(p->guUsedItemID);
- POINT pointXY;
- pointXY.x = -1;
- pointXY.y = -1;
- tempScript->SetDropGoodsPoint(pointXY);
- CGUID guid;
- CGUID::CreateGUID(guid);
- tempScript->SetID(guid);
- // 加载脚本内容
- double ret = 0; // 返回值
- if( tempScript->LoadScript(p->pszFileName, pData) )
- {
- _AddParamList( tempScript, var_list );
- // 执行脚本
- if( tempScript->RunStep() == CScript::SR_HANG )
- {
- g_Scripts[guid] = tempScript;
- return 0;
- }
- else
- {
- ret = tempScript->GetVariableList()->GetVarValue("$Ret", 0);
- }
- }
- PushFreeScript(tempScript);
-
- return ret;
- }
-
- long DelectAllScripByShape(const CGUID& PlayerGuid)
- {
- for(itScript it=g_Scripts.begin(); it!=g_Scripts.end(); it++)
- {
- CScript* p = (CScript*)(*it).second;
- if( p && p->GetSrcID() == PlayerGuid )
- {
- CScript::PushDelScript((*it).first);
- }
- }
- return true;
- }
-
- //删除玩家的Talkbox脚本
- long DelPlayerTalkBoxScript(const CGUID& PlayerGuid, SCRIPT_FUNC_DEF funcDef)
- {
-
- for(itScript it=g_Scripts.begin(); it!=g_Scripts.end(); it++)
- {
- CScript* p = (CScript*)(*it).second;
- if( p && p->GetSrcID() == PlayerGuid &&
- p->IsHang() &&
- (p->GetHangFunc() == funcDef) )
- {
- CScript::PushDelScript((*it).first);
- }
- }
-
- return true;
- }
-
-
- //删除某个ID对应的脚本
- long DelectPlayerScript(const CGUID &ScriptID,const CGUID& PlayerGuid)
- {
- itScript it = g_Scripts.find(ScriptID);
-
- if(it != g_Scripts.end())
- {
- CScript* p = (CScript*)(*it).second;
- if(p && p->GetSrcID() == PlayerGuid)
- {
- CScript::PushDelScript(ScriptID);
- }
- }
- return true;
- }
-
- //在脚本链表中清除PLAYER对应的脚本
- long DelectPlayerScript(CPlayer* pPlayer,char* strFile)
- {
- if(pPlayer==NULL || strFile == NULL)
- return false;
-
- for(itScript it=g_Scripts.begin(); it!=g_Scripts.end(); it++)
- {
- CScript* p = (CScript*)(*it).second;
- if( p && p->GetSrcID() == pPlayer->GetExID() && p->GetFileName() &&
- strcmp(strFile,p->GetFileName()) == 0 )
- {
- CScript::PushDelScript((*it).first);
- }
- }
- return true;
- }
-
- //判断某个万家的脚本是否正在执行
- bool ScriptIfExit(CPlayer* pPlayer,char* strFile)
- {
- if(pPlayer==NULL || strFile == NULL)
- return false;
-
- for(itScript it=g_Scripts.begin(); it!=g_Scripts.end();it++)
- {
- CScript* p = (CScript*)(*it).second;
- if( p && p->GetPlayerID() == pPlayer->GetExID() && p->GetFileName() &&
- strcmp(strFile,p->GetFileName()) == 0 )
- {
- return true;
- }
- }
-
- return false;
- }
-
- //继续执行一个脚本
- long ContinueRunScript(const CGUID& ScriptID, CVariableList* stackVarList)
- {
- itScript it = g_Scripts.find(ScriptID);
- if(it != g_Scripts.end())
- {
- CScript* pScript = (*it).second;
- if(pScript)
- {
- pScript->ResetShape();
- if( pScript->ContinueRun(stackVarList) != CScript::SR_HANG )
- {
- CScript::PushDelScript(ScriptID);
- return 1;
- }
- else
- {
- return 0;
- }
- }
- return 1;
- }
- return 0;
- }
- //得到一个脚本的全局ID
- long GetScriptIndex()
- {
- static double lID = 0;
- return ++lID;
- }
- /************************************************
- * -= 脚本类 =- *
- * 读入并执行脚本文件 *
- * (1)用以控制NPC的行为 *
- * (2)编写特定的情节 *
- * (3)制作任务 *
- * (4)动态改变游戏中的各种数据[巫师] *
- ************************************************/
-
- ////////////////
- // 函数列表
-
- double CScript::m_LoadFunctionNum=0;
-
- CScript::STRING2PFUNC* CScript::s_FunctionList2=0;
-
- double CScript::m_MaxFunction=0;
-
- ////////////////
- // 全局变量
- CVariableList* CScript::m_GeneralVariableList=NULL;
- CVariableList* CScript::m_BuffSkillVariableList=NULL;
-
- //////////////////////////////////////
- // 操作符列表 (数值越大,优先级越大)
- CScript::stOperation CScript::m_OperationList[MAX_OPERATION]=
- {
- "", 0,
- ";",1,
- "||",2,
- "&&",3,
- "==",4, "!=",4, ">",4, "<",4, ">=",4, "<=",4,
- "=",5, "+=",5, "-=",5, "*=",5, "/=",5, "%=",5,
- "&",6, "|",6,
- "+",7, "-",7,
- "*",8, "/",8, "%",8
- };
-
- ///////////////
- // 构建
- CScript::CScript(CShape* srcShape, CRegion *Region, CShape *desShape, CGUID& guUsedItemID, DWORD dwDiedMonsterIndex)
- :m_strRunScriptName("")
- {
- m_FileName[0] = 0;
- m_Data=NULL;
- m_DataLen=0;
- m_Block=0;
-
- m_szClientUpdateVarName[0] = '\0';
- m_szClientOptInfo = NULL;
- m_lClientOptInfoLen = 0;
-
- m_VarNum = 0;
-
- m_dwLastTime=0;
- m_guIndexID = NULL_GUID;
- if(srcShape && (OBJECT_TYPE)srcShape->GetType() == TYPE_PLAYER)
- m_PlayerGuid=srcShape->GetExID();
- else
- m_PlayerGuid=NULL_GUID;
-
- m_pRegion = Region;
- p_SrcShape = srcShape;
- p_DesShape = desShape;
-
- m_guUsedItemID = guUsedItemID;
- m_ptDropGoods.x = -1;
- m_ptDropGoods.y = -1;
- m_pChildScriptInfo = NULL;
-
- m_pSelfVariableList = MP_NEW CVariableList;
- m_pVariableList = NULL;
- }
-
- /////////////////////
- // 释放
- CScript::~CScript()
- {
- M_FREE(m_szClientOptInfo, sizeof(char)*MAX_VAR_LEN);
-
- M_FREE(m_Data, sizeof(char)*(m_DataLen+1)); //释放
- m_DataLen=0;
-
- for (int i=0;i<MAX_VAR;i++)
- {
- M_FREE(m_strValueInfo[i].pStrValue, m_strValueInfo[i].lStrValueLen);
- m_strValueInfo[i].pStrValue = NULL;
- m_strValueInfo[i].lStrValueLen = 0;
- }
-
- MP_DELETE(m_pSelfVariableList);
-
- if(m_pChildScriptInfo)
- {
- MP_DELETE(m_pChildScriptInfo->pChildScript);
- MP_DELETE(m_pChildScriptInfo);
- }
- }
- void CScript::SetClientOptInfo(const char* szInfo)
- {
- if(szInfo)
- {
- M_FREE(m_szClientOptInfo, m_lClientOptInfoLen);
- long lLen = strlen(szInfo);
- m_szClientOptInfo = (char*)M_ALLOC(sizeof(char)*(lLen+1));
- strcpy_s(m_szClientOptInfo, m_lClientOptInfoLen, szInfo);
- m_lClientOptInfoLen = lLen+1;
- }
- }
- //释放子脚本
- void CScript::ReleaseChildScript()
- {
- if(m_pChildScriptInfo)
- {
- if(m_pChildScriptInfo->pChildScript)
- m_pChildScriptInfo->pChildScript->ReleaseChildScript();
- PushFreeScript(m_pChildScriptInfo->pChildScript);
- MP_DELETE(m_pChildScriptInfo);
- }
- }
-
- void CScript::PushDelScript(const CGUID& guid)
- {
- m_DelScripts.push_back(guid);
- return;
- }
- //删除标记的脚本
- void CScript::DelScript()
- {
- list<CGUID>::iterator it = m_DelScripts.begin();
- for(;it != m_DelScripts.end();it++)
- {
- itScript itScript = g_Scripts.find((*it));
- if(itScript != g_Scripts.end())
- {
- CScript* pScript = (*itScript).second;
- if(pScript)
- {
- pScript->ReleaseChildScript();
- PushFreeScript((*itScript).second);
- }
- g_Scripts.erase(itScript);
- }
- }
- m_DelScripts.clear();
- return;
- }
-
-
- // ------------------------------ 初始化 ------------------------------
-
- ///////////////////////
- // 读取函数列表
-
- void CScript::LoadFunction(const char *filename, char* pData)
- {
- SAFE_DELETE(s_FunctionList2);
- s_FunctionList2 = new STRING2PFUNC;
-
-
- //-----------------------------------------------------
- //基本语法函数
- (*s_FunctionList2)["goto"] = &CScript::Goto;
- (*s_FunctionList2)["if"] = &CScript::If;
- (*s_FunctionList2)["wait"] = &CScript::wait;
- (*s_FunctionList2)["random"] = &CScript::random;
- (*s_FunctionList2)["Int"] = &CScript::Int;
- (*s_FunctionList2)["Round"] = &CScript::RoundNum;
- (*s_FunctionList2)["RGB"] = &CScript::Rgb;
- (*s_FunctionList2)["localvar"] = &CScript::LocalVar;
- (*s_FunctionList2)["define"] = &CScript::define;
- (*s_FunctionList2)["undefine"] = &CScript::undefine;
- (*s_FunctionList2)["ifdef"] = &CScript::Ifdef;
- (*s_FunctionList2)["destdefine"] = &CScript::DestDefine;
- (*s_FunctionList2)["destundefine"] = &CScript::DestUndefine;
- (*s_FunctionList2)["ifdestdef"] = &CScript::IfDestDef;
- (*s_FunctionList2)["Time"] = &CScript::Time;
- (*s_FunctionList2)["Year"] = &CScript::Year;
- (*s_FunctionList2)["Month"] = &CScript::Month;
- (*s_FunctionList2)["Day"] = &CScript::Day;
- (*s_FunctionList2)["Hour"] = &CScript::Hour;
- (*s_FunctionList2)["Minute"] = &CScript::Minute;
- (*s_FunctionList2)["DayOfWeek"] = &CScript::DayOfWeek;
- (*s_FunctionList2)["HourDiff"] = &CScript::HourDiff;
- (*s_FunctionList2)["MinuteDiff"] = &CScript::MinuteDiff;
- (*s_FunctionList2)["Second"] = &CScript::Second;
- (*s_FunctionList2)["CheckGuidIsNull"] = &CScript::CheckGuidIsNull;
- (*s_FunctionList2)["GetCurTick"] = &CScript::GetCurTick;
- (*s_FunctionList2)["GetPow"] = &CScript::GetPow;
- (*s_FunctionList2)["GetSubString"] = &CScript::GetSubString;
-
- //-----------------------------------------------------
- //系统全局函数
- (*s_FunctionList2)["FormatGUID"] = &CScript::FormatGUID;
- (*s_FunctionList2)["ListOnlineGM"] = &CScript::ListOnlineGM;
- (*s_FunctionList2)["ListSilencePlayer"] = &CScript::ListSilencePlayer;
- (*s_FunctionList2)["ListBanedPlayer"] = &CScript::ListBanedPlayer;
- (*s_FunctionList2)["GetOnlinePlayers"] = &CScript::GetOnlinePlayers;
- (*s_FunctionList2)["PostRegionInfo"] = &CScript::PostRegionInfo;
- (*s_FunctionList2)["PostRegionInfoByIndex"] = &CScript::PostRegionInfoByIndex;
- (*s_FunctionList2)["PostWorldInfo"] = &CScript::PostWorldInfo;
- (*s_FunctionList2)["PostWorldInfoByIndex"] = &CScript::PostWorldInfoByIndex;
- (*s_FunctionList2)["PostCountryInfo"] = &CScript::PostCountryInfo;
- (*s_FunctionList2)["KickAllPlayer"] = &CScript::KickAllPlayer;
- (*s_FunctionList2)["KickRegionPlayer"] = &CScript::KickRegionPlayer;
- (*s_FunctionList2)["RegisterGlobalTimer"] = &CScript::RegisterGlobalTimer;
- (*s_FunctionList2)["UnRegisterGlobalTimer"] = &CScript::UnRegisterGlobalTimer;
- (*s_FunctionList2)["KickPlayer"] = &CScript::KickPlayer;
- (*s_FunctionList2)["KickAround"] = &CScript::KickAround;
- (*s_FunctionList2)["BanPlayer"] = &CScript::BanPlayer;
- (*s_FunctionList2)["SilencePlayer"] = &CScript::SilencePlayer;
- (*s_FunctionList2)["GetTextRes"] = &CScript::GetTextRes;
- (*s_FunctionList2)["SetPlayerRegion"] = &CScript::SetPlayerRegion;
- (*s_FunctionList2)["SetPlayerRegionEx"] = &CScript::SetPlayerRegionEx;
- (*s_FunctionList2)["RollRegionInfo"] = &CScript::RollRegionInfo;
- (*s_FunctionList2)["RollWorldInfo"] = &CScript::RollWorldInfo;
- (*s_FunctionList2)["GetPlayerRegion"] = &CScript::GetPlayerRegion;
- (*s_FunctionList2)["ChangePlayerRegion"] = &CScript::ChangePlayerRegion;
- (*s_FunctionList2)["ChangePlayerName"] = &CScript::ChangePlayerName;
-
-
- //-----------------------------------------------------
- //所有对象(怪物、采集物、角色)基本使用函数
- (*s_FunctionList2)["SetAttrInt"] = &CScript::SetAttrInt;
- (*s_FunctionList2)["SetAttrStr"] = &CScript::SetAttrStr;
- (*s_FunctionList2)["SetAttrGuid"] = &CScript::SetAttrGuid;
- (*s_FunctionList2)["GetAttr"] = &CScript::GetAttr;
- (*s_FunctionList2)["GetScriptAttr"] = &CScript::GetScriptAttr;
- (*s_FunctionList2)["ChangeAttr"] = &CScript::ChangeAttr;
- (*s_FunctionList2)["RegisterTimer"] = &CScript::RegisterTimer;
- (*s_FunctionList2)["UnRegisterTimer"] = &CScript::UnRegisterTimer;
- (*s_FunctionList2)["PlayMotion"] = &CScript::PlayMotion;
- (*s_FunctionList2)["DesRunScript"] = &CScript::DesRunScript;
- (*s_FunctionList2)["GetPlayerNumByAround"] = &CScript::GetPlayerNumByAround;
- (*s_FunctionList2)["GetMonsterNumByAround"] = &CScript::GetMonsterNumByAround;
- (*s_FunctionList2)["GetSameMonsterNumByAround"] = &CScript::GetSameMonsterNumByAround;
- (*s_FunctionList2)["SetDelTime"] = &CScript::SetDelTime;
- (*s_FunctionList2)["SetDelTimeByGuid"] = &CScript::SetDelTimeByGuid;
- (*s_FunctionList2)["GetSrcShapeGUID"] = &CScript::GetSrcShapeGUID;
- (*s_FunctionList2)["GetDesShapeGUID"] = &CScript::GetDesShapeGUID;
- (*s_FunctionList2)["ChangeMoveSpeed"] = &CScript::ChangeMoveSpeed;
- (*s_FunctionList2)["SetMoveSpeed"] = &CScript::SetMoveSpeed;
- (*s_FunctionList2)["ChangeBaseSpeed"] = &CScript::ChangeBaseSpeed;
- (*s_FunctionList2)["GetCurrentSpeed"] = &CScript::GetCurrentSpeed;
-
- (*s_FunctionList2)["GetDestIntVar"] = &CScript::GetDestIntVar;
- (*s_FunctionList2)["SetDestIntVar"] = &CScript::SetDestIntVar;
- (*s_FunctionList2)["GetDestStrVar"] = &CScript::GetDestStrVar;
- (*s_FunctionList2)["SetDestStrVar"] = &CScript::SetDestStrVar;
- (*s_FunctionList2)["GetDestGuidVar"] = &CScript::GetDestGuidVar;
- (*s_FunctionList2)["SetDestGuidVar"] = &CScript::SetDestGuidVar;
- (*s_FunctionList2)["IsShapeValid"] = &CScript::IsShapeValid;
-
- //-----------------------------------------------------
- //怪物相关函数
- //1、基本函数
- (*s_FunctionList2)["SetMonsterAttr"] = &CScript::SetMonsterAttr;
- (*s_FunctionList2)["GetMonsterAttr"] = &CScript::GetMonsterAttr;
- (*s_FunctionList2)["ChangeMonsterAttr"] = &CScript::ChangeMonsterAttr;
- (*s_FunctionList2)["AddHpBar"] = &CScript::AddHpBar;
- (*s_FunctionList2)["GetHpLevel"] = &CScript::GetHpLevel;
- (*s_FunctionList2)["GetKillerID"] = &CScript::GetKillerID;
- (*s_FunctionList2)["GetKillerType"] = &CScript::GetKillerType;
- (*s_FunctionList2)["SetBeneficiary"] = &CScript::SetBeneficiary;
- (*s_FunctionList2)["GetBeneficiaryID"] = &CScript::GetBeneficiaryID;
- (*s_FunctionList2)["GetBeneficiaryType"] = &CScript::GetBeneficiaryType;
- (*s_FunctionList2)["GetBeneTeamGuid"] = &CScript::GetBeneTeamGuid;
- (*s_FunctionList2)["DelRegionMonsterByName"] = &CScript::DelRegionMonsterByName;
- //2、怪物AI相关函数
- (*s_FunctionList2)["MonsterTalk"] = &CScript::MonsterTalk;
- (*s_FunctionList2)["MonsterTalkByIndex"] = &CScript::MonsterTalkByIndex;
- (*s_FunctionList2)["MonsterTalkByGUID"] = &CScript::MonsterTalkByGUID;
- (*s_FunctionList2)["MonsterTalkByGuidByIndex"] = &CScript::MonsterTalkByGuidByIndex;
- (*s_FunctionList2)["UseSkillByID"] = &CScript::UseSkillByID;
- (*s_FunctionList2)["UseSkillByIDOnCell"] = &CScript::UseSkillByIDOnCell;
- (*s_FunctionList2)["UseSkillSync"] = &CScript::UseSkillSync;
- (*s_FunctionList2)["UseSkillSyncWithTrace"] = &CScript::UseSkillSyncWithTrace;
- (*s_FunctionList2)["UseSkillOnCellSync"] = &CScript::UseSkillOnCellSync;
- (*s_FunctionList2)["MoveToCellOnPeace"] = &CScript::MoveToCellOnPeace;
- (*s_FunctionList2)["MoveToCellOnFight"] = &CScript::MoveToCellOnFight;
- (*s_FunctionList2)["MoveToCellAround"] = &CScript::MoveToCellAround;
- (*s_FunctionList2)["MoveByStepOnPeace"] = &CScript::MoveByStepOnPeace;
- (*s_FunctionList2)["MoveByStepOnFight"] = &CScript::MoveByStepOnFight;
- (*s_FunctionList2)["SendExpActOnPeace"] = &CScript::SendExpActOnPeace;
- (*s_FunctionList2)["SendExpActOnFight"] = &CScript::SendExpActOnFight;
- (*s_FunctionList2)["MoveByTimeOnPeace"] = &CScript::MoveByTimeOnPeace;
- (*s_FunctionList2)["MovebyTimeOnFight"] = &CScript::MovebyTimeOnFight;
- (*s_FunctionList2)["CallFriendAround"] = &CScript::CallFriendAround;
- (*s_FunctionList2)["CallMonsterAround"] = &CScript::CallMonsterAround;
- (*s_FunctionList2)["Stand"] = &CScript::Stand;
- (*s_FunctionList2)["StandOnce"] = &CScript::StandOnce;
- (*s_FunctionList2)["ChangeAI"] = &CScript::ChangeAI;
- (*s_FunctionList2)["StartCycle"] = &CScript::StartCycle;
- (*s_FunctionList2)["EndCycle"] = &CScript::EndCycle;
- (*s_FunctionList2)["EscapeByTimeOnFight"] = &CScript::EscapeByTimeOnFight;
- (*s_FunctionList2)["DeleteSpring"] = &CScript::DeleteSpring;
- (*s_FunctionList2)["EndEscape"] = &CScript::EndEscape;
- (*s_FunctionList2)["EndEscapeByGUID"] = &CScript::EndEscapeByGUID;
- (*s_FunctionList2)["SetBefoolID"] = &CScript::SetBefoolID;
- (*s_FunctionList2)["CleanBefoolID"] = &CScript::CleanBefoolID;
- (*s_FunctionList2)["SetForceTarget"] = &CScript::SetForceTarget;
- (*s_FunctionList2)["CleanForceTatget"] = &CScript::CleanForceTatget;
- (*s_FunctionList2)["ChangeWeaknessState"] = &CScript::ChangeWeaknessState;
- (*s_FunctionList2)["EscapeByAround"] = &CScript::EscapeByAround;
- (*s_FunctionList2)["MonsterRunScriptsAround"] = &CScript::MonsterRunScriptsAround;
- (*s_FunctionList2)["MonsterIsFight"] = &CScript::MonsterIsFight;
- (*s_FunctionList2)["SetMonsterFight"] = &CScript::SetMonsterFight;
- (*s_FunctionList2)["CallFriendAttack"] = &CScript::CallFriendAttack;
- (*s_FunctionList2)["CallMonsterAttack"] = &CScript::CallMonsterAttack;
- (*s_FunctionList2)["MonsterAttackObjectByAround"] = &CScript::MonsterAttackObjectByAround;
- (*s_FunctionList2)["MonsterAttackObject"] = &CScript::MonsterAttackObject;
- (*s_FunctionList2)["SetMonsterDir"] = &CScript::SetMonsterDir;
- (*s_FunctionList2)["ReLiveMonster"] = &CScript::ReLiveMonster;
- (*s_FunctionList2)["GetMonsterTarget"] = &CScript::GetMonsterTarget;
- (*s_FunctionList2)["SetMonsterTarget"] = &CScript::SetMonsterTarget;
- (*s_FunctionList2)["GetMonsterPos"] = &CScript::GetMonsterPos;
- (*s_FunctionList2)["CreateMonster"] = &CScript::CreateMonster;
- (*s_FunctionList2)["CreateMonsterEx"] = &CScript::CreateMonsterEx;
- (*s_FunctionList2)["DelMonster"] = &CScript::DelMonster;
- (*s_FunctionList2)["DelMonsterEx"] = &CScript::DelMonsterEx;
- (*s_FunctionList2)["DelMonsterRect"] = &CScript::DelMonsterRect;
- (*s_FunctionList2)["KillMonster"] = &CScript::KillMonster;
- (*s_FunctionList2)["GetMonsterRefeashTime"] = &CScript::GetMonsterRefeashTime;
- (*s_FunctionList2)["GetPlayerByDistance"] = &CScript::GetPlayerByDistance;
- (*s_FunctionList2)["GetDistanceFromPlayer"] = &CScript::GetDistanceFromPlayer;
- (*s_FunctionList2)["GetAttackablePlayer"] = &CScript::GetAttackablePlayer;
- (*s_FunctionList2)["ChooseTargetByOccu"] = &CScript::ChooseTargetByOccu;
-
- //-----------------------------------------------------
- //采集物相关函数
- (*s_FunctionList2)["CreateCollection"] = &CScript::CreateCollection;
- (*s_FunctionList2)["CreateCollectionEx"] = &CScript::CreateCollectionEx;
- (*s_FunctionList2)["DelCollection"] = &CScript::DelCollection;
-
- //-----------------------------------------------------
- //建物相关函数
- //对门的操作
- (*s_FunctionList2)["SetDoor"] = &CScript::SetDoor;
- (*s_FunctionList2)["GetDoor"] = &CScript::GetDoor;
- //-----------------------------------------------------
- //角色相关函数
- //1.基本函数
- (*s_FunctionList2)["ChangeMe"] = &CScript::ChangeMe;
- (*s_FunctionList2)["GetMe"] = &CScript::GetMe;
- (*s_FunctionList2)["SetMe"] = &CScript::SetMe;
- (*s_FunctionList2)["ChangeDest"] = &CScript::ChangeDest;
- (*s_FunctionList2)["GetDest"] = &CScript::GetDest;
- (*s_FunctionList2)["SetDest"] = &CScript::SetDest;
- (*s_FunctionList2)["SetPlayerPos"] = &CScript::SetPlayerPos;
- (*s_FunctionList2)["SetPlayerDir"] = &CScript::SetPlayerDir;
- (*s_FunctionList2)["AddAreaCreditByAreaId"] = &CScript::AddAreaCreditByAreaId;
- (*s_FunctionList2)["AddAreaCredit"] = &CScript::AddAreaCredit;
- (*s_FunctionList2)["SetAreaCredit"] = &CScript::SetAreaCredit;
- (*s_FunctionList2)["SetAreaCreditByAreaId"] = &CScript::SetAreaCreditByAreaId;
- (*s_FunctionList2)["GetAreaCredit"] = &CScript::GetAreaCredit;
- (*s_FunctionList2)["GetAreaCreditLevel"] = &CScript::GetAreaCreditLevel;
- (*s_FunctionList2)["GetOrganCreditLevel"] = & CScript::GetOrganCreditLevel;
- (*s_FunctionList2)["AddOrganCredit"] = & CScript::AddOrganCredit;
- (*s_FunctionList2)["SetOrganCredit"] = & CScript::SetOrganCredit;
- (*s_FunctionList2)["GetCountry"] = &CScript::GetCountry;
- (*s_FunctionList2)["ChangeCountry"] = &CScript::ChangeCountry;
- (*s_FunctionList2)["GetContribute"] = &CScript::GetContribute;
- (*s_FunctionList2)["SetContribute"] = &CScript::SetContribute;
- (*s_FunctionList2)["IsCharged"] = &CScript::IsCharged;
- (*s_FunctionList2)["SetCharged"] = &CScript::SetCharged;
- (*s_FunctionList2)["GetName"] = &CScript::GetName;
- (*s_FunctionList2)["ChangePlayer"] = &CScript::ChangePlayer;
- (*s_FunctionList2)["SetPlayer"] = &CScript::SetPlayer;
- (*s_FunctionList2)["GetPlayer"] = &CScript::GetPlayer;
- (*s_FunctionList2)["SetPlayerLevel"] = &CScript::SetPlayerLevel;
- (*s_FunctionList2)["IsPlayerOnline"] = &CScript::IsPlayerOnline;
- (*s_FunctionList2)["ChangeMoneyByName"] = &CScript::ChangeMoneyByName;
- (*s_FunctionList2)["GetMoneyByName"] = &CScript::GetMoneyByName;
- (*s_FunctionList2)["SetMoneyByName"] = &CScript::SetMoneyByName;
- (*s_FunctionList2)["ChangeSilverByName"] = &CScript::ChangeSilverByName;
- (*s_FunctionList2)["GetSilverByName"] = &CScript::GetSilverByName;
- (*s_FunctionList2)["SetSilverByName"] = &CScript::SetSilverByName;
- (*s_FunctionList2)["AddTicketByName"] = &CScript::AddTicketByName;
- (*s_FunctionList2)["GetTicketByName"] = &CScript::GetTicketByName;
- (*s_FunctionList2)["SetPlayerExp"] = &CScript::SetPlayerExp;
- (*s_FunctionList2)["ChangePlayerExp"] = &CScript::ChangePlayerExp;
- (*s_FunctionList2)["SetPlayerOccuExp"] = &CScript::SetPlayerOccuExp;
- (*s_FunctionList2)["ChangePlayerOccuExp"] = &CScript::ChangePlayerOccuExp;
- (*s_FunctionList2)["GetPlayerOccuExp"] = &CScript::GetPlayerOccuExp;
- (*s_FunctionList2)["SetPlayerOccuLvl"] = &CScript::SetPlayerOccuLvl;
- (*s_FunctionList2)["GetPlayerOccuLvl"] = &CScript::GetPlayerOccuLvl;
- (*s_FunctionList2)["SetPlayerOccuSp"] = &CScript::SetPlayerOccuSp;
- (*s_FunctionList2)["ChangePlayerOccuSp"] = &CScript::ChangePlayerOccuSp;
- (*s_FunctionList2)["GetPlayerOccuSp"] = &CScript::GetPlayerOccuSp;
- (*s_FunctionList2)["ChangePlayerOccuExpSp"] = &CScript::ChangePlayerOccuExpSp;
- (*s_FunctionList2)["IsGM"] = &CScript::IsGM;
- (*s_FunctionList2)["ShowPlayerInfo"] = &CScript::ShowPlayerInfo;
- (*s_FunctionList2)["ShowPlayerGoods"] = &CScript::ShowPlayerGoods;
- (*s_FunctionList2)["ShowGeneralVariable"] = &CScript::ShowGeneralVariable;
- (*s_FunctionList2)["DurancePlayer"] = &CScript::DurancePlayer;
- (*s_FunctionList2)["CheckReliveByOrigin"] = &CScript::CheckReliveByOrigin;
- (*s_FunctionList2)["CheckReliveGoods"] = &CScript::CheckReliveGoods;
- (*s_FunctionList2)["Onstate"] = &CScript::Onstate;
- (*s_FunctionList2)["GetActive"] = &CScript::GetActive;
- (*s_FunctionList2)["AddActive"] = &CScript::AddActive;
- (*s_FunctionList2)["TakeActive"] = &CScript::TakeActive;
- (*s_FunctionList2)["ResetActive"] = &CScript::ResetActive;
- (*s_FunctionList2)["GetServer"] = &CScript::GetServer;
- (*s_FunctionList2)["GetOtherOneInMarriageTeam"] = &CScript::GetOtherOneInMarriageTeam;
- (*s_FunctionList2)["GetPlayerMarriageStep"] = &CScript::GetPlayerMarriageStep;
- (*s_FunctionList2)["SetPlayerMarriageStep"] = &CScript::SetPlayerMarriageStep;
- (*s_FunctionList2)["SetPlayerSpouse"] = &CScript::SetPlayerSpouse;
- (*s_FunctionList2)["DelPlayerSpouse"] = &CScript::DelPlayerSpouse;
- (*s_FunctionList2)["GetPlayerSpouse"] = &CScript::GetPlayerSpouse;
- (*s_FunctionList2)["GetPlayerSpouseName"] = &CScript::GetPlayerSpouseName;
- (*s_FunctionList2)["GetElementProperty"] = &CScript::GetElementProperty;
- (*s_FunctionList2)["SetElementProperty"] = &CScript::SetElementProperty;
- (*s_FunctionList2)["SetActiveRatio"] = &CScript::SetActiveRatio;
- (*s_FunctionList2)["GetActiveRatio"] = &CScript::GetActiveRatio;
- (*s_FunctionList2)["GetCostYuanBao"] = &CScript::GetCostYuanBao;
- //稳定挂机时间
- (*s_FunctionList2)["SetStableHookTime"] = &CScript::SetStableHookTime;
- (*s_FunctionList2)["AddStableHookTime"] = &CScript::AddStableHookTime;
- (*s_FunctionList2)["GetStableHookTime"] = &CScript::GetStableHookTime;
-
-
-
-
-
-
- //2.扩展函数
- (*s_FunctionList2)["GetOccuValueRatio"] = &CScript::GetOccuValueRatio;
- (*s_FunctionList2)["GetOccuLvlCoe"] = &CScript::GetOccuLvlCoe;
- (*s_FunctionList2)["ChangeOccu"] = &CScript::ChangeOccu;
- (*s_FunctionList2)["CheckLevel"] = &CScript::CheckLevel;
- (*s_FunctionList2)["CheckOccuLvl"] = &CScript::CheckOccuLvl;
- (*s_FunctionList2)["ReLive"] = &CScript::ReLive;
- (*s_FunctionList2)["ScriptIsRun"] = &CScript::ScriptIsRun;
- (*s_FunctionList2)["RemoveScript"] = &CScript::RemoveScript;
- (*s_FunctionList2)["AutoMove"] = &CScript::AutoMove;
- (*s_FunctionList2)["MovePlayer"] = &CScript::MovePlayer;
- (*s_FunctionList2)["GodMode"] = &CScript::GodMode;
- (*s_FunctionList2)["ResidentMode"] = &CScript::ResidentMode;
-
- //-----------------------------------------------------
- //物品相关函数
- (*s_FunctionList2)["AddGoods"] = &CScript::AddGoods;
- (*s_FunctionList2)["AddArmament"] = &CScript::AddArmament;
- (*s_FunctionList2)["AddArmamentForGM"] = &CScript::AddArmamentForGM;
- (*s_FunctionList2)["DelGoods"] = &CScript::DelGoods;
- (*s_FunctionList2)["AddGoodsToRgn"] = &CScript::AddGoodsToRgn;
- (*s_FunctionList2)["CheckGoods"] = &CScript::CheckGoods;
- (*s_FunctionList2)["CheckGoodsInBank"] = &CScript::CheckGoodsInBank;
- (*s_FunctionList2)["OpenGoodsExWindow"] = &CScript::OpenGoodsExWindow;
- (*s_FunctionList2)["BindGoods"] = &CScript::BindGoods;
- (*s_FunctionList2)["FrostGoods"] = &CScript::FrostGoods;
- (*s_FunctionList2)["CheckSpace"] = &CScript::CheckSpace;
- (*s_FunctionList2)["GetGoodsNum"] = &CScript::GetGoodsNum;
- (*s_FunctionList2)["GetGoodsFree"] = &CScript::GetGoodsFree;
- (*s_FunctionList2)["GetEquipIDByPos"] = &CScript::GetEquipIDByPos;
- (*s_FunctionList2)["GetEquipNameByPos"] = &CScript::GetEquipNameByPos;
- (*s_FunctionList2)["GetPlayerGoodsAddonProperty"] = &CScript::GetPlayerGoodsAddonProperty;
- (*s_FunctionList2)["SetPlayerGoodsAddonProperty"] = &CScript::SetPlayerGoodsAddonProperty;
- (*s_FunctionList2)["GetGoodsBaseType"] = &CScript::GetGoodsBaseType;
- (*s_FunctionList2)["OpenGoodsEnchase"] = &CScript::OpenGoodsEnchase;
- (*s_FunctionList2)["DelPlayerGoods"] = &CScript::DelPlayerGoods;
- (*s_FunctionList2)["DelUsedGoods"] = &CScript::DelUsedGoods;
- (*s_FunctionList2)["CheckUsedGoods"] = &CScript::CheckUsedGoods;
- (*s_FunctionList2)["GetUsedGoodsPropertiy1"] = &CScript::GetUsedGoodsPropertiy1;
- (*s_FunctionList2)["GetUsedGoodsPropertiy2"] = &CScript::GetUsedGoodsPropertiy2;
- (*s_FunctionList2)["SetUsedGoodsPropertiy1"] = &CScript::SetUsedGoodsPropertiy1;
- (*s_FunctionList2)["SetUsedGoodsPropertiy2"] = &CScript::SetUsedGoodsPropertiy2;
- (*s_FunctionList2)["BuyGoods"] = &CScript::BuyGoods;
- (*s_FunctionList2)["GetGoodsAddonProperty"] = &CScript::GetGoodsAddonProperty;
- (*s_FunctionList2)["FullRefine"] = &CScript::FullRefine;
- (*s_FunctionList2)["GetWeaponStr"] = &CScript::GetWeaponStr;
- (*s_FunctionList2)["AddMedal"] = &CScript::AddMedal;
- (*s_FunctionList2)["DelMedal"] = &CScript::DelMedal;
- (*s_FunctionList2)["GetMedal"] = &CScript::GetMedal;
- (*s_FunctionList2)["GetMedalNum"] = &CScript::GetMedalNum;
- (*s_FunctionList2)["GetShowMedalName"] = &CScript::GetShowMedalName;
- (*s_FunctionList2)["IsEquipEnchased"] = &CScript::IsEquipEnchased;
- (*s_FunctionList2)["GetGoodsDisplayName"] = &CScript::GetGoodsDisplayName;
- (*s_FunctionList2)["BeginMake"] = &CScript::BeginMake;
- (*s_FunctionList2)["FinishMake"] = &CScript::FinishMake;
- (*s_FunctionList2)["BackToCity"] = &CScript::BackToCity;
-
- (*s_FunctionList2)["BeginContainerGoodsOpt"] = &CScript::BeginContainerGoodsOpt;
- (*s_FunctionList2)["GetOptGoodsInContainer"] = &CScript::GetOptGoodsInContainer;
- (*s_FunctionList2)["PutOptGoodsInContainer"] = &CScript::PutOptGoodsInContainer;
- (*s_FunctionList2)["RemoveOptGoodsInContainer"] = &CScript::RemoveOptGoodsInContainer;
- (*s_FunctionList2)["RefreshContainerTxt"] = &CScript::RefreshContainerTxt;
- (*s_FunctionList2)["RefreshContainerGold"] = &CScript::RefreshContainerGold;
- (*s_FunctionList2)["EndContainerGoodsOpt"] = &CScript::EndContainerGoodsOpt;
-
- (*s_FunctionList2)["GetGoodsOriginalName"] = &CScript::GetGoodsOriginalName;
- (*s_FunctionList2)["GetGoodsAddonPropertyValues"] = &CScript::GetGoodsAddonPropertyValues;
- (*s_FunctionList2)["SetGoodsAddonPropertyValues"] = &CScript::SetGoodsAddonPropertyValues;
- (*s_FunctionList2)["ResetGoodsStochastic"] = &CScript::ResetGoodsStochastic;
- (*s_FunctionList2)["DelGoodsByGuid"] = &CScript::DelGoodsByGuid;
- (*s_FunctionList2)["AddGoodsReturnGuid"] = &CScript::AddGoodsReturnGuid;
- (*s_FunctionList2)["IsFrostGoods"] = &CScript::IsFrostGoods;
- (*s_FunctionList2)["GetUsedGoodsOriginalName"] = &CScript::GetUsedGoodsOriginalName;
- (*s_FunctionList2)["GetUsedGoodsGuid"] = &CScript::GetUsedGoodsGuid;
- (*s_FunctionList2)["UploadGoods"] = &CScript::UploadGoods;
- (*s_FunctionList2)["SetAddonDesc"] = &CScript::SetAddonDesc;
- (*s_FunctionList2)["GetAddonDesc"] = &CScript::GetAddonDesc;
- (*s_FunctionList2)["AddGoodsToServer"] = &CScript::AddGoodsToServer;
- (*s_FunctionList2)["AddGoodsToClient"] = &CScript::AddGoodsToClient;
-
-
- //-----------------------------------------------------
- //任务相关函数
- (*s_FunctionList2)["AddQuest"] = &CScript::AddQuest;
- (*s_FunctionList2)["GetCurrentMasterRoleID"] = &CScript::GetCurrentMasterRoleID;
- (*s_FunctionList2)["CompleteQuest"] = &CScript::CompleteQuest;
- (*s_FunctionList2)["DisbandQuest"] = &CScript::DisbandQuest;
- (*s_FunctionList2)["GetQuestState"] = &CScript::GetQuestState;
- (*s_FunctionList2)["GetValidQuestNum"] = &CScript::GetValidQuestNum;
- (*s_FunctionList2)["UpdateQuestStep"] = &CScript::UpdateQuestStep;
- (*s_FunctionList2)["UpdateQuestParamData"] = &CScript::UpdateQuestParamData;
- (*s_FunctionList2)["UpdateQuestData"] = &CScript::UpdateQuestData;
- (*s_FunctionList2)["GetMercQuest"] = &CScript::GetMercQuest;
- (*s_FunctionList2)["SetMercQuest"] = &CScript::SetMercQuest;
- (*s_FunctionList2)["GetRoleStepNum"] = &CScript::GetRoleStepNum;
- (*s_FunctionList2)["GetParam"] = &CScript::GetParam;
- (*s_FunctionList2)["GetRoleAccParam"] = &CScript::GetRoleAccParam;
- (*s_FunctionList2)["SetRoleAccParam"] = &CScript::SetRoleAccParam;
- (*s_FunctionList2)["AddRoleAccParam"] = &CScript::AddRoleAccParam;
- (*s_FunctionList2)["GetRoleRegionID"] = &CScript::GetRoleRegionID;
- (*s_FunctionList2)["SetRoleRegionID"] = &CScript::SetRoleRegionID;
- (*s_FunctionList2)["GetRoleRegionX"] = &CScript::GetRoleRegionX;
- (*s_FunctionList2)["SetRoleRegionX"] = &CScript::SetRoleRegionX;
- (*s_FunctionList2)["GetRoleRegionY"] = &CScript::GetRoleRegionY;
- (*s_FunctionList2)["SetRoleRegionY"] = &CScript::SetRoleRegionY;
- (*s_FunctionList2)["GetRoleSum"] = &CScript::GetRoleSum;
- (*s_FunctionList2)["GetChapter"] = &CScript::GetChapter;
- (*s_FunctionList2)["SetChapter"] = &CScript::SetChapter;
- (*s_FunctionList2)["AddFinishedRoleRecord"] = &CScript::AddFinishedRoleRecord;
- (*s_FunctionList2)["DelFinishedRoleRecord"] = &CScript::DelFinishedRoleRecord;
- (*s_FunctionList2)["GetRoleFinishedRecord"] = &CScript::GetRoleFinishedRecord;
- (*s_FunctionList2)["GetStepText"] = &CScript::GetStepText;
- (*s_FunctionList2)["GetText"] = &CScript::GetText;
- (*s_FunctionList2)["GetTextType"] = &CScript::GetTextType;
- (*s_FunctionList2)["GetAttributeRoleName"] = &CScript::GetAttributeRoleName;
- (*s_FunctionList2)["GetAttributeBeRecord"] = &CScript::GetAttributeBeRecord;
- (*s_FunctionList2)["GetAttributeRoleType"] = &CScript::GetAttributeRoleType;
- (*s_FunctionList2)["GetAttributeEmbracerNPCID"] = &CScript::GetAttributeEmbracerNPCID;
- (*s_FunctionList2)["GetAttributeShowAble"] = &CScript::GetAttributeShowAble;
- (*s_FunctionList2)["GetAttributeExpRatio"] = &CScript::GetAttributeExpRatio;
- (*s_FunctionList2)["GetAttributeRepeated"] = &CScript::GetAttributeRepeated;
- (*s_FunctionList2)["GetAttributeDeadLost"] = &CScript::GetAttributeDeadLost;
- (*s_FunctionList2)["GetAttributeLostRepeated"] = &CScript::GetAttributeLostRepeated;
- (*s_FunctionList2)["GetAttributeMinGrade"] = &CScript::GetAttributeMinGrade;
- (*s_FunctionList2)["GetAttributeMaxGrade"] = &CScript::GetAttributeMaxGrade;
- (*s_FunctionList2)["GetAttributeOccupationRestrict"] = &CScript::GetAttributeOccupationRestrict;
- (*s_FunctionList2)["GetAttributeEngageArmsRepute"] = &CScript::GetAttributeEngageArmsRepute;
- (*s_FunctionList2)["GetAttributeChapterNum"] = &CScript::GetAttributeChapterNum;
- (*s_FunctionList2)["GetAttributeNextRoleID"] = &CScript::GetAttributeNextRoleID;
- (*s_FunctionList2)["GetLabelPrefix"] = &CScript::GetLabelPrefix;
- (*s_FunctionList2)["GetLabelSum"] = &CScript::GetLabelSum;
- (*s_FunctionList2)["GetAimAMTType"] = &CScript::GetAimAMTType;
- (*s_FunctionList2)["GetAimType"] = &CScript::GetAimType;
- (*s_FunctionList2)["GetAimId"] = &CScript::GetAimId;
- (*s_FunctionList2)["GetAimNum"] = &CScript::GetAimNum;
- (*s_FunctionList2)["GetAimParameIndex"] = &CScript::GetAimParameIndex;
- (*s_FunctionList2)["GetDropFrom"] = &CScript::GetDropFrom;
- (*s_FunctionList2)["GetDropOdds"] = &CScript::GetDropOdds;
- (*s_FunctionList2)["GetAimName"] = &CScript::GetAimName;
- (*s_FunctionList2)["GetPrepareParam"] = &CScript::GetPrepareParam;
- (*s_FunctionList2)["GetStepEncouragementSum"] = &CScript::GetStepEncouragementSum;
- (*s_FunctionList2)["GetQuestEncouragementSum"] = &CScript::GetQuestEncouragementSum;
- (*s_FunctionList2)["GetSetpEncouragementName"] = &CScript::GetSetpEncouragementName;
- (*s_FunctionList2)["GetQuestEncouragementName"] = &CScript::GetQuestEncouragementName;
- (*s_FunctionList2)["GetSetpEncouragementType"] = &CScript::GetSetpEncouragementType;
- (*s_FunctionList2)["GetQuestEncouragementType"] = &CScript::GetQuestEncouragementType;
- (*s_FunctionList2)["GetSetpEncouragementID"] = &CScript::GetSetpEncouragementID;
- (*s_FunctionList2)["GetQuestEncouragementID"] = &CScript::GetQuestEncouragementID;
- (*s_FunctionList2)["GetSetpEncouragementNum"] = &CScript::GetSetpEncouragementNum;
- (*s_FunctionList2)["GetQuestEncouragementNum"] = &CScript::GetQuestEncouragementNum;
- (*s_FunctionList2)["GetStepEncouragementCell"] = &CScript::GetStepEncouragementCell;
- (*s_FunctionList2)["GetQuestEncouragementCell"] = &CScript::GetQuestEncouragementCell;
- (*s_FunctionList2)["GetStepSum"] = &CScript::GetStepSum;
- (*s_FunctionList2)["GetStepAimNum"] = &CScript::GetStepAimNum;
- (*s_FunctionList2)["FindRoleIsInSystem"] = &CScript::FindRoleIsInSystem;
- (*s_FunctionList2)["FindRoleStepIsInSystem"] = &CScript::FindRoleStepIsInSystem;
- (*s_FunctionList2)["ResetMercQuestUpdateTime"] = &CScript::ResetMercQuestUpdateTime;
- (*s_FunctionList2)["AcquireMercQuest"] = &CScript::AcquireMercQuest;
- (*s_FunctionList2)["SendMercQuestToClient"] = &CScript::SendMercQuestToClient;
- (*s_FunctionList2)["OpenMercQuestInterface"] = &CScript::OpenMercQuestInterface;
- (*s_FunctionList2)["GetMercQuestData"] = &CScript::GetMercQuestData;
- (*s_FunctionList2)["SetMercQuestData"] = &CScript::SetMercQuestData;
- (*s_FunctionList2)["GetQuestMassPoint"] = &CScript::GetQuestMassPoint;
- (*s_FunctionList2)["UpdateAllMercQuestList"] = &CScript::ResetAllMercQuestData;
- (*s_FunctionList2)["IsInMercQuestList"] = &CScript::IsInMercQuestList;
- (*s_FunctionList2)["SetMasterQuest"] = &CScript::SetMasterQuest;
- (*s_FunctionList2)["SetRoleProtect"] = &CScript::SetRoleProtect;
- (*s_FunctionList2)["OpenShareQuestInterface"] = &CScript::OpenShareQuestInterface;
- (*s_FunctionList2)["GetTeamCurrQuest"] = &CScript::GetTeamCurrQuest;
- (*s_FunctionList2)["SetTeamCurrQuest"] = &CScript::SetTeamCurrQuest;
- (*s_FunctionList2)["DelTeamShareQuest"] = &CScript::DelTeamShareQuest;
- (*s_FunctionList2)["IsCompleteQuest"] = &CScript::IsCompleteQuest;
- (*s_FunctionList2)["GetQuestOdds"] = &CScript::GetQuestOdds;
- (*s_FunctionList2)["CanAcceptMercQuest"] = &CScript::CanAcceptMercQuest;
- (*s_FunctionList2)["OpenIndexQuestInterface"] = &CScript::OpenIndexQuestInterface;
- (*s_FunctionList2)["SetIndexQuestParamNum"] = &CScript::SetIndexQuestParamNum;
- (*s_FunctionList2)["SetIndexQuestState"] = &CScript::SetIndexQuestState;
- (*s_FunctionList2)["ResetIndexQuest"] = &CScript::ResetIndexQuest;
-
- //-----------------------------------------------------
- //副职业相关函数
- (*s_FunctionList2)["CanCollect"] = &CScript::CanCollect;
- (*s_FunctionList2)["CanCheckCollect"] = &CScript::CanCheckCollect;
- (*s_FunctionList2)["CheckCollect"] = &CScript::CheckCollect;
- (*s_FunctionList2)["LockCollection"] = &CScript::LockCollection;
- (*s_FunctionList2)["OutlockCollection"] = &CScript::OutlockCollection;
- (*s_FunctionList2)["CanFacture"] = &CScript::CanFacture;
- (*s_FunctionList2)["Facture"] = &CScript::Facture;
- (*s_FunctionList2)["FactureSkillStudyBegin"] = &CScript::FactureSkillStudyBegin;
- (*s_FunctionList2)["ClearFactureList"] = &CScript::ClearFactureList;
- (*s_FunctionList2)["AddFacture"] = &CScript::AddFacture;
- (*s_FunctionList2)["DelFacture"] = &CScript::DelFacture;
- (*s_FunctionList2)["FindFacture"] = &CScript::FindFacture;
- (*s_FunctionList2)["GetFactureNeedsLevel"] = &CScript::GetFactureNeedsLevel;
- (*s_FunctionList2)["GetFactureNeedsDOccu"] = &CScript::GetFactureNeedsDOccu;
- (*s_FunctionList2)["UpdateEffect"] = &CScript::UpdateEffect;
- (*s_FunctionList2)["AddFactureExp"] = &CScript::AddFactureExp;
- (*s_FunctionList2)["AddCollectionExp"] = &CScript::AddCollectionExp;
- //-----------------------------------------------------
- //技能状态相关函数
- //1、基本技能相关的函数
- (*s_FunctionList2)["AddState"] = &CScript::AddState;
- (*s_FunctionList2)["AddSkill"] = &CScript::AddSkill;
- (*s_FunctionList2)["DelSkill"] = &CScript::DelSkill;
- (*s_FunctionList2)["SetSkillLevel"] = &CScript::SetSkillLevel;
- (*s_FunctionList2)["GetSkillLevel"] = &CScript::GetSkillLevel;
- (*s_FunctionList2)["CheckStudySkill"] = &CScript::CheckStudySkill;
- (*s_FunctionList2)["GetAllStateNum"] = &CScript::GetAllStateNum;
- (*s_FunctionList2)["DelNewState"] = &CScript::DelNewState;
- (*s_FunctionList2)["DelDeBuff"] = &CScript::DelDeBuff;
- (*s_FunctionList2)["AddStateToShape"] = &CScript::AddStateToShape;
- (*s_FunctionList2)["DelAllBuff"] = &CScript::DelAllBuff;
- (*s_FunctionList2)["Modulus"] = &CScript::Modulus;
-
- //2、技能脚本中用到的函数
-
- (*s_FunctionList2)["AddNewState"] = &CScript::AddNewState;
- (*s_FunctionList2)["RemoverNewState"] = &CScript::RemoverNewState;
- (*s_FunctionList2)["SetMoveShapeAttrEx"] = &CScript::SetMoveShapeAttrEx;
- (*s_FunctionList2)["GetMoveShapeAttrEx"] = &CScript::GetMoveShapeAttrEx;
- (*s_FunctionList2)["ChangeMoveShapeAttrEx"] = &CScript::ChangeMoveShapeAttrEx;
- (*s_FunctionList2)["AddDeBuffToObj"] = &CScript::AddDeBuffToObj;
- (*s_FunctionList2)["ReLiveSkill"] = &CScript::ReLiveSkill;
- (*s_FunctionList2)["SetEventDestObj"] = &CScript::SetEventDestObj;
- (*s_FunctionList2)["GetBaseModuleLv"] = &CScript::GetBaseModuleLv;
- (*s_FunctionList2)["GetDistance"] = &CScript::GetDistance;
- (*s_FunctionList2)["GetPkResult"] = &CScript::GetPkResult;
- (*s_FunctionList2)["GetObjectType"] = &CScript::GetObjectType;
- (*s_FunctionList2)["GetShieldNO"] = &CScript::GetShieldNO;
- (*s_FunctionList2)["SendSkillList"] = &CScript::SendSkillList;
- (*s_FunctionList2)["SetTarget"] = &CScript::SetTarget;
- (*s_FunctionList2)["GetDesEnergyRatio"] = &CScript::GetDesEnergyRatio;
- (*s_FunctionList2)["GetEnergyRatio"] = &CScript::GetEnergyRatio;
- (*s_FunctionList2)["DeductEnergy"] = &CScript::DeductEnergy;
- (*s_FunctionList2)["GetSkillParam"] = &CScript::GetSkillParam;
- (*s_FunctionList2)["GetSkillElement"] = &CScript::GetSkillElement;
- (*s_FunctionList2)["GetSkillUseType"] = &CScript::GetSkillUseType;
- (*s_FunctionList2)["GetStateParamByID"] = &CScript::GetStateParamByID;
- (*s_FunctionList2)["GetStateParamByIndex"] = &CScript::GetStateParamByIndex;
- (*s_FunctionList2)["CheckStateFirer"] = &CScript::CheckStateFirer;
- (*s_FunctionList2)["BeedAttackEvent"] = &CScript::BeedAttackEvent;
- (*s_FunctionList2)["GetSkillLv"] = &CScript::GetSkillLv;
- (*s_FunctionList2)["ReLiveInScript"] = &CScript::ReLiveInScript;
- (*s_FunctionList2)["BeginUseSkill"] = &CScript::BeginUseSkill;
- (*s_FunctionList2)["GetGuidByParam"] = &CScript::GetGuidByParam;
- (*s_FunctionList2)["RunScriptByDest"] = &CScript::RunScriptByDest;
- (*s_FunctionList2)["GetGoodsAddProperty"] = &CScript::GetGoodsAddProperty;
- (*s_FunctionList2)["GetGoodsPlacePos"] = &CScript::GetGoodsPlacePos;
- (*s_FunctionList2)["DelGoodsByPlacePos"] = &CScript::DelGoodsByPlacePos;
- (*s_FunctionList2)["SucceedUseItem"] = &CScript::SucceedUseItem;
- (*s_FunctionList2)["GetActModify"] = &CScript::GetActModify;
- (*s_FunctionList2)["SendUnLockGoodsMsg"] = &CScript::SendUnLockGoodsMsg;
- (*s_FunctionList2)["GetBeneficiaryInfo"] = &CScript::GetBeneficiaryInfo;
- (*s_FunctionList2)["GetKillerInfo"] = &CScript::GetKillerInfo;
- (*s_FunctionList2)["GetModType"] = &CScript::GetModType;
- (*s_FunctionList2)["GetAttackerType"] = &CScript::GetAttackerType;
- (*s_FunctionList2)["GetFunMoHua"] = &CScript::GetFunMoHua;
- (*s_FunctionList2)["GetBModifier"] = &CScript::GetBModifier;
- (*s_FunctionList2)["GetPrevent"] = &CScript::GetPrevent;
- (*s_FunctionList2)["GetPartDamageOut"] = &CScript::GetPartDamageOut;
- (*s_FunctionList2)["OnCostYuanBao"] = &CScript::OnCostYuanBao;
-
-
- //-----------------------------------------------------
- //定义了和客户端交互,客户端可视相关的脚本函数
- (*s_FunctionList2)["AddInfo"] = &CScript::AddInfo;
- (*s_FunctionList2)["AddDestInfo"] = &CScript::AddDestInfo;
- (*s_FunctionList2)["AddInfoByIndex"] = &CScript::AddInfoByIndex;
- (*s_FunctionList2)["GameMessage"] = &CScript::GameMessage;
- (*s_FunctionList2)["TalkBox"] = &CScript::TalkBox;
- (*s_FunctionList2)["PicTalkBox"] = &CScript::PicTalkBox;
- (*s_FunctionLi…
Large files files are truncated, but you can click here to view the full file