找回密码
 注册/Sign up
搜索
查看: 2561|回复: 2

鲸鱼要的 自动遇敌+步步遇敌+指定地图不可使用判定

[复制链接]

发表于 2022-1-21 02:04:24 | 显示全部楼层 |阅读模式
本帖最后由 ahsin 于 2022-1-21 02:06 编辑

基于ng.lua修改
1、头部添加,或根据此自己二创,dtsl记得别改错
  1. ydmap = {}--遇敌地图表
  2. ydmap[1] = 1000--法兰
  3. ydmap[2] = 1401--竞技场
  4. ydmap[3] = 32724--古典竞技场
  5. dtsl = 3--根据以上,填写真实地图数量
复制代码


2、/1处替换为,或自己二创
  1. if(msg == "/1" or msg == "、1") then--步步遇敌+原地遇敌
  2.                 --print(Char.GetData(player,%对象_地图%))
  3.                 mappd = 1--不可使用地图判定数字
  4.                         for mapc = 1,dtsl do--开始地图判定
  5.                                 if Char.GetData(player,%对象_地图%) == ydmap[mapc] then
  6.                                 mappd = mappd + 1
  7.                                 end
  8.                         end
  9. --print("mappd:"..mappd.."")
  10.                 if mappd ~= 1 then
  11.                 NLG.SystemMessage(player,"当前地图无法使用自动遇敌,已关闭。");
  12.                 Char.SetData(player,%对象_香步数%,0);
  13.                 Char.SetData(player,%对象_香上限%,0);
  14.                 Char.SetLoopEvent(nil,"yd_LoopEvent",player,0)
  15.                 else
  16.                         if Char.GetData(player,%对象_不遇敌开关%) == 1 then
  17.                         NLG.SystemMessage(player,"你正在使用驱魔香水,无法使用步步遇敌");
  18.                         elseif Char.GetData(player,%对象_香步数%) == 0 then
  19.                         Char.SetData(player,%对象_香步数%,999);
  20.                         Char.SetData(player,%对象_香上限%,999);
  21.                         NLG.SystemMessage(player,"步步遇敌+自动遇敌开始了,每10秒尝试一次。");
  22.                         NLG.SystemMessage(player,"注意:如果在地图版边使用可能会掉线。");
  23.                         Char.SetLoopEvent(nil,"yd_LoopEvent",player,10000)
  24.                         --local dir= math.random(0,7);
  25.                         --NLG.SetAction(player,1);
  26.                         --NLG.WalkMove(player,dir);
  27.                         else
  28.                         Char.SetLoopEvent(nil,"yd_LoopEvent",player,nil)
  29.                         Char.SetData(player,%对象_香步数%,0);
  30.                         Char.SetData(player,%对象_香上限%,0);
  31.                         NLG.SystemMessage(player,"步步遇敌+自动遇敌关闭了!");
  32.                         end
  33.                 end
  34.         end
复制代码


3、底部修改yd_loopevent,没有则添加,或自己二创
  1. function yd_LoopEvent(player)--自动遇敌
  2.         --local CdKey = Char.GetData(player,%对象_CDK%)
  3.         local CdKey = Char.GetData(player,%对象_CDK%)
  4.         local Name = Char.GetData(player,%对象_名字%)
  5.         local dir= math.random(1,19);--生成随机动作,0为战立,去除
  6.         local walkmark = Char.GetData(player,%对象_名片开关%)--由于全局变量影响全服步伐统计,遂借用player常量的0和1反馈,来调整步伐方向
  7.                 mappd2 = 1--不可使用地图判定数字
  8.                 for mapc = 1,dtsl do--开始地图判定
  9.                         if Char.GetData(player,%对象_地图%) == ydmap[mapc] then
  10.                         mappd2 = mappd2 + 1
  11.                         end
  12.                 end
  13. --print("mappd2:"..mappd2.."")
  14.         if mappd2 ~= 1 then
  15.                 Char.SetLoopEvent(nil,"yd_LoopEvent",player,0)
  16.                 NLG.SystemMessage(player,"当前地图无法使用自动遇敌,已关闭。");
  17.                 Char.SetData(player,%对象_香步数%,0);
  18.                 Char.SetData(player,%对象_香上限%,0);
  19.         else
  20.                 if Char.GetData(player,%对象_香步数%) == 0 then
  21.                 Char.SetLoopEvent(nil,"yd_LoopEvent",player,nil)
  22.                 else
  23.                         if walkmark == 1 then
  24.                         NLG.SystemMessage(player,"步步遇敌+自动遇敌中,每10秒尝试一次。");
  25.                         NLG.SystemMessage(player,"注意:如果走到地图版边可能会掉线。");
  26.                         --NLG.SetAction(player,3);--走路动作
  27.                         NLG.WalkMove(player,2);--方向2走一步
  28.                         NLG.SetAction(player,dir);--遇敌了,摆个随机pose
  29.                         --walkmark = 2
  30.                         Char.SetData(player,%对象_名片开关%,0)
  31.                         else
  32.                         NLG.SystemMessage(player,"步步遇敌+自动遇敌中,每10秒尝试一次。");
  33.                         NLG.SystemMessage(player,"注意:如果走到地图版边可能会掉线。");
  34.                         --NLG.SetAction(player,3);--走路动作
  35.                         NLG.WalkMove(player,6);--方向6走一步
  36.                         NLG.SetAction(player,dir);--遇敌了,摆个随机pose
  37.                         --walkmark = 1
  38.                         Char.SetData(player,%对象_名片开关%,1)
  39.                         end
  40.                 end
  41.         end
  42. end
复制代码




发表于 2022-1-21 17:54:31 | 显示全部楼层
每步注解的都很详细,感谢分享.
您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2026-6-5 09:11 , Processed in 0.031925 second(s), 2 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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