NPC
HashExistsʽHashExists ʶ Ч滻CheckStringList漰ӲIOĵЧ
---------------------------------------------------------------------------
ִбʶHASHǷڡ

#if
HashExists ʶ <$USERNAME>
#say

#elsesay




NPC
HashModifiedʽHashModified ʶˡʶHashǷ񱻸ĶͨڱãڲʵԶж
---------------------------------------------------------------------------
ָʶHashǷѸĶ

#if
HashModified ʶ
#say
HashѾ޸Ĺ
#elsesay
δĶ



NPCִ
HASHʽHASH ʶ   ֵ
---------------------------------------------------------------------------
¼֣
Load ļ	// ļأҪƵʹã⣡
Save ļ	// 浽ļҪƵʹã⣡
BGSave ļ	// ų́Զ棬ֻͨȫHashҪ
Clear		// ӦʶHASHмֵã
Delete key	// keyΪʱɾHASHãkeyɾ
Get key S1	// ȡkeyӦֵS1
Set key value ʱ()(ѡ) @ڴ(ѡ) ִ(G)	// ʱ-1(Ĭ)>0XڲQF[@ڴ]ֶΣִдGȫִ$PARAM(0)=ʶ$PARAM(1)=key$PARAM(2)=value$PARAM(3)=ִ
Set 1|2|3... ֵ1|ֵ2|ֵ3... ʱ1|ʱ2|ʱ3... @ڴ1|@ڴ2|@ڴ3... ִ1|ִ2|ִ3...	// ݷ
Inc key increment	// һڵkeyӦֵincrementֵЧ
Dec key decrement	// һڵkeyӦֵdecrementֵЧ
GetE key M1				// ȡʱ䣬-2ֵڣ-1ã>=0Ϊʣʱ()
SetE key ʱ()	// һѴڼֵĹʱ䣬ʱ>0Xɾ-1
ReplaceKey ԭKey Key	// 滻keyݲ䣬ڽɫ֧֣keyϸ񰴴ָʽ壺ɫ.XX  ɫ_XX֧滻




$HASH(ʶ)Size			// ȡӦʶµHASH
$HASH(ʶ)key			// keyȡֵkeyֻǷǱļͬHash ʶ Get key S1



1Ч̬бʹã
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#act
; ֶһЩ
Hash H_Ұ Set Ұ
Hash H_Ұ Set Ұ
Hash H_Ұ Set Ұ

; д뷽
Hash H_Ұ Set Ұ|Ұ|Ұ

; ֶб
Hash H_Ұ Save ..\QuestDiary\MonData\Ұ.csv

; бǰ༭ļȻQM[@OnStart]زЧʣĲֻΪ˱һļ鿴ʽ,ֵ,ʱ,,ֶ
Hash H_Ұ Load ..\QuestDiary\MonData\Ұ.csv

; QMű
[@OnStart]
#act
; ʱһЩȫб
Hash H_Ұ Load ..\QuestDiary\MonData\Ұ.csv

; QFű
[@Attack]
#if
; H_֡HashдڴĿҲܸЧ
HashExists H_ <$TARINFO_NAME>
#act
sendmsg 7 ĿҰ
#elsesay
sendmsg 7 Ұ



2һļȡݣʺʹԶ棬
ϸ񰴸ʽɫ.XX  ɫ_XX ַʽ壬ָ֧ͺ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#act
; д
Hash H_ɫ Set <$USERNAME>_ 3 10 @
Hash H_ɫ Inc <$USERNAME>_ 2
Hash H_ɫ Set <$USERNAME>_ַ ַ
Hash H_ɫ Set <$USERNAME>_ <$TIMESTAMP>

; Чдݷ
; д|10ΪĬ-1Чڡ-1|10|-1
Hash H_ɫ Set <$USERNAME>_ַ|<$USERNAME>_|<$USERNAME>_ ַ|3|<$TIMESTAMP> |10 |@
Hash H_ɫ Inc <$USERNAME>_ 2

; ʹʽȡֵ
Hash H_ɫ Get <$USERNAME>_ M1
Hash H_ɫ Get <$USERNAME>_ַ S1
Hash H_ɫ Get <$USERNAME>_ S2
sendmsg 7 ֵ<$STR(M1)>ַ<$STR(S1)>ڣ<$STR(S2)>

; QFдϴֶ
[@]
#act
OutputMessage ڣuid=<$PARAM(0)>key=<$PARAM(1)>val=<$PARAM(2)>who=<$PARAM(3)>

; QMд½ű
[@OnStart]
#act
; ʱȫֽɫ
Hash H_ɫ Load ..\QuestDiary\HumData\H_ɫ.csv
; ôHash̨Զ浽ļ
Hash H_ɫ BGSave ..\QuestDiary\HumData\H_ɫ.csv

[@OnStop]
#act
; ֹͣʱȫֽɫݣΪԶʡԴ˲Ҳν
Hash H_ɫ Save ..\QuestDiary\HumData\H_ɫ.csv



3һɫӦһļʺʹȫԶ棬ʺQM/ݴֶδȡݣ
˷ҲʺϻԾϷļ̫ࣩԿڲݵӦó
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#act
Hash <$USERNAME> Set 뿨 1 30 @뿨
Hash <$USERNAME> Inc 뿨 14
#if
!HashExists <$USERNAME> 뿨
#act
Hash <$USERNAME> Set 뿨 <$TIMESTAMP>

; ʹñʽȡֵ
sendmsg 7 뿨ʣࣺ<$HASH($USERNAME)뿨>룩

; QMд½ű
[@LoadData]
#act
; ɫݣ뿨ʱ佫
Hash <$USERNAME> Load ..\QuestDiary\HumData\<$USERNAME>.csv

[@SaveData]
#act
; ɫݣ뿨ʱ佫
Hash <$USERNAME> Save ..\QuestDiary\HumData\<$USERNAME>.csv



4ֵȡjsonʹ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ƽʱֵʹjsonȡŵhashɣjsonЧԶhash




5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[@chgname_success]
#act
; ʹýɫΪļĴıļ
RenameFile ..\QuestDiary\HumData\<$PARAM(1)>.csv ..\QuestDiary\HumData\<$PARAM(2)>.csv

; ıļݸдϸ
StringsReplace ļ <$PARAM(1)> <$PARAM(2)>

; 滻HashɫصKeykeyϸָʽ壺ɫ.XX  ɫ_XX֧滻
Hash H_ɫ ReplaceKey <$PARAM(1)> <$PARAM(2)>