Anyone know how to convert this code meant for sandbox gameplay to work with Darkrp. Im wanting it to add a prefix title to all admins. I need help making the hook and function compatible
[LUA]if SERVER then
hook.Add( "PlayerSay", "Tags", function(ply, text, team)
local rank
if ply:IsSuperAdmin() then
rank = "Superadmin"
elseif ply:IsAdmin() then
rank = "Admin"
else
rank = "User"
end
umsg.Start("_Tagsay")
umsg.String(text)
umsg.String(rank)
umsg.Entity(ply)
umsg.End()
return false
end)
end
if CLIENT then
usermessage.Hook("_Tagsay", function (um)
local text = um:ReadString()
local rank = um:ReadString() or "User"
local ply = um:ReadEntity()
if !rank or !text or !ply then return end
ChatAdd(rank,text, ply)
end)
function ChatAdd(rank, text, ply)
chat.AddText("",Color(255,125,0),"[",Color(125,0,0),rank,Color(255,125,0),"] ",Color(0,125,25),ply:Nick()..": ",Color(255,255,255),text)
end
end[/LUA]
-- Thank you "science"
We don't need the sandbox code, we can make our own! It is very easy, could you please post your cl_init.lua?
[QUOTE=KyleWollasto;32228625]We don't need the sandbox code, we can make our own! It is very easy, could you please post your cl_init.lua?[/QUOTE]
[LUA]GM.Version = "2.4.2"
GM.Name = "DarkRP "..GM.Version
GM.Author = "By Rickster, Updated: Pcwizdan, Sibre, philxyz, [GNC] Matt, Chrome Bolt, FPtje Falco, Eusion"
require("datastream")
DeriveGamemode("sandbox")
util.PrecacheSound("earthquake.mp3")
CUR = "$"
HelpLabels = { }
HelpCategories = { }
-- Make sure the client sees the RP name where they expect to see the name
local pmeta = FindMetaTable("Player")
pmeta.SteamName = pmeta.Name
function pmeta:Name()
if not self or not self.IsValid or not ValidEntity(self) then return "" end
self.DarkRPVars = self.DarkRPVars or {}
if GetConVarNumber("allowrpnames") == 0 then
return self:SteamName()
end
return self.DarkRPVars.rpname or self:SteamName()
end
pmeta.GetName = pmeta.Name
pmeta.Nick = pmeta.Name
-- End
local ENT = FindMetaTable("Entity")
ENT.OldIsVehicle = ENT.IsVehicle
function ENT:IsVehicle()
if type(self) ~= "Entity" then return false end
local class = string.lower(self:GetClass())
return ENT:OldIsVehicle() or string.find(class, "vehicle")
-- Ent:IsVehicle() doesn't work correctly clientside:
/*
] lua_run_cl print(LocalPlayer():GetEyeTrace().Entity)
> Entity [128][prop_vehicle_jeep_old]
] lua_run_cl print(LocalPlayer():GetEyeTrace().Entity:IsVehicle())
> false
*/
end
function GM:DrawDeathNotice(x, y)
if GetConVarNumber("deathnotice") ~= 1 then return end
self.BaseClass:DrawDeathNotice(x, y)
end
local function DisplayNotify(msg)
local txt = msg:ReadString()
GAMEMODE:AddNotify(txt, msg:ReadShort(), msg:ReadLong())
surface.PlaySound("buttons/lightswitch2.wav")
-- Log to client console
print(txt)
end
usermessage.Hook("_Notify", DisplayNotify)
local function LoadModules(msg)
local num = msg:ReadShort()
for n = 1, num do
include(GAMEMODE.FolderName.."/gamemode/modules/" .. msg:ReadString())
end
end
usermessage.Hook("LoadModules", LoadModules)
LocalPlayer().DarkRPVars = LocalPlayer().DarkRPVars or {}
for k,v in pairs(player.GetAll()) do
v.DarkRPVars = v.DarkRPVars or {}
end
include("help.lua")
include("language_sh.lua")
include("MakeThings.lua")
include("cl_vgui.lua")
include("entity.lua")
include("cl_helpvgui.lua")
include("showteamtabs.lua")
include("DRPDermaSkin.lua")
include("sh_animations.lua")
include("cl_hud.lua")
include("Workarounds.lua")
include("FPP/sh_settings.lua")
include("FPP/client/FPP_Menu.lua")
include("FPP/client/FPP_HUD.lua")
include("FPP/client/FPP_Buddies.lua")
include("FPP/sh_CPPI.lua")
surface.CreateFont("akbar", 20, 500, true, false, "AckBarWriting")
-- Copy from FESP(made by FPtje Falco)
-- This is no stealing since I made FESP myself.
local vector = FindMetaTable("Vector")
function vector:RPIsInSight(v, ply)
ply = ply or LocalPlayer()
local trace = {}
trace.start = ply:EyePos()
trace.endpos = self
trace.filter = v
trace.mask = -1
local TheTrace = util.TraceLine(trace)
if TheTrace.Hit then
return false, TheTrace.HitPos
else
return true, TheTrace.HitPos
end
end
function GM:HUDShouldDraw(name)
if name == "CHudHealth" or
name == "CHudBattery" or
name == "CHudSuitPower" or
(HelpToggled and name == "CHudChat") then
return false
else
return true
end
end
function GM:HUDDrawTargetID()
return false
end
function FindPlayer(info)
local pls = player.GetAll()
-- Find by Index Number (status in console)
for k, v in pairs(pls) do
if tonumber(info) == v:UserID() then
return v
end
end
-- Find by RP Name
for k, v in pairs(pls) do
if string.find(string.lower(v.DarkRPVars.rpname or ""), string.lower(tostring(info))) ~= nil then
return v
end
end
-- Find by Partial Nick
for k, v in pairs(pls) do
if string.find(string.lower(v:Name()), string.lower(tostring(info))) ~= nil then
return v
end
end
return nil
end
local GUIToggled = false
local HelpToggled = false
local HelpVGUI
local function ToggleHelp()
if not HelpVGUI then
HelpVGUI = vgui.Create("HelpVGUI")
end
HelpToggled = not HelpToggled
HelpVGUI.HelpX = HelpVGUI.StartHelpX
HelpVGUI:SetVisible(HelpToggled)
gui.EnableScreenClicker(HelpToggled)
end
usermessage.Hook("ToggleHelp", ToggleHelp)
local function ToggleClicker()
GUIToggled = not GUIToggled
gui.EnableScreenClicker(GUIToggled)
end
usermessage.Hook("ToggleClicker", ToggleClicker)
include("sh_commands.lua")
include("shared.lua")
include("addentities.lua")
local function DoSpecialEffects(Type)
local thetype = string.lower(Type:ReadString())
local toggle = tobool(Type:ReadString())
if toggle then
if thetype == "motionblur" then
hook.Add("RenderScreenspaceEffects", thetype, function()
DrawMotionBlur(0.05, 1.00, 0.035)
end)
elseif thetype == "dof" then
DOF_SPACING = 8
DOF_OFFSET = 9
DOF_Start()
elseif thetype == "colormod" then
hook.Add("RenderScreenspaceEffects", thetype, function()
local settings = {}
settings[ "$pp_colour_addr" ] = 0
settings[ "$pp_colour_addg" ] = 0
settings[ "$pp_colour_addb" ] = 0
settings[ "$pp_colour_brightness" ] = -1
settings[ "$pp_colour_contrast" ] = 0
settings[ "$pp_colour_colour" ] =0
settings[ "$pp_colour_mulr" ] = 0
settings[ "$pp_colour_mulg" ] = 0
settings[ "$pp_colour_mulb" ] = 0
DrawColorModify(settings)
end)
elseif thetype == "drugged" then
hook.Add("RenderScreenspaceEffects", thetype, function()
DrawSharpen(-1, 2)
DrawMaterialOverlay("models/props_lab/Tank_Glass001", 0)
DrawMotionBlur(0.13, 1, 0.00)
end)
elseif thetype == "deathpov" then
hook.Add("CalcView", "rp_deathPOV", function(ply, origin, angles, fov)
local Ragdoll = ply:GetRagdollEntity()
if not ValidEntity(Ragdoll) then return end
local head = Ragdoll:LookupAttachment("eyes")
head = Ragdoll:GetAttachment(head)
if not head or not head.Pos then return end
local view = {}
view.origin = head.Pos
view.angles = head.Ang
view.fov = fov
return view
end)
end
elseif toggle == false then
if thetype == "dof" then
DOF_Kill()
return
elseif thetype == "deathpov" then
if hook.GetTable().CalcView and hook.GetTable().CalcView.rp_deathPOV then
hook.Remove("CalcView", "rp_deathPOV")
end
return
end
hook.Remove("RenderScreenspaceEffects", thetype)
end
end
usermessage.Hook("DarkRPEffects", DoSpecialEffects)
local Messagemode = false
local playercolors = {}
local HearMode = "talk"
local isSpeaking = false
local function RPStopMessageMode()
Messagemode = false
hook.Remove("Think", "RPGetRecipients")
hook.Remove("HUDPaint", "RPinstructionsOnSayColors")
playercolors = {}
end
local function CL_IsInRoom(listener) -- IsInRoom function to see if the player is in the same room.
local tracedata = {}
tracedata.start = LocalPlayer():GetShootPos()
tracedata.endpos = listener:GetShootPos()
local trace = util.TraceLine( tracedata )
return not trace.HitWorld
end
local PlayerColorsOn = CreateClientConVar("rp_showchatcolors", 1, true, false)
local function RPSelectwhohearit()
if PlayerColorsOn:GetInt() == 0 then return end
Messagemode = true
hook.Add("HUDPaint", "RPinstructionsOnSayColors", function()
local w, l = ScrW()/80, ScrH() /1.75
local h = l - (#playercolors * 20) - 20
local AllTalk = GetConVarNumber("alltalk") == 1
if #playercolors <= 0 and ((HearMode ~= "talk through OOC" and HearMode ~= "advert" and not AllTalk) or (AllTalk and HearMode ~= "talk" and HearMode ~= "me") or HearMode == "speak" ) then
draw.WordBox(2, w, h, string.format(LANGUAGE.hear_noone, HearMode), "ScoreboardText", Color(0,0,0,120), Color(255,0,0,255))
elseif HearMode == "talk through OOC" or HearMode == "advert" then
draw.WordBox(2, w, h, LANGUAGE.hear_everyone, "ScoreboardText", Color(0,0,0,120), Color(0,255,0,255))
elseif not AllTalk or (AllTalk and HearMo
Okay, replace the AddToChat function with this:
[lua]local function AddToChat(msg)
local col1 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local name = msg:ReadString()
local ply = msg:ReadEntity()
local col2 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local rank = ply:IsSuperAdmin and "[Superadmin] " or ply:IsAdmin() and "[Admin] " or ""
local text = msg:ReadString()
if text and text ~= "" then
chat.AddText(col1, name, col2, rank .. ": "..text)
if ValidEntity(ply) then
hook.Call("OnPlayerChat", nil, ply, text, false, ply:Alive())
end
else
chat.AddText(col1, name)
hook.Call("ChatText", nil, "0", name, name, "none")
end
chat.PlaySound()
end
[/lua]
I tried that and got this: Warning: Unhandled usermessage 'DarkRP_Chat'
Heres the Cl_init. I don't see how I could have messed anything up.
[LUA]GM.Version = "2.4.2"
GM.Name = "DarkRP "..GM.Version
GM.Author = "By Rickster, Updated: Pcwizdan, Sibre, philxyz, [GNC] Matt, Chrome Bolt, FPtje Falco, Eusion"
require("datastream")
DeriveGamemode("sandbox")
util.PrecacheSound("earthquake.mp3")
CUR = "$"
HelpLabels = { }
HelpCategories = { }
-- Make sure the client sees the RP name where they expect to see the name
local pmeta = FindMetaTable("Player")
pmeta.SteamName = pmeta.Name
function pmeta:Name()
if not self or not self.IsValid or not ValidEntity(self) then return "" end
self.DarkRPVars = self.DarkRPVars or {}
if GetConVarNumber("allowrpnames") == 0 then
return self:SteamName()
end
return self.DarkRPVars.rpname or self:SteamName()
end
pmeta.GetName = pmeta.Name
pmeta.Nick = pmeta.Name
-- End
local ENT = FindMetaTable("Entity")
ENT.OldIsVehicle = ENT.IsVehicle
function ENT:IsVehicle()
if type(self) ~= "Entity" then return false end
local class = string.lower(self:GetClass())
return ENT:OldIsVehicle() or string.find(class, "vehicle")
-- Ent:IsVehicle() doesn't work correctly clientside:
/*
] lua_run_cl print(LocalPlayer():GetEyeTrace().Entity)
> Entity [128][prop_vehicle_jeep_old]
] lua_run_cl print(LocalPlayer():GetEyeTrace().Entity:IsVehicle())
> false
*/
end
function GM:DrawDeathNotice(x, y)
if GetConVarNumber("deathnotice") ~= 1 then return end
self.BaseClass:DrawDeathNotice(x, y)
end
local function DisplayNotify(msg)
local txt = msg:ReadString()
GAMEMODE:AddNotify(txt, msg:ReadShort(), msg:ReadLong())
surface.PlaySound("buttons/lightswitch2.wav")
-- Log to client console
print(txt)
end
usermessage.Hook("_Notify", DisplayNotify)
local function LoadModules(msg)
local num = msg:ReadShort()
for n = 1, num do
include(GAMEMODE.FolderName.."/gamemode/modules/" .. msg:ReadString())
end
end
usermessage.Hook("LoadModules", LoadModules)
LocalPlayer().DarkRPVars = LocalPlayer().DarkRPVars or {}
for k,v in pairs(player.GetAll()) do
v.DarkRPVars = v.DarkRPVars or {}
end
include("help.lua")
include("language_sh.lua")
include("MakeThings.lua")
include("cl_vgui.lua")
include("entity.lua")
include("cl_helpvgui.lua")
include("showteamtabs.lua")
include("DRPDermaSkin.lua")
include("sh_animations.lua")
include("cl_hud.lua")
include("Workarounds.lua")
include("FPP/sh_settings.lua")
include("FPP/client/FPP_Menu.lua")
include("FPP/client/FPP_HUD.lua")
include("FPP/client/FPP_Buddies.lua")
include("FPP/sh_CPPI.lua")
surface.CreateFont("akbar", 20, 500, true, false, "AckBarWriting")
-- Copy from FESP(made by FPtje Falco)
-- This is no stealing since I made FESP myself.
local vector = FindMetaTable("Vector")
function vector:RPIsInSight(v, ply)
ply = ply or LocalPlayer()
local trace = {}
trace.start = ply:EyePos()
trace.endpos = self
trace.filter = v
trace.mask = -1
local TheTrace = util.TraceLine(trace)
if TheTrace.Hit then
return false, TheTrace.HitPos
else
return true, TheTrace.HitPos
end
end
function GM:HUDShouldDraw(name)
if name == "CHudHealth" or
name == "CHudBattery" or
name == "CHudSuitPower" or
(HelpToggled and name == "CHudChat") then
return false
else
return true
end
end
function GM:HUDDrawTargetID()
return false
end
function FindPlayer(info)
local pls = player.GetAll()
-- Find by Index Number (status in console)
for k, v in pairs(pls) do
if tonumber(info) == v:UserID() then
return v
end
end
-- Find by RP Name
for k, v in pairs(pls) do
if string.find(string.lower(v.DarkRPVars.rpname or ""), string.lower(tostring(info))) ~= nil then
return v
end
end
-- Find by Partial Nick
for k, v in pairs(pls) do
if string.find(string.lower(v:Name()), string.lower(tostring(info))) ~= nil then
return v
end
end
return nil
end
local GUIToggled = false
local HelpToggled = false
local HelpVGUI
local function ToggleHelp()
if not HelpVGUI then
HelpVGUI = vgui.Create("HelpVGUI")
end
HelpToggled = not HelpToggled
HelpVGUI.HelpX = HelpVGUI.StartHelpX
HelpVGUI:SetVisible(HelpToggled)
gui.EnableScreenClicker(HelpToggled)
end
usermessage.Hook("ToggleHelp", ToggleHelp)
local function ToggleClicker()
GUIToggled = not GUIToggled
gui.EnableScreenClicker(GUIToggled)
end
usermessage.Hook("ToggleClicker", ToggleClicker)
include("sh_commands.lua")
include("shared.lua")
include("addentities.lua")
local function DoSpecialEffects(Type)
local thetype = string.lower(Type:ReadString())
local toggle = tobool(Type:ReadString())
if toggle then
if thetype == "motionblur" then
hook.Add("RenderScreenspaceEffects", thetype, function()
DrawMotionBlur(0.05, 1.00, 0.035)
end)
elseif thetype == "dof" then
DOF_SPACING = 8
DOF_OFFSET = 9
DOF_Start()
elseif thetype == "colormod" then
hook.Add("RenderScreenspaceEffects", thetype, function()
local settings = {}
settings[ "$pp_colour_addr" ] = 0
settings[ "$pp_colour_addg" ] = 0
settings[ "$pp_colour_addb" ] = 0
settings[ "$pp_colour_brightness" ] = -1
settings[ "$pp_colour_contrast" ] = 0
settings[ "$pp_colour_colour" ] =0
settings[ "$pp_colour_mulr" ] = 0
settings[ "$pp_colour_mulg" ] = 0
settings[ "$pp_colour_mulb" ] = 0
DrawColorModify(settings)
end)
elseif thetype == "drugged" then
hook.Add("RenderScreenspaceEffects", thetype, function()
DrawSharpen(-1, 2)
DrawMaterialOverlay("models/props_lab/Tank_Glass001", 0)
DrawMotionBlur(0.13, 1, 0.00)
end)
elseif thetype == "deathpov" then
hook.Add("CalcView", "rp_deathPOV", function(ply, origin, angles, fov)
local Ragdoll = ply:GetRagdollEntity()
if not ValidEntity(Ragdoll) then return end
local head = Ragdoll:LookupAttachment("eyes")
head = Ragdoll:GetAttachment(head)
if not head or not head.Pos then return end
local view = {}
view.origin = head.Pos
view.angles = head.Ang
view.fov = fov
return view
end)
end
elseif toggle == false then
if thetype == "dof" then
DOF_Kill()
return
elseif thetype == "deathpov" then
if hook.GetTable().CalcView and hook.GetTable().CalcView.rp_deathPOV then
hook.Remove("CalcView", "rp_deathPOV")
end
return
end
hook.Remove("RenderScreenspaceEffects", thetype)
end
end
usermessage.Hook("DarkRPEffects", DoSpecialEffects)
local Messagemode = false
local playercolors = {}
local HearMode = "talk"
local isSpeaking = false
local function RPStopMessageMode()
Messagemode = false
hook.Remove("Think", "RPGetRecipients")
hook.Remove("HUDPaint", "RPinstructionsOnSayColors")
playercolors = {}
end
local function CL_IsInRoom(listener) -- IsInRoom function to see if the player is in the same room.
local tracedata = {}
tracedata.start = LocalPlayer():GetShootPos()
tracedata.endpos = listener:GetShootPos()
local trace = util.TraceLine( tracedata )
return not trace.HitWorld
end
local PlayerColorsOn = CreateClientConVar("rp_showchatcolors", 1, true, false)
local function RPSelectwhohearit()
if PlayerColorsOn:GetInt() == 0 then return end
Messagemode = true
hook.Add("HUDPaint", "RPinstructionsOnSayColors", function()
local w, l = ScrW()/80, ScrH() /1.75
local h = l - (#playercolors * 20) - 20
local AllTalk = GetConVarNumber("alltalk") == 1
if #playercolors <= 0 and ((HearMode ~= "talk through OOC" and HearMode ~= "advert" and not AllTalk) or (AllTalk and HearMode ~= "talk" and HearMode ~= "me") or HearMode == "speak" ) then
draw.WordBox(2, w, h, string.format(LANGUAGE.hear_noone, HearMode), "ScoreboardText", Color(0,0,0,120), Color(255,0,0,255))
elseif HearMode == "talk through OOC" or HearMode == "advert" then
draw.WordBox(2, w, h, LANGUAGE.hear_everyone, "ScoreboardText", Color(0,0,0,120), Color(0,255,0,255))
elseif not AllTalk or (AllTalk and HearMode ~= "talk" and HearMode ~= "me") then
draw.WordBox(2, w, h, string.format(LANGUAGE.hear_certain_persons, HearMode), "ScoreboardText", Color(0,0,0,120), Color(0,255,0,255))
end
for k,v in pairs(playercolors) do
if v.Nick then
draw.WordBox(2, w, h + k*20, v:Nick(), "Scor
You forgot to hook the usermessage. Add this below the function (after end):
[lua]usermessage.Hook( "DarkRP_Chat", AddChatText )[/lua]
Do you mean as to replace
[lua]usermessage.Hook("DarkRP_Chat", AddToChat)[/lua]
I tried that. Same result.
Ah, I forgot to add parantheses to the IsSuperAdmin call. Replace ply:IsSuperAdmin with ply:IsSuperAdmin() and it should work.
[QUOTE=KyleWollasto;32230386]Ah, I forgot to add parantheses to the IsSuperAdmin call. Replace ply:IsSuperAdmin with ply:IsSuperAdmin() and it should work.[/QUOTE]
Now im getting: [lua\includes\modules\usermessage.lua:87] attempt to call field 'Function' (a nil value)
[lua]local function AddToChat(msg)
local col1 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local name = msg:ReadString()
local ply = msg:ReadEntity()
local col2 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local rank = ply:IsSuperAdmin() and "[Superadmin] " or ply:IsAdmin() and "[Admin] " or ""
local text = msg:ReadString()
if text and text ~= "" then
chat.AddText(col1, name, col2, rank .. ": "..text)
if ValidEntity(ply) then
hook.Call("OnPlayerChat", nil, ply, text, false, ply:Alive())
end
else
chat.AddText(col1, name)
hook.Call("ChatText", nil, "0", name, name, "none")
end
chat.PlaySound()
end
usermessage.Hook( "DarkRP_Chat", AddChatText )[/lua]
Rawr, I'm sorry I used the wrong function name.
Try this:
[lua]local function AddToChat(msg)
local col1 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local name = msg:ReadString()
local ply = msg:ReadEntity()
local col2 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local rank = ply:IsSuperAdmin() and "[Superadmin] " or ply:IsAdmin() and "[Admin] " or "[User] "
local text = msg:ReadString()
if text and text ~= "" then
chat.AddText(col1, name, col2, rank .. ": "..text)
if ValidEntity(ply) then
hook.Call("OnPlayerChat", nil, ply, text, false, ply:Alive())
end
else
chat.AddText(col1, name)
hook.Call("ChatText", nil, "0", name, name, "none")
end
chat.PlaySound()
end
usermessage.Hook( "DarkRP_Chat", AddToChat )[/lua]
Ah, there we go! I plan on tinkering it later with Ply:IsUserGroup().
1 last thing... How could I add different colors to different ranks and the "[ ]" brackets? Thanks!! :)
Also, would deleting the [lua]or "[User] "[/lua] as I don't want regular users to have a tag.
[QUOTE=Kayoran;32230695]Ah, there we go! I plan on tinkering it later with Ply:IsUserGroup().
1 last thing... How could I add different colors to different ranks and the "[ ]" brackets? Thanks!! :)
Also, would deleting the [lua]or "[User] "[/lua] as I don't want regular users to have a tag.[/QUOTE]Yeah I figured you wouldn't want it so I left it blank but then I looked at the first post so I added it. You can just change it to a blank string if you want nothing to be displayed ("").
Try this.
[lua]local function AddToChat(msg)
local col1 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local name = msg:ReadString()
local ply = msg:ReadEntity()
local col2 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
if ply:IsSuperAdmin() then
local rank_str = "[Superadmin] "
local rank_col = Color( 255, 0, 0 ) -- red for example
elseif ply:IsAdmin() then
local rank_str = [Admin] "
local rank_col = Color( 0, 255, 0 ) -- green
else
local rank_str = ""
local rank_col = col2
end
local text = msg:ReadString()
if text and text ~= "" then
chat.AddText(col1, name, col2, rank_col, rank, col2, ": " .. text)
if ValidEntity(ply) then
hook.Call("OnPlayerChat", nil, ply, text, false, ply:Alive())
end
else
chat.AddText(col1, name)
hook.Call("ChatText", nil, "0", name, name, "none")
end
chat.PlaySound()
end
usermessage.Hook( "DarkRP_Chat", AddToChat )[/lua]
Ok at first i was getting the unhandled usermessage error. I found you were missing a " in [lua]rank_str = "[admin] "[/lua]
But now the error disappeared but so did the tag.. It acts as though nothing was changed.
In the chat.AddText call change "rank" to "rank_str".
Didn't seem to do anything.. same problem.
Here's the function so-far
[lua]local function AddToChat(msg)
local col1 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local name = msg:ReadString()
local ply = msg:ReadEntity()
local col2 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
if ply:IsSuperAdmin() then
local rank_str = "[Superadmin] "
local rank_col = Color( 255, 0, 0 ) -- red for example
elseif ply:IsAdmin() then
local rank_str = "[Admin] "
local rank_col = Color( 0, 255, 0 ) -- green
else
local rank_str = ""
local rank_col = col2
end
local text = msg:ReadString()
if text and text ~= "" then
chat.AddText(col1, name, col2, rank_col, rank_str, col2, ": " .. text)
if ValidEntity(ply) then
hook.Call("OnPlayerChat", nil, ply, text, false, ply:Alive())
end
else
chat.AddText(col1, name)
hook.Call("ChatText", nil, "0", name, name, "none")
end
chat.PlaySound()
end
usermessage.Hook( "DarkRP_Chat", AddToChat )[/lua]
Hmm, how about this:
[lua]
local function AddToChat(msg)
local col1 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local name = msg:ReadString()
local ply = msg:ReadEntity()
local col2 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
if ply:IsSuperAdmin() then
local rank_str = "[Superadmin] "
local rank_col = Color( 255, 0, 0 ) -- red for example
elseif ply:IsAdmin() then
local rank_str = "[Admin] "
local rank_col = Color( 0, 255, 0 ) -- green
else
local rank_str = ""
local rank_col = col2
end
local text = msg:ReadString()
if text and text ~= "" then
chat.AddText(col1, name, rank_col, rank_str, col2, ": " .. text)
if ValidEntity(ply) then
hook.Call("OnPlayerChat", nil, ply, text, false, ply:Alive())
end
else
chat.AddText(col1, name)
hook.Call("ChatText", nil, "0", name, name, "none")
end
chat.PlaySound()
end
usermessage.Hook( "DarkRP_Chat", AddToChat )
[/lua]
Same problem. Im seeing this in console: [darkrp\gamemode\cl_init.lua:454] attempt to call Ply:IsSuperAdmin a nil value
Not sure if you saw it, but is Ply capitalized in the function? Change it to lowercase and it should work.
I feel as though it has something to do with the way the variables are named... [lua]chat.AddText(col1, name, rank_col, rank_str, col2, ": " .. text)[/lua] Maybe the col1, col2 are missing due to something like this [lua]local rank_col = col2[/lua]
* I accidentally capitalized Ply, because for some reason it didn't copy over to facepunch.
Change local rank_col = col2 to local rank_col = Color( 255, 255, 255 )?
Okay, so I tested it and this works:
[lua]local function AddToChat(msg)
local col1 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local name = msg:ReadString()
local ply = msg:ReadEntity()
local col2 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local text = msg:ReadString()
local rank_str, rank_col
if ply:IsSuperAdmin() then
rank_str = " [Superadmin]"
rank_col = Color( 255, 0, 0 ) -- red for example
elseif ply:IsAdmin() then
rank_str = " [Admin] "
rank_col = Color( 0, 255, 0 ) -- green
else
rank_str = ""
rank_col = Color( 255, 255, 255 )
end
if text and text ~= "" then
chat.AddText(col1, name, rank_col, rank_str, col2, ": " .. text)
if ValidEntity(ply) then
hook.Call("OnPlayerChat", nil, ply, text, false, ply:Alive())
end
else
chat.AddText(col1, name)
hook.Call("ChatText", nil, "0", name, name, "none")
end
chat.PlaySound()
end
usermessage.Hook( "DarkRP_Chat", AddToChat )
[/lua]
Nope. Oh well.. i'm goin to bed for tonight lol. Please post back if you happen to think of a fix :)
Sir, I'm not very good at lua but here's a noob and learner's attempt.
[lua]if ply:UserName("KyleWollasto") then
Rank = "Lua King"
end[/lua]
Thank you for Helping!! 1 Last thing (not very big though)
If it is really hard don't bother. I don't want to seem too demanding.
How could I change the color of the brackets? Not by user but it would be awesome if they looked like this
[IMG]http://dl.dropbox.com/u/8718166/falws2.png[/IMG]
:D
[QUOTE=Kayoran;32242519]Sir, I'm not very good at lua but here's a noob and learner's attempt.
[lua]if ply:UserName("KyleWollasto") then
Rank = "Lua King"
end[/lua]Oh, I'm no Lua king, I just started learning :p. Perhaps Lua helper ;).
Um, yeah you could do that,
Thank you for Helping!! 1 Last thing (not very big though)
If it is really hard don't bother. I don't want to seem too demanding.
How could I change the color of the brackets? Not by user but it would be awesome if they looked like this
[IMG]http://dl.dropbox.com/u/8718166/falws2.png[/IMG]
:D[/QUOTE]No, not Lua King, I just started learning :p. Maybe Lua helper :).
Here you go:
[lua]local function AddToChat(msg)
local col1 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local name = msg:ReadString()
local ply = msg:ReadEntity()
local col2 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local text = msg:ReadString()
local rank_str, rank_col, bracket_col
if ply:IsSuperAdmin() then
rank_str = "Superadmin"
rank_col = Color( 255, 0, 0 ) -- red for example
bracket_col = Color( 153, 50, 204 ) -- purplish
elseif ply:IsAdmin() then
rank_str = "Admin"
rank_col = Color( 0, 255, 0 ) -- green
bracket_col = Color( 218, 165, 32 ) -- orangish
else
rank_str = ""
rank_col = Color( 255, 255, 255 )
end
if text and text ~= "" then
chat.AddText(col1, name, bracket_col, bracket_col and " [" or "", rank_col, rank_str, bracket_col, bracket_col and "]" or "", col2, ": " .. text)
if ValidEntity(ply) then
hook.Call("OnPlayerChat", nil, ply, text, false, ply:Alive())
end
else
chat.AddText(col1, name)
hook.Call("ChatText", nil, "0", name, name, "none")
end
chat.PlaySound()
end
usermessage.Hook( "DarkRP_Chat", AddToChat )
[/lua]
Not that elegant, but it should work.
Thank you! Just wonderin... is this possible to fix or does it just go along with it?
[darkrp\gamemode\cl_init.lua:456] attempt to call method 'IsSuperAdmin' (a nil value)
Even though it works, I get this every minute in the console
[QUOTE=Kayoran;32244125]Thank you! Just wonderin... is this possible to fix or does it just go along with it?
[darkrp\gamemode\cl_init.lua:456] attempt to call method 'IsSuperAdmin' (a nil value)
Even though it works, I get this every minute in the console[/QUOTE]I don't even know.
Just add if ply:IsValid() and ply:IsPlayer() before the admin checks I guess.
[QUOTE=KyleWollasto;32245986]I don't even know.
Just add if ply:IsValid() and ply:IsPlayer() before the admin checks I guess.[/QUOTE]
Like this?
[lua]if ply:IsValid() and ply:IsPlayer() if ply:IsSuperAdmin() then
rank_str = "Superadmin"
rank_col = Color( 255, 0, 0 ) -- red for example
bracket_col = Color( 153, 50, 204 ) -- purplish
if ply:IsValid() and ply:IsPlayer() elseif ply:IsAdmin() then
rank_str = "Admin"
rank_col = Color( 0, 255, 0 ) -- green
bracket_col = Color( 218, 165, 32 ) -- orangish
else
rank_str = ""
rank_col = Color( 255, 255, 255 )
end[/lua]
[lua]if ply:IsValid() and ply:IsPlayer() and ply:IsSuperAdmin() then
rank_str = "Superadmin"
rank_col = Color( 255, 0, 0 ) -- red for example
bracket_col = Color( 153, 50, 204 ) -- purplish
elseif ply:IsValid() and ply:IsPlayer() and ply:IsAdmin() then
rank_str = "Admin"
rank_col = Color( 0, 255, 0 ) -- green
bracket_col = Color( 218, 165, 32 ) -- orangish
else
rank_str = ""
rank_col = Color( 255, 255, 255 )
end[/lua]
[QUOTE=KyleWollasto;32247430][lua]if ply:IsValid() and ply:IsPlayer() and ply:IsSuperAdmin() then
rank_str = "Superadmin"
rank_col = Color( 255, 0, 0 ) -- red for example
bracket_col = Color( 153, 50, 204 ) -- purplish
elseif ply:IsValid() and ply:IsPlayer() and ply:IsAdmin() then
rank_str = "Admin"
rank_col = Color( 0, 255, 0 ) -- green
bracket_col = Color( 218, 165, 32 ) -- orangish
else
rank_str = ""
rank_col = Color( 255, 255, 255 )
end[/lua][/QUOTE]
That fixed it! :dance: Wow. It's nice to see people helping on facepunch instead of trolling. If I could give you a cookie, I would have by now lol.
Yeah dude facepunch is full of mean people unfortunately that's why I rarely post. You can add me on Steam and I can answer future questions about anything: kyleis1337.
[QUOTE=Kayoran;32247716]That fixed it! :dance: Wow. It's nice to see people helping on facepunch instead of trolling. If I could give you a cookie, I would have by now lol.[/QUOTE]
Ok so I used this and for some reason it works in-game for a mili-second then kicks me saying this.
[code] [ERROR] gamemodes/darkrp/gamemode/cl_init.lua:264: attempt to call global 'ValidEntity' (a nil value)
1. Function - gamemodes/darkrp/gamemode/cl_init.lua:264
2. unknown - lua/includes/modules/usermessage.lua:87
[/code]
But I end up being able to see it in console except I am kicked.
[IMG]http://puu.sh/3dKnK.jpg[/IMG]
This is the code I am using
[code] local function AddToChat(msg)
local col1 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local name = msg:ReadString()
local ply = msg:ReadEntity()
local col2 = Color(msg:ReadShort(), msg:ReadShort(), msg:ReadShort())
local text = msg:ReadString()
local rank_str, rank_col, bracket_col
if ply:IsValid() and ply:IsPlayer() and ply:IsSuperAdmin() then
rank_str = "Superadmin"
rank_col = Color( 255, 0, 0 ) -- red for example
bracket_col = Color( 153, 50, 204 ) -- purplish
elseif ply:IsValid() and ply:IsPlayer() and ply:IsAdmin() then
rank_str = "Admin"
rank_col = Color( 0, 255, 0 ) -- green
bracket_col = Color( 218, 165, 32 ) -- orangish
else
rank_str = ""
rank_col = Color( 255, 255, 255 )
end
if text and text ~= "" then
chat.AddText(col1, name, bracket_col, bracket_col and " [" or "", rank_col, rank_str, bracket_col, bracket_col and "]" or "", col2, ": " .. text)
if ValidEntity(ply) then
hook.Call("OnPlayerChat", nil, ply, text, false, ply:Alive())
end
else
chat.AddText(col1, name)
hook.Call("ChatText", nil, "0", name, name, "none")
end
chat.PlaySound()
end
usermessage.Hook( "DarkRP_Chat", AddToChat )
[/code]
Please help!
Sorry, you need to Log In to post a reply to this thread.