登录
×
  • 首页
  • 传奇论坛
  • 传奇版本库
  • 传奇服务端
  • 传奇三端手游
  • 传奇素材网
  • 传奇客户端
  • 引擎登录器
  • 下载排行
  • 获取邀请码
  • 搜索
    传奇素材网
    145374

    [GEE引擎] GEE引擎GOTO,CALL,和非NPC界面使用鼠标点击的脚本使用说明和注意事项。

     火... [复制链接]

    [GEE引擎] GEE引擎GOTO,CALL,和非NPC界面使用鼠标点击的脚本使用说明和注意事项。

     火... [复制链接]
    趣游论坛

    1万

    主题

    204

    回帖

    11万

    积分

    管理员

    积分
    113598

    灌水之王活跃会员突出贡献优秀版主荣誉管理论坛元老

    趣游论坛 2020-12-9 11:19:03 / 显示全部楼层 /阅读模式
    145374
    关于脚本安全相关,部分新手写脚本不严谨,导致游戏脚本被封包利用造成损失,再这里给大家举例说明几个脚本安全相关示例

    首先涉及到GOTO,CALL,和非NPC界面使用鼠标点击的脚本,我们可以利用引擎禁止点击字符进行强化安全,下面我们就使用系统禁止点击触发命令 :PlayDie ,这个命令是挂亡触发命令,引擎文档也提到只要脚本头前缀涉及包含PlayDie 那么不允许点击,这个可以搜索引擎文档进行了解,搜索关键词:为什么提示禁止点击该NPC触发字段   
    20201129123735.png
    风险脚本示例1------------下面----------看讲解为什么是风险----------------------------------

    ;下面是NPC脚本:

    [@main]
    \

    [@正常开始回收]
    #IF
    EQUAL U108 0
    #ACT
    #CALL [\回收元宝系列\装备回收价格.txt] @回收装备正常
    CLOSE
    break

    ;下面....QuestDiary\回收元宝系列\装备回收价格.txt脚本(因为上面NPC脚本已经将脚本CALL到这里了)  
    ;执行条件为  检测 U108变量不等于0则CALL到下面脚本执行
    [@回收装备正常]
    {
    #IF
    check [100] 1
    #ACT
    goto @战狂回收检测A
    #IF
    check [101] 1
    #ACT
    goto @神武回收检测B
    #IF
    check [102] 1
    #ACT
    goto @烈火回收检测C
    break

    ;--下面是上方GOTO执行脚本,
    ;执行条件为  分别检测个人标识100  101  102等于1则GOTO进行执行下面对应脚本


    [@战狂回收检测A]
    #OR
    Checkitem 战狂精铁剑 1
    Checkitem 战狂精铁铠 1
    Checkitem 战狂头盔 1
    Checkitem 战狂项链 1
    Checkitem 战狂手镯 1
    Checkitem 战狂护腕 1
    Checkitem 战狂戒指 1
    Checkitem 战狂指环 1
    Checkitem 战狂腰带 1
    Checkitem 战狂靴子 1
    #ACT
    TakeBagItem 战狂头盔|战狂项链|战狂手镯|战狂护腕|战狂戒指|战狂指环|战狂腰带|战狂靴子 46 20 0 0 38000 N0 1
    TakeBagItem 战狂精铁剑|战狂精铁铠 46 40 0 0 76000 N1 1
    MOV N$回收金额A
    MUL N$回收金额A 20
    MOV N$回收金额B
    MUL N$回收金额B 40
    INC U89
    INC U89
    SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{战狂套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
    break

    [@神武回收检测B]
    #OR
    Checkitem 神武嗜血剑 1
    Checkitem 神武嗜血铠 1
    Checkitem 神武头盔 1
    Checkitem 神武项链 1
    Checkitem 神武手镯 1
    Checkitem 神武护腕 1
    Checkitem 神武戒指 1
    Checkitem 神武指环 1
    Checkitem 神武腰带 1
    Checkitem 神武靴子 1
    #ACT
    TakeBagItem 神武头盔|神武项链|神武手镯|神武护腕|神武戒指|神武指环|神武腰带|神武靴子 46 40 0 0 40000 N0 1
    TakeBagItem 神武嗜血剑|神武嗜血铠 46 80 0 0 80000 N1 1
    MOV N$回收金额A
    MUL N$回收金额A 40
    MOV N$回收金额B
    MUL N$回收金额B 80
    INC U89
    INC U89
    SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{神武套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
    break

    [@烈火回收检测C]
    #OR
    Checkitem 烈火焚天剑 1
    Checkitem 烈火焚天铠 1
    Checkitem 烈火头盔 1
    Checkitem 烈火项链 1
    Checkitem 烈火手镯 1
    Checkitem 烈火护腕 1
    Checkitem 烈火戒指 1
    Checkitem 烈火指环 1
    Checkitem 烈火腰带 1
    Checkitem 烈火靴子 1
    #ACT
    TakeBagItem 烈火头盔|烈火项链|烈火手镯|烈火护腕|烈火戒指|烈火指环|烈火腰带|烈火靴子 46 60 0 0 45000 N0 1
    TakeBagItem 烈火焚天剑|烈火焚天铠 46 120 0 0 90000 N1 1
    MOV N$回收金额A
    MUL N$回收金额A 60
    MOV N$回收金额B
    MUL N$回收金额B 120
    INC U89
    INC U89
    SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{烈火套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
    break
    讲解风险:以上脚本可以使用封包工具直接执行@回收装备正常  @MAIN  和 @战狂回收检测A  @神武回收检测B @烈火回收检测C ,因为这才是整段脚本的核心,前面所做一切检测就是为了这段核心执行脚本所准备,反而到了执行脚本可以忽略前面所做的一切检测,如果在执行脚本or下执行检测好像又不好做,那么我们就可以利用引擎禁用点击字段进行设置,比如上面所说的挂亡触发字段PlayDie,因为这段执行脚本是不需要NPC点击,所以可以使用禁止点击字符来进行规避风险
    下面修正脚本进行讲解,
    风险2.CALL过来的脚本第一个字段是[@回收装备正常] ,再QFunction-0.txt 是有检测U108变量值的,但是封包可以无视NPC脚本中的[@正常开始回收]检测字段,依然可以直接点击@回收装备正常],解决方式有2个,第一个就是把检测U108放入到@回收装备正常]内如下:
    [@回收装备正常]
    {
    #IF
    EQUAL U108 0
    check [100] 1
    #ACT
    goto @战狂回收检测A
    #IF
    EQUAL U108 0
    check [101] 1
    #ACT
    goto @神武回收检测B
    #IF
    EQUAL U108 0
    check [102] 1
    #ACT
    goto @烈火回收检测C
    break

    这样处理就可以了,当时封包依然可以跳过上面的检测直接执行@战狂回收检测A @神武回收检测B @烈火回收检测C,因为这三段脚本都OR检测,所以不好做检测,我们我们可以利用禁止点击字符进行规避风险,因为@回收装备正常 属于引擎内部跳转脚本,也是不需要NPC点击的,所以我们可以使用禁止点击字符来进行规避(关于禁止点击字段,下面讲解)

    讲解那么多现在来说如何正确使用系统禁止点击字段来规避风险,下面脚本演示

    [@main]
    \

    [@正常开始回收]
    #IF
    EQUAL U108 0
    #ACT
    #CALL [\回收元宝系列\装备回收价格.txt] @PlayDie回收装备正常
    CLOSE
    break

    [@PlayDie回收装备正常]
    {

    #IF
    check [100] 1
    #ACT
    goto @PlayDie战狂回收检测A
    #IF
    check [101] 1
    #ACT
    goto @PlayDie神武回收检测B
    #IF
    check [102] 1
    #ACT
    goto @PlayDie烈火回收检测C
    break


    [@PlayDie战狂回收检测A]
    #OR
    Checkitem 战狂精铁剑 1
    Checkitem 战狂精铁铠 1
    Checkitem 战狂头盔 1
    Checkitem 战狂项链 1
    Checkitem 战狂手镯 1
    Checkitem 战狂护腕 1
    Checkitem 战狂戒指 1
    Checkitem 战狂指环 1
    Checkitem 战狂腰带 1
    Checkitem 战狂靴子 1
    #ACT
    TakeBagItem 战狂头盔|战狂项链|战狂手镯|战狂护腕|战狂戒指|战狂指环|战狂腰带|战狂靴子 46 20 0 0 38000 N0 1
    TakeBagItem 战狂精铁剑|战狂精铁铠 46 40 0 0 76000 N1 1
    MOV N$回收金额A
    MUL N$回收金额A 20
    MOV N$回收金额B
    MUL N$回收金额B 40
    INC U89
    INC U89
    SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{战狂套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
    break

    [@PlayDie神武回收检测B]
    #OR
    Checkitem 神武嗜血剑 1
    Checkitem 神武嗜血铠 1
    Checkitem 神武头盔 1
    Checkitem 神武项链 1
    Checkitem 神武手镯 1
    Checkitem 神武护腕 1
    Checkitem 神武戒指 1
    Checkitem 神武指环 1
    Checkitem 神武腰带 1
    Checkitem 神武靴子 1
    #ACT
    TakeBagItem 神武头盔|神武项链|神武手镯|神武护腕|神武戒指|神武指环|神武腰带|神武靴子 46 40 0 0 40000 N0 1
    TakeBagItem 神武嗜血剑|神武嗜血铠 46 80 0 0 80000 N1 1
    MOV N$回收金额A
    MUL N$回收金额A 40
    MOV N$回收金额B
    MUL N$回收金额B 80
    INC U89
    INC U89
    SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{神武套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
    break

    [@PlayDie烈火回收检测C]
    #OR
    Checkitem 烈火焚天剑 1
    Checkitem 烈火焚天铠 1
    Checkitem 烈火头盔 1
    Checkitem 烈火项链 1
    Checkitem 烈火手镯 1
    Checkitem 烈火护腕 1
    Checkitem 烈火戒指 1
    Checkitem 烈火指环 1
    Checkitem 烈火腰带 1
    Checkitem 烈火靴子 1
    #ACT
    TakeBagItem 烈火头盔|烈火项链|烈火手镯|烈火护腕|烈火戒指|烈火指环|烈火腰带|烈火靴子 46 60 0 0 45000 N0 1
    TakeBagItem 烈火焚天剑|烈火焚天铠 46 120 0 0 90000 N1 1
    MOV N$回收金额A
    MUL N$回收金额A 60
    MOV N$回收金额B
    MUL N$回收金额B 120
    INC U89
    INC U89
    SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{烈火套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
    break


    以上脚本为修复脚本,因为脚本前缀包含了系统禁止点击字段PlayDie,那么这脚本只能引擎内部跳转使用,严禁外部点击的,任何脚本字段只要不是靠NPC去点击的都可以使用引擎禁止点击字段作为前缀,当玩家使用封包工具进行点击时候,引擎上会显示日志:      用户:人物名称; NPC:QFunction 禁止点用该NPC触发字段:@playdie回收装备正常!反正只要不是需要鼠标点击的都可以使用禁止点击字符来做脚本头!!!!这样就无视封包工具刷包了,那么需要NPC点击的下面讲解!


    --------------------------------------以上是脚本安全讲解1---------------------------------------------------------------------

    下面讲解最传统的脚本安全,比如一些人写脚本领取金条,
    [@main]

    [@更换]
    #if
    checkgold 1000000
    #act
    GOTO @满足条件

    [@满足条件]
    #if
    #act
    give 金条 1
    break

    上面脚本只是举例, 这样的脚本封包可以直接刷@满足条件 无限领取金条,正确处理方式如下:
    方式1:
    [@main]


    [@更换]
    #if
    checkgold 1000000
    #act
    give 金条 1
    break



    方式2:
    [@main]


    [@更换]
    #if
    checkgold 1000000
    #act
    GOTO @PlayDie满足条件

    [@PlayDie满足条件]
    #if
    #act
    give 金条 1
    break

    方式3:
    [@main]


    [@更换]
    #if
    checkgold 1000000
    #act
    SET [111] 1
    GOTO @满足条件

    [@满足条件]
    #if
    check [111] 1
    #act
    set [111] 0
    give 金条 1
    break

    反正记住一点,检测条件必须和执行段一气呵成,或者使用个人标识进行检测,要么就在检测条件满足后跳转字段前缀比如包含禁止点击字符,如果使用个人标签判断请确定每一段脚本不一致,防止冲突!!!!
    回复

    使用道具 举报

    peijatfuf

    0

    主题

    673

    回帖

    1万

    积分

    注册用户

    积分
    11038
    peijatfuf 2024-9-13 06:25:10 / 显示全部楼层
    回复 支持 反对

    使用道具 举报

    qjwf123

    0

    主题

    86

    回帖

    345

    积分

    注册用户

    积分
    345
    qjwf123 2024-12-17 21:54:40 / 显示全部楼层
    回复 支持 反对

    使用道具 举报

    sbyy001

    0

    主题

    78

    回帖

    137

    积分

    注册用户

    积分
    137
    sbyy001 2025-1-10 21:28:13 / 显示全部楼层
    路过,瞅一瞅
    回复 支持 反对

    使用道具 举报

    155292336

    0

    主题

    96

    回帖

    156

    积分

    注册用户

    积分
    156
    155292336 7 天前 / 显示全部楼层
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫一扫加群沟通交流

    首页 论坛 !mobpost! 最新 我的