传奇部落

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

[复制链接]
发表于 2023-7-29 22:48:31 | 显示全部楼层 |阅读模式
ESPHashTableCreate: V# }6 D* |! X8 ?9 }; N
  F3 M- |9 ]. l) W5 S9 U, W0 Y
功能:写入键值到内存; S! ?3 y! Q; Q5 z! p, g+ r

* f4 C- a8 r( W5 G" |命令:
1 ^# U2 \1 s. E/ o2 F/ V, C 3 K8 A. w1 r) A7 Q( q9 q3 [
ESPHashTableCreate 参数1 参数2' L1 t' j$ i, p& D+ C) K
& r' p( r$ _2 n
参数详解:
$ ~; H1 F0 c, Y3 n
) H. F8 }9 d+ d* T

6 o9 M9 _* ~' c# m3 `参数1:标识字符串(不区分大小写)1 Z) t# k6 ~3 e" u/ [1 w0 e+ c

- U. M" o6 d4 O
* a$ c; j0 p) ^8 A
参数2:存储内容1 V$ G9 y9 }% R; W/ I! W) K

3 `) T! V. z! L8 H" _8 D
6 p6 O& e* U3 Z/ X- s! b( T( C. Y* `
例子:
0 x  a1 e/ X- t9 X0 m
$ i6 D- V& }9 W6 J0 G! y5 ]9 g" Q) T

/ v  V5 i" y- v6 h! O: D8 q我们做个物品首爆提示功能# d7 I4 Z% q- T2 C( h% r

! G% c' z; i! V5 F. Q

- l. j" J. G, o2 _3 P) e首先开启ESP功能,功能窗口二-个性化功能-开启物品爆出掉落反馈勾选后保存) Q$ R7 }; }. V. ~, h  G: [& E: Y
5 u$ r+ B, s* M
% s: K; n1 O9 a0 S( b
下面进行脚本编写$ O# `$ f: i: b

8 {6 F& L3 \( P/ t  C

1 x5 H  u* E* m9 a4 [) ~QManage.txt: v* D' C* f1 W8 x3 K/ `4 r

" _" a7 T; C9 I. t/ l7 A

0 C' h' K9 M. S" ^/ A[@Startup]
/ P2 i: `* Y, P8 x$ D  m% i! U4 A2 u& ]
6 Q; i% A7 \. g5 ^6 A5 k% Q. F: J0 C
#ACT
; j; N2 h% Y3 M9 i
; u# F% @; U, d0 ]
. I6 `. B+ r6 I
;写在这里,是因为我们要把之前的记录,载入到哈希链表里,用于查询记录0 t$ X4 v, l5 h4 m

6 u, R- d# f9 w8 g$ ]; O9 S! B

3 A! F9 P& `9 @/ _3 T5 PESPHashTableLoad ..\QuestDiary\功能文件\爆出提示.txt 1/ R( ^/ `8 v4 J2 d9 I  v3 E
/ G* C2 c, W4 }7 [# `

- p" d+ |( k. h2 m9 \- y;载入文件记录,如果想每次启动M2重新计算的,这里就可以去掉,因为哈希值链表,进程每次重新启动就会初始化,他虽然是全局,但不会保存记录到下次启动M2,也不会因为玩家下线而清除之前添加的键值这一点需要理解。# _8 ]3 i% c# Y, f9 q: Y

  }0 y$ F. y9 U& p
! @- a% L$ x' l' d% _" k
QFunction-0.txt
2 W  L1 k% }& W5 ^
4 g( O4 Z/ I3 K( S; l/ e0 J0 k8 o0 O1 G
: [4 \5 v2 e3 V1 D+ q
[@物品爆出反馈]
. p. q# t  H- i! d7 y; ]; ~+ m+ \6 M& Z% R$ s

0 a- a8 d  p1 l, {#IF
; I* u" @2 x) Y+ H- s; R9 N
# G9 z' C( A+ q+ ?5 u2 K1 y; |

" b& |: v0 P! a" e  k* h- GESPHashTableContainsKey <$STR(S$当前爆出物品名称)>
6 c$ L" u4 p& Z) ?: K3 v# T3 }( v; _4 a# I

7 [' l% i' e5 U" x5 N7 s;这条是查询指令,判断有没有这条记录,因为是用内存算法查找,所以会比用Checktextlist这个命令快上百倍、上千倍,以替代消耗较大的命令,这也是开发哈希链表主要原因,
! k- Y; C* D% r7 T: u0 q1 T; t) v

% L' T0 ^3 N5 [8 P7 S#ACT& m7 x! e5 t# W, C2 x- P

: m4 }8 i6 }4 T& e; P' Q
* \6 Q' D% C6 r# r
;跳到这里,说明找到此记录,那就不是首爆了,那就空着,不写代码
# m- g" k6 X9 w& k. ^
1 n+ t( V: ?$ {' [* M* P

& ?! S# @: h3 U#elseact7 k; `" x3 z. l- V6 q. _# G
& z8 k0 L+ E9 H/ H. J$ T& i4 F+ p0 m; H# }

8 `" N7 {, }4 X/ |;跳到这块,说明没找到此记录$ z) M+ y$ K  h& p- ~  A( n* P
) |. y* G2 |  l; L9 T4 z

" b+ f- n5 x5 A$ W- M( cESPHashTableCreate <$STR(S$当前爆出物品名称)> 1
* w, S7 j5 U9 v8 T+ i
9 b- E- I' X) }* `

% }$ u, q* R8 |" }$ G/ W;加入哈希链表记录,参数2可以随便定义一个,在这里、用1就可以
# k/ s' `% P5 V7 n. l% l+ @- s& }5 w' M- Y1 g: {7 C

0 `9 ?0 t/ K$ L4 @( \  i1 }5 D3 MAddTextListEx ..\QuestDiary\功能文件\爆出提示.txt  <$STR(S$当前爆出物品名称)>$ m+ F( c( z" R) S
7 [8 X, U% X/ ~+ V, |# p& B, ^

! i9 P. h% F1 N;同时输出文件,下次重新启动M2也可以载入此记录,如果想每次启动M2都是初始化,这句输出文件和载入命令也可以免了
; T+ H' D: C$ @: D# \6 d2 G
' [4 T/ F8 q7 [1 G! ~

7 Y8 l6 e8 F6 x  s* iSendCenterMsg 180 251 恭喜角色:<$USERNAME>,爆出全区第一个<$STR(S$当前爆出物品名称)> 0 33 s; ?0 T# h$ ~* y2 l
2 x' P6 c' \% l+ T1 i6 A1 t
站长承接传奇一切业务,小问题免费咨询。站长QQ137919001
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-10 19:58 , Processed in 皖公网安备:34112402000394号 0.161294 second(s), 23 queries .