传奇部落

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

[复制链接]
发表于 2022-11-27 17:07:32 | 显示全部楼层 |阅读模式
传奇GOM引擎关于脚本安全相关,部分新手写脚本不严谨,导致游戏脚本被封包利用造成损失,再这里给大家举例说明几个脚本安全相关示例
) N0 b1 |# |' u- L( F3 R' Q. D) s% {( g$ K
首先涉及到GOTO,CALL,和非NPC界面使用鼠标点击的脚本,我们可以利用引擎禁止点击字符进行强化安全,下面我们就使用系统禁止点击触发命令 :PlayDie ,这个命令是死亡触发命令,引擎文档也提到只要脚本头前缀涉及包含PlayDie 那么不允许点击,这个可以搜索引擎文档进行了解,搜索关键词:为什么提示禁止点击该NPC触发字段
- X( h. {; M2 p9 w
4 Y. P" [0 ^, x: P) B, j$ h- ^/ F7 w QQ截图20221127170252.jpg % v0 }8 U. k! j% P; A% u3 ~
5 P- F7 q: c( q+ @& m* b; ]

( d! x( {/ m$ q风险脚本示例1------------下面----------看讲解为什么是风险----------------------------------
) z  R1 D1 n% P) g$ U' Z2 X;下面是NPC脚本:. v9 T" k: J5 o7 L7 z+ P
[@main]
5 J& F2 s" C0 @  R& z! T5 Q\
; Y8 u" ]5 J+ ~0 f( |[@正常开始回收]
" H, n; h1 R, \& g#IF
, _8 ^$ @5 i* b; IEQUAL U108 0' D2 N; a+ {* n
#ACT9 l$ M6 u& W" w* q! @2 V
#CALL [\回收元宝系列\装备回收价格.txt] @回收装备正常
4 ?# U$ R, x, JCLOSE" z4 d9 y5 [& B! ~6 f' L. J
break& [+ X, N1 T' @; y% f, o; G4 B; \7 W* ~
;下面....QuestDiary\回收元宝系列\装备回收价格.txt脚本(因为上面NPC脚本已经将脚本CALL到这里了)+ ~* M* k/ H; a' _7 W4 g% A4 }
;执行条件为  检测 U108变量不等于0则CALL到下面脚本执行
9 H+ e9 u& W% ?1 D[@回收装备正常]
3 s% \9 s+ v! W/ u% V+ J! y{5 F0 C9 x" S' L
#IF
# @3 \% [6 i. h* r2 n- z- C$ Ycheck [100] 12 V  Q. i/ e1 q5 v" c
#ACT
: A" [& g' ~) X, N4 Ggoto @战狂回收检测A2 ^( L3 h; \0 Q0 y" U* C
#IF
8 G" @# o! V, F7 d, d/ f6 Y7 h4 Ucheck [101] 1* K# k: ~7 T& d7 h, A
#ACT& j5 H: h2 H' g5 V  X; i/ P
goto @神武回收检测B
+ s! B( W- |: u2 i0 ?#IF: h3 c" m  V* b
check [102] 1
3 L/ [9 F( V, Q( d8 `* z: x! W: k#ACT1 J% g7 A5 `% Z/ V: m' M
goto @烈火回收检测C: K! k5 n  G' t; p; @
break0 {" z: f$ S( l0 L' G
;--下面是上方GOTO执行脚本,' h! P/ u8 T1 n  e
;执行条件为  分别检测个人标识100  101  102等于1则GOTO进行执行下面对应脚本, a& ?" b- Z" `4 x  Q
[@战狂回收检测A]
2 X" k+ G0 K8 b, n) i#OR
) `- s. s, B1 I0 UCheckitem 战狂精铁剑 1
7 ]: I2 X, U! G" vCheckitem 战狂精铁铠 1
0 e# V! A/ t+ B  N, a4 S( lCheckitem 战狂头盔 1
9 M8 G1 R1 [. o3 N+ ?Checkitem 战狂项链 1
" _: O7 E" f. _" [Checkitem 战狂手镯 1
/ e+ F  t+ ~  P/ DCheckitem 战狂护腕 1
" u9 e2 t! [" d0 x9 u/ DCheckitem 战狂戒指 1
; w6 M2 Z8 _) i( k0 RCheckitem 战狂指环 1* D* S+ r+ x* f
Checkitem 战狂腰带 1+ S* T; N5 t' j! F
Checkitem 战狂靴子 1$ N% ~/ T1 B* ^8 z3 b# ^$ F
#ACT/ M5 p2 ^$ R, q" ]' D9 C
TakeBagItem 战狂头盔|战狂项链|战狂手镯|战狂护腕|战狂戒指|战狂指环|战狂腰带|战狂靴子 46 20 0 0 38000 N0 14 v1 f+ T" E7 e% _$ ?! W
TakeBagItem 战狂精铁剑|战狂精铁铠 46 40 0 0 76000 N1 1! y' L+ w3 B, Y
MOV N$回收金额A7 Q7 v/ g9 m3 s: i, L
MUL N$回收金额A 200 p/ z' F- Y; }
MOV N$回收金额B7 f& O4 z6 i) d+ X: k
MUL N$回收金额B 40
6 w0 l9 b: \; P9 \INC U89
: r- z& N' b1 N7 ?: YINC U89
( h7 X! v' @9 I. |; CSENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{战狂套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 01 @2 |8 C6 R; o3 O) `4 u
break1 b4 r: t; b; s9 {
[@神武回收检测B]
, g- r* k" D* Z/ M$ Z/ o- C+ U#OR
7 k% i3 d# ?9 TCheckitem 神武嗜血剑 1! f, ~3 m" n# ^. l
Checkitem 神武嗜血铠 1
( G4 z- ~6 P6 h* ]! UCheckitem 神武头盔 13 H2 e( B9 M" W
Checkitem 神武项链 1- F) R" G; L+ ]
Checkitem 神武手镯 17 X" o% P( `# b; D( w" P3 a
Checkitem 神武护腕 1
5 t" m9 D9 Z8 PCheckitem 神武戒指 1
6 d6 V* P* w- W8 n- }9 P+ P+ YCheckitem 神武指环 1
$ K6 s8 s& \# L; o9 A. }Checkitem 神武腰带 1# k, }& f$ q$ j
Checkitem 神武靴子 1+ l% t3 @! B2 Q: ^! M7 E
#ACT
2 z. e' p' ^( a/ Q8 WTakeBagItem 神武头盔|神武项链|神武手镯|神武护腕|神武戒指|神武指环|神武腰带|神武靴子 46 40 0 0 40000 N0 1
2 u, O- e* s3 G2 RTakeBagItem 神武嗜血剑|神武嗜血铠 46 80 0 0 80000 N1 1- L& F! g7 c3 ~4 T$ Z$ W# f
MOV N$回收金额A
5 Z" W7 X. q$ Z  z2 iMUL N$回收金额A 40
) T% U, k. u7 O5 a$ l; |MOV N$回收金额B
- j& ]6 a2 u1 X% RMUL N$回收金额B 80
8 T& Q3 r% {9 @" O( R- O0 K* \2 [% j( tINC U89" Y) R9 {/ j' }9 h1 }
INC U89
8 ^5 J9 i; `5 M  W& ^/ q; sSENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{神武套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
8 d& F! H* b2 k& G! Ebreak
% ^) W$ M0 P" |3 X[@烈火回收检测C]
: M; u/ ~$ E0 ?#OR& P, Z* N7 V, R: o2 N- d0 i" ?
Checkitem 烈火焚天剑 1
4 o( x# S  s, h7 z8 L! D/ pCheckitem 烈火焚天铠 1
& C! K9 b1 ]0 Y0 eCheckitem 烈火头盔 17 ?( Q$ |6 g# C2 @7 b4 p1 U9 w# w
Checkitem 烈火项链 1
3 t  k; k9 f1 x3 [, I1 x  WCheckitem 烈火手镯 1
$ |$ ?9 s: [, y, X4 b- w7 _Checkitem 烈火护腕 1! V) E" \: C- s1 n
Checkitem 烈火戒指 1
* \' p0 b0 K# i" P9 |% U( dCheckitem 烈火指环 1
8 V: a/ t8 a4 L4 a. L% `0 K1 p+ _Checkitem 烈火腰带 1
2 I$ V! t2 E" S: ?8 P: p0 w! ^Checkitem 烈火靴子 1
/ Q1 ~1 D7 |# f#ACT
: g3 T2 B4 R% `3 v9 ^TakeBagItem 烈火头盔|烈火项链|烈火手镯|烈火护腕|烈火戒指|烈火指环|烈火腰带|烈火靴子 46 60 0 0 45000 N0 1
5 X7 F3 a' e8 s$ c: W; P* b' ^; zTakeBagItem 烈火焚天剑|烈火焚天铠 46 120 0 0 90000 N1 1
0 A4 b) c/ O, E7 _( X+ w4 z) ZMOV N$回收金额A% ]' O2 f. _( w. X
MUL N$回收金额A 608 `! H) P' m1 @+ `2 I; \5 `
MOV N$回收金额B; q) g% A8 [: x0 X$ o' V: {$ Y
MUL N$回收金额B 120
# N: M6 Z( D7 n# u  N. NINC U89
8 p6 G/ B% s& y/ B: u$ m. R* F% C! KINC U89
1 S) r( A6 ~3 X5 Z  l" ]  HSENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{烈火套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0; s8 }7 a, f8 t& Y: ?0 h; q
break/ D, L9 W8 H6 `: u

3 @4 j& ?3 v3 Z7 ^! ^) M6 i! G$ w2 g4 V

1 W. z$ u, V9 r, x( t
4 u$ {4 o$ V- k+ x" l
; v  O( i3 h  h3 L( q4 }
讲解风险:以上脚本可以使用封包工具直接执行@回收装备正常  @MAIN  和 @战狂回收检测A  @神武回收检测B @烈火回收检测C ,因为这才是整段脚本的核心,前面所做一切检测就是为了这段核心执行脚本所准备,反而到了执行脚本可以忽略前面所做的一切检测,如果在执行脚本or下执行检测好像又不好做,那么我们就可以利用引擎禁用点击字段进行设置,比如上面所说的死亡触发字段PlayDie,因为这段执行脚本是不需要NPC点击,所以可以使用禁止点击字符来进行规避风险
4 Q+ `" J3 K) w4 ~, y% z6 {' R/ X下面修正脚本进行讲解,
, y9 O4 g9 N2 v* \( e0 n+ m风险2.CALL过来的脚本第一个字段是[@回收装备正常] ,再QFunction-0.txt 是有检测U108变量值的,但是封包可以无视NPC脚本中的[@正常开始回收]检测字段,依然可以直接点击@回收装备正常],解决方式有2个,第一个就是把检测U108放入到@回收装备正常]内如下:) [7 |6 c" v+ m; t, z4 O
[@回收装备正常]
- U# Q7 U7 x+ G- T0 i9 i) Z- I{( H. S8 G' \% x& ~: o$ d4 W( x% e. t
#IF/ d' u3 L) w/ W: U- J# V
EQUAL U108 0
# W2 f; |3 ]- m4 h+ S2 m9 }check [100] 18 u( `# ]! o/ q* D# Y
#ACT0 T3 Y: i2 A2 H" @5 a) R' A
goto @战狂回收检测A8 S- |$ d+ U2 O# {1 p& e+ l
#IF2 s& Y6 h' {* M) {6 v
EQUAL U108 08 z* e& a4 r# a  m/ L
check [101] 1% ~' N) L" ?9 I8 ~
#ACT8 A! a# U4 d* D: M
goto @神武回收检测B/ D9 w' g1 K8 n! \9 `
#IF4 P4 j3 ]5 s- ^( N9 h: Z: j
EQUAL U108 0
4 |; r. a" e. e( b! n8 H6 ncheck [102] 1/ R/ `3 }- Y9 |
#ACT
) _6 u* l2 Y/ T0 e4 L% E5 Dgoto @烈火回收检测C
5 |: p( T" c4 v" V& H3 I/ jbreak1 D3 f- c' M  |. e( ^. J' a+ l. E
这样处理就可以了,当时封包依然可以跳过上面的检测直接执行@战狂回收检测A @神武回收检测B @烈火回收检测C,因为这三段脚本都OR检测,所以不好做检测,我们我们可以利用禁止点击字符进行规避风险,因为@回收装备正常 属于引擎内部跳转脚本,也是不需要NPC点击的,所以我们可以使用禁止点击字符来进行规避(关于禁止点击字段,下面讲解)
; }1 g8 p" D6 |9 ?讲解那么多现在来说如何正确使用系统禁止点击字段来规避风险,下面脚本演示
+ m: n5 [% \4 a4 I: ?  M3 V( @2 M  c[@main]
: ]4 w8 h3 H9 ?" l1 X% U\+ X2 B8 M  f1 X' ?
[@正常开始回收]! v% X; \9 q: T& [$ C6 t
#IF
! @2 W, u5 X3 l* K6 m4 uEQUAL U108 0
% s2 @5 A; a4 l! E1 W+ U#ACT7 P6 y( Q# F" j) J# ~8 e
#CALL [\回收元宝系列\装备回收价格.txt] @PlayDie回收装备正常6 m, ]( v) W) s7 l$ N0 q! b! d
CLOSE
3 k# \* d* I8 kbreak
' O) \4 f, O% s1 Y! Q  d6 [[@PlayDie回收装备正常]( U& Y* z: j8 S
{( `' A5 v1 v7 l  E/ M
#IF
& ?6 _5 W3 }# F7 Y4 R8 acheck [100] 1
. o# G( F" o5 @& S) {5 W  M: ^, @! o#ACT& P: r; n5 G# I' v- Q
goto @PlayDie战狂回收检测A
0 j3 I* B" N6 Y: V: O#IF2 {7 d. ~( U' t( S+ j
check [101] 1
+ \& Q; J8 k4 h' h7 k2 P#ACT% T0 a. w( ^3 c& r/ Z9 R
goto @PlayDie神武回收检测B
/ i$ V1 r! J" s& I2 V4 U#IF
# [+ a* e) W! o3 T% j! J# echeck [102] 1: h3 B! L. ?8 L4 v! f; w0 _. h
#ACT) l2 r! @* x, p7 n
goto @PlayDie烈火回收检测C
) O5 r" z; R" w* O8 g2 bbreak3 P: v, M0 w$ W" f8 x; K
[@PlayDie战狂回收检测A]2 N  Q" x, S8 U; J# J  l6 Y3 O
#OR/ P- `% |5 {$ q3 }8 P
Checkitem 战狂精铁剑 1+ E9 Q6 j7 y& z" Q. n' G4 T5 I
Checkitem 战狂精铁铠 1) h9 b" ^* W* ~9 b9 q2 S
Checkitem 战狂头盔 1
6 Z5 {# ]- ]9 l) f* M+ w- z5 Y, ]1 jCheckitem 战狂项链 1
3 q! T) X% h; F7 S- @Checkitem 战狂手镯 14 K1 \* |% p4 X: B+ \0 k
Checkitem 战狂护腕 10 v* g" f- P/ L" }- Q) Q+ X
Checkitem 战狂戒指 1" v8 L8 i3 K2 C* x: X; a
Checkitem 战狂指环 12 ?* h8 U, R/ P# J2 ]9 e/ U, g4 ~' d
Checkitem 战狂腰带 1! ~4 k# \) {$ n
Checkitem 战狂靴子 17 z0 Y' B  j) J
#ACT3 [- `& w& I- K( Z
TakeBagItem 战狂头盔|战狂项链|战狂手镯|战狂护腕|战狂戒指|战狂指环|战狂腰带|战狂靴子 46 20 0 0 38000 N0 1$ i, A' s) }$ r
TakeBagItem 战狂精铁剑|战狂精铁铠 46 40 0 0 76000 N1 1
* g0 F1 g/ @  K2 U' R- W/ \MOV N$回收金额A# o  Q* p$ |6 |' c
MUL N$回收金额A 20
+ F" t3 d2 K2 {. ~- S; VMOV N$回收金额B. D) P/ Q4 I- u& r$ z
MUL N$回收金额B 40' A9 W. H+ I0 m& \1 g
INC U89% m" s4 H! q3 o
INC U893 x3 A) s/ ]6 E. g# q
SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{战狂套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
* H, h+ k; \. K. R8 Ebreak9 V* }% H4 d) M) j
[@PlayDie神武回收检测B]$ \  K& i! {% {0 s+ p( K' j( x
#OR
% v* x9 \( B& D" fCheckitem 神武嗜血剑 1
; v8 _3 `, N" b, [$ Z, @$ DCheckitem 神武嗜血铠 1
% A2 G* i# ?9 s3 Y' R' LCheckitem 神武头盔 1* X; q- b* \- v; Y1 H0 i0 [% j
Checkitem 神武项链 1# f3 V' Q( h2 b" |: L4 ?
Checkitem 神武手镯 1* E5 a3 T5 Y8 [* b* F. \3 f
Checkitem 神武护腕 1
, |' q7 b4 O* d" a* e' kCheckitem 神武戒指 11 A7 v8 r% F) J2 D+ L+ y' m
Checkitem 神武指环 15 Q( t7 J" x* F
Checkitem 神武腰带 1% y+ E" Z4 u, c; ~' q. c
Checkitem 神武靴子 1
' [; T  z& S/ g; u- l+ c) r#ACT
) m6 b- X9 o/ e' N2 L, {TakeBagItem 神武头盔|神武项链|神武手镯|神武护腕|神武戒指|神武指环|神武腰带|神武靴子 46 40 0 0 40000 N0 1/ z) h9 T/ h3 ?- S4 a9 }
TakeBagItem 神武嗜血剑|神武嗜血铠 46 80 0 0 80000 N1 1
' x( p; o! ~" W0 [8 hMOV N$回收金额A
$ W! G/ g( [( ^: [! hMUL N$回收金额A 40' }8 N! X" H" g2 [% C% h2 N* P5 i. u
MOV N$回收金额B
- J) g. Z1 N) D  ^! YMUL N$回收金额B 80
' ?: p! w( H- i. l) X3 u  h& e. rINC U895 a5 O% L. v, t
INC U89
/ U( _. r6 ^1 C' ?) s+ _SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{神武套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
* I$ ?: |/ E% g$ Z2 ?2 Z7 ebreak
7 N! y1 p. {2 V& U4 p' C; @$ q[@PlayDie烈火回收检测C]
4 I; h6 o6 l' n#OR* ~* x0 c* q. U) d
Checkitem 烈火焚天剑 1
+ l" k9 G. p6 [* _. bCheckitem 烈火焚天铠 1
) O7 e* z9 t6 R7 _. h( OCheckitem 烈火头盔 1, _/ i/ _. r) p; @$ M9 G* w- _) |8 g
Checkitem 烈火项链 13 z3 G+ v2 @4 `1 Z* P) n
Checkitem 烈火手镯 1
% X: R* c3 B+ b* n* ^* H. m4 lCheckitem 烈火护腕 1
% Q6 I4 x, g; S8 ?7 \' [Checkitem 烈火戒指 1! \& \) Z" N" h/ H- `" y( q/ i" [
Checkitem 烈火指环 15 i2 M! ^  W, X1 g6 M
Checkitem 烈火腰带 1
% c$ H) Y# F' I, j! M+ s/ iCheckitem 烈火靴子 1
7 g- q5 f' H9 ~* ~+ ]: j7 D#ACT
* Q/ X1 |, p1 ]4 ~. I3 E+ }( cTakeBagItem 烈火头盔|烈火项链|烈火手镯|烈火护腕|烈火戒指|烈火指环|烈火腰带|烈火靴子 46 60 0 0 45000 N0 14 ~' L. K/ [# @+ A9 q9 z5 i
TakeBagItem 烈火焚天剑|烈火焚天铠 46 120 0 0 90000 N1 1
" V  o, [) |, h" V; x6 ~$ }MOV N$回收金额A1 I  }( s& S0 V% w
MUL N$回收金额A 60
. ?, G) K! C# b* OMOV N$回收金额B& |9 T; K  `( D4 L. r1 a8 g
MUL N$回收金额B 120
' N9 @" y& Y5 U: y0 uINC U89  G) H+ ]$ e$ J8 w2 `
INC U89
4 x4 ]9 H. K3 i0 X3 n# d! ]SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{烈火套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0. `6 l5 J# c6 Q, X& G
break0 X2 q  s0 [6 G0 P

; {; T  W& c" J7 f4 F7 @/ y. F
1 e% D+ S! y& N& ~7 _$ K2 n; l
以上脚本为修复脚本,因为脚本前缀包含了系统禁止点击字段PlayDie,那么这脚本只能引擎内部跳转使用,严禁外部点击的,任何脚本字段只要不是靠NPC去点击的都可以使用引擎禁止点击字段作为前缀,当玩家使用封包工具进行点击时候,引擎上会显示日志:      用户:人物名称; NPCFunction 禁止点用该NPC触发字段playdie回收装备正常!反正只要不是需要鼠标点击的都可以使用禁止点击字符来做脚本头!!!!这样就无视封包工具刷包了,那么需要NPC点击的下面讲解!4 L6 ^6 B) X5 ]! E/ C5 z# g
6 i, N/ v2 w' W8 p# w
站长承接传奇一切业务,小问题免费咨询。站长QQ137919001
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-3 02:55 , Processed in 皖公网安备:34112402000394号 0.199482 second(s), 27 queries .