I'm making a script that will tell you who killed you i have it so it will display it in chat, but i want to paste it on the hud using
font
surface.CreateFont( "msgfont",
{
font = "coolvetica",
size = 50,
weight = 40000,
antialias = true,
shadow = true
})
part that pastes it
draw.SimpleText("text", "msgfont", ScrW() / 2 + 50, ScrH() - 63, Color(255,255,255,255), TEXT_ALIGN_TOP, TEXT_ALIGN_CENTER)
event
hook.Add("PlayerDeath","Inform Murder Victims",BitchPlease)
I am able to paste it on the screen, but then i have to change a boolean to false in the scrip to make it go away.
My main problem is how do i make it so when you die a boolean will turn true then after a couple seconds it will turn false.
How do i declare my variable without having it turn to whatever i assign(true/false) it when the script loops?
well here is my code
AddCSLuaFile("whokilledyou.lua")
world = false
playerr = false
killed = false
function BitchPlease(victim,inflictor,killer)
timer.Simple(3, function() killed = true end)
if killer:IsPlayer() then
playerr = true
world = false
end
if playerr == false then
world = true
end
if playerr == true then
victim:PrintMessage(HUD_PRINTCENTER,killer:GetName().." killed you!\n")
end
if world == true then
victim:PrintMessage(HUD_PRINTCENTER,"Something/World killed you!\n")
end
killr = killer:GetName()
surface.CreateFont( "msgfont",
{
font = "coolvetica",
size = 50,
weight = 40000,
antialias = true,
shadow = true
})
local w, h = surface.GetTextSize( killr)
w = w + 5
h = h + 5
print(killed)
end
function HUDPaint()
if killr == nil and killed == true then
draw.SimpleText("FuckProp", "msgfont", ScrW() / 2 + 50, ScrH() - 63, Color(255,255,255,255), TEXT_ALIGN_TOP, TEXT_ALIGN_CENTER)
end
if killed == true then
draw.SimpleText("Fuck you dead", "msgfont", ScrW() / 2 + 50, ScrH() - 63, Color(255,255,255,255), TEXT_ALIGN_TOP, TEXT_ALIGN_CENTER)
end
if killed == false then
draw.SimpleText("test2", "msgfont", ScrW() / 2 + 50, ScrH() - 63, Color(255,255,255,255), TEXT_ALIGN_TOP, TEXT_ALIGN_CENTER)
end
end
hook.Add("PlayerDeath","Inform Murder Victims",BitchPlease)
hook.Add("HUDPaint","Inform Murder Victims",HUDPaint)
[QUOTE=Xemnass;39681737]How do i declare my variable without having it turn to whatever i assign(true/false) it when the script loops?[/QUOTE]
If you mean if you could declare the variable with nothing in it, then you could just assign it nil, but in an if statement that will still return false. Just change the variable to true on PlayerDeath and use the code in my previous post to change it back to false.
Can i call on a variable in a function from another function?
[QUOTE=Xemnass;39681891]Can i call on a variable in a function from another function?[/QUOTE]
Not sure where this is going. The problem I see is that you are either using PlayerDeath on clientside or HUDPaint on serverside. You have to use networking. Something like this.
[lua]
--serverside
util.AddNetworkString("NotifyDeath")
hook.Add("PlayerDeath","Inform Murder Victims", function(victim,inflictor,killer)
net.Start("NotifyDeath")
net.WriteString(killer:GetName())
net.Send(victim)
victim:PrintMessage(HUD_PRINTCENTER,killer:GetName ().." killed you!\n")
end)
--Clientside
local showDeath = false
local killer = nil
net.Receive("NotifyDeath", function(len)
killer = net.ReadString()
showDeath = true
timer.Simple(3, function()
showDeath = false
killer = nil
end)
end)
hook.Add("HUDPaint", "DisplayDeathStuff", function()
if killer and showDeath then
//do your drawing here
//killer = name of player
end
end)
[/lua]
AddCSLuaFile("whokilledyou.lua")
world = false
playerr = false
function playerkilled(victim,inflictor,killer)
killed = true
timer.Simple(3, function()
killed = false
end)
if killer:IsPlayer() then
playerr = true
world = false
end
if playerr == false then
world = true
end
end
function HUDPaint()
surface.CreateFont("msgfont",
{
font = "coolvetica",
size = 50,
weight = 40000,
antialias = true,
shadow = true
})
if killr == nil and killed == true then
draw.SimpleText("FuckProp", "msgfont", ScrW() / 2 + 50, ScrH() - 63, Color(255,255,255,255), TEXT_ALIGN_TOP, TEXT_ALIGN_CENTER)
end
if killed == true then
draw.SimpleText("Fuck u ded", "msgfont", ScrW() / 2 + 50, ScrH() - 63, Color(255,255,255,255), TEXT_ALIGN_TOP, TEXT_ALIGN_CENTER)
end
if killed == false then
draw.SimpleText("test", "msgfont", ScrW() / 2 + 50, ScrH() - 63, Color(255,255,255,255), TEXT_ALIGN_TOP, TEXT_ALIGN_CENTER)
end
end
hook.Add("PlayerDeath","Inform Murder Victims",BitchPlease)
hook.Add("HUDPaint","Inform Murder Victims",HUDPaint)
That other stuff was the first working one. I removed it and have the new code i want.
Could you please put your code inside [LUA.][/LUA.] but remove the points " . "
Sorry, you need to Log In to post a reply to this thread.