传奇部落

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

[复制链接]
发表于 2023-7-29 22:48:31 | 显示全部楼层 |阅读模式
ESPHashTableCreate5 g0 H2 {2 s" c3 Q% j" n0 t) F; V5 `

% h- }) {" B2 d功能:写入键值到内存- |# u0 O9 T! I
9 u: {5 v8 L& i! w1 u: k9 T3 s. D5 ~- W
命令:/ _/ [% Y2 B4 }4 r7 I8 k4 d( t
8 N2 G9 c/ q+ f5 _' J
ESPHashTableCreate 参数1 参数22 J8 \6 k) h5 f  r

4 \0 J+ D1 l" t0 |+ ^/ l" s$ B% z% j参数详解:6 A8 j; n; ]+ C; |

# ]+ O" U, C( v8 W& A  _  @
- W# t6 I* J$ l- f6 e
参数1:标识字符串(不区分大小写)7 f( e+ g, l. X9 ?* d6 }  \' y8 H
9 F' @: y  ]: E, V
7 a0 C! N9 Y0 ~2 S, ?; e- s* z
参数2:存储内容
. M. h" J4 k9 D6 O8 j4 D. L  |$ s7 \* A/ i4 U

# ^3 Z9 r0 ]0 ^! k# B例子:- ^% z* T# U* |/ {9 U
4 H: @9 X1 J$ e

- e8 G, e) W, \我们做个物品首爆提示功能- s0 i- {* U% x8 K& q+ C

  \3 l7 o- N( R* `7 E" d( ~# W
/ ?* N7 S& ^. e; [' {
首先开启ESP功能,功能窗口二-个性化功能-开启物品爆出掉落反馈勾选后保存
8 K0 ?* d9 V7 i6 Z# M1 d  Y' F
0 p0 P% s8 e  K# K
. g8 u$ H/ m" C) h! f) J, ?2 Z
下面进行脚本编写
- v  y8 j; b' a6 _* G+ a$ G) b; ?9 Q; N; O

# }6 Y% Q0 [) @4 G4 iQManage.txt
9 p5 R8 ?6 B- X) b+ T6 X' t2 E; P
; D4 T) ^5 A( c4 c3 @
[@Startup]
! b  Q  z7 f6 Z- M) P3 Q* ?  k/ V4 I. T* q4 M! j
+ P& d, }: s& L% H
#ACT: J( e; N% f3 E
7 }7 C( G; D9 g4 B2 z9 z% N

; S" @0 b& U7 T  p  E;写在这里,是因为我们要把之前的记录,载入到哈希链表里,用于查询记录
0 y7 L' c& c& r& s9 y0 I+ y$ G" [" W; ?& Y4 H/ T* P( A* a0 ]
# ~/ L, \4 _$ H4 f/ [) ^/ v
ESPHashTableLoad ..\QuestDiary\功能文件\爆出提示.txt 1
; T* g: o" R  r+ f- H! g" j. c% u6 ^/ K2 S
* H7 n* v  R& I1 U! T
;载入文件记录,如果想每次启动M2重新计算的,这里就可以去掉,因为哈希值链表,进程每次重新启动就会初始化,他虽然是全局,但不会保存记录到下次启动M2,也不会因为玩家下线而清除之前添加的键值这一点需要理解。7 J( C* Y7 J* m+ N  a3 o

8 h! Y  R2 z: Z' V. G

* a1 c9 `- x6 Q: QQFunction-0.txt
- M. b) k/ o0 o1 E  a' Z: A# m7 V) a* c0 D
9 c; W6 R% v/ R
[@物品爆出反馈]& C/ c( U/ _* G4 Q! X, N7 j
! x0 h4 N2 E/ Z& U: w1 Y

! w& F9 b4 u. d, v' v#IF# x" U+ l/ }2 A, {1 t9 H1 `

4 P2 _) i3 m) x8 B& c7 \
) [2 E0 ^1 y4 o7 F" I! _7 J# j
ESPHashTableContainsKey <$STR(S$当前爆出物品名称)>
  S! Y4 A; I: v! c. E2 g/ T: t, W: o$ r) x  M8 P& _1 d

! v5 h5 ~! |( F1 x! L1 g* c% L;这条是查询指令,判断有没有这条记录,因为是用内存算法查找,所以会比用Checktextlist这个命令快上百倍、上千倍,以替代消耗较大的命令,这也是开发哈希链表主要原因,9 M$ z& u8 e7 |

0 \. E, `* F! L0 X- `

3 B4 T& G4 N. Q6 `+ x#ACT6 {  j. ?6 G7 S

1 m5 K2 f. R/ N  q! U  {$ p
8 y7 I- t7 }3 _% H
;跳到这里,说明找到此记录,那就不是首爆了,那就空着,不写代码2 `- n3 f/ W. `
8 X5 z! X% a; a" O% G$ w

" P( f( H! p; M! @- ?$ G#elseact
( [; o" H) j8 Y% X3 ~& i% x! ]* \
# b0 g# y. L1 C2 @, S

9 }# y, g6 U) F0 N;跳到这块,说明没找到此记录
5 b* m" j  \; Y- n% d
  a# e) Y8 H. e7 q6 W3 ?  N/ ^9 S

) B9 v& y7 Y$ N, TESPHashTableCreate <$STR(S$当前爆出物品名称)> 11 k- g6 U8 q. R# v: c, ^# {# `6 T+ ~3 g

$ I! B/ R- o- ?# z

3 I! A7 r- V7 J+ m( T" {+ t;加入哈希链表记录,参数2可以随便定义一个,在这里、用1就可以8 L; e  N: ?/ H8 Z. E& H
, n6 e' `* b6 Y' F
. b! ^# x+ ]8 A* v3 }! J! u2 g
AddTextListEx ..\QuestDiary\功能文件\爆出提示.txt  <$STR(S$当前爆出物品名称)>
" Y( E: }9 c+ V8 s, Y  G! S, q1 v5 H+ J& q
% y+ @" U, G# p
;同时输出文件,下次重新启动M2也可以载入此记录,如果想每次启动M2都是初始化,这句输出文件和载入命令也可以免了
3 Y) u- J5 A# q& H0 D! H& v7 n; ~* i/ t  s4 M' @
9 j. C% c  A; {6 g
SendCenterMsg 180 251 恭喜角色:<$USERNAME>,爆出全区第一个<$STR(S$当前爆出物品名称)> 0 3
5 C$ n! o8 h  f1 w" q4 r4 R0 |- L6 B$ J, ?. z: P6 F) s
站长承接传奇一切业务,小问题免费咨询。站长QQ137919001
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-12 14:22 , Processed in 皖公网安备:34112402000394号 0.179371 second(s), 23 queries .