楼主: kissinger

[巫妖王之怒] 防战场外同IP刷荣誉以及反复杀一个人刷荣誉的脚本

[复制链接]

1278

时沙

3

精华

30

主题

声望: 8343   虚弱: 0

Lv.7(复仇者)

灵蛇献瑞(尚美制作)金兔迎春(尚美制作)吟游牧师炉石信仰战假死猎人今天也只能打恢复的增强萨潜行者积少成多时沙之瓶比格沃斯先生雷施无冕者伊利丹·怒风莉莉安·沃斯划水武僧搓水法爷黑色宝石猎豹

 楼主| 发表于 2022-9-27 14:57:23 | 显示全部楼层

直接用大神的方式,数组 KillTimes[killer:GetGUIDLow()][killed:GetGUIDLow()] 貌似不会正确计算第二个参数killed:GetGUIDLow(),我用下面做了2个local参数后才能正常通过,不知道这是什么LUA脚本限制,大神可以指点下原因么?这个问题我已经碰到无数次坑了。


                local sGUID = killer:GetGUIDLow()
                local dGUID = killed:GetGUIDLow()
                KillTimes[sGUID] = KillTimes[sGUID] or {}
                KillTimes[sGUID][dGUID] = KillTimes[sGUID][dGUID] or 0               
[发帖际遇]: kissinger不小心把昂贵物品放入公会仓库,得到了1 声望. 幸运榜 / 衰神榜
回复

使用道具 举报

3402

时沙

62

精华

158

主题

声望: 48774   虚弱: 0

管理员

🔶收集癖,你懂的🔶

万神殿uiwow(lulus制)信仰战假死猎人今天也只能打恢复的增强萨跑路骑士吟游牧师孝顺骑士潜行者登山猎手划水武僧搓水法爷卖糖术神圣光永恒炉石祖国万岁!!积少成多奥的灰烬时沙之瓶炉石天马比格沃斯先生无敌的缰绳黑色宝石猎豹脚男奔波尔菠萝雷施小咕无冕者希尔瓦娜斯·风行者伊利丹·怒风泰兰德·语风莉莉安·沃斯泰坦之握荣耀属于联盟!为了部落!银色北伐军瓦兰纳尔·远古王者之锤金鸡报晓Doge哼哼(lulus制作)金鼠(ytfirefox制作) 犇向牛年(尚美制作)福虎贺岁(尚美制作)金兔迎春(尚美制作)祥龙贺岁(尚美制作)灵蛇献瑞(尚美制作)烈焰星驰(尚美制作)

发表于 2022-9-27 19:12:41 | 显示全部楼层
kissinger 发表于 2022-9-27 14:57
直接用大神的方式,数组 KillTimes[killer:GetGUIDLow()][killed:GetGUIDLow()] 貌似不会正确计算第二个 ...

正常那样写应该没问题(当然我没试验过), 之前是根据你写的顺手写的几行,没测试过
你现在这样写就挺好了, 可以减少GetGUIDLow()调用次数, 如果要多次调用就这样写就行了
因工作繁忙,只在晚上处理论坛事务.
回复

使用道具 举报

73

时沙

0

精华

2

主题

声望: 196   虚弱: 1

Lv.2(潜行者)

假死猎人

发表于 2022-10-3 13:00:36 | 显示全部楼层
感谢分享,收藏了!!!
回复

使用道具 举报

136

时沙

0

精华

9

主题

声望: 885   虚弱: 0

Lv.4(锻造者)

炉石吟游牧师

发表于 2023-5-15 15:26:38 | 显示全部楼层
kissinger 发表于 2022-9-27 00:44
更新好了,这个代码更加高效且精准

感谢分享,先收藏了!这个是lua脚本吗?
回复

使用道具 举报

85

时沙

0

精华

3

主题

声望: 117   虚弱: 0

Lv.2(潜行者)

炉石

发表于 2023-6-1 12:39:49 | 显示全部楼层
感谢分享 学习了
回复

使用道具 举报

136

时沙

0

精华

9

主题

声望: 885   虚弱: 0

Lv.4(锻造者)

炉石吟游牧师

发表于 2024-3-26 03:55:23 | 显示全部楼层
大佬,这个LUA能不能加入一个冬拥湖的判断,因为冬拥湖也是战场,然后再里面杀同一个也被递减了。战场倒是没有问题!
[发帖际遇]: 53095370在燃烧军团入侵时挺身而出,不幸战死,获得1 声望. 幸运榜 / 衰神榜
回复

使用道具 举报

1278

时沙

3

精华

30

主题

声望: 8343   虚弱: 0

Lv.7(复仇者)

灵蛇献瑞(尚美制作)金兔迎春(尚美制作)吟游牧师炉石信仰战假死猎人今天也只能打恢复的增强萨潜行者积少成多时沙之瓶比格沃斯先生雷施无冕者伊利丹·怒风莉莉安·沃斯划水武僧搓水法爷黑色宝石猎豹

 楼主| 发表于 2024-3-26 18:35:08 | 显示全部楼层
53095370 发表于 2024-3-26 03:55
大佬,这个LUA能不能加入一个冬拥湖的判断,因为冬拥湖也是战场,然后再里面杀同一个也被递减了。战场倒是 ...

自己加个地图判定,如果地图id是冬拥湖,直接return. 不过这样可以在里面反复杀自己刷么?
回复

使用道具 举报

136

时沙

0

精华

9

主题

声望: 885   虚弱: 0

Lv.4(锻造者)

炉石吟游牧师

发表于 2024-3-26 19:34:37 | 显示全部楼层
本帖最后由 53095370 于 2024-3-26 19:36 编辑
kissinger 发表于 2024-3-26 18:35
自己加个地图判定,如果地图id是冬拥湖,直接return. 不过这样可以在里面反复杀自己刷么?
...

有点道理。。。。。。确实这点忽略了。如果玩家在冬拥湖互刷这个使不得
回复

使用道具 举报

321

时沙

0

精华

0

主题

声望: 167   虚弱: 3

Lv.2(潜行者)

发表于 2024-3-30 01:12:53 | 显示全部楼层
要将KillTimes修改为动态的二维数组,可以使用一个表来存储每个session对应的次数。修改代码如下:
  1. print(">>Script: Delete kill self RongYu.")
  2. local KillTimes = { }
  3. local function DelRongYu(event, killer, killed)
  4.     if killer:InBattleground() then    --战场不扣除荣誉
  5.         return false
  6.     end
  7.     if killed:HasAura(2479) then --有荣誉30秒的CD光环,不扣荣誉
  8.         return false
  9.     end
  10.     if killer:GetPlayerIP() == killed:GetPlayerIP() then
  11.         if(killer:IsHonorOrXPTarget(killed)) then
  12.             killer:ModifyHonorPoints(-109)
  13.             killer:SendBroadcastMessage("同IP击杀不得荣誉")
  14.             return false
  15.         end
  16.     end
  17.     if killer:IsHonorOrXPTarget(killed) then
  18.         local session = killer:GetGUIDLow() * 65536 + killed:GetGUIDLow()
  19.         if  KillTimes[session] == nil then
  20.             KillTimes[session] = 1
  21.         else
  22.             KillTimes[session] = KillTimes[session] + 1
  23.         end
  24.         if KillTimes[session] > 2 then
  25.             killer:ModifyHonorPoints(-109)
  26.             killer:SendBroadcastMessage("战场外击杀同一个对象2次以上不得荣誉。")
  27.         end
  28.         return false
  29.     end
  30. end
  31. RegisterPlayerEvent(6, DelRongYu)
复制代码

另外,对于KillTimes[session] == nil的判断,可以使用逻辑运算符or来简化判断和赋值的过程,如下:
  1. KillTimes[session] = KillTimes[session] or 1
复制代码

这行代码相当于判断KillTimes[session]是否为nil,如果是nil,则将其赋值为1,否则不做任何操作。这样能够更加简洁和方便地实现赋值操作。
回复

使用道具 举报

1278

时沙

3

精华

30

主题

声望: 8343   虚弱: 0

Lv.7(复仇者)

灵蛇献瑞(尚美制作)金兔迎春(尚美制作)吟游牧师炉石信仰战假死猎人今天也只能打恢复的增强萨潜行者积少成多时沙之瓶比格沃斯先生雷施无冕者伊利丹·怒风莉莉安·沃斯划水武僧搓水法爷黑色宝石猎豹

 楼主| 发表于 2024-3-30 08:19:51 | 显示全部楼层
8444880 发表于 2024-3-30 01:12
要将KillTimes修改为动态的二维数组,可以使用一个表来存储每个session对应的次数。修改代码如下:

另外, ...

下面若干楼有我完整版修复,第一楼只是个求组贴
回复

使用道具 举报

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