Exide
I am amazingly focused right now!
- Reaction score
- 448
Hi.
I saw a few threads asking about Entered Chat Strings.
So I figured I'd write a short trigger as an example for people to use.
So here it is.
What you need:
*Warcraft 3!
Global variables used:
*Hero[(array)]
Code:
Hero Color:
Player Name:
Kick Player:
Example Map, v1.2 Attached.
Last Update: 12/7.
I saw a few threads asking about Entered Chat Strings.
So I figured I'd write a short trigger as an example for people to use.
So here it is.
What you need:
*Warcraft 3!
Global variables used:
*Hero[(array)]
Code:
Hero Color:
JASS:
function Trig_Hero_Color_Actions takes nothing returns nothing
local integer textlength = StringLength(GetEventPlayerChatString())
local string text = GetEventPlayerChatString()
local force playzor = CreateForce() // not necessary.
local unit colorunit // this is the unit that will change color.
local integer redvalue // redvalue, bluevalue and greenvalue are used for setting colors.
local integer bluevalue
local integer greenvalue
if ( SubString(text, 1, textlength) == "normal" ) then // these functions sets the colors.
set redvalue = 255
set bluevalue = 255
set greenvalue = 255
endif
if ( SubString(text, 1, textlength) == "random" ) then
set redvalue = GetRandomInt(1, 255)
set bluevalue = GetRandomInt(1, 255)
set greenvalue = GetRandomInt(1, 255)
endif
if ( SubString(text, 1, textlength) == "black" ) then
set redvalue = 0
set bluevalue = 0
set greenvalue = 0
endif
if ( SubString(text, 1, textlength) == "blue" ) then
set redvalue = 0
set bluevalue = 0
set greenvalue = 255
endif
if ( SubString(text, 1, textlength) == "red" ) then
set redvalue = 255
set bluevalue = 0
set greenvalue = 0
endif
if ( SubString(text, 1, textlength) == "green" ) then
set redvalue = 0
set bluevalue = 255
set greenvalue = 0
endif
if ( SubString(text, 1, textlength) == "yellow" ) then
set redvalue = 100
set bluevalue = 100
set greenvalue = 0
endif
if ( SubString(text, 1, textlength) == "teal" ) then
set redvalue = 0
set bluevalue = 255
set greenvalue = 255
endif
if ( SubString(text, 1, textlength) == "purple" ) then
set redvalue = 255
set bluevalue = 0
set greenvalue = 255
endif
if ( GetTriggerPlayer() == Player(0) ) then // this checks which player it was that wrote the message.
set colorunit = udg_Hero[1]
elseif ( GetTriggerPlayer() == Player(1) ) then
set colorunit = udg_Hero[2]
elseif ( GetTriggerPlayer() == Player(2) ) then
set colorunit = udg_Hero[3]
endif
call SetUnitVertexColor( colorunit, redvalue, bluevalue, greenvalue, 255 ) // this actually changes color of the unit, acording to 'redvalue', 'bluevalue', and 'greenvalue'.
call ForceAddPlayer(playzor, GetTriggerPlayer()) // not necessary.
call QuestMessageBJ(playzor, bj_QUESTMESSAGE_UPDATED, SubString(( "|cffffcc00Current color: " + text), 2, textlength) ) // not necessary.
set colorunit = null
set playzor = null // only necessary if using the 'Current color:' -function.
set text = null
endfunction
//===========================================================================
function InitTrig_Hero_Color takes nothing returns nothing
local trigger gg_trg_Hero_Color = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Hero_Color, Player(0), ( "-" + "" ), false )
call TriggerRegisterPlayerChatEvent( gg_trg_Hero_Color, Player(1), ( "-" + "" ), false )
call TriggerRegisterPlayerChatEvent( gg_trg_Hero_Color, Player(2), ( "-" + "" ), false )
call TriggerAddAction( gg_trg_Hero_Color, function Trig_Hero_Color_Actions )
endfunction
Player Name:
JASS:
function Trig_Player_Name_Actions takes nothing returns nothing
local integer textlength = StringLength(GetEventPlayerChatString())
local string text = GetEventPlayerChatString()
local player whozor = GetTriggerPlayer()
call SetPlayerName( whozor, SubString(text, 6, textlength) )
set whozor = null
set text = null
endfunction
//===========================================================================
function InitTrig_Player_Name takes nothing returns nothing
local trigger gg_trg_Player_Name = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Player_Name, Player(0), ( "-" + "name" + "" ), false )
call TriggerRegisterPlayerChatEvent( gg_trg_Player_Name, Player(1), ( "-" + "name" + "" ), false )
call TriggerRegisterPlayerChatEvent( gg_trg_Player_Name, Player(2), ( "-" + "name" + "" ), false )
call TriggerAddAction( gg_trg_Player_Name, function Trig_Player_Name_Actions )
endfunction
Kick Player:
JASS:
function Trig_Kick_Player_Actions takes nothing returns nothing
local integer textlength = StringLength(GetEventPlayerChatString())
local string text = GetEventPlayerChatString()
local player whozor
if ( SubString(text, 6, textlength) == "red" ) then
set whozor = Player(0)
endif
if ( SubString(text, 6, textlength) == "blue" ) then
set whozor = Player(1)
endif
if ( SubString(text, 6, textlength) == "teal" ) then
set whozor = Player(2)
endif
call CustomDefeatBJ( whozor, "You were kicked!" )
call QuestMessageBJ( GetPlayersAll(), bj_QUESTMESSAGE_UPDATED, ( "|c00FF0000" + ( GetPlayerName(whozor)) + " was kicked!" ) )
set whozor = null
endfunction
//===========================================================================
function InitTrig_Kick_Player takes nothing returns nothing
local trigger gg_trg_Kick_Player = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Kick_Player, Player(0), ( "-" + "kick" + "" ), false )
call TriggerRegisterPlayerChatEvent( gg_trg_Kick_Player, Player(1), ( "-" + "kick" + "" ), false )
call TriggerRegisterPlayerChatEvent( gg_trg_Kick_Player, Player(2), ( "-" + "kick" + "" ), false )
call TriggerAddAction( gg_trg_Kick_Player, function Trig_Kick_Player_Actions )
endfunction
Example Map, v1.2 Attached.
Last Update: 12/7.