//=========================================================================== //HashTable //=========================================================================== globals //ȫ�ֹ�ϣ�� #ifndef YDWE_HASH_DEFVAR #define YDWE_HASH_DEFVAR hashtable YDHT = null #endif endglobals //=========================================================================== //Return bug //=========================================================================== function YDWEH2I takes handle h returns integer return GetHandleId(h) endfunction //���� function YDWEFlushAllData takes nothing returns nothing call FlushParentHashtable(YDHT) endfunction function YDWEFlushMissionByInteger takes integer i returns nothing call FlushChildHashtable(YDHT,i) endfunction function YDWEFlushMissionByString takes string s returns nothing call FlushChildHashtable(YDHT,StringHash(s)) endfunction function YDWEFlushStoredIntegerByInteger takes integer i,integer j returns nothing call RemoveSavedInteger(YDHT,i,j) endfunction function YDWEFlushStoredIntegerByString takes string s1,string s2 returns nothing call RemoveSavedInteger(YDHT,StringHash(s1),StringHash(s2)) endfunction function YDWEHaveSavedIntegerByInteger takes integer i,integer j returns boolean return HaveSavedInteger(YDHT,i,j) endfunction function YDWEHaveSavedIntegerByString takes string s1,string s2 returns boolean return HaveSavedInteger(YDHT,StringHash(s1),StringHash(s2)) endfunction //store and get integer function YDWESaveIntegerByInteger takes integer pTable,integer pKey,integer i returns nothing call SaveInteger(YDHT,pTable,pKey,i) endfunction function YDWESaveIntegerByString takes string pTable,string pKey,integer i returns nothing call SaveInteger(YDHT,StringHash(pTable),StringHash(pKey),i) endfunction function YDWEGetIntegerByInteger takes integer pTable,integer pKey returns integer return LoadInteger(YDHT,pTable,pKey) endfunction function YDWEGetIntegerByString takes string pTable,string pKey returns integer return LoadInteger(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //store and get real function YDWESaveRealByInteger takes integer pTable,integer pKey,real r returns nothing call SaveReal(YDHT,pTable,pKey,r) endfunction function YDWESaveRealByString takes string pTable,string pKey,real r returns nothing call SaveReal(YDHT,StringHash(pTable),StringHash(pKey),r) endfunction function YDWEGetRealByInteger takes integer pTable,integer pKey returns real return LoadReal(YDHT,pTable,pKey) endfunction function YDWEGetRealByString takes string pTable,string pKey returns real return LoadReal(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //store and get string function YDWESaveStringByInteger takes integer pTable,integer pKey,string s returns nothing call SaveStr(YDHT,pTable,pKey,s) endfunction function YDWESaveStringByString takes string pTable,string pKey,string s returns nothing call SaveStr(YDHT,StringHash(pTable),StringHash(pKey),s) endfunction function YDWEGetStringByInteger takes integer pTable,integer pKey returns string return LoadStr(YDHT,pTable,pKey) endfunction function YDWEGetStringByString takes string pTable,string pKey returns string return LoadStr(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //store and get boolean function YDWESaveBooleanByInteger takes integer pTable,integer pKey,boolean b returns nothing call SaveBoolean(YDHT,pTable,pKey,b) endfunction function YDWESaveBooleanByString takes string pTable,string pKey,boolean b returns nothing call SaveBoolean(YDHT,StringHash(pTable),StringHash(pKey),b) endfunction function YDWEGetBooleanByInteger takes integer pTable,integer pKey returns boolean return LoadBoolean(YDHT,pTable,pKey) endfunction function YDWEGetBooleanByString takes string pTable,string pKey returns boolean return LoadBoolean(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Unit function YDWESaveUnitByInteger takes integer pTable,integer pKey,unit u returns nothing call SaveUnitHandle(YDHT,pTable,pKey,u) endfunction function YDWESaveUnitByString takes string pTable,string pKey,unit u returns nothing call SaveUnitHandle(YDHT,StringHash(pTable),StringHash(pKey),u) endfunction function YDWEGetUnitByInteger takes integer pTable,integer pKey returns unit return LoadUnitHandle(YDHT,pTable,pKey) endfunction function YDWEGetUnitByString takes string pTable,string pKey returns unit return LoadUnitHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert UnitID function YDWESaveUnitIDByInteger takes integer pTable,integer pKey,integer uid returns nothing call SaveInteger(YDHT,pTable,pKey,uid) endfunction function YDWESaveUnitIDByString takes string pTable,string pKey,integer uid returns nothing call SaveInteger(YDHT,StringHash(pTable),StringHash(pKey),uid) endfunction function YDWEGetUnitIDByInteger takes integer pTable,integer pKey returns integer return LoadInteger(YDHT,pTable,pKey) endfunction function YDWEGetUnitIDByString takes string pTable,string pKey returns integer return LoadInteger(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert AbilityID function YDWESaveAbilityIDByInteger takes integer pTable,integer pKey,integer abid returns nothing call SaveInteger(YDHT,pTable,pKey,abid) endfunction function YDWESaveAbilityIDByString takes string pTable,string pKey,integer abid returns nothing call SaveInteger(YDHT,StringHash(pTable),StringHash(pKey),abid) endfunction function YDWEGetAbilityIDByInteger takes integer pTable,integer pKey returns integer return LoadInteger(YDHT,pTable,pKey) endfunction function YDWEGetAbilityIDByString takes string pTable,string pKey returns integer return LoadInteger(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Player function YDWESavePlayerByInteger takes integer pTable,integer pKey,player p returns nothing call SavePlayerHandle(YDHT,pTable,pKey,p) endfunction function YDWESavePlayerByString takes string pTable,string pKey,player p returns nothing call SavePlayerHandle(YDHT,StringHash(pTable),StringHash(pKey),p) endfunction function YDWEGetPlayerByInteger takes integer pTable,integer pKey returns player return LoadPlayerHandle(YDHT,pTable,pKey) endfunction function YDWEGetPlayerByString takes string pTable,string pKey returns player return LoadPlayerHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Item function YDWESaveItemByInteger takes integer pTable,integer pKey,item it returns nothing call SaveItemHandle(YDHT,pTable,pKey,it) endfunction function YDWESaveItemByString takes string pTable,string pKey,item it returns nothing call SaveItemHandle(YDHT,StringHash(pTable),StringHash(pKey),it) endfunction function YDWEGetItemByInteger takes integer pTable,integer pKey returns item return LoadItemHandle(YDHT,pTable,pKey) endfunction function YDWEGetItemByString takes string pTable,string pKey returns item return LoadItemHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert ItemID function YDWESaveItemIDByInteger takes integer pTable,integer pKey,integer itid returns nothing call SaveInteger(YDHT,pTable,pKey,itid) endfunction function YDWESaveItemIDByString takes string pTable,string pKey,integer itid returns nothing call SaveInteger(YDHT,StringHash(pTable),StringHash(pKey),itid) endfunction function YDWEGetItemIDByInteger takes integer pTable,integer pKey returns integer return LoadInteger(YDHT,pTable,pKey) endfunction function YDWEGetItemIDByString takes string pTable,string pKey returns integer return LoadInteger(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Timer function YDWESaveTimerByInteger takes integer pTable,integer pKey,timer t returns nothing call SaveTimerHandle(YDHT,pTable,pKey,t) endfunction function YDWESaveTimerByString takes string pTable,string pKey,timer t returns nothing call SaveTimerHandle(YDHT,StringHash(pTable),StringHash(pKey),t) endfunction function YDWEGetTimerByInteger takes integer pTable,integer pKey returns timer return LoadTimerHandle(YDHT,pTable,pKey) endfunction function YDWEGetTimerByString takes string pTable,string pKey returns timer return LoadTimerHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Trigger function YDWESaveTriggerByInteger takes integer pTable,integer pKey,trigger trg returns nothing call SaveTriggerHandle(YDHT,pTable,pKey,trg) endfunction function YDWESaveTriggerByString takes string pTable,string pKey,trigger trg returns nothing call SaveTriggerHandle(YDHT,StringHash(pTable),StringHash(pKey),trg) endfunction function YDWEGetTriggerByInteger takes integer pTable,integer pKey returns trigger return LoadTriggerHandle(YDHT,pTable,pKey) endfunction function YDWEGetTriggerByString takes string pTable,string pKey returns trigger return LoadTriggerHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Location function YDWESaveLocationByInteger takes integer pTable,integer pKey,location pt returns nothing call SaveLocationHandle(YDHT,pTable,pKey,pt) endfunction function YDWESaveLocationByString takes string pTable,string pKey,location pt returns nothing call SaveLocationHandle(YDHT,StringHash(pTable),StringHash(pKey),pt) endfunction function YDWEGetLocationByInteger takes integer pTable,integer pKey returns location return LoadLocationHandle(YDHT,pTable,pKey) endfunction function YDWEGetLocationByString takes string pTable,string pKey returns location return LoadLocationHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Group function YDWESaveGroupByInteger takes integer pTable,integer pKey,group g returns nothing call SaveGroupHandle(YDHT,pTable,pKey,g) endfunction function YDWESaveGroupByString takes string pTable,string pKey,group g returns nothing call SaveGroupHandle(YDHT,StringHash(pTable),StringHash(pKey),g) endfunction function YDWEGetGroupByInteger takes integer pTable,integer pKey returns group return LoadGroupHandle(YDHT,pTable,pKey) endfunction function YDWEGetGroupByString takes string pTable,string pKey returns group return LoadGroupHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Multiboard function YDWESaveMultiboardByInteger takes integer pTable,integer pKey,multiboard m returns nothing call SaveMultiboardHandle(YDHT,pTable,pKey,m) endfunction function YDWESaveMultiboardByString takes string pTable,string pKey,multiboard m returns nothing call SaveMultiboardHandle(YDHT,StringHash(pTable),StringHash(pKey),m) endfunction function YDWEGetMultiboardByInteger takes integer pTable,integer pKey returns multiboard return LoadMultiboardHandle(YDHT,pTable,pKey) endfunction function YDWEGetMultiboardByString takes string pTable,string pKey returns multiboard return LoadMultiboardHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert MultiboardItem function YDWESaveMultiboardItemByInteger takes integer pTable,integer pKey,multiboarditem mt returns nothing call SaveMultiboardItemHandle(YDHT,pTable,pKey,mt) endfunction function YDWESaveMultiboardItemByString takes string pTable,string pKey,multiboarditem mt returns nothing call SaveMultiboardItemHandle(YDHT,StringHash(pTable),StringHash(pKey),mt) endfunction function YDWEGetMultiboardItemByInteger takes integer pTable,integer pKey returns multiboarditem return LoadMultiboardItemHandle(YDHT,pTable,pKey) endfunction function YDWEGetMultiboardItemByString takes string pTable,string pKey returns multiboarditem return LoadMultiboardItemHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert TextTag function YDWESaveTextTagByInteger takes integer pTable,integer pKey,texttag tt returns nothing call SaveTextTagHandle(YDHT,pTable,pKey,tt) endfunction function YDWESaveTextTagByString takes string pTable,string pKey,texttag tt returns nothing call SaveTextTagHandle(YDHT,StringHash(pTable),StringHash(pKey),tt) endfunction function YDWEGetTextTagByInteger takes integer pTable,integer pKey returns texttag return LoadTextTagHandle(YDHT,pTable,pKey) endfunction function YDWEGetTextTagByString takes string pTable,string pKey returns texttag return LoadTextTagHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Lightning function YDWESaveLightningByInteger takes integer pTable,integer pKey,lightning ln returns nothing call SaveLightningHandle(YDHT,pTable,pKey,ln) endfunction function YDWESaveLightningByString takes string pTable,string pKey,lightning ln returns nothing call SaveLightningHandle(YDHT,StringHash(pTable),StringHash(pKey),ln) endfunction function YDWEGetLightningByInteger takes integer pTable,integer pKey returns lightning return LoadLightningHandle(YDHT,pTable,pKey) endfunction function YDWEGetLightningByString takes string pTable,string pKey returns lightning return LoadLightningHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Region function YDWESaveRegionByInteger takes integer pTable,integer pKey,region rn returns nothing call SaveRegionHandle(YDHT,pTable,pKey,rn) endfunction function YDWESaveRegionByString takes string pTable,string pKey,region rt returns nothing call SaveRegionHandle(YDHT,StringHash(pTable),StringHash(pKey),rt) endfunction function YDWEGetRegionByInteger takes integer pTable,integer pKey returns region return LoadRegionHandle(YDHT,pTable,pKey) endfunction function YDWEGetRegionByString takes string pTable,string pKey returns region return LoadRegionHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Rect function YDWESaveRectByInteger takes integer pTable,integer pKey,rect rn returns nothing call SaveRectHandle(YDHT,pTable,pKey,rn) endfunction function YDWESaveRectByString takes string pTable,string pKey,rect rt returns nothing call SaveRectHandle(YDHT,StringHash(pTable),StringHash(pKey),rt) endfunction function YDWEGetRectByInteger takes integer pTable,integer pKey returns rect return LoadRectHandle(YDHT,pTable,pKey) endfunction function YDWEGetRectByString takes string pTable,string pKey returns rect return LoadRectHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Leaderboard function YDWESaveLeaderboardByInteger takes integer pTable,integer pKey,leaderboard lb returns nothing call SaveLeaderboardHandle(YDHT,pTable,pKey,lb) endfunction function YDWESaveLeaderboardByString takes string pTable,string pKey,leaderboard lb returns nothing call SaveLeaderboardHandle(YDHT,StringHash(pTable),StringHash(pKey),lb) endfunction function YDWEGetLeaderboardByInteger takes integer pTable,integer pKey returns leaderboard return LoadLeaderboardHandle(YDHT,pTable,pKey) endfunction function YDWEGetLeaderboardByString takes string pTable,string pKey returns leaderboard return LoadLeaderboardHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Effect function YDWESaveEffectByInteger takes integer pTable,integer pKey,effect e returns nothing call SaveEffectHandle(YDHT,pTable,pKey,e) endfunction function YDWESaveEffectByString takes string pTable,string pKey,effect e returns nothing call SaveEffectHandle(YDHT,StringHash(pTable),StringHash(pKey),e) endfunction function YDWEGetEffectByInteger takes integer pTable,integer pKey returns effect return LoadEffectHandle(YDHT,pTable,pKey) endfunction function YDWEGetEffectByString takes string pTable,string pKey returns effect return LoadEffectHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert Destructable function YDWESaveDestructableByInteger takes integer pTable,integer pKey,destructable da returns nothing call SaveDestructableHandle(YDHT,pTable,pKey,da) endfunction function YDWESaveDestructableByString takes string pTable,string pKey,destructable da returns nothing call SaveDestructableHandle(YDHT,StringHash(pTable),StringHash(pKey),da) endfunction function YDWEGetDestructableByInteger takes integer pTable,integer pKey returns destructable return LoadDestructableHandle(YDHT,pTable,pKey) endfunction function YDWEGetDestructableByString takes string pTable,string pKey returns destructable return LoadDestructableHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert triggercondition function YDWESaveTriggerConditionByInteger takes integer pTable,integer pKey,triggercondition tc returns nothing call SaveTriggerConditionHandle(YDHT,pTable,pKey,tc) endfunction function YDWESaveTriggerConditionByString takes string pTable,string pKey,triggercondition tc returns nothing call SaveTriggerConditionHandle(YDHT,StringHash(pTable),StringHash(pKey),tc) endfunction function YDWEGetTriggerConditionByInteger takes integer pTable,integer pKey returns triggercondition return LoadTriggerConditionHandle(YDHT,pTable,pKey) endfunction function YDWEGetTriggerConditionByString takes string pTable,string pKey returns triggercondition return LoadTriggerConditionHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert triggeraction function YDWESaveTriggerActionByInteger takes integer pTable,integer pKey,triggeraction ta returns nothing call SaveTriggerActionHandle(YDHT,pTable,pKey,ta) endfunction function YDWESaveTriggerActionByString takes string pTable,string pKey,triggeraction ta returns nothing call SaveTriggerActionHandle(YDHT,StringHash(pTable),StringHash(pKey),ta) endfunction function YDWEGetTriggerActionByInteger takes integer pTable,integer pKey returns triggeraction return LoadTriggerActionHandle(YDHT,pTable,pKey) endfunction function YDWEGetTriggerActionByString takes string pTable,string pKey returns triggeraction return LoadTriggerActionHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert event function YDWESaveTriggerEventByInteger takes integer pTable,integer pKey,event et returns nothing call SaveTriggerEventHandle(YDHT,pTable,pKey,et) endfunction function YDWESaveTriggerEventByString takes string pTable,string pKey,event et returns nothing call SaveTriggerEventHandle(YDHT,StringHash(pTable),StringHash(pKey),et) endfunction function YDWEGetTriggerEventByInteger takes integer pTable,integer pKey returns event return LoadTriggerEventHandle(YDHT,pTable,pKey) endfunction function YDWEGetTriggerEventByString takes string pTable,string pKey returns event return LoadTriggerEventHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert force function YDWESaveForceByInteger takes integer pTable,integer pKey,force fc returns nothing call SaveForceHandle(YDHT,pTable,pKey,fc) endfunction function YDWESaveForceByString takes string pTable,string pKey,force fc returns nothing call SaveForceHandle(YDHT,StringHash(pTable),StringHash(pKey),fc) endfunction function YDWEGetForceByInteger takes integer pTable,integer pKey returns force return LoadForceHandle(YDHT,pTable,pKey) endfunction function YDWEGetForceByString takes string pTable,string pKey returns force return LoadForceHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert boolexpr function YDWESaveBoolexprByInteger takes integer pTable,integer pKey,boolexpr be returns nothing call SaveBooleanExprHandle(YDHT,pTable,pKey,be) endfunction function YDWESaveBoolexprByString takes string pTable,string pKey,boolexpr be returns nothing call SaveBooleanExprHandle(YDHT,StringHash(pTable),StringHash(pKey),be) endfunction function YDWEGetBoolexprByInteger takes integer pTable,integer pKey returns boolexpr return LoadBooleanExprHandle(YDHT,pTable,pKey) endfunction function YDWEGetBoolexprByString takes string pTable,string pKey returns boolexpr return LoadBooleanExprHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert sound function YDWESaveSoundByInteger takes integer pTable,integer pKey,sound sd returns nothing call SaveSoundHandle(YDHT,pTable,pKey,sd) endfunction function YDWESaveSoundByString takes string pTable,string pKey,sound sd returns nothing call SaveSoundHandle(YDHT,StringHash(pTable),StringHash(pKey),sd) endfunction function YDWEGetSoundByInteger takes integer pTable,integer pKey returns sound return LoadSoundHandle(YDHT,pTable,pKey) endfunction function YDWEGetSoundByString takes string pTable,string pKey returns sound return LoadSoundHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert timerdialog function YDWESaveTimerDialogByInteger takes integer pTable,integer pKey,timerdialog td returns nothing call SaveTimerDialogHandle(YDHT,pTable,pKey,td) endfunction function YDWESaveTimerDialogByString takes string pTable,string pKey,timerdialog td returns nothing call SaveTimerDialogHandle(YDHT,StringHash(pTable),StringHash(pKey),td) endfunction function YDWEGetTimerDialogByInteger takes integer pTable,integer pKey returns timerdialog return LoadTimerDialogHandle(YDHT,pTable,pKey) endfunction function YDWEGetTimerDialogByString takes string pTable,string pKey returns timerdialog return LoadTimerDialogHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert trackable function YDWESaveTrackableByInteger takes integer pTable,integer pKey,trackable ta returns nothing call SaveTrackableHandle(YDHT,pTable,pKey,ta) endfunction function YDWESaveTrackableByString takes string pTable,string pKey,trackable ta returns nothing call SaveTrackableHandle(YDHT,StringHash(pTable),StringHash(pKey),ta) endfunction function YDWEGetTrackableByInteger takes integer pTable,integer pKey returns trackable return LoadTrackableHandle(YDHT,pTable,pKey) endfunction function YDWEGetTrackableByString takes string pTable,string pKey returns trackable return LoadTrackableHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert dialog function YDWESaveDialogByInteger takes integer pTable,integer pKey,dialog d returns nothing call SaveDialogHandle(YDHT,pTable,pKey,d) endfunction function YDWESaveDialogByString takes string pTable,string pKey,dialog d returns nothing call SaveDialogHandle(YDHT,StringHash(pTable),StringHash(pKey),d) endfunction function YDWEGetDialogByInteger takes integer pTable,integer pKey returns dialog return LoadDialogHandle(YDHT,pTable,pKey) endfunction function YDWEGetDialogByString takes string pTable,string pKey returns dialog return LoadDialogHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert button function YDWESaveButtonByInteger takes integer pTable,integer pKey,button bt returns nothing call SaveButtonHandle(YDHT,pTable,pKey,bt) endfunction function YDWESaveButtonByString takes string pTable,string pKey,button bt returns nothing call SaveButtonHandle(YDHT,StringHash(pTable),StringHash(pKey),bt) endfunction function YDWEGetButtonByInteger takes integer pTable,integer pKey returns button return LoadButtonHandle(YDHT,pTable,pKey) endfunction function YDWEGetButtonByString takes string pTable,string pKey returns button return LoadButtonHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert quest function YDWESaveQuestByInteger takes integer pTable,integer pKey,quest qt returns nothing call SaveQuestHandle(YDHT,pTable,pKey,qt) endfunction function YDWESaveQuestByString takes string pTable,string pKey,quest qt returns nothing call SaveQuestHandle(YDHT,StringHash(pTable),StringHash(pKey),qt) endfunction function YDWEGetQuestByInteger takes integer pTable,integer pKey returns quest return LoadQuestHandle(YDHT,pTable,pKey) endfunction function YDWEGetQuestByString takes string pTable,string pKey returns quest return LoadQuestHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction //Covert questitem function YDWESaveQuestItemByInteger takes integer pTable,integer pKey,questitem qi returns nothing call SaveQuestItemHandle(YDHT,pTable,pKey,qi) endfunction function YDWESaveQuestItemByString takes string pTable,string pKey,questitem qi returns nothing call SaveQuestItemHandle(YDHT,StringHash(pTable),StringHash(pKey),qi) endfunction function YDWEGetQuestItemByInteger takes integer pTable,integer pKey returns questitem return LoadQuestItemHandle(YDHT,pTable,pKey) endfunction function YDWEGetQuestItemByString takes string pTable,string pKey returns questitem return LoadQuestItemHandle(YDHT,StringHash(pTable),StringHash(pKey)) endfunction function YDWES2I takes string s returns integer return StringHash(s) endfunction function YDWESaveAbilityHandleBJ takes integer AbilityID, integer key, integer missionKey, hashtable table returns nothing call SaveInteger(table,missionKey,key,AbilityID) endfunction function YDWESaveAbilityHandle takes hashtable table, integer parentKey, integer childKey, integer AbilityID returns nothing call SaveInteger(table,parentKey,childKey,AbilityID) endfunction function YDWELoadAbilityHandleBJ takes integer key, integer missionKey, hashtable table returns integer return LoadInteger(table,missionKey,key) endfunction function YDWELoadAbilityHandle takes hashtable table, integer parentKey, integer childKey returns integer return LoadInteger(table,parentKey,childKey) endfunction