传奇部落

ESPHashTableCreate写入键值到内存详细说明

[复制链接]
发表于 2023-7-29 22:48:31 | 显示全部楼层 |阅读模式
ESPHashTableCreate
4 p) Y8 \) w0 Q& {* h. C/ W1 x
* r. \$ o$ q4 z) H6 E; E% _9 e功能:写入键值到内存2 ^4 {: V" j6 Y: L) b/ L8 u- X3 T

& e& W. }" z9 ]命令:
  L0 C) W" l( l# \' c+ c/ Y% w9 o # l* I4 }) j# L; j& @6 S/ O
ESPHashTableCreate 参数1 参数2
! [+ i" }: T" B 3 g3 i+ J: r/ L  \6 o* L: M
参数详解:
+ B9 |* }8 ^5 T% a" M9 N# G' q5 }( Q0 b: _* D; j% M+ Q
. G0 h5 {% V- B" S& ]; u# [" A
参数1:标识字符串(不区分大小写); m( P- @1 ]' F  x  A8 k3 @
; J2 k% [8 w. {0 R( _' z
4 l) l9 A5 b* G
参数2:存储内容
1 Q) {  Z4 N7 l1 `
$ X+ P; ~% M) I& o& ?$ c# G

- }; I+ Q& s+ \( B) k' H# Q  m* ^例子:
$ [; x0 V. A0 W
  ~* U& U' E: q7 o
. x& J% ~$ w" B& c
我们做个物品首爆提示功能
2 @* q* V5 X" a5 X& u2 E' X  M7 U. U: h, e# i# I( \

( O1 r! k4 \0 p- g% m首先开启ESP功能,功能窗口二-个性化功能-开启物品爆出掉落反馈勾选后保存7 n  k8 g: L$ B) O: C1 Z) c; Z

- |1 N  F9 h% T! }4 \
7 ~- _5 |5 Q" U( ]1 e
下面进行脚本编写
' a  y# V3 O5 `4 L& l2 M+ S
$ K) d4 W$ \1 _4 X
7 X( f( K1 m8 w: [( V+ l
QManage.txt
" e/ r" W' s: @7 {5 i1 [2 r6 |% {9 d1 V- X

3 `6 m$ s8 F' Q[@Startup]
* }/ H7 {7 B- e6 a5 u7 e2 l* A! a; `. y" m
8 _  W/ B& @- c9 |3 a
#ACT- T' ~- O: s; N( w+ f2 W
0 j# h( L8 E" B2 x/ }' R
& C5 V, e0 B2 `2 S
;写在这里,是因为我们要把之前的记录,载入到哈希链表里,用于查询记录
2 r8 o6 o  \. l5 E6 J$ ~# J, |9 z9 ^
% X4 s; O# ^0 c
# F7 s# m7 p' k
ESPHashTableLoad ..\QuestDiary\功能文件\爆出提示.txt 10 B& M/ H! t# G" [. R5 a

1 T; a+ H+ [) x" d, `; [# {6 ~

( t# _, ?4 q5 G! l/ U0 K6 M" i) s;载入文件记录,如果想每次启动M2重新计算的,这里就可以去掉,因为哈希值链表,进程每次重新启动就会初始化,他虽然是全局,但不会保存记录到下次启动M2,也不会因为玩家下线而清除之前添加的键值这一点需要理解。! y' A- R' B1 z2 K
4 o8 i8 C, f: @1 l

( _0 T9 d: }* |! ~! R' V" EQFunction-0.txt& D7 O8 B2 P4 F5 o6 n8 H. q. z/ u
9 R+ f# W. r' F
* }) ^# Q2 q' y! p
[@物品爆出反馈]. {# P( f( n9 F- D% A
* D/ k$ b; n6 \8 c
& ]! K6 o6 v% K" r4 B
#IF
% G0 B+ b# ^" a3 X* ]
1 r" M: u! q! u6 d( b
. N" T7 j( @8 d" E; \3 |* O, F6 `7 m2 `
ESPHashTableContainsKey <$STR(S$当前爆出物品名称)>! l  d+ {' g$ T. ]3 j9 M$ U
: _! R9 B. U1 \; p  R4 ]

8 P, d/ O1 [9 e; {6 K2 [;这条是查询指令,判断有没有这条记录,因为是用内存算法查找,所以会比用Checktextlist这个命令快上百倍、上千倍,以替代消耗较大的命令,这也是开发哈希链表主要原因,
3 a& d/ J$ r* N5 f6 |: V" N: R  Q' g0 B0 ^/ \7 z6 J

$ r8 y' v/ c* Q  T#ACT
1 w- L6 O- v4 z6 u) m
. g: f. l. `8 l( ~1 I( A  b
- P! O4 }+ U( p1 v2 |6 _, K+ x
;跳到这里,说明找到此记录,那就不是首爆了,那就空着,不写代码& Y4 W' F8 K6 e

& G$ E5 L+ y& y' E, d; j
( T- W6 k; ~) r, V6 X
#elseact" e! C( I& I1 ~& ~  m

1 F! d6 ~0 `* p/ j3 O* N5 g( U
4 L* i% _; |! _
;跳到这块,说明没找到此记录
/ s9 O9 t$ @6 }& ~
. _% w. ?5 y: J( P$ X  {

) C: R) X9 e5 R  {ESPHashTableCreate <$STR(S$当前爆出物品名称)> 1/ n; a7 i# A" K7 V4 `
) B0 w& ^6 N% p5 d! R
! S5 M( y% e" d6 |: z, @) J
;加入哈希链表记录,参数2可以随便定义一个,在这里、用1就可以" ]& J/ Z$ w0 f: g9 X0 `
" F9 ]3 }4 \9 i; }5 G4 I' ^
: x0 i& N8 }- X8 x) ^* B
AddTextListEx ..\QuestDiary\功能文件\爆出提示.txt  <$STR(S$当前爆出物品名称)>3 @# M( T8 ?- g2 Q& J, J
( R/ A/ A3 E+ n0 h& W

* k; D- I6 A2 G: p! c$ p;同时输出文件,下次重新启动M2也可以载入此记录,如果想每次启动M2都是初始化,这句输出文件和载入命令也可以免了7 h0 a1 f/ X& J" m

! j) j. \# L9 L. ?* `8 m2 x9 {5 D, I' Z

/ t- e) m6 Y) f- H' @3 O5 NSendCenterMsg 180 251 恭喜角色:<$USERNAME>,爆出全区第一个<$STR(S$当前爆出物品名称)> 0 3# o2 q, W- e- Q; a6 h. e& s

: r, M  J. R$ Y: [1 d
站长承接传奇一切业务,小问题免费咨询。站长QQ137919001
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-2 18:42 , Processed in 皖公网安备:34112402000394号 0.134745 second(s), 24 queries .