传奇部落

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

[复制链接]
发表于 2022-11-27 17:07:32 | 显示全部楼层 |阅读模式
传奇GOM引擎关于脚本安全相关,部分新手写脚本不严谨,导致游戏脚本被封包利用造成损失,再这里给大家举例说明几个脚本安全相关示例: P  c) S, Y7 r. D# ~) I
! P% ^( y; ?4 u4 ^6 Q) j
首先涉及到GOTO,CALL,和非NPC界面使用鼠标点击的脚本,我们可以利用引擎禁止点击字符进行强化安全,下面我们就使用系统禁止点击触发命令 :PlayDie ,这个命令是死亡触发命令,引擎文档也提到只要脚本头前缀涉及包含PlayDie 那么不允许点击,这个可以搜索引擎文档进行了解,搜索关键词:为什么提示禁止点击该NPC触发字段5 z* `7 e/ y  w* q
7 C5 o: D* ~0 T- `" P/ Q$ |
QQ截图20221127170252.jpg
( O1 E' J5 e8 Y  J8 y! S6 R
4 U0 B- J* V& ~! r
8 F3 i" d: P# f! ], J) d, ^8 ~! P3 O5 k
风险脚本示例1------------下面----------看讲解为什么是风险----------------------------------
8 C( c$ z* G4 B' o# G/ V' e, V;下面是NPC脚本:
) K) d& \( {" l3 G& M2 m0 E[@main]! [; \1 y/ e! o
\9 f$ i% p; I8 W! p, y) x/ Y
[@正常开始回收]/ {) z; K8 N. F' D6 X8 E
#IF
  s! V3 J0 r6 J" F4 p. ?% nEQUAL U108 0' r2 q6 P9 ?$ Z: a/ _3 o' I; @
#ACT
6 m) p+ U# X/ ?# Q#CALL [\回收元宝系列\装备回收价格.txt] @回收装备正常$ C. _6 @' x$ C4 ~& g
CLOSE9 I' c. U/ T/ M3 K+ R
break
- U4 ?4 M+ g7 \2 l- D;下面....QuestDiary\回收元宝系列\装备回收价格.txt脚本(因为上面NPC脚本已经将脚本CALL到这里了)  o7 T1 o! f6 D: ]
;执行条件为  检测 U108变量不等于0则CALL到下面脚本执行) f* Z1 b4 K  q& w" e& {+ ~
[@回收装备正常]7 m9 ]8 `# g) r: T
{. n* V) }/ ]& o( P/ P+ ]1 G! u
#IF
" i& U$ ?- t& E# W# e# gcheck [100] 1
- ^3 w' N& A8 _) z! o# h" S#ACT
, y; y3 V  w" j( m$ w0 Ngoto @战狂回收检测A
. Z4 ]- U- v$ M; m( F#IF
/ z* O9 `; I; ?3 z. L2 o# mcheck [101] 1
% N7 q5 M# a* [- ~# o0 P( W. ]#ACT  T) P* q1 @) ~6 B0 ^6 d. |
goto @神武回收检测B
" \1 i, y5 }# X#IF0 z- V8 C, d# W
check [102] 1! v7 N& n. o' Z# H# N
#ACT
! V# ?+ `  t7 v8 A1 O( Xgoto @烈火回收检测C: I+ h5 P; w5 V+ j$ E
break
- _) a: V4 }4 X8 i1 M' r;--下面是上方GOTO执行脚本,: f# A( F0 o/ t1 k+ p: [% A
;执行条件为  分别检测个人标识100  101  102等于1则GOTO进行执行下面对应脚本, [/ C1 Z4 Z( }# u' K( ?
[@战狂回收检测A]5 |. x8 d" u: N! T# P( Z( ~
#OR
/ `, }2 G$ _$ i' i9 F- FCheckitem 战狂精铁剑 1
7 \0 R) c. X! }9 K/ a* H* ]/ ]( cCheckitem 战狂精铁铠 1% o  L2 {: B% a- V
Checkitem 战狂头盔 1* `) U2 b7 D! _* q( P; f% l
Checkitem 战狂项链 13 O8 T' y, d- B# C/ V8 c
Checkitem 战狂手镯 14 ?# |# t% b& F' w( _7 c9 N- l" [7 I
Checkitem 战狂护腕 1
: X- A! {1 M3 O" g- ~0 C" HCheckitem 战狂戒指 1
9 A  u' I8 d. J! h5 ?, }8 N/ tCheckitem 战狂指环 13 k1 R8 P0 |+ q0 U
Checkitem 战狂腰带 17 _% z' i: H7 V: u; ^. }+ G
Checkitem 战狂靴子 18 G( O# z% i' M8 F
#ACT" Z4 V. @4 x! d' }. X5 L( K" W
TakeBagItem 战狂头盔|战狂项链|战狂手镯|战狂护腕|战狂戒指|战狂指环|战狂腰带|战狂靴子 46 20 0 0 38000 N0 1
. t$ p6 i6 _! h8 h, XTakeBagItem 战狂精铁剑|战狂精铁铠 46 40 0 0 76000 N1 1
8 z+ A; I5 M  ~3 y2 m6 k3 [' uMOV N$回收金额A) p) H5 B' z/ O# o+ S
MUL N$回收金额A 20  X- n9 t' t" P% B3 C( C
MOV N$回收金额B$ B5 Y9 W9 m$ s
MUL N$回收金额B 40
& l! B+ J; M* a: S( G. r' {# xINC U892 o: H# D# O; _5 Z3 Q3 H# o% o
INC U89
" v% _$ D3 h& B+ y4 I4 g" ~; V% Z& CSENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{战狂套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
# `4 r/ b! f0 {8 i. V( n  Wbreak
! T3 }# E/ {, c$ ^/ w4 O[@神武回收检测B]
" S4 ?# ^- J2 G+ Q" h6 R# L#OR6 ]( ~; @- O0 l7 v' P
Checkitem 神武嗜血剑 1
0 K% C: o0 F1 c1 w& sCheckitem 神武嗜血铠 1
) h. `! b. `( b2 g& V! Z& \# BCheckitem 神武头盔 1
% \+ ?2 k- F0 j0 gCheckitem 神武项链 1: A( I7 x" H: ^6 ~4 I- ^
Checkitem 神武手镯 15 p/ Y7 K& f, a5 D! [4 W
Checkitem 神武护腕 1
) w3 U+ i& n1 V* E$ f9 w+ x% _5 KCheckitem 神武戒指 1
" j' L% a; a) f* LCheckitem 神武指环 1
+ w- l+ b8 t" h* i0 fCheckitem 神武腰带 19 _* R1 ^$ r; i! c& q
Checkitem 神武靴子 1' w2 ~5 ^2 l1 |1 g4 M
#ACT, i8 O8 C  G- X  W) x
TakeBagItem 神武头盔|神武项链|神武手镯|神武护腕|神武戒指|神武指环|神武腰带|神武靴子 46 40 0 0 40000 N0 1' e% G# t0 \& a) B/ k' K
TakeBagItem 神武嗜血剑|神武嗜血铠 46 80 0 0 80000 N1 1
# n8 ?$ M4 J/ U; |/ z$ S9 O" T1 zMOV N$回收金额A  V" d: K- R) F- ^
MUL N$回收金额A 40
: V6 _: ?) T3 I) s7 oMOV N$回收金额B
( O( \: @  k/ c8 V) \MUL N$回收金额B 80
- K8 f3 L- ~* r# I3 CINC U89& X$ N8 `" `7 p6 ^7 s. v
INC U89
, J$ Y% l: I5 r2 y% H& t# q# p$ @2 a& lSENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{神武套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
: |; ?9 S0 q( |1 |5 G: rbreak8 r; Q) W' O7 c+ n2 V7 [& O& l. Y
[@烈火回收检测C]. F# [. [7 W* r, |, u
#OR
% }$ e4 O: l2 `% SCheckitem 烈火焚天剑 1
, p6 d) M7 b, [9 HCheckitem 烈火焚天铠 14 {8 [8 X: h. c* r5 ?
Checkitem 烈火头盔 1
$ m4 P; q' j! y# ]Checkitem 烈火项链 1
  I, a% ?# j" o, }! l/ D8 m' @9 dCheckitem 烈火手镯 1: H! T+ y9 I$ @
Checkitem 烈火护腕 1
7 L" ?% ^+ l8 a5 E' s2 e7 s( t- s& Y) _Checkitem 烈火戒指 1
4 T4 H" u8 ]" C3 e* LCheckitem 烈火指环 13 M7 F* K* ?$ z4 i
Checkitem 烈火腰带 1$ a0 N) e3 Q$ n/ H# v- N" \5 o
Checkitem 烈火靴子 1
" ~' m9 |8 t: y6 W3 w. M, H. ~#ACT- {9 ]3 \" \3 w, }9 N0 m- P" e
TakeBagItem 烈火头盔|烈火项链|烈火手镯|烈火护腕|烈火戒指|烈火指环|烈火腰带|烈火靴子 46 60 0 0 45000 N0 15 _" y6 `* i8 W+ c( I, o
TakeBagItem 烈火焚天剑|烈火焚天铠 46 120 0 0 90000 N1 1: i+ k1 p1 C% ?1 l6 u
MOV N$回收金额A
. V: e" ?) M0 V9 tMUL N$回收金额A 60: O, `5 Q3 t( C4 w0 ]
MOV N$回收金额B) P9 T' M' u2 B; {
MUL N$回收金额B 120
, q6 D. ]8 ?+ l* eINC U89+ L! d/ h* L  \( [$ L" O
INC U89
2 k9 v7 c* C* `* v( X6 }) |SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{烈火套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0" l7 ], a3 j2 |; C6 S
break8 R$ m( `# a) V0 y0 K

6 d6 H2 _' T  c

* a8 l, Z2 l  C4 J
/ T3 I& s7 K! d! l7 t

/ P' j5 B0 ~1 b# V$ ~- b" e6 Q! v讲解风险:以上脚本可以使用封包工具直接执行@回收装备正常  @MAIN  和 @战狂回收检测A  @神武回收检测B @烈火回收检测C ,因为这才是整段脚本的核心,前面所做一切检测就是为了这段核心执行脚本所准备,反而到了执行脚本可以忽略前面所做的一切检测,如果在执行脚本or下执行检测好像又不好做,那么我们就可以利用引擎禁用点击字段进行设置,比如上面所说的死亡触发字段PlayDie,因为这段执行脚本是不需要NPC点击,所以可以使用禁止点击字符来进行规避风险+ H7 u% F& V( @
下面修正脚本进行讲解,- p8 j1 w7 S+ }  o% K$ @
风险2.CALL过来的脚本第一个字段是[@回收装备正常] ,再QFunction-0.txt 是有检测U108变量值的,但是封包可以无视NPC脚本中的[@正常开始回收]检测字段,依然可以直接点击@回收装备正常],解决方式有2个,第一个就是把检测U108放入到@回收装备正常]内如下:3 \6 ^) d+ Z8 n# E/ t2 A- S8 X9 ~
[@回收装备正常]
5 \8 d( M) D% P& U) S{
; e- y( R: x- m" L#IF2 |7 l/ F6 i; P, a
EQUAL U108 02 Y8 P% c2 ?/ ^
check [100] 1
+ ]) q) u% e% ^+ {* M# C$ F2 _#ACT
$ \# x- s! u! I. F" D5 l, N) kgoto @战狂回收检测A
' L# R* f2 C4 j#IF
+ W5 e0 a8 f4 _" [: U! m) K# aEQUAL U108 0: F6 b) R) |2 V7 M5 [9 ?7 D0 u
check [101] 1
1 }9 Z* j" i3 a( ]+ Q#ACT
, s# Z% s  d- W( o  Hgoto @神武回收检测B. e* m8 e. h8 e- n; |' Q9 V
#IF; R& m: d( @8 i
EQUAL U108 0  q6 S: A; t. S) F
check [102] 1$ E) ^3 z& u) r
#ACT
/ e6 g$ i9 ^7 G) w0 jgoto @烈火回收检测C6 h' I* {& ~) \; x$ \2 C* P
break( u: D& s1 Y! _! P
这样处理就可以了,当时封包依然可以跳过上面的检测直接执行@战狂回收检测A @神武回收检测B @烈火回收检测C,因为这三段脚本都OR检测,所以不好做检测,我们我们可以利用禁止点击字符进行规避风险,因为@回收装备正常 属于引擎内部跳转脚本,也是不需要NPC点击的,所以我们可以使用禁止点击字符来进行规避(关于禁止点击字段,下面讲解)
+ L! _7 q# {8 x: T! O" o% k" R7 g讲解那么多现在来说如何正确使用系统禁止点击字段来规避风险,下面脚本演示8 k, R& G9 }* `$ S
[@main]$ k4 D# [& L- c$ e5 o# R! V
\2 i- S, z4 ^$ i
[@正常开始回收]4 g" B& M6 l5 o3 t( x5 s5 z
#IF
" y' a! O" F& O8 t$ _2 lEQUAL U108 0
+ ^0 Q7 c* H: D5 }#ACT3 @, s+ H4 `4 K5 x
#CALL [\回收元宝系列\装备回收价格.txt] @PlayDie回收装备正常
. _/ x, w$ N' ?, PCLOSE
3 o7 |- B9 x# \8 w+ y# Sbreak+ Y' c6 S0 `$ Y4 |+ N* A- }- P( ~- B
[@PlayDie回收装备正常]- \  i% q3 _: s% h7 g
{
" G1 l! D! l# L8 a- _- J2 O! q#IF
1 j) R( `5 ~( y1 Bcheck [100] 1
5 G6 R+ J2 o( p#ACT: V7 a6 j+ @1 ~# G9 e
goto @PlayDie战狂回收检测A+ x. L! r. }) _# k* s# G$ Z8 L
#IF" }' i) \. S, `, O1 o9 d- k
check [101] 11 I% h; S5 Q" |" X( R
#ACT
* x# c$ _  Q+ h4 sgoto @PlayDie神武回收检测B
8 D- a. }) R0 G% ]. i  D#IF
5 }& x! v* g+ bcheck [102] 1
/ W: r5 S4 f7 f#ACT& E0 k* ~0 c  b3 {
goto @PlayDie烈火回收检测C
. D! p; n1 Y0 u" I* Pbreak
! b' T1 G: x5 E[@PlayDie战狂回收检测A]7 V/ e/ S. Z" M: K7 X7 i
#OR" O4 d2 j! p7 V% |2 _
Checkitem 战狂精铁剑 1, u; H) E4 q3 a1 ^9 }$ a
Checkitem 战狂精铁铠 1
! g6 g9 g+ I) O$ G9 h3 P  fCheckitem 战狂头盔 1
* B% I) U% M& K3 p* d8 E# K- wCheckitem 战狂项链 1( w" ?! J. I& F! F
Checkitem 战狂手镯 1- ^4 H2 O9 i- p( r. m0 A
Checkitem 战狂护腕 1
5 q* A% r  S! n$ S: DCheckitem 战狂戒指 1% Y) K- W* M8 O; q; W, {) m, q- Z3 u
Checkitem 战狂指环 1
* c1 M! C/ O6 P( _, V( ~Checkitem 战狂腰带 1* R' s8 q5 j) L3 Y, a2 h5 M
Checkitem 战狂靴子 1! z9 B6 R8 \) g& ], L: h
#ACT% N  i1 e3 _- h. G( Q1 r0 L% z4 I
TakeBagItem 战狂头盔|战狂项链|战狂手镯|战狂护腕|战狂戒指|战狂指环|战狂腰带|战狂靴子 46 20 0 0 38000 N0 1( M6 x! `! ]1 r# M6 T% I6 h
TakeBagItem 战狂精铁剑|战狂精铁铠 46 40 0 0 76000 N1 1! s( r6 ]0 o2 U, V
MOV N$回收金额A1 M. x' ?. W& Y  A6 ?. U
MUL N$回收金额A 20& j% e0 l% d; z- z) b( I# R$ M
MOV N$回收金额B, B9 P& x8 A0 q
MUL N$回收金额B 40! w% u' X9 H9 o4 ~3 n
INC U89( M1 e3 T: C- J* t+ _) B4 M
INC U89& x  G5 l* I/ x  @6 B! k- z4 X
SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{战狂套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0& r& ^% _/ \0 b+ r
break! g% U9 K* J2 G) r& H0 q
[@PlayDie神武回收检测B]
; l# h4 o/ T  d& m5 K; L+ F#OR, f; u, z) R( K% H/ T# e% g
Checkitem 神武嗜血剑 1- G" y) @& B+ c, |2 S: `5 U
Checkitem 神武嗜血铠 1+ w4 M/ y/ V4 b# |
Checkitem 神武头盔 1
# `" C7 h! W/ f7 S$ fCheckitem 神武项链 1* D7 l; I  J; Q$ J+ l
Checkitem 神武手镯 1
6 d+ E  n' I* H  y0 L( H4 y  pCheckitem 神武护腕 1
4 N% [7 F4 ?  |" z8 fCheckitem 神武戒指 1
; H. v: R* a6 CCheckitem 神武指环 1
! K$ d3 i. N$ DCheckitem 神武腰带 1, s# j" {0 I5 N8 `5 g/ _" P/ ^
Checkitem 神武靴子 1
# [, z" ]% V( j, I, C) v" y' v#ACT
# Q1 A' [( G+ t+ x7 p5 K3 FTakeBagItem 神武头盔|神武项链|神武手镯|神武护腕|神武戒指|神武指环|神武腰带|神武靴子 46 40 0 0 40000 N0 1
+ i6 b7 V' b. z, hTakeBagItem 神武嗜血剑|神武嗜血铠 46 80 0 0 80000 N1 19 l5 [: Y8 a6 X0 R* D
MOV N$回收金额A# ]$ p6 ]2 X* ~% s' J$ }/ P, c
MUL N$回收金额A 40
; u8 x' Z; ~% W' F; i7 fMOV N$回收金额B
+ O! {! z- j  W/ f( V, n/ Q/ E, u+ nMUL N$回收金额B 80
0 r$ g1 o4 ~6 G8 C# b  _INC U89  Z) j2 a3 H  f5 h
INC U89* F8 d  A  Y& `4 r6 I/ u
SENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{神武套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
3 W8 u7 ?5 |9 a- R+ nbreak
1 M. {! R6 t4 q% p" s[@PlayDie烈火回收检测C]
3 R4 {& K5 M: Q& k* r' M#OR2 g9 `7 J0 o3 X. y
Checkitem 烈火焚天剑 17 X* u# o. f6 j7 X
Checkitem 烈火焚天铠 1; D2 |* L+ y2 P: Y; e
Checkitem 烈火头盔 1  k4 L/ v- U8 b! b
Checkitem 烈火项链 1
$ q: c4 N8 I6 k6 h0 e; h. k) Z0 XCheckitem 烈火手镯 1. _( m8 Y( Z! K# E+ |, A
Checkitem 烈火护腕 1
1 E: Y, ?. S3 S* MCheckitem 烈火戒指 1
5 M5 J. S. C5 O% s; l! m! e% @. ?Checkitem 烈火指环 13 G3 O; s5 P4 M; b: V
Checkitem 烈火腰带 1% R5 T( n. d% S$ s: y- q3 }
Checkitem 烈火靴子 17 ?4 b/ `9 d* \0 j5 z. Z/ k! s
#ACT
; T% O: M8 N8 Q- c" qTakeBagItem 烈火头盔|烈火项链|烈火手镯|烈火护腕|烈火戒指|烈火指环|烈火腰带|烈火靴子 46 60 0 0 45000 N0 1
5 e8 O3 ]0 T1 dTakeBagItem 烈火焚天剑|烈火焚天铠 46 120 0 0 90000 N1 1% J! a( x) v# J' A7 O
MOV N$回收金额A
8 d5 R8 `# M8 b$ @1 |- z4 S6 eMUL N$回收金额A 608 O7 z* I# L$ f! K: i  }  w4 D# ~
MOV N$回收金额B1 e! E- N4 Q8 I% a
MUL N$回收金额B 120
8 w6 ~* B1 j8 `! z4 W: C/ T8 L$ b, |INC U89& \' z5 K2 j: @7 y
INC U89
$ @6 y6 L; n4 OSENDMSG 0 【装备回收】:恭喜{[]|250:0:1}成功回收{烈火套装|254:0:1},获得海量[{元宝,经验|254:0:255}]...!!! 31 0
; @1 B1 x- L8 q7 O8 C' t6 u+ _break; T- {3 D/ [; z
: X( O8 Y* l% l
7 L' f% y8 C& G( {( _1 J9 R8 Z: A  ^! c) M
以上脚本为修复脚本,因为脚本前缀包含了系统禁止点击字段PlayDie,那么这脚本只能引擎内部跳转使用,严禁外部点击的,任何脚本字段只要不是靠NPC去点击的都可以使用引擎禁止点击字段作为前缀,当玩家使用封包工具进行点击时候,引擎上会显示日志:      用户:人物名称; NPCFunction 禁止点用该NPC触发字段playdie回收装备正常!反正只要不是需要鼠标点击的都可以使用禁止点击字符来做脚本头!!!!这样就无视封包工具刷包了,那么需要NPC点击的下面讲解!
2 w: l$ b3 L( T: |, K! z
3 W% t9 i& z6 T, c) l
站长承接传奇一切业务,小问题免费咨询。站长QQ137919001
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-25 22:21 , Processed in 皖公网安备:34112402000394号 0.214248 second(s), 27 queries .