TriggerHappy
...
- Reaction score
- 341
Here is a chat system that i made that displays the text as a game message. Credits to PitzerMike for making the needed files And to shadow1500 for his tutorial on hiding messages. But i made the system.
How to install :
How to install :
- Download This
- Extract it to your Warcraft III Directory
- Run WorldEdit,open your map, and go to Game Interface.
- Change [All], [Allies], [Observers], [Referees] and [Private] to a lots of spaces.
JASS:
scope ACS initializer Init
globals
private boolean array Show // Dont Modify
private string array Colors
private constant real Time = 10 // How long to display the message for.
private constant string Message = "-"
private constant string Squelch = "Squelch"
private constant string unSquelch = "Unsquelch"
private constant string MsgUnquelch = "|c00808080You have Unsquelched " // Unsquelched
private constant string MsgSquelch = "|c00808080You have Squelched " // Squelched
private constant string Error1 = "|c00808080You cannot Squelch yourself "
private constant string plist = "plist"
endglobals
private function playerlist takes nothing returns nothing
local integer i = 0
local player p = GetTriggerPlayer()
loop
exitwhen i > 12
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
if GetPlayerController(Player(i)) == MAP_CONTROL_USER then
call DisplayTimedTextToPlayer(p, 0.00, 0.00, Time, Colors[GetPlayerId(Player(i))] + GetPlayerName(Player(i)))
endif
endif
set i = i + 1
endloop
endfunction
private function ACS_Setups takes nothing returns nothing
local integer i = 0
local integer i2 = 0
set Colors[0] = "|c00FF0303" // Player 1
set Colors[1] = "|c000042FF" // Player 2
set Colors[2] = "|c001CE6B9" // Player 3
set Colors[3] = "|c00540081" // Player 4
set Colors[4] = "|c00FFFC01" // Player 5
set Colors[5] = "|c00FEBA0E" // Player 6
set Colors[6] = "|c0020C000" // Player 7
set Colors[7] = "|c00E55BB0" // Player 8
set Colors[8] = "|c00959697" // Player 9
set Colors[9] = "|c007EBFF1" // Player 10
set Colors[10] = "|c00106246" // Player 11
set Colors[11] = "|c004E2A04" // Player 12
loop
exitwhen i2 > 12
loop
exitwhen i > 12
set Show[i2 + i] = true
set i = i + 1
endloop
set i2 = i2 + 1
endloop
endfunction
private function Actions takes nothing returns nothing
local integer i = 0
loop
exitwhen i > 11
if Show[GetPlayerId(GetTriggerPlayer()) + i] == true then
call DisplayTimedTextToPlayer(Player(i), 0.00, 0.00, Time, Colors[GetPlayerId(GetTriggerPlayer())] + GetPlayerName(GetTriggerPlayer()) + "|r : " + GetEventPlayerChatString())
set i = i + 1
endif
endloop
endfunction
private function unsquelch takes nothing returns nothing
local integer i = 0
local string s = GetEventPlayerChatString()
local player p = GetTriggerPlayer()
loop
exitwhen i > 12
if SubString(s, StringLength(Message + unSquelch + " "), StringLength(s)) == GetPlayerName(Player(i)) then
set Show[GetPlayerId(p) + i] = true
call DisplayTimedTextToPlayer(p, 0.00,0.00, Time, MsgUnquelch + GetPlayerName(Player(i)))
elseif StringCase(SubString(s, StringLength(Message + unSquelch + " "), StringLength(s)), false) == StringCase(GetPlayerName(Player(i)), false) then
set Show[GetPlayerId(p) + i] = true
call DisplayTimedTextToPlayer(p, 0.00,0.00, Time, MsgUnquelch + GetPlayerName(Player(i)))
elseif StringCase(SubString(s, StringLength(Message + unSquelch + " "), StringLength(s)), true) == StringCase(GetPlayerName(Player(i)), true) then
set Show[GetPlayerId(p) + i] = true
call DisplayTimedTextToPlayer(p, 0.00,0.00, Time, MsgUnquelch + GetPlayerName(Player(i)))
endif
set i = i + 1
endloop
set s = null
set p = null
endfunction
private function squelch takes nothing returns nothing
local integer i = 0
local string s = GetEventPlayerChatString()
local player p = GetTriggerPlayer()
if SubString(s, StringLength(Message + Squelch + " "), StringLength(s)) == GetPlayerName(p) then
call DisplayTimedTextToPlayer(p, 0.00,0.00, Time, Error1)
return
elseif StringCase(SubString(s, StringLength(Message + Squelch + " "), StringLength(s)), false) == StringCase(GetPlayerName(p), false) then
call DisplayTimedTextToPlayer(p, 0.00,0.00, Time, Error1)
return
elseif StringCase(SubString(s, StringLength(Message + Squelch + " "), StringLength(s)), true) == StringCase(GetPlayerName(p), true) then
call DisplayTimedTextToPlayer(p, 0.00,0.00, Time, Error1)
return
endif
loop
exitwhen i > 12
if SubString(s, StringLength(Message + Squelch + " "), StringLength(s)) == GetPlayerName(Player(i)) then
set Show[GetPlayerId(p) + i] = false
call DisplayTimedTextToPlayer(p, 0.00,0.00, Time, MsgSquelch + GetPlayerName(Player(i)))
elseif StringCase(SubString(s, StringLength(Message + Squelch + " "), StringLength(s)), false) == StringCase(GetPlayerName(Player(i)), false) then
set Show[GetPlayerId(p) + i] = false
call DisplayTimedTextToPlayer(p, 0.00,0.00, Time, MsgSquelch + GetPlayerName(Player(i)))
elseif StringCase(SubString(s, StringLength(Message + Squelch + " "), StringLength(s)), true) == StringCase(GetPlayerName(Player(i)), true) then
set Show[GetPlayerId(p) + i] = false
call DisplayTimedTextToPlayer(p, 0.00,0.00, Time, MsgSquelch + GetPlayerName(Player(i)))
endif
set i = i + 1
endloop
set s = null
set p = null
endfunction
private function Init takes nothing returns nothing
local trigger t = CreateTrigger( )
local integer i = 0
loop
exitwhen i > 11
call TriggerRegisterPlayerChatEvent( t, Player(i), "", false )
set i = i + 1
endloop
call TriggerAddAction( t, function Actions )
set t = CreateTrigger()
call TriggerRegisterTimerEvent( t, 0.00, false )
call TriggerAddAction( t, function ACS_Setups )
set t = CreateTrigger()
set i = 0
loop
exitwhen i > 11
call TriggerRegisterPlayerChatEvent( t, Player(i), Message + Squelch , false )
set i = i + 1
endloop
call TriggerAddAction( t, function squelch )
set t = CreateTrigger()
set i = 0
loop
exitwhen i > 11
call TriggerRegisterPlayerChatEvent( t, Player(i), Message + unSquelch , false )
set i = i + 1
endloop
call TriggerAddAction( t, function unsquelch )
set t = null
set t = CreateTrigger()
set i = 0
loop
exitwhen i > 11
call TriggerRegisterPlayerChatEvent( t, Player(i), Message + plist , false )
set i = i + 1
endloop
call TriggerAddAction( t, function playerlist )
set t = null
endfunction
endscope