write in 3 minute ...
this code has been tested
Code:
globals
hashtable HASH_MessagesClear=InitHashtable()
real AutoMessagesClear_Timer=1.
endglobals
function GetTimer_MessagesClear takes integer Clear_Int1 returns timer
local timer Clear_Timer=CreateTimer()
local integer Clear_Int2=GetHandleId(Clear_Timer)
call SaveInteger(HASH_MessagesClear,0,Clear_Int2,Clear_Int1)
call SaveBoolean(HASH_MessagesClear,0,Clear_Int1,true)
return Clear_Timer
endfunction
function Auto_ClearMessages takes nothing returns nothing
local timer Clear_Timer=GetExpiredTimer()
local integer Clear_Int1=GetHandleId(Clear_Timer)
local integer Clear_Int2=LoadInteger(HASH_MessagesClear,0,Clear_Int1)
if LoadBoolean(HASH_MessagesClear,0,Clear_Int2)then
if GetLocalPlayer()==Player(Clear_Int2)then
call ClearTextMessages()
endif
else
call DestroyTimer(Clear_Timer)
endif
set Clear_Timer=null
set Clear_Int1=0
set Clear_Int2=0
endfunction
function MessagesClear_Enable takes nothing returns nothing
local player Clear_Player=GetTriggerPlayer()
local integer Clear_Int1=GetPlayerId(Clear_Player)
if not LoadBoolean(HASH_MessagesClear,0,Clear_Int1)then
call TimerStart(GetTimer_MessagesClear(Clear_Int1),AutoMessagesClear_Timer,true,function Auto_ClearMessages)
endif
set Clear_Player=null
set Clear_Int1=0
endfunction
function MessagesClear_Disable takes nothing returns nothing
local player Clear_Player=GetTriggerPlayer()
local integer Clear_Int1=GetPlayerId(Clear_Player)
call SaveBoolean(HASH_MessagesClear,0,Clear_Int1,false)
set Clear_Player=null
set Clear_Int1=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