Added color and position modifiers to point_zsmessage
New keyvalues: textcolor and position New inputs: settextcolour and setdisplaytime Color is any "R G B" string Position is either "Center" or "Top Right" ("top" if not using smartedit)"
This commit is contained in:
parent
65534fbadf
commit
02c0808e4c
2 changed files with 42 additions and 4 deletions
|
@ -3,6 +3,10 @@ ENT.Type = "point"
|
||||||
function ENT:Initialize()
|
function ENT:Initialize()
|
||||||
self.SendTo = self.SendTo or -1
|
self.SendTo = self.SendTo or -1
|
||||||
self.DisplayTime = self.DisplayTime or GAMEMODE.NotifyFadeTime
|
self.DisplayTime = self.DisplayTime or GAMEMODE.NotifyFadeTime
|
||||||
|
self.Position = self.Position or "center"
|
||||||
|
self.Red = self.Red or 255
|
||||||
|
self.Green = self.Green or 255
|
||||||
|
self.Blue = self.Blue or 255
|
||||||
end
|
end
|
||||||
|
|
||||||
function ENT:Think()
|
function ENT:Think()
|
||||||
|
@ -16,19 +20,33 @@ function ENT:AcceptInput(name, caller, activator, args)
|
||||||
args = string.gsub(args, "<.-=.->", "")
|
args = string.gsub(args, "<.-=.->", "")
|
||||||
args = string.gsub(args, "</.->", "")
|
args = string.gsub(args, "</.->", "")
|
||||||
|
|
||||||
|
local TextColor = Color(self.Red, self.Green, self.Blue)
|
||||||
|
|
||||||
if self.SendTo == 0 then
|
if self.SendTo == 0 then
|
||||||
GAMEMODE:CenterNotifyAll(args,{CustomTime = self.DisplayTime})
|
if self.Position == "top" then
|
||||||
|
GAMEMODE:TopNotifyAll(TextColor, args, {CustomTime = self.DisplayTime})
|
||||||
|
else
|
||||||
|
GAMEMODE:CenterNotifyAll(TextColor, args, {CustomTime = self.DisplayTime})
|
||||||
|
end
|
||||||
elseif self.SendTo == -1 then
|
elseif self.SendTo == -1 then
|
||||||
for _, pl in pairs(player.GetAll()) do
|
for _, pl in pairs(player.GetAll()) do
|
||||||
if pl == activator or pl == caller then
|
if pl == activator or pl == caller then
|
||||||
pl:CenterNotify(args,{CustomTime = self.DisplayTime})
|
if self.Position == "top" then
|
||||||
|
pl:TopNotify(TextColor, args, {CustomTime = self.DisplayTime})
|
||||||
|
else
|
||||||
|
pl:CenterNotify(TextColor, args, {CustomTime = self.DisplayTime})
|
||||||
|
end
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
for _, pl in pairs(player.GetAll()) do
|
for _, pl in pairs(player.GetAll()) do
|
||||||
if pl:Team() == self.SendTo then
|
if pl:Team() == self.SendTo then
|
||||||
pl:CenterNotify(args,{CustomTime = self.DisplayTime})
|
if self.Position == "top" then
|
||||||
|
pl:TopNotify(TextColor, args, {CustomTime = self.DisplayTime})
|
||||||
|
else
|
||||||
|
pl:CenterNotify(TextColor, args, {CustomTime = self.DisplayTime})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -44,6 +62,8 @@ function ENT:AcceptInput(name, caller, activator, args)
|
||||||
SetGlobalString("hudoverride"..TEAM_HUMAN, "")
|
SetGlobalString("hudoverride"..TEAM_HUMAN, "")
|
||||||
elseif name == "setdisplaytime" then
|
elseif name == "setdisplaytime" then
|
||||||
self.DisplayTime = tonumber(args)
|
self.DisplayTime = tonumber(args)
|
||||||
|
elseif name == "settextcolor" or name == "settextcolour" then
|
||||||
|
self:ApplyColor(args)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -62,5 +82,16 @@ function ENT:KeyValue(key, value)
|
||||||
end
|
end
|
||||||
elseif key == "displaytime" then
|
elseif key == "displaytime" then
|
||||||
self.DisplayTime = tonumber(value)
|
self.DisplayTime = tonumber(value)
|
||||||
|
elseif key == "position" then
|
||||||
|
self.Position = string.lower(value)
|
||||||
|
elseif key == "textcolor" or key == "textcolour" then
|
||||||
|
self:ApplyColor(value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function ENT:ApplyColor(colorstring)
|
||||||
|
local col = string.ToColor(colorstring.." 255")
|
||||||
|
self.Red = col.r or 255
|
||||||
|
self.Green = col.g or 255
|
||||||
|
self.Blue = col.b or 255
|
||||||
|
end
|
||||||
|
|
|
@ -635,7 +635,13 @@
|
||||||
"private" : "Activator Only"
|
"private" : "Activator Only"
|
||||||
"all" : "All"
|
"all" : "All"
|
||||||
]
|
]
|
||||||
displaytime(integer) : "Display Time (centre message only)" : 8 : "How long the input message displays for, does not have an effect on HUD messages."
|
displaytime(integer) : "Display Time" : 8 : "How long the input message displays for, does not have an effect on HUD messages."
|
||||||
|
position(choices) : "Message Position" : "center" : "Where the message is seen." =
|
||||||
|
[
|
||||||
|
"center" : "Center"
|
||||||
|
"top" : "Top Right"
|
||||||
|
]
|
||||||
|
textcolor(color255) : "Text Colour" : "255 255 255" : "Sets the color of an input message."
|
||||||
|
|
||||||
// Inputs
|
// Inputs
|
||||||
input message(string) : "What to display. Supports the markup library."
|
input message(string) : "What to display. Supports the markup library."
|
||||||
|
@ -644,6 +650,7 @@
|
||||||
input clearhumanhudmessage(void) : "Clear the message to display in the human wave hud."
|
input clearhumanhudmessage(void) : "Clear the message to display in the human wave hud."
|
||||||
input clearzombiehudmessage(void) : "Clear the message to display in the zombie wave hud."
|
input clearzombiehudmessage(void) : "Clear the message to display in the zombie wave hud."
|
||||||
input setdisplaytime(integer) : "Change how long the input message displays for."
|
input setdisplaytime(integer) : "Change how long the input message displays for."
|
||||||
|
input settextcolor(string) : "Takes an 'R G B' string to change the color of the next message."
|
||||||
]
|
]
|
||||||
|
|
||||||
@PointClass base(Targetname) = logic_pantsmode : "ZS: When activated, this will set the special Pants Mode on."
|
@PointClass base(Targetname) = logic_pantsmode : "ZS: When activated, this will set the special Pants Mode on."
|
||||||
|
|
Loading…
Reference in a new issue