cgmsv引擎论坛

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

[LUA] 原地自动遇敌+步步遇敌

[复制链接]

Rank: 1

发表于 2021-4-24 03:49:14 | 显示全部楼层 |阅读模式
本帖最后由 ahsin 于 2021-4-24 03:51 编辑

原创自制
第一步,ng.lua顶部第一行添加
  1. local walkmark = 1--/1方向统计变量
复制代码


第二步,ng.lua msg中添加(如:/5之后添加)(需要把原先的/1去掉,或者注释掉)
  1. if(msg == "/1" or msg == "、1") then
  2.                 local zizou1 = Char.GetData(player,%对象_香步数%);
  3.                 if Char.GetData(player,%对象_不遇敌开关%) == 1 then
  4.                 NLG.SystemMessage(player,"你正在使用驱魔香水,无法使用步步遇敌");
  5.                 elseif zizou1 == 0 then
  6.                 Char.SetData(player,%对象_香步数%,999);
  7.                 Char.SetData(player,%对象_香上限%,999);
  8.                 NLG.SystemMessage(player,"步步遇敌+自动遇敌开始了,每10秒尝试一次。");
  9.                 NLG.SystemMessage(player,"注意:如果在地图版边使用可能会掉线。");
  10.                 Char.SetLoopEvent(nil,"yd_LoopEvent",player,10000)
  11.                 --local dir= math.random(0,7);
  12.                 --NLG.SetAction(player,1);
  13.                 --NLG.WalkMove(player,dir);
  14.                 else
  15.                 Char.SetLoopEvent(nil,"yd_LoopEvent",player,nil)
  16.                 Char.SetData(player,%对象_香步数%,0);
  17.                 Char.SetData(player,%对象_香上限%,0);
  18.                 NLG.SystemMessage(player,"步步遇敌+自动遇敌关闭了!");
  19.                 end
  20.         end
复制代码


第三步 ng.lua底部最后一行添加
  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 pluskg = Char.GetData(player,%对象_香步数%);
  6.         local pluskg = Char.GetData(player,%对象_香步数%);
  7.         local dir= math.random(1,19);--生成随机动作,0为战力,去除
  8.         if pluskg == 0 then
  9.                 Char.SetLoopEvent(nil,"yd_LoopEvent",player,nil)
  10.         else
  11.                 if walkmark == 1 then
  12.                         NLG.SystemMessage(player,"步步遇敌+自动遇敌中,每10秒尝试一次。");
  13.                         NLG.SystemMessage(player,"注意:如果走到地图版边可能会掉线。");
  14.                         --NLG.SetAction(player,3);--走路动作
  15.                         NLG.WalkMove(player,2);--方向2走一步
  16.                         NLG.SetAction(player,dir);--遇敌了,摆个随机pose
  17.                         walkmark = 2
  18.                 else
  19.                         NLG.SystemMessage(player,"步步遇敌+自动遇敌中,每10秒尝试一次。");
  20.                         NLG.SystemMessage(player,"注意:如果走到地图版边可能会掉线。");
  21.                         --NLG.SetAction(player,3);--走路动作
  22.                         NLG.WalkMove(player,6);--方向6走一步
  23.                         NLG.SetAction(player,dir);--遇敌了,摆个随机pose
  24.                         walkmark = 1
  25.                 end
  26.         end
  27. end
复制代码




补充内容 (2021-5-2 03:32):
由于全局变量bug,导致部分玩家步伐方向会出错

遂请移步12楼查看使用新版代码。已经测试完毕,没有bug了


补充内容 (2022-1-21 02:33):
代码有更新,请前往12楼

补充内容 (2022-3-20 22:32):
补充一个,
所有Char.SetLoopEvent(nil,"yd_LoopEvent",player,nil)
改成Char.SetLoopEvent(nil,"yd_LoopEvent",player,0)

评分

参与人数 1金币 +1 收起 理由
Zack + 1 原创资源贴

查看全部评分

Rank: 1

发表于 2021-4-25 02:45:52 | 显示全部楼层
感谢,分享了那么多。就是能把所有分享的帖子链接都编辑到每帖的1楼吗?论坛不允许查看个人资料

Rank: 1

 楼主| 发表于 2021-4-25 04:46:38 | 显示全部楼层
mark_pc 发表于 2021-4-25 02:45
感谢,分享了那么多。就是能把所有分享的帖子链接都编辑到每帖的1楼吗?论坛不允许查看个人资料 ...

超过一定时间以后,1楼等帖子也不能编辑啦

Rank: 1

发表于 2021-4-25 23:06:51 | 显示全部楼层
ahsin 发表于 2021-4-25 04:46
超过一定时间以后,1楼等帖子也不能编辑啦

我是说不能查看你所有帖子,你的帖子肯定都很有营养

Rank: 1

 楼主| 发表于 2021-4-26 22:10:54 | 显示全部楼层
mark_pc 发表于 2021-4-25 23:06
我是说不能查看你所有帖子,你的帖子肯定都很有营养

不知道z老大是否允许,邮件ahsin@qq.com,如果老大不允许请删除此楼

Rank: 1

发表于 2021-4-27 05:08:15 | 显示全部楼层
ahsin 发表于 2021-4-26 22:10
不知道z老大是否允许,邮件,如果老大不允许请删除此楼

已发邮件,望加好友

Rank: 4

发表于 2021-4-28 20:49:24 | 显示全部楼层
11.png 22.png

可以步步遇敌 但是不会原地自动遇敌 不知道是不是我加错的原因导致的 测试步步遇敌可以 战斗结束后人物不会触发原地遇敌..

Rank: 4

发表于 2021-4-28 21:28:51 | 显示全部楼层
本帖最后由 xman 于 2021-4-28 21:33 编辑

/1 似乎跟你的重复了



他算是想要仿制原地自动遇敌
步步遇敌+来回自己走动

循环的部分可能有问题?
或是人物没成功让他走动?


Rank: 1

 楼主| 发表于 2021-4-28 21:44:28 | 显示全部楼层
°Cayenne.S 发表于 2021-4-28 20:49
可以步步遇敌 但是不会原地自动遇敌 不知道是不是我加错的原因导致的 测试步步遇敌可以 战斗结束后人物不 ...

你代码放置的位置不对
loopevent要添加到最后,不能添加到function msg中

Rank: 1

 楼主| 发表于 2021-4-28 21:45:44 | 显示全部楼层
xman 发表于 2021-4-28 21:28
/1 似乎跟你的重复了

这个代码是替代了/1的功能,所以你需要把老的/1都注释掉,用新的/1
您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2024-11-21 21:47 , Processed in 0.214522 second(s), 12 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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