各位大佬帮助看看有个报错是哪里的问题!
GOM引擎上服务器以后突然出现的这段代码!
搞不懂是哪里的问题,哀求指教!
TBaseObject:ie 3 CheckCode:1001 重启下服务器试试,如果以前没有报过那么基本就是这个问题。 基础对象死亡报的错。。翻了一下源码。与怪物有关,怪物死亡时的坐标或者有一些任务标记之类的。。
然后有个计时 会报这种的错。。。。。。
简单来说 就是怪物刷新 爆物品 怪物触发方面原因的了。。。
再看了一下 好像与wa取怪物身上的物品有关的样子啊。。。。。。。。。。汗
复制一段源码你看看吧。。。。。。。。。。。。。
<ol>function TPlayObject.ClientGetButchItem(BaseObject: TBaseObject; nX, nY: Integer; btDir: Byte; var dwDelayTime: LongWord): Boolean;
var
x, y, n10, n14, nBL: Integer;
dwCheckTime : LongWord;
StdItem : pTStdItem;
resourcestring
sHintMsg = '你身上灵符不足%d个,不能挖取%s身上的物品';
begin
Result := False;
if not (btDir in ) then Exit;
if m_StallMgr.OnSale then Exit;
if m_boDeath or m_boGhost then Exit;
dwDelayTime := 0;
if not g_Config.boSpeedHackCheck then begin
dwCheckTime := GetTickCount - m_dwTurnTick;
if dwCheckTime < _MAX(150, g_Config.dwTurnIntervalTime - 150) then begin
dwDelayTime := _MAX(150, g_Config.dwTurnIntervalTime - 150) - dwCheckTime;
Exit;
end;
m_dwTurnTick := GetTickCount;
end;
SendSocket(nil, Format('%s/%d', ));
if Integer(BaseObject) = 0 then
Exit;
//1001
if (m_PEnvir.m_MapFlag.nDigItem > 0) and (m_PEnvir.m_MapFlag.pDigItemListnil) then begin
if (m_UseItems.wIndex > 0) and (m_UseItems.Dura > 0) then begin
StdItem := UserEngine.GetStdItem(m_UseItems.wIndex);
if (StdItemnil) and (StdItem.Shape in ) and (m_DetectItem.MakeIndex > 0) then begin //品质
//if GetItemSpiritQuality(@m_DetectItem) > 0 then begin
m_btDirection := btDir;
if GetFrontPosition(x, y) and m_PEnvir.CanWalk(x, y, False) then begin
if PileEarth(x, y, StdItem.Shape, Integer(BaseObject)) then begin
SendSocket(nil, '+DIG');
end;
Dec(m_nHealthTick, 30);
Dec(m_nSpellTick, 50);
m_nSpellTick := _MAX(0, m_nSpellTick);
Dec(m_nPerHealth, 2);
Dec(m_nPerSpell, 2);
Exit;
//end;
end;
end;
end;
end;
if (abs(nX - m_nCurrX) PAI哥威武,直接从源代码找到问题的根源。
页:
[1]