传奇部落

M2引擎提示Npc:QFunction禁止点击该NPC触发字段处理方法

[复制链接]
发表于 2022-11-27 17:07:32 | 显示全部楼层 |阅读模式
传奇GOM引擎关于脚本安全相关,部分新手写脚本不严谨,导致游戏脚本被封包利用造成损失,再这里给大家举例说明几个脚本安全相关示例
' ]' r* Q2 c$ M/ f% f; x3 H# j2 Q/ A- R% S1 N; O( q9 `7 ?
首先涉及到GOTO,CALL,和非NPC界面使用鼠标点击的脚本,我们可以利用引擎禁止点击字符进行强化安全,下面我们就使用系统禁止点击触发命令 :PlayDie ,这个命令是死亡触发命令,引擎文档也提到只要脚本头前缀涉及包含PlayDie 那么不允许点击,这个可以搜索引擎文档进行了解,搜索关键词:为什么提示禁止点击该NPC触发字段
/ [# d, j$ j% ?4 q4 O' A. M. Z0 @& D. d& }
QQ截图20221127170252.jpg
/ C4 L' J7 H* x0 C' B) |/ b3 R7 U1 {5 [3 H: m
' Y" z1 Z8 V9 P+ s7 Z1 G* p) P
风险脚本示例1------------下面----------看讲解为什么是风险----------------------------------2 X& _' J! k- j1 A
;下面是NPC脚本:
9 N3 r- F3 P" M/ a* w8 v[@main]
6 r6 Y; M" n1 d\5 r: w1 |$ h3 j* Z0 z7 W: ]1 `) W
[@正常开始回收]% Z! y7 N6 p2 X8 p# R* R
#IF
; F; p& v5 m/ e' l- f5 Q2 zEQUAL U108 0
. z' M/ Q/ G% m#ACT* }1 h* u$ `" Y! Z+ |
#CALL [\回收元宝系列\装备回收价格.txt] @回收装备正常. c' F9 |; c! r
CLOSE
$ U: K. n7 t/ @# tbreak
+ D# ^5 i3 m  _) j- r;下面....QuestDiary\回收元宝系列\装备回收价格.txt脚本(因为上面NPC脚本已经将脚本CALL到这里了)
% M, Z0 p( B9 U8 r" ?9 j1 ~( [;执行条件为  检测 U108变量不等于0则CALL到下面脚本执行, h! I* g/ C0 C4 j5 Z4 n: b
[@回收装备正常]
4 M, j( {# w  S$ t% t{1 v/ F% C) R; ]! l8 E6 O3 [2 y
#IF
6 I8 p" w$ S( D7 l$ mcheck [100] 17 R. v7 h4 z5 b8 Z2 l3 X* ~
#ACT
# X* w% h. q9 J: Q1 I/ `" X3 Agoto @战狂回收检测A% t& b6 n5 M9 E; E2 z
#IF
$ R9 V7 H& O! c5 O/ a. h$ acheck [101] 1
& `" ]# {# D3 ]8 D' w#ACT
  h1 Y8 v8 R4 d) @5 J# fgoto @神武回收检测B
8 J/ r! x( H8 k6 U8 H#IF3 B* O7 a  b2 z
check [102] 15 [+ m; t, v* a2 Z
#ACT
2 l- a+ H: K, j) l$ [  m" qgoto @烈火回收检测C
+ t3 o( e4 }) E$ v, Ebreak
! ^$ y6 N( R3 F+ R;--下面是上方GOTO执行脚本,
! C6 ~; r# |! m3 ~4 w;执行条件为  分别检测个人标识100  101  102等于1则GOTO进行执行下面对应脚本
2 s$ I# o' K6 Q" E0 L" N[@战狂回收检测A]
9 ?* }$ \; ?; R: x7 W2 a* J#OR
3 ^/ b# [* \& t' P5 E7 ^* UCheckitem 战狂精铁剑 1/ F. n! W- v" `4 x" Y
Checkitem 战狂精铁铠 1
7 a2 k& [& @& j" h; o0 Q( DCheckitem 战狂头盔 1
7 @! J/ d4 z, Q" z# P5 JCheckitem 战狂项链 16 {8 Y0 `, p  o
Checkitem 战狂手镯 1) b" r& k! J9 i# D% t: V5 d2 C
Checkitem 战狂护腕 1
2 v' k7 i& _9 ]- w  e: \0 iCheckitem 战狂戒指 1* S2 |$ V' z( Z% l0 l% c4 G! b7 T
Checkitem 战狂指环 1
) @7 [! r# I2 D/ r% Z2 f- WCheckitem 战狂腰带 1
8 Q: B! Q/ K# M0 [/ k: n# vCheckitem 战狂靴子 1' p4 \2 `, u9 Q1 |) N6 Z
#ACT5 f( I( B) J  e
TakeBagItem 战狂头盔|战狂项链|战狂手镯|战狂护腕|战狂戒指|战狂指环|战狂腰带|战狂靴子 46 20 0 0 38000 N0 12 i2 h* Y, b; O( m5 A! W
TakeBagItem 战狂精铁剑|战狂精铁铠 46 40 0 0 76000 N1 1  A3 g# |4 j( I. l
MOV N$回收金额A
# s# y7 z& p7 L! p; EMUL N$回收金额A 200 \& W9 N+ w3 \9 z% X
MOV N$回收金额B$ e" ]5 h7 h( q! p( o7 F- x' Z1 B: Y7 \
MUL N$回收金额B 40
  f. X8 L, D) r; K, m" ?" sINC U891 h; b0 u; t3 ]' T; u. o
INC U891 Z& Y/ b0 N/ `- U7 O2 A
SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{战狂套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
  j, a/ e5 N9 f: w% _5 Hbreak
/ M+ [$ v: W4 z5 F  O, u4 @[@神武回收检测B]
) U1 h9 ]! |& v5 `* p( {#OR+ O7 R3 E4 J4 Q. j$ R( C+ R
Checkitem 神武嗜血剑 1* K( I- e' O" B3 {6 a7 C
Checkitem 神武嗜血铠 1, r- c. V& H3 U& Q: _3 y
Checkitem 神武头盔 1
! k0 N3 E) U2 w8 M% Z) N2 ICheckitem 神武项链 13 }5 M/ a7 M  D, @
Checkitem 神武手镯 1  c+ J/ w  ^3 P/ s" o, F' ?
Checkitem 神武护腕 13 I6 t4 l3 Q$ o
Checkitem 神武戒指 1
) e1 \! R" w; e9 CCheckitem 神武指环 1
3 U, f9 H+ E3 p+ k* ICheckitem 神武腰带 10 L' A" |; R& h+ Q/ g
Checkitem 神武靴子 1
8 m# F& K6 b2 ^6 [) L# ?#ACT
  a0 K) `3 X0 v. r  t! |TakeBagItem 神武头盔|神武项链|神武手镯|神武护腕|神武戒指|神武指环|神武腰带|神武靴子 46 40 0 0 40000 N0 1
, S* W  f- b& JTakeBagItem 神武嗜血剑|神武嗜血铠 46 80 0 0 80000 N1 1
, q# b5 l! V) B5 SMOV N$回收金额A
* K6 d9 p, l# q- s7 ]9 W+ C, kMUL N$回收金额A 40
' T. E, M2 C0 v9 C: S7 j0 ]MOV N$回收金额B/ f" W: X3 K$ f7 K
MUL N$回收金额B 80
3 ]% y2 t3 h) h1 e, I# G3 b+ fINC U892 g6 P. W# }: P$ Q
INC U89
1 B% |9 G3 Q% V* \SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{神武套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 04 U' _3 Y+ J) Y. E8 I9 E
break5 u! t- W# T, \" M- L! ?
[@烈火回收检测C]
# V6 g1 t/ j/ b# l3 w( S; Q#OR
+ X; v& w6 O/ ~# d$ p: C. bCheckitem 烈火焚天剑 1
! ^; ~3 S- v* I; p% t7 ACheckitem 烈火焚天铠 1# u4 i4 e- w5 m7 J1 j
Checkitem 烈火头盔 1% N  n0 [: u8 S! T6 B& j
Checkitem 烈火项链 11 I  S, X0 `9 b" C8 D3 N- p0 O
Checkitem 烈火手镯 1* V2 |/ u% z( y; e' \- w# ]
Checkitem 烈火护腕 1( D: U4 F9 {3 m. ?" I
Checkitem 烈火戒指 1! f9 j: P( r, O$ K  Q
Checkitem 烈火指环 19 d! ^5 T8 I) P- U: X  [
Checkitem 烈火腰带 15 z# I* y; V9 G% P) [+ |! L
Checkitem 烈火靴子 11 ^" P0 M1 `1 G4 U
#ACT2 Z  w; f' x& t7 t3 U- \
TakeBagItem 烈火头盔|烈火项链|烈火手镯|烈火护腕|烈火戒指|烈火指环|烈火腰带|烈火靴子 46 60 0 0 45000 N0 1
6 U2 L' t  ]( R2 K  _' Q# cTakeBagItem 烈火焚天剑|烈火焚天铠 46 120 0 0 90000 N1 1
5 M6 n7 w+ p2 p$ Y8 eMOV N$回收金额A
5 @- @4 [( ~2 @3 `7 U6 lMUL N$回收金额A 60' X: k$ X/ B3 d. `9 g" r* n! U) L
MOV N$回收金额B
) C! Q4 P. c1 x8 gMUL N$回收金额B 120
. \2 G$ |& g% H- H4 {9 E1 tINC U891 \1 N( {* E8 [! H6 J) Y
INC U89
) Y$ _- o' F" a. s, W/ T! sSENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{烈火套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0* |7 Y# M: |4 @) X3 s- U. D
break5 _# A" M* _4 v( S1 n# _  U+ h

1 r  X% l+ E5 Q% m! B  z

" ?! a( z/ I3 i; \  e; |) v( B& M* C! v7 t, H" M
/ y0 E, _9 ~/ I; i/ Y6 ]
讲解风险:以上脚本可以使用封包工具直接执行@回收装备正常  @MAIN  和 @战狂回收检测A  @神武回收检测B @烈火回收检测C ,因为这才是整段脚本的核心,前面所做一切检测就是为了这段核心执行脚本所准备,反而到了执行脚本可以忽略前面所做的一切检测,如果在执行脚本or下执行检测好像又不好做,那么我们就可以利用引擎禁用点击字段进行设置,比如上面所说的死亡触发字段PlayDie,因为这段执行脚本是不需要NPC点击,所以可以使用禁止点击字符来进行规避风险3 c8 B/ z* r  d
下面修正脚本进行讲解,
! W' l! b  j6 D, E) y4 [9 x风险2.CALL过来的脚本第一个字段是[@回收装备正常] ,再QFunction-0.txt 是有检测U108变量值的,但是封包可以无视NPC脚本中的[@正常开始回收]检测字段,依然可以直接点击@回收装备正常],解决方式有2个,第一个就是把检测U108放入到@回收装备正常]内如下:- j7 @. n  D6 _" J/ j0 J% O
[@回收装备正常]* E5 @  z7 }6 c, W7 C% C+ B/ h- O
{5 P" C1 o) Z# G: T
#IF( @( G8 t5 [/ I/ `
EQUAL U108 0& }/ ~4 [2 M3 G
check [100] 1
' K8 Q; i! N, N  R* h( z; h/ C#ACT2 b7 I+ Z- d" P7 \' Y
goto @战狂回收检测A
! ~$ V4 f7 x6 A. c+ \% t; v. l! U2 y#IF0 _; G4 {  ^" ^. o0 k
EQUAL U108 0
% U& k: K1 W  _$ L: Y2 V! s9 acheck [101] 1
: _: V+ w3 x- T3 K, E8 p#ACT2 ^- C  v1 j' l: ]$ X# I4 f" u) J
goto @神武回收检测B$ x. ~' U1 Q0 j+ j
#IF
& p, d3 S+ `* d  yEQUAL U108 0
3 c4 ?9 E) G2 l6 [  m" Bcheck [102] 1. q6 m3 ?% o+ R2 ^) ?
#ACT# r$ D5 o; N: \/ L8 P
goto @烈火回收检测C
2 f) F- C& Q5 M) |break
2 M2 Z- h6 }6 y" X这样处理就可以了,当时封包依然可以跳过上面的检测直接执行@战狂回收检测A @神武回收检测B @烈火回收检测C,因为这三段脚本都OR检测,所以不好做检测,我们我们可以利用禁止点击字符进行规避风险,因为@回收装备正常 属于引擎内部跳转脚本,也是不需要NPC点击的,所以我们可以使用禁止点击字符来进行规避(关于禁止点击字段,下面讲解)
) j' T7 e+ u0 q' S8 X1 f7 l讲解那么多现在来说如何正确使用系统禁止点击字段来规避风险,下面脚本演示
  x$ q- t  Q: a3 H[@main]0 M5 h) N* J8 U1 _
\
! a6 E* P; M+ S: A3 T! ~- i[@正常开始回收]
" m# s3 n9 i$ y8 ]" X0 ~#IF. n+ p3 z# K$ Z
EQUAL U108 0
$ `  G0 f' J9 Z* S! t; R#ACT( D- j5 `3 B" c- Z0 P6 H! [0 V# Z/ W
#CALL [\回收元宝系列\装备回收价格.txt] @PlayDie回收装备正常0 |. [- I. W5 U+ {- c3 _
CLOSE) p6 q" S& q# l; R* X, W( o+ p* _
break
( U8 q, n  i- m* I[@PlayDie回收装备正常]
8 @9 }/ m% l0 B1 c2 h7 T9 q( A{& g! S" t4 X- `
#IF
2 q1 q% v' p9 z5 I9 T& f& xcheck [100] 1
9 |0 C, f: p& c; N) Z2 c/ M#ACT4 Y& ~- a- K' m0 y1 x' V, v
goto @PlayDie战狂回收检测A
6 F  q1 S( U6 Z1 Q! D#IF
2 }, ^2 d" S) U& I" M& K! {% Ycheck [101] 1
# E  i1 M7 D' R$ s: z4 |#ACT
( L* m5 X. P: X0 ^& Lgoto @PlayDie神武回收检测B
: e- f* t2 `9 W/ F/ P#IF
  W) k/ ~+ B7 o% E" P. E! \check [102] 1. {1 E6 `5 t' P* t
#ACT* ^9 Z$ _5 ~  q: b5 D( D- v
goto @PlayDie烈火回收检测C
: n3 ?+ W, r/ D$ @& jbreak
6 o; {0 q6 a) v) W[@PlayDie战狂回收检测A]
. S) {4 @/ S, [- o0 Y#OR; r' c( m) n& X4 h! V2 W- f& ^
Checkitem 战狂精铁剑 1
# B; L0 B. O1 a& ^( I; ZCheckitem 战狂精铁铠 1; S6 ^0 n7 k2 u
Checkitem 战狂头盔 1
1 \) l. W6 k% L4 E& S5 }Checkitem 战狂项链 1
6 c2 ^$ F2 L  z8 h6 o& }Checkitem 战狂手镯 1
: v# f% T! U; @" w0 B/ iCheckitem 战狂护腕 1- n+ [% k4 b, p8 m% {
Checkitem 战狂戒指 1
: x3 l/ x9 E& x5 d( ?7 RCheckitem 战狂指环 1
& K3 V& Z4 P8 \  _; G" nCheckitem 战狂腰带 14 b8 P- ]9 Z1 a4 b  t
Checkitem 战狂靴子 1
( F0 u% t1 d1 k. h6 [7 B6 g#ACT9 r6 Z/ T8 W8 K8 q% t  B. A
TakeBagItem 战狂头盔|战狂项链|战狂手镯|战狂护腕|战狂戒指|战狂指环|战狂腰带|战狂靴子 46 20 0 0 38000 N0 1
( n' @# Z; w* d" ?4 i( b5 LTakeBagItem 战狂精铁剑|战狂精铁铠 46 40 0 0 76000 N1 16 I' T* ^( j$ v! C- Q
MOV N$回收金额A
" R' o9 S0 _. Z  l9 IMUL N$回收金额A 20
6 |1 r: W- h! {, k& d! D# {' ]MOV N$回收金额B5 \, [" n6 _" \- U/ U! N0 I9 {
MUL N$回收金额B 40
$ V! Q! b" C0 c4 g+ O5 IINC U89, |3 n+ q) a0 f: R5 D8 k8 q* _
INC U89
! P0 \+ v. z) i$ {3 r3 GSENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{战狂套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
$ G" J2 y2 b& d" ~break
' k9 _1 z+ J; Y" v[@PlayDie神武回收检测B]# ]- \5 _! ]5 j. o9 R
#OR3 l, e1 r, ~  A2 X; e
Checkitem 神武嗜血剑 1
# @4 v. V5 U2 X  w  q2 ECheckitem 神武嗜血铠 1
' L9 w% r* [2 I8 S" zCheckitem 神武头盔 1
) h/ x6 {2 g6 a$ f! MCheckitem 神武项链 14 \) f% C8 N  m7 y% d
Checkitem 神武手镯 1! g2 y( I! V& l
Checkitem 神武护腕 1
# A- Z3 R1 q+ y# [& wCheckitem 神武戒指 1. i/ r* v5 |- G4 x4 _
Checkitem 神武指环 1! p- G6 E$ c0 }3 ?
Checkitem 神武腰带 1
6 V) l+ L" z% Z, ?6 |( p( Z5 v; ACheckitem 神武靴子 1
* C/ Q' S/ C, V/ O- @; o#ACT
0 s3 ^: A7 n& d8 u$ xTakeBagItem 神武头盔|神武项链|神武手镯|神武护腕|神武戒指|神武指环|神武腰带|神武靴子 46 40 0 0 40000 N0 1
% L. C; R* @* [6 a5 hTakeBagItem 神武嗜血剑|神武嗜血铠 46 80 0 0 80000 N1 1
* o) O& q: d. `0 z6 oMOV N$回收金额A
* r1 u' O0 O0 o7 R" ^8 Y: uMUL N$回收金额A 40
1 K( H; W  M/ n& S0 \' y+ wMOV N$回收金额B6 a6 P# c2 ^+ Q( z- Q. q3 R4 Y3 O, U
MUL N$回收金额B 80
' J3 s9 {! c2 N" B* x; ]4 q$ QINC U89) d& P5 M9 t. K+ t, U
INC U89; ?+ r$ m. t& O+ i4 ]" w4 g8 H
SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{神武套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0( b1 g5 T+ {1 H
break6 G. U, [& S' o
[@PlayDie烈火回收检测C]
  E* G# m9 M. f; ?* ?# t! d#OR
, D7 y1 o( ]. y3 R" ?9 O( o9 ^Checkitem 烈火焚天剑 1
2 [/ ]. R5 v- u1 f2 A9 u% `Checkitem 烈火焚天铠 1# _7 @% k, {& r0 C1 h
Checkitem 烈火头盔 1
. q( D$ R. [# W: SCheckitem 烈火项链 17 X1 Q; Q# U7 l  f% W
Checkitem 烈火手镯 11 j; @7 w. k* V; S: ?4 _$ m( s
Checkitem 烈火护腕 1
2 D  Z  M) v0 U* i& {/ h% U$ sCheckitem 烈火戒指 1
- a- [- G4 J% n$ d$ `( R! CCheckitem 烈火指环 1
# N, S$ w+ u# |; r5 SCheckitem 烈火腰带 1
8 y3 @9 [/ `9 n' B8 _2 a$ D( o0 |Checkitem 烈火靴子 17 d6 H; L. E. B/ e
#ACT
% y" R$ l* L2 j# T: q! ?TakeBagItem 烈火头盔|烈火项链|烈火手镯|烈火护腕|烈火戒指|烈火指环|烈火腰带|烈火靴子 46 60 0 0 45000 N0 1
/ a' x3 M9 T% V* X5 k6 ]TakeBagItem 烈火焚天剑|烈火焚天铠 46 120 0 0 90000 N1 1: ?6 ~9 N- Z% Q! U, ]$ @: A
MOV N$回收金额A  [) w" b4 G$ P
MUL N$回收金额A 60: P" c% O! ^5 n
MOV N$回收金额B
( Y1 N" k0 \# o0 a2 rMUL N$回收金额B 120
! ?; g; g( G( iINC U89
* }0 o9 s! g$ m0 eINC U89
+ K: |5 D/ h) q3 LSENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{烈火套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 04 ]' ?! M9 A% c6 D$ s
break( p6 a3 j; k! @( C( f* |7 ?' I* ~0 B
! {1 ~/ S8 Z% x. [$ F

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

9 v4 F, G4 w$ ]: o) w- k
站长承接传奇一切业务,小问题免费咨询。站长QQ137919001
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|网站地图|皖ICP备18020244号-7|传奇部落

GMT+8, 2026-10-12 16:09 , Processed in 皖公网安备:34112402000394号 0.196834 second(s), 26 queries .