新手上路
- 淘币
- 0 个
- 贡献币
- 0 次
- 金币
- 14 枚
- 最后登录
- 2022-4-16
|
发表于 2022-3-2 20:30:58
|
显示全部楼层
基础对象死亡报的错。。翻了一下源码。与怪物有关,怪物死亡时的坐标或者有一些任务标记之类的。。
然后有个计时 会报这种的错。。。。。。
简单来说 就是怪物刷新 爆物品 怪物触发方面原因的了。。。
再看了一下 好像与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 [0..7]) 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', [sSTATUS_GOOD, GetTickCount]));
if Integer(BaseObject) = 0 then
Exit;
//1001
if (m_PEnvir.m_MapFlag.nDigItem > 0) and (m_PEnvir.m_MapFlag.pDigItemList nil) then begin
if (m_UseItems[U_WEAPON].wIndex > 0) and (m_UseItems[U_WEAPON].Dura > 0) then begin
StdItem := UserEngine.GetStdItem(m_UseItems[U_WEAPON].wIndex);
if (StdItem nil) and (StdItem.Shape in [75..77]) 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) |
|