主要文件M2Share
if @Engine_SetScriptConditionCmd <> nil then begin
nCMDCode := Engine_SetScriptConditionCmd(PChar(sCmd));
goto L001;
end;
if @Engine_SetScriptActionCmd <> nil then begin
nCMDCode := Engine_SetScriptActionCmd(PChar(sCmd));
goto L001;
end;
{$IFDEF DEBUG} 市场系统 测试
VEROWNER几种版本拥有者
{$IF VEROWNER = WL} WinLi 仓库开锁 用于自己测试吧?
if not CompareIPaddr(m_sIPaddr, sIPaddr) then begin
SysMsg(sCheckIPaddrFail, c_Red, t_Hint);
m_boEmergencyClose := True;
end;
{$IF VEROWNER = WL}
if not CompareIPaddr(m_sIPaddr, sIPaddr) then begin
SysMsg(sCheckIPaddrFail, c_Red, t_Hint);
m_boEmergencyClose := True;
end;
{$IFEND}
$IFDEF TEST } 测试 TBaseObject.ReAliveEx
{$IF DBTYPE = BDE} 数据库类型
{$IF CUSTOMBUILD = 0} 1 装备类型?
{$IF USEWLSDK = 1} 注册类型1
{$ELSEIF USEWLSDK = 2}注册类型2
{$IFEND USEWLSDK}使用了wl注册
{$IF INTERSERVER = 1} m2 4900
{$IF DBSOCKETMODE = TIMERENGINE} DB是否为Timer连接 否则多线程
{$IF IDSOCKETMODE = THREADENGINE} ID是否为多线程 否者为 普通连接
{$IF IDSOCKETMODE = TIMERENGINE}ID是否为Timer连接
{$IF USERENGINEMODE = THREADENGINE} 用户引擎是否为多线程 否者普通连接
{$IF SoftVersion <> VERDEMO} demo模式 加载M2ServerDLL boRemoteOpenGateSocket := True;
并开启TRunSocket.DemoRun 演示版本不保存配置 很多功能都不能用
{$IF (SoftVersion = VERPRO) or (SoftVersion = VERENT)} 开启能量模式
objbase.pas 以下
IdSrvClient以下
//{$IF (DEBUG = 0) and (SoftVersion <> VERDEMO)}
// if IsDebuggerPresent then
// Application.Terminate;
//{$IFEND}
{$IF SoftVersion = VERENT}
dwRequestVersion: 98;
{$ELSE}//用于DLL sdk.pas中已经注释
dwRequestVersion: RequestVersion;
{$IFEND}
演示版无法保存配置
{$IF V_TEST = 1} 测试模式 1(限制10人) 2(彻底免费) TUserEngine.GetPlayObjectNotGhost TUserEngine.GetPlayObjectCS_Name TUserEngine.KickPlayer GetPlayObjectCS_IDName TUserEngine.GetMapOfRangeHumanCount KickOnlineUser TUserEngine.GetMapHuman
TUserEngine.GetMapRageHuman
///////////////////////////////////////////////////////////////////////////////
// 一些内置功能无法使用 因为必须加载dll里的函数
//使用插件函数 没有插件可用 将导致游戏内错误 比如无法移动等等
grobl2.pas
procedure TUserEngine.Execute;
begin
{$IF USEPLUGFUNC = 1}
if (nEngRemoteRun >= 0) and Assigned(PlugProcArray[nEngRemoteRun].nProcAddr) then
TClassProc(PlugProcArray[nEngRemoteRun].nProcAddr)(self);
{$ELSE}
Run();
{$IFEND USEPLUGFUNC}
end;
{$IF USEPLUGFUNC = 1}TUserEngine.Execute GetNextDirection GetGoldShape是否使用插件的函数
//////////////////////////////////////////////////////////////////////////////////////////////
PLUGINLIST 开启dll列表文件
OPENTOPLEN m2设置界面top+此设置长度
MAXMAGICLV 魔法最高等级 客户端使用 localdb.pas 已注释
DEBUG LSShare.pas(账号)
objbase.pas
{$IF DEBUG = 1}
if g_sPosionType[nType] <> '' then
SysMsg(Format(g_sPosionType[nType], [nTime]), c_Red, t_Hint);
{$ELSE}
SysMsg(sYouPoisoned, c_Red, t_Hint);
{$IFEND}
CHECKNEWMSG 开启新功能提示 1046 1056
{$IF USEHASHLIST = 1} 是否使用HASHLIST(散列提高速度)
{$IF USECODE = USEREMOTECODE} 配置文件是否远程加密?Encode6BitBuf
DBserver ->HumDB_sql用来加密 EngineAPI也要输出此函数
{$IF CUSTOM_VERSION = VERENT} 无限制否者其他计月 //客户版本
{$IF CUSTOM_VERSION = VERENT}
sVerInfo = '授权信息: 程序版本: V5.06 无限版';
{$ELSE}
sVerInfo = '授权信息: 程序版本: V5.06 计月版';
{$IFEND}
{$IF EXPIPLOCAL=1} 显IP插件
{$IF VER_ClientType_45} 45版本(可能是老版本) objbase.pas m_nSoftVersionDateEx objnpc.pas grobal2.pas
{$IF CATEXCEPTION = TRYEXCEPTION} UsrEngn 处理异常 PlayObject.RunNotice();
{$IF PROCESSMONSTMODE = OLDMONSTERMODE} UsrEngn 开启怪物老版模式
{$IF VER_PATHMAP = 1} 开启寻路 0直接加载header
{$IF HIGHHP} 高血量版
{$IF SERIESSKILL}连击
{$IF OEMVER = OEM775}
TLevelInfo = record
等级属性775模式
{$IF DEATHWALKING = 0} 1 死亡英雄还能走动? 还是幽灵?
{$IF DEBUGTEST = 1} 英雄测试 能量100 默认0
{$IF NewVisibleEvent = 1} 新的事件?
if (m_boAngryRing or m_boNoDropUseItem)
{$IF CustomBuild = 1}
and ((m_ExpHitter <> nil) and not m_ExpHitter.m_boUnAngryRing)
{$IFEND} then
Exit;
{$IF DEMOCLIENT = 1} 演示客户端
{$IF DEMOCLIENT = 1}SM_CHANGELIGHT
nClientKey: 6534;
{$ELSE}
nClientKey: 500;
{$IFEND}
CLIENTFLAG无用
{$IF ReleaseVersion = VERPRO}//颜色
sMemoLogFontColor: 'clWindowText';
sMemoLogColor: 'clWindow';
{$ELSE}
sMemoLogFontColor: 'clLime';
sMemoLogColor: 'clWindowText ';
{$IFEND}
SIZEOFTHUMAN = {$IF V_DIGITEM}
发表评论