传奇沙城主奖励脚本漏洞分析与修复

来源: 作者: 点击:

在传奇私人服务器中,沙城主奖励是玩家们非常关注的部分。然而,有时候脚本中可能存在漏洞,导致沙城主可以无限领取奖励。本文将分析一个常见的脚本漏洞,并提供修复方法。

问题描述: 在传奇私人服务器中,沙城主奖励脚本存在一个漏洞,使得沙城主可以无限领取老区的奖励。问题出在变量使用上,脚本在检测到G211变量为1时允许领取奖励,但在领取奖励后没有正确修改G211或G212变量的值。

漏洞分析:

脚本中使用了G211和G212两个变量来控制奖励的领取。
当G211变量为1时,沙城主可以领取奖励,但领取后脚本错误地减去了G212变量的值,而不是G211。
由于G211变量没有被修改,沙城主可以重复领取奖励。
修复方法: 为了修复这个漏洞,我们需要确保在沙城主领取奖励后,相应的变量被正确修改。以下是修复后的脚本:

[@lqc1]
#if
EQUAL g211 0
#ACT
goto @wb
#if
equal g211 1
#act
goto @yd

[@yd]
#if
HOUR 22 22
MIN 1 59
ISCASTLEMASTER
#act
give 城主之刃 2
give 城主战甲(男) 1
give 城主战甲(女) 1
give 1.8倍坠 1
give 秒杀一切㊣盾 1
give 秒杀一切㊣盔 1
give 秒杀一切㊣镯 2
give 秒杀一切㊣戒 2
give 秒杀一切㊣靴 1
give 秒杀一切㊣带 1
give 秒杀一切㊣石 1
give 秒杀一切㊣链 1
give 绝对防御甲 1
give 无敌秒杀刃 1
GameGold + 8000
DEC g211 1
sendmsg 0 沙城主%s,已经成功领取攻城奖励!
sendmsg 0 沙城主%s,已经成功领取攻城奖励!
sendmsg 0 沙城主%s,已经成功领取攻城奖励!
sendmsg 0 沙城主%s,已经成功领取攻城奖励!
#elseact
messagebox 您不是沙巴克城主,或者已经超过了时间.请在晚上10点到11点之间来找我.

[@wb]
#act
messagebox 沙城主奖励已经发放完毕.
break
Copy
修复说明:

我们将G212变量的修改改为了G211变量的修改,确保在领取奖励后,G211变量的值被减少,防止沙城主重复领取奖励。
请确保所有的变量名都是正确的,并且在整个脚本中保持一致。