战网中国

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: iamiori
打印 上一主题 下一主题

Iori Bot 增加在线升级功能--本贴停止更新

 关闭 [复制链接]

0

主题

1

帖子

54

积分

新手

Rank: 2

积分
54
楼主
发表于 2015-4-1 11:12:54 | 显示全部楼层

关于Act3Sewers的小bug

在用Act3Sewers场景时,总是拿不了箱子。偶不是很懂Javascript,只能靠瞎猜了,请楼主看一下。如果是偶的版本太旧那请无视吧。
主要下面几个问题:
(1)买不了钥匙
NTTownManager.ntl/NTTMGR_TownManager()
当在第三幕时代码去掉了判断买钥匙的条件(_NTTMGR_BuyKey),仅判断了是否维修(_NTTMGR_DoRepair),若需要维修回 Act2 Visit Fara,但Fara不出售钥匙。


(2)有时候找不到箱子
NTCommon.ntl/NTC_GetSpecialChest()
在判断箱子的状态时,有一个判断条件“GetDistance(_chestbox.x, _chestbox.y, me.x, me.y ) < 25”,这个距离25太近了,导致箱子远一点就不去开,改成250就可以了。


(3)找到箱子,但只能开一个箱子
NTAct3Sewers.ntj/NT_Main()
开箱子的代码有问题,原始的代码如下:
_chest = NTC_GetSpecialChest();
if(_chest)
{
if(!NTM_MoveTo(me.areaid, _chest.x+1, _chest.y))
{
NTC_SendMsgToScript(\"NTBotGame.ntj\", \"NTM_MoveTo()\");
return;
}


if(NTConfig_ClearPosition)
NTA_ClearPosition();


NTC_OpenChest(_chest);


NTSI_PickItems();
}



这里明显只开了一个箱子(如果找到箱子的话),可改为do...while...循环:
_chest = NTC_GetSpecialChest();
do{
if(_chest)
{
if(!NTM_MoveTo(me.areaid, _chest.x+1, _chest.y))
{
NTC_SendMsgToScript(\"NTBotGame.ntj\", \"NTM_MoveTo()\");
return;
}


if(NTConfig_ClearPosition)
NTA_ClearPosition();


NTC_OpenChest(_chest);


NTSI_PickItems();
}
_chest = NTC_GetSpecialChest();
}
while(_chest);
实际测试了以下,上面代码似乎可以。


(4)有时候下了2层之后直接退出,这个原因估计是NTMove.ntl/NTM_TakeStair()这个函数的问题,这个出现的概率不高,没什么时间就没看了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|BattleCN ( 陕ICP备05006600号 )

GMT+8, 2024-5-10 23:03 , Processed in 0.370909 second(s), 25 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表