//Set autoclear timer real AutoMessagesClear_Timer=1. endglobals
function GetTimer_MessagesClear takes integer PlayerID returns timer local timer Timer=CreateTimer() local integer HandleId=GetHandleId(Timer)
//Save player id - use timer HashleId to save this call SaveInteger(HASH_MessagesClear,0,HandleId,PlayerID)
//set boolean to "true" to enable trigger call SaveBoolean(HASH_MessagesClear,0,PlayerID,true)
return Timer endfunction
function Auto_ClearMessages takes nothing returns nothing local timer Timer=GetExpiredTimer() local integer HandleId=GetHandleId(Timer)
//get timer handleid and load PlayerId local integer PlayerID=LoadInteger(HASH_MessagesClear,0,HandleId)
//check boolean when boolean set to "true" go to clear messgaes if LoadBoolean(HASH_MessagesClear,0,PlayerID)then
//get player and clear messgaes if GetLocalPlayer()==Player(PlayerID)then call ClearTextMessages() endif
else
//destoy this timer when boolean set to "false" call DestroyTimer(Timer)
endif set Timer=null set HandleId=0 set PlayerID=0 endfunction
function MessagesClear_Enable takes nothing returns nothing local player GetPlayer=GetTriggerPlayer() local integer PlayerID=GetPlayerId(GetPlayer)
//check boolean when this booealn is "false" go to start auto clear messgaes if not LoadBoolean(HASH_MessagesClear,0,PlayerID)then
//start timer and call function "GetTimer_MessagesClear" to setting //and function "Auto_ClearMessages" is clear messgaes call TimerStart(GetTimer_MessagesClear(PlayerID),AutoMessagesClear_Timer,true,function Auto_ClearMessages)
endif set GetPlayer=null set PlayerID=0 endfunction
function MessagesClear_Disable takes nothing returns nothing local player GetPlayer=GetTriggerPlayer() local integer PlayerID=GetPlayerId(GetPlayer)
//set boolean to false - timer auto destroy call SaveBoolean(HASH_MessagesClear,0,PlayerID,false)
set GetPlayer=null set PlayerID=0 endfunction
function AutoClearMessages_Install takes nothing returns nothing local trigger Clear_Trigger1=CreateTrigger() local trigger Clear_Trigger2=CreateTrigger() local integer Loop_Player=0 call TriggerAddAction(Clear_Trigger1,function MessagesClear_Enable) call TriggerAddAction(Clear_Trigger2,function MessagesClear_Disable) loop call TriggerRegisterPlayerChatEvent(Clear_Trigger1,Player(Loop_Player),"-clear",true) call TriggerRegisterPlayerChatEvent(Clear_Trigger2,Player(Loop_Player),"-clearoff",true) exitwhen Loop_Player>10 set Loop_Player=Loop_Player+1 endloop endfunction
Joined: April 19th, 2010, 1:48 pm Posts: 238 Location: In The World
you can learn it in "blizzard.j"
InitHashtable() = create hash table GetHandleId( value ) = get hash id (use for item/trigger/timer/multiboard/unit/ect...) StringHash( string ) = get string to hash integer
save value function
Spoiler:
Code:
function StoreRealBJ takes real value, string key, string missionKey, gamecache cache returns nothing call StoreReal(cache, missionKey, key, value) endfunction
//=========================================================================== function LoadStringBJ takes integer key, integer missionKey, hashtable table returns string local string s
//call SyncStoredString(table, missionKey, key) set s = LoadStr(table, missionKey, key) if (s == null) then return "" else return s endif endfunction
//=========================================================================== function LoadPlayerHandleBJ takes integer key, integer missionKey, hashtable table returns player return LoadPlayerHandle(table, missionKey, key) endfunction
Joined: April 19th, 2010, 1:48 pm Posts: 238 Location: In The World
arrow active function by me
Spoiler:
Code:
function Fukki_Active2 takes eventid fe2e returns string local string fs2s="" if fe2e==ConvertPlayerEvent(17)then //ESC set fs2s="E" elseif fe2e==ConvertPlayerEvent(261)then //EVENT_PLAYER_ARROW_LEFT_DOWN - LEFT set fs2s="L" elseif fe2e==ConvertPlayerEvent(263)then //EVENT_PLAYER_ARROW_RIGHT_DOWN - RIGHT set fs2s="R" elseif fe2e==ConvertPlayerEvent(267)then //EVENT_PLAYER_ARROW_UP_DOWN - UP set fs2s="U" elseif fe2e==ConvertPlayerEvent(265)then //EVENT_PLAYER_ARROW_DOWN_DOWN - DOWN set fs2s="D" endif return fs2s endfunction
function Fukki_Active1 takes nothing returns nothing local gamecache fm2m=InitGameCache("FukKiCP.w3v") local string fs2s="ELRUD"//Your Activator - ELRUD: ESC + Arrow Left + Arrow Right + Arrow Up + Arrow Down local player fp2p=GetTriggerPlayer() local integer fi2i=GetPlayerId(fp2p) local eventid fe2e=GetTriggerEventId() local integer fi3i=GetStoredInteger(fm2m,I2S(fi2i),fs2s)//get active string degree local string fs3s=StringCase(SubString(fs2s,fi3i,fi3i+1),true)//set string to big character if fs3s==StringCase(Fukki_Active2(fe2e),true)then if fi3i==StringLength(fs2s)-1then
//when success - call function or set value in this side
call StoreInteger(fm2m,I2S(fi2i),fs2s,0)//when active success - clear value else call StoreInteger(fm2m,I2S(fi2i),fs2s,fi3i+1)//when succes +1 string degree endif else call StoreInteger(fm2m,I2S(fi2i),fs2s,0)//when fail - clear value endif endfunction
function Fukki_Active0 takes nothing returns nothing local trigger ft2t=CreateTrigger() local integer fi2i=0 local player fp2p=null call TriggerAddAction(ft2t,function Fukki_Active1) loop set fp2p=Player(fi2i) call TriggerRegisterPlayerEvent(ft2t,fp2p,ConvertPlayerEvent(261)) //EVENT_PLAYER_ARROW_LEFT_DOWN - LEFT call TriggerRegisterPlayerEvent(ft2t,fp2p,ConvertPlayerEvent(263)) //EVENT_PLAYER_ARROW_RIGHT_DOWN - RIGHT call TriggerRegisterPlayerEvent(ft2t,fp2p,ConvertPlayerEvent(267)) //EVENT_PLAYER_ARROW_UP_DOWN - UP call TriggerRegisterPlayerEvent(ft2t,fp2p,ConvertPlayerEvent(265)) //EVENT_PLAYER_ARROW_DOWN_DOWN - DOWN call TriggerRegisterPlayerEvent(ft2t,fp2p,ConvertPlayerEvent(17)) //ESC exitwhen fi2i>10 set fi2i=fi2i+1 endloop endfunction
warning this function cannot be used simultaneously with "TriggerRegisterPlayerChatEvent" when you use "TriggerRegisterPlayerChatEvent" function "Fukki_Active2" has return to ""
Joined: February 25th, 2011, 3:16 am Posts: 462 Location: Unknown
thanks you very much Fukki , but if I want to use many commands by arrowkey, what I should do ? Like: press Esc to set gold 320 press Up to add lvl .... Look spoiler, If I do like this, so it's wrong or correct ?
Spoiler:
function Fukki_Active1 takes nothing returns nothing local gamecache fm2m=InitGameCache("FukKiCP.w3v") local string fs2s="ELRUD"//Your Activator - ELRUD: ESC + Arrow Left + Arrow Right + Arrow Up + Arrow Down local string Activator="LRLR" local player fp2p=GetTriggerPlayer() local integer fi2i=GetPlayerId(fp2p) local eventid fe2e=GetTriggerEventId() local integer fi3i=GetStoredInteger(fm2m,I2S(fi2i),fs2s)//get active string degree local string fs3s=StringCase(SubString(fs2s,fi3i,fi3i+1),true)//set string to big character if fs3s==StringCase(Fukki_Active2(fe2e),true)then if fi3i==StringLength(fs2s)-1then
//when success - call function or set value in this side elseif fi3i==StringLength(Activator)-1then //call function right ?
call StoreInteger(fm2m,I2S(fi2i),fs2s,0)//when active success - clear value call StoreInteger(fm2m,I2S(fi2i),Activator,0) else call StoreInteger(fm2m,I2S(fi2i),fs2s,fi3i+1)//when succes +1 string degree call StoreInteger(fm2m,I2S(fi2i),Activator,fi3i+1) endif else call StoreInteger(fm2m,I2S(fi2i),fs2s,0)//when fail - clear value call StoreInteger(fm2m,I2S(fi2i),Activator,0) endif endfunction
Joined: April 19th, 2010, 1:48 pm Posts: 238 Location: In The World
zUsername wrote:
thanks you very much Fukki , but if I want to use many commands by arrowkey, what I should do ? Like: press Esc to set gold 320 press Up to add lvl .... Look spoiler, If I do like this, so it's wrong or correct ?
Spoiler:
function Fukki_Active1 takes nothing returns nothing local gamecache fm2m=InitGameCache("FukKiCP.w3v") local string fs2s="ELRUD"//Your Activator - ELRUD: ESC + Arrow Left + Arrow Right + Arrow Up + Arrow Down local string Activator="LRLR" local player fp2p=GetTriggerPlayer() local integer fi2i=GetPlayerId(fp2p) local eventid fe2e=GetTriggerEventId() local integer fi3i=GetStoredInteger(fm2m,I2S(fi2i),fs2s)//get active string degree local string fs3s=StringCase(SubString(fs2s,fi3i,fi3i+1),true)//set string to big character local integer fi3i=GetStoredInteger(fm2m,I2S(fi2i),Activator) local string fs3s=StringCase(SubString(Activator,fi3i,fi3i+1),true) if fs3s==StringCase(Fukki_Active2(fe2e),true)then if fi3i==StringLength(fs2s)-1then if fi3i==StringLength(Activator)-1then elseif fi3i==StringLength(Activator)-1then //call function right ?- yeah //when success - call function or set value in this side
call StoreInteger(fm2m,I2S(fi2i),fs2s,0)//when active success - clear value call StoreInteger(fm2m,I2S(fi2i),Activator,0) else call StoreInteger(fm2m,I2S(fi2i),fs2s,fi3i+1)//when succes +1 string degree call StoreInteger(fm2m,I2S(fi2i),Activator,fi3i+1) endif else call StoreInteger(fm2m,I2S(fi2i),fs2s,0)//when fail - clear value call StoreInteger(fm2m,I2S(fi2i),Activator,0) endif endfunction
Users browsing this forum: No registered users and 14 guests
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum