在传奇游戏服务器架设过程中,确保游戏安全性和稳定性至关重要。以下是一种有效的方法,用于防止玩家通过点击NPC触发非法字段,从而避免封包调用标签漏洞。
防止客户端非法跳转的脚本标签使用
为了防止客户端通过修改封包数据非法跳转到特定的脚本标签,可以在这些标签前加上特定的前缀@ESP-。这样做可以禁止插件允许其他方式跳转到加前缀的标签。
例如,原本的脚本标签如下:
<点我给物品/@给物品>
Copy
可以修改为:
[@给物品]
#act
call@ESP-设置
Copy
在@ESP-设置标签中,即使玩家尝试通过修改封包数据来跳转,插件也不会允许这样的行为。
引擎内部触发字段的保护
在传奇引擎中,大部分触发字段都不允许玩家通过NPC触发,例如死亡触发@PlayDie,物品触发@StdModeFunc,套装触发@GroupItemOn、@GroupItemOff,魔法触发@MagTagFunc,以及穿脱装备触发@TakeOn、@TakeOff等。
以下是一个示例,说明如何保护这些内部触发字段:
[@PlayDie]
<下一页/@下一页>
[@下一页]
<返回/@PlayDie>
;注意:这里的“@PlayDie”是引擎内部触发字段,不允许玩家通过NPC前往触发。
;任何以“@PlayDie”开头的字段,如“@PlayDie1”、“@PlayDie2”、“@PlayDie死亡”等都将被禁止。
;如果需要使用NPC前往触发,可以进行如下修改,使用`goto`进行跳转。
[@PlayDie]
<下一页/@下一页>
[@下一页]
<返回/@返回>
[@返回]
#ACT
goto@PlayDie
Copy
其他触发字段的保护
除了上述提到的触发字段,还有其他一些触发字段也需要进行类似的保护。例如:
DelayCall5000@再次复活
SendCenterMsg180251还剩余%d发放新手给予.030@GiveNewHumanItem
Copy
在这里,@再次复活和@GiveNewHumanItem也会变成引擎内部触发,不允许玩家通过NPC前往触发。
防客户端非法跳转脚本标签,GOGO、DELAYGOTO等不允许的脚本标签前缀可加@ESP-
如:
<点我给物品/@给物品>\\
[@给物品]
#act
call@ESP-设置
[@ESP-设置]
;加了前缀@ESP-,插件就不会允许其他通过修改封包数据跳转到此标签,其他标签都可以这么使用,但是文字排版不能使用前缀
下面以一个死亡触发为例,不仅仅是死亡触发,引擎的大部分触发都不允许玩家前往NPC触发,
例如:物品触发[@StdModeFunc],套装触发[@GroupItemOn][@GroupItemOff],魔法触发[@MagTagFunc],穿脱装备触发[@TakeOn][@TakeOff]等等,就不一一举例了。
[@PlayDie]
<下一页/@下一页>
[@下一页]
<返回/@PlayDie>
;<返回/@PlayDie>新引擎这里“@PlayDie”是引擎内部触发字段,禁止用户通过NPC前往来触发这个字段
;不仅仅“@PlayDie”不允许“@PlayDie1、@PlayDie2、@PlayDie死亡”等等都不允许,只有前面的字符和“@PlayDie”一样的后面不管增加什么字符都将不允许
;如果非要使用玩家前往NPC触发的,可以把上面的脚本改成如下使用goto转一下
[@PlayDie]
<下一页/@下一页>
[@下一页]
<返回/@返回>
[@返回]
#ACT
goto@PlayDie
还有其他一些触发,也属于这类的,比如:
DelayCall5000@再次复活
SendCenterMsg180251还剩余%d发放新手给予.030@GiveNewHumanItem
“@再次复活”和“@GiveNewHumanItem”就会变成引擎内部触发,也是不允许用使用NPC前往来触发的
还有一些其他脚本命令带字段触发的,就不一一举例了。
防止客户端非法跳转的脚本标签使用
为了防止客户端通过修改封包数据非法跳转到特定的脚本标签,可以在这些标签前加上特定的前缀@ESP-。这样做可以禁止插件允许其他方式跳转到加前缀的标签。
例如,原本的脚本标签如下:
<点我给物品/@给物品>
Copy
可以修改为:
[@给物品]
#act
call@ESP-设置
Copy
在@ESP-设置标签中,即使玩家尝试通过修改封包数据来跳转,插件也不会允许这样的行为。
引擎内部触发字段的保护
在传奇引擎中,大部分触发字段都不允许玩家通过NPC触发,例如死亡触发@PlayDie,物品触发@StdModeFunc,套装触发@GroupItemOn、@GroupItemOff,魔法触发@MagTagFunc,以及穿脱装备触发@TakeOn、@TakeOff等。
以下是一个示例,说明如何保护这些内部触发字段:
[@PlayDie]
<下一页/@下一页>
[@下一页]
<返回/@PlayDie>
;注意:这里的“@PlayDie”是引擎内部触发字段,不允许玩家通过NPC前往触发。
;任何以“@PlayDie”开头的字段,如“@PlayDie1”、“@PlayDie2”、“@PlayDie死亡”等都将被禁止。
;如果需要使用NPC前往触发,可以进行如下修改,使用`goto`进行跳转。
[@PlayDie]
<下一页/@下一页>
[@下一页]
<返回/@返回>
[@返回]
#ACT
goto@PlayDie
Copy
其他触发字段的保护
除了上述提到的触发字段,还有其他一些触发字段也需要进行类似的保护。例如:
DelayCall5000@再次复活
SendCenterMsg180251还剩余%d发放新手给予.030@GiveNewHumanItem
Copy
在这里,@再次复活和@GiveNewHumanItem也会变成引擎内部触发,不允许玩家通过NPC前往触发。
防客户端非法跳转脚本标签,GOGO、DELAYGOTO等不允许的脚本标签前缀可加@ESP-
如:
<点我给物品/@给物品>\\
[@给物品]
#act
call@ESP-设置
[@ESP-设置]
;加了前缀@ESP-,插件就不会允许其他通过修改封包数据跳转到此标签,其他标签都可以这么使用,但是文字排版不能使用前缀
下面以一个死亡触发为例,不仅仅是死亡触发,引擎的大部分触发都不允许玩家前往NPC触发,
例如:物品触发[@StdModeFunc],套装触发[@GroupItemOn][@GroupItemOff],魔法触发[@MagTagFunc],穿脱装备触发[@TakeOn][@TakeOff]等等,就不一一举例了。
[@PlayDie]
<下一页/@下一页>
[@下一页]
<返回/@PlayDie>
;<返回/@PlayDie>新引擎这里“@PlayDie”是引擎内部触发字段,禁止用户通过NPC前往来触发这个字段
;不仅仅“@PlayDie”不允许“@PlayDie1、@PlayDie2、@PlayDie死亡”等等都不允许,只有前面的字符和“@PlayDie”一样的后面不管增加什么字符都将不允许
;如果非要使用玩家前往NPC触发的,可以把上面的脚本改成如下使用goto转一下
[@PlayDie]
<下一页/@下一页>
[@下一页]
<返回/@返回>
[@返回]
#ACT
goto@PlayDie
还有其他一些触发,也属于这类的,比如:
DelayCall5000@再次复活
SendCenterMsg180251还剩余%d发放新手给予.030@GiveNewHumanItem
“@再次复活”和“@GiveNewHumanItem”就会变成引擎内部触发,也是不允许用使用NPC前往来触发的
还有一些其他脚本命令带字段触发的,就不一一举例了。

