马上注册,查看更多内容,丰富传奇GM资源等你下载探索。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
写入键值(包含物品首爆例子)
GOMHashTableCreate
功能:写入键值到内存
GOMHashTableCreate 参数1 参数2
参数详解:
参数1:标识字符串(不区分大小写)
参数2:存储内容
例子:
我们做个物品首爆提示功能
QManage.txt
[@Startup]
#ACT
;写在这里,是因为我们要把之前的记录,载入到哈希链表里,用于查询记录
GOMHashTableLoad ..\QuestDiary\功能文件\爆出提示.txt 1
;载入文件记录,如果想每次启动M2重新计算的,这里就可以去掉,因为哈希值链表,每次重新启动就会初始化,虽然是全局,但不会保存记录到下次启动M2,也不会因为玩家下线而清除之前添加的键值。
QFunction-0.txt
[@PickUpItemEx] ;这是拾取物品触发 爆物品触发看这里
#IF
;这条是查询指令,判断有没有这条记录,因为是用内存算法查找,所以会比用Checktextlist这个命令快上百倍、上千倍
GOMHashTableContainsKey <$CURRTEMNAME>
#ACT
;跳到这里,说明找到此记录,那就不是首爆了,那就空着,不写代码
#elseact
;跳到这块,说明没找到此记录
;加入哈希链表记录,参数2可以随便定义一个,在这里、用1就可以
GOMHashTableCreate <$CURRTEMNAME> 1
;同时输出文件,下次重新启动M2也可以载入此记录,如果想每次启动M2都是初始化,这句输出文件和载入命令也可以免了
AddTextListEx ..\QuestDiary\功能文件\爆出提示.txt <$CURRTEMNAME>
SendMsg 1 恭喜玩家:<$USERNAME> 爆出全区第一个<$CURRTEMNAME>
查找键值(逻辑判读命令)
GOMHashTableContainsKey
功能:查找键值
GOMHashTableContainsKey 参数1
参数详解:
参数1:标识字符串(不区分大小写)
例子:
#IF
GOMHashTableContainsKey 标识字符串
#ACT
sendmsg 6 找到此记录!
功能:读取键值
GOMHashTableGet
GOMHashTableGet 参数1 参数2
参数详解:
参数1:标识字符串(不区分大小写)
参数2:存储的变量
例子:
#ACT
GOMHashTableGet 标识字符串 <$STR(D1)>
;有没有内容,取决于这个标识字符串有没有写入数据
sendmsg 6 内容为:<$STR(D1)>
功能:删除键值
GOMHashTableRemove
命令:
GOMHashTableRemove 参数1
参数详解:
参数1:标识字符串(不区分大小写)
#ACT
GOMHashTableRemove 标识字符串
;删除后,再查找或读取这个标识字符串,就不会有这个记录
功能:删除所有键值
GOMHashTableClear
命令:
GOMHashTableClear
例子:
#ACT
GOMHashTableClear
;全部删除后,此前添加的记录也会全部没有
功能:载入文件到键值
GOMHashTableLoad
命令:
GOMHashTableLoad 参数1 参数2 参数3
参数详解:
参数1:载入的文件路径
参数2:存储内容(载入的键,全部赋予此存储内存)
参数3:分割符号(留空代表换行符)
例子:
QManage.txt
[@Startup]
#ACT
GOMHashTableLoad ..\QuestDiary\功能文件\爆出提示.txt 1
;我们这个txt以行作为分隔符,所以参数3留空。
功能:载入文件到键值加强
GOMHashTableLoadEx
命令:
GOMHashTableLoadEx 参数1 参数2 参数3 参数4
参数详解:
参数1:载入的文件路径
参数2:标识字符串附加值(这个内容加上文件读取分割的内容,用于区分用途)
参数3:存储内容(载入的键,全部赋予此存储内存)
参数4:分割符号(留空代表换行符)
例子:
QManage.txt
[@Startup]
#ACT
GOMHashTableLoadEx ..\QuestDiary\功能文件\爆出提示.txt ABC 1
;我们这个txt以行作为分隔符,所以参数4留空。
;比GOMHashTableLoad多了标识字符串附加值
#ACT
GOMHashTableGet ABC金项链 <$STR(D1)>
sendmsg 6 内容为:<$STR(D1)>
;那读取到的内容就是1,ABC是自己定义的,用于区分不同用途
|