本帖最后由 ahsin 于 2022-1-21 02:06 编辑
基于ng.lua修改
1、头部添加,或根据此自己二创,dtsl记得别改错
- ydmap = {}--遇敌地图表
- ydmap[1] = 1000--法兰
- ydmap[2] = 1401--竞技场
- ydmap[3] = 32724--古典竞技场
- dtsl = 3--根据以上,填写真实地图数量
复制代码
2、/1处替换为,或自己二创
- if(msg == "/1" or msg == "、1") then--步步遇敌+原地遇敌
- --print(Char.GetData(player,%对象_地图%))
- mappd = 1--不可使用地图判定数字
- for mapc = 1,dtsl do--开始地图判定
- if Char.GetData(player,%对象_地图%) == ydmap[mapc] then
- mappd = mappd + 1
- end
- end
- --print("mappd:"..mappd.."")
- if mappd ~= 1 then
- NLG.SystemMessage(player,"当前地图无法使用自动遇敌,已关闭。");
- Char.SetData(player,%对象_香步数%,0);
- Char.SetData(player,%对象_香上限%,0);
- Char.SetLoopEvent(nil,"yd_LoopEvent",player,0)
- else
- if Char.GetData(player,%对象_不遇敌开关%) == 1 then
- NLG.SystemMessage(player,"你正在使用驱魔香水,无法使用步步遇敌");
- elseif Char.GetData(player,%对象_香步数%) == 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
- end
复制代码
3、底部修改yd_loopevent,没有则添加,或自己二创
- function yd_LoopEvent(player)--自动遇敌
- --local CdKey = Char.GetData(player,%对象_CDK%)
- local CdKey = Char.GetData(player,%对象_CDK%)
- local Name = Char.GetData(player,%对象_名字%)
- local dir= math.random(1,19);--生成随机动作,0为战立,去除
- local walkmark = Char.GetData(player,%对象_名片开关%)--由于全局变量影响全服步伐统计,遂借用player常量的0和1反馈,来调整步伐方向
- mappd2 = 1--不可使用地图判定数字
- for mapc = 1,dtsl do--开始地图判定
- if Char.GetData(player,%对象_地图%) == ydmap[mapc] then
- mappd2 = mappd2 + 1
- end
- end
- --print("mappd2:"..mappd2.."")
- if mappd2 ~= 1 then
- Char.SetLoopEvent(nil,"yd_LoopEvent",player,0)
- NLG.SystemMessage(player,"当前地图无法使用自动遇敌,已关闭。");
- Char.SetData(player,%对象_香步数%,0);
- Char.SetData(player,%对象_香上限%,0);
- else
- if Char.GetData(player,%对象_香步数%) == 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
- end
复制代码
|