由于全局变量会导致全体玩家步伐方向统计错误,遂请各位删除老的代码。
接下来是新代码
1、删除老代码,头部声明去除(未参考1楼代码的,跳过此步)
- --去除此行local walkmark = 1--/1方向统计变量
复制代码
2、ng.lua中,内挂部分,把老的/1全部注释或者删除,然后替换新的/1如下
- if(msg == "/1" or msg == "、1") then
- local zizou1 = Char.GetData(player,%对象_香步数%);
- if Char.GetData(player,%对象_不遇敌开关%) == 1 then
- NLG.SystemMessage(player,"你正在使用驱魔香水,无法使用步步遇敌");
- elseif zizou1 == 0 then
- Char.SetData(player,%对象_香步数%,999);
- Char.SetData(player,%对象_香上限%,999);
- NLG.SystemMessage(player,"步步遇敌+自动遇敌开始了,每10秒尝试一次。");
- NLG.SystemMessage(player,"注意:如果在地图版边使用可能会掉线。");
- Char.SetLoopEvent(nil,"yd_LoopEvent",player,10000)
- --local dir= math.random(0,7);
- --NLG.SetAction(player,1);
- --NLG.WalkMove(player,dir);
- else
- Char.SetLoopEvent(nil,"yd_LoopEvent",player,nil)
- Char.SetData(player,%对象_香步数%,0);
- Char.SetData(player,%对象_香上限%,0);
- NLG.SystemMessage(player,"步步遇敌+自动遇敌关闭了!");
- end
- end
复制代码
3、ng.lua底部,老的代码注释或删除(未参考过1楼代码的,跳过此步)
- function yd_LoopEvent(player)
- --local CdKey = Char.GetData(player,%对象_CDK%)
- local CdKey = Char.GetData(player,%对象_CDK%)
- local Name = Char.GetData(player,%对象_名字%)
- --local pluskg = Char.GetData(player,%对象_香步数%);
- local pluskg = Char.GetData(player,%对象_香步数%);
- local dir= math.random(1,19);--生成随机动作,0为战力,去除
- if pluskg == 0 then
- Char.SetLoopEvent(nil,"yd_LoopEvent",player,nil)
- else
- if walkmark == 1 then
- NLG.SystemMessage(player,"步步遇敌+自动遇敌中,每10秒尝试一次。");
- NLG.SystemMessage(player,"注意:如果走到地图版边可能会掉线。");
- --NLG.SetAction(player,3);--走路动作
- NLG.WalkMove(player,2);--方向2走一步
- NLG.SetAction(player,dir);--遇敌了,摆个随机pose
- walkmark = 2
- else
- NLG.SystemMessage(player,"步步遇敌+自动遇敌中,每10秒尝试一次。");
- NLG.SystemMessage(player,"注意:如果走到地图版边可能会掉线。");
- --NLG.SetAction(player,3);--走路动作
- NLG.WalkMove(player,6);--方向6走一步
- NLG.SetAction(player,dir);--遇敌了,摆个随机pose
- walkmark = 1
- end
- end
- end
复制代码
4、ng.lua底部最后一行添加
- function yd_LoopEvent(player)
- --local CdKey = Char.GetData(player,%对象_CDK%)
- local CdKey = Char.GetData(player,%对象_CDK%)
- local Name = Char.GetData(player,%对象_名字%)
- --local pluskg = Char.GetData(player,%对象_香步数%);
- local pluskg = Char.GetData(player,%对象_香步数%);
- local dir= math.random(1,19);--生成随机动作,0为战立,去除
- local walkmark = Char.GetData(player,%对象_名片开关%)--由于全局变量影响全服步伐统计,遂借用player常量的0和1反馈,来调整步伐方向
- if pluskg == 0 then
- Char.SetLoopEvent(nil,"yd_LoopEvent",player,nil)
- else
- if walkmark == 1 then
- NLG.SystemMessage(player,"步步遇敌+自动遇敌中,每10秒尝试一次。");
- NLG.SystemMessage(player,"注意:如果走到地图版边可能会掉线。");
- --NLG.SetAction(player,3);--走路动作
- NLG.WalkMove(player,2);--方向2走一步
- NLG.SetAction(player,dir);--遇敌了,摆个随机pose
- --walkmark = 2
- Char.SetData(player,%对象_名片开关%,0)
- else
- NLG.SystemMessage(player,"步步遇敌+自动遇敌中,每10秒尝试一次。");
- NLG.SystemMessage(player,"注意:如果走到地图版边可能会掉线。");
- --NLG.SetAction(player,3);--走路动作
- NLG.WalkMove(player,6);--方向6走一步
- NLG.SetAction(player,dir);--遇敌了,摆个随机pose
- --walkmark = 1
- Char.SetData(player,%对象_名片开关%,1)
- end
- end
- end
复制代码
补充内容 (2022-3-20 22:35):
补充一个,
所有Char.SetLoopEvent(nil,"yd_LoopEvent",player,nil)
改成Char.SetLoopEvent(nil,"yd_LoopEvent",player,0) |