Pivity

Dropping suits errors

Last read Never
#1

First of all im tryna make it so the suits can be dropped, this is what my developer has made, i placed it in init.lua in darkrp folder but i get bunch of script errors and messes up my entire server

hook.Add( "PlayerSay", "SuitCommand", function( ply, text, team ) if (string.sub( text, 1, string.len("/dropsuit") ) == "/dropsuit") then ply:removeArmorSuit() if ply.armorSuit != "Speed Suit" then local crate = ents.Create(found.shipmentClass or "spawned_shipment") crate.SID = ply.SID crate:Setowning_ent(ply) crate:SetContents(armor_power, 1) crate:SetPos(Vector(tr.HitPos.x, tr.HitPos.y, tr.HitPos.z)) crate.nodupe = true crate.ammoadd = found.spareammo crate.clip1 = found.clip1 crate.clip2 = found.clip2 crate:Spawn() crate:SetPlayer(ply) if ply.armorSuit != "NanoSuit" then local crate = ents.Create(found.shipmentClass or "spawned_shipment") crate.SID = ply.SID crate:Setowning_ent(ply) crate:SetContents(armor_speed, 1) crate:SetPos(Vector(tr.HitPos.x, tr.HitPos.y, tr.HitPos.z)) crate.nodupe = true crate.ammoadd = found.spareammo crate.clip1 = found.clip1 crate.clip2 = found.clip2 crate:Spawn() crate:SetPlayer(ply) end end end )

Dumb x 2
#2

We also tried this before and couldnt get it to work: hook.Add( "PlayerSay", "SuitCommand", function( ply, text, team ) if (string.sub( text, 1, string.len("/dropsuit") ) == "/dropsuit") then ply:removeArmorSuit() if ply.armorSuit != "Speed Suit" then local crate = ents.Create("spawned_shipment") crate:SetContents("armor_power") crate:Spawn() end elseif ply.armorSuit != "NanoSuit" then local crate = ents.Create("spawned_shipment") crate:SetContents("armor_speed") crate:Spawn() end end return "" end end )

Dumb x 2
#3

damn i love pasting code here

--[[--------------------------------------------------------------------------- HUD ConVars ---------------------------------------------------------------------------]] local ConVars = {} local HUDWidth local HUDHeight

local Color = Color local CurTime = CurTime local cvars = cvars local DarkRP = DarkRP local draw = draw local GetConVar = GetConVar local hook = hook local IsValid = IsValid local Lerp = Lerp local localplayer local math = math local pairs = pairs local ScrW, ScrH = ScrW, ScrH local SortedPairs = SortedPairs local string = string local surface = surface local table = table local timer = timer local tostring = tostring local plyMeta = FindMetaTable("Player")

local colors = {} colors.black = Color(0, 0, 0, 255) colors.blue = Color(0, 0, 255, 255) colors.brightred = Color(200, 30, 30, 255) colors.darkred = Color(0, 0, 70, 100) colors.darkblack = Color(0, 0, 0, 200) colors.gray1 = Color(0, 0, 0, 155) colors.gray2 = Color(51, 58, 51,100) colors.red = Color(255, 0, 0, 255) colors.white = Color(255, 255, 255, 255) colors.white1 = Color(255, 255, 255, 200)

local function ReloadConVars() ConVars = { background = {0,0,0,100}, Healthbackground = {0,0,0,200}, Healthforeground = {140,0,0,180}, HealthText = {255,255,255,200}, Job1 = {0,0,150,200}, Job2 = {0,0,0,255}, salary1 = {0,150,0,200}, salary2 = {0,0,0,255} }

for name, Colour in pairs(ConVars) do
ConVars[name] = {}
for num, rgb in SortedPairs(Colour) do
local CVar = GetConVar(name .. num) or CreateClientConVar(name .. num, rgb, true, false)
table.insert(ConVars[name], CVar:GetInt())

if not cvars.GetConVarCallbacks(name .. num, false) then
cvars.AddChangeCallback(name .. num, function()
timer.Simple(0, ReloadConVars)
end)
end
end
ConVars[name] = Color(unpack(ConVars[name]))
end


HUDWidth = (GetConVar("HudW") or CreateClientConVar("HudW", 240, true, false)):GetInt()
HUDHeight = (GetConVar("HudH") or CreateClientConVar("HudH", 115, true, false)):GetInt()

if not cvars.GetConVarCallbacks("HudW", false) and not cvars.GetConVarCallbacks("HudH", false) then
cvars.AddChangeCallback("HudW", function() timer.Simple(0,ReloadConVars) end)
cvars.AddChangeCallback("HudH", function() timer.Simple(0,ReloadConVars) end)
end

end ReloadConVars()

local Scrw, Scrh, RelativeX, RelativeY --[[--------------------------------------------------------------------------- HUD separate Elements ---------------------------------------------------------------------------]] local Health = 0 local function DrawHealth() local maxHealth = localplayer:GetMaxHealth() local myHealth = localplayer:Health() Health = math.min(maxHealth, (Health == myHealth and Health) or Lerp(0.1, Health, myHealth))

local healthRatio = math.Min(Health / maxHealth, 1)
local rounded = math.Round(3 * healthRatio)
local Border = math.Min(6, rounded * rounded)
draw.RoundedBox(Border, RelativeX + 4, RelativeY - 30, HUDWidth - 8, 20, ConVars.Healthbackground)
draw.RoundedBox(Border, RelativeX + 5, RelativeY - 29, (HUDWidth - 9) * healthRatio, 18, ConVars.Healthforeground)

draw.DrawNonParsedText(math.Max(0, math.Round(myHealth)), "DarkRPHUD2", RelativeX + 4 + (HUDWidth - 8) / 2, RelativeY - 32, ConVars.HealthText, 1)

-- Armor
local armor = math.Clamp(localplayer:Armor(), 0, 100)
if armor ~= 0 then
draw.RoundedBox(2, RelativeX + 4, RelativeY - 15, (HUDWidth - 8) * armor / 100, 5, colors.blue)
end

end

local salaryText, JobWalletText local function DrawInfo() salaryText = salaryText or DarkRP.getPhrase("salary", DarkRP.formatMoney(localplayer:getDarkRPVar("salary")), "")

JobWalletText = JobWalletText or string.format("%s\n%s",
DarkRP.getPhrase("job", localplayer:getDarkRPVar("job") or ""),
DarkRP.getPhrase("wallet", DarkRP.formatMoney(localplayer:getDarkRPVar("money")), "")
)

draw.DrawNonParsedText(salaryText, "DarkRPHUD2", RelativeX + 5, RelativeY - HUDHeight + 6, ConVars.salary1, 0)
draw.DrawNonParsedText(salaryText, "DarkRPHUD2", RelativeX + 4, RelativeY - HUDHeight + 5, ConVars.salary2, 0)

surface.SetFont("DarkRPHUD2")
local _, h = surface.GetTextSize(salaryText)

draw.DrawNonParsedText(JobWalletText, "DarkRPHUD2", RelativeX + 5, RelativeY - HUDHeight + h + 6, ConVars.Job1, 0)
draw.DrawNonParsedText(JobWalletText, "DarkRPHUD2", RelativeX + 4, RelativeY - HUDHeight + h + 5, ConVars.Job2, 0)

end

local Page = Material("icon16/page_white_text.png") local function GunLicense() if localplayer:getDarkRPVar("HasGunlicense") then surface.SetMaterial(Page) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRect(RelativeX + HUDWidth, Scrh - 34, 32, 32) end end

local agendaText local function Agenda() local shouldDraw = hook.Call("HUDShouldDraw", GAMEMODE, "DarkRP_Agenda") if shouldDraw == false then return end

local agenda = localplayer:getAgendaTable()
if not agenda then return end
agendaText = agendaText or DarkRP.textWrap((localplayer:getDarkRPVar("agenda") or ""):gsub("//", "\n"):gsub("\\n", "\n"), "DarkRPHUD1", 440)

draw.RoundedBox(10, 10, 10, 460, 110, colors.gray1)
draw.RoundedBox(10, 12, 12, 456, 106, colors.gray2)
draw.RoundedBox(10, 12, 12, 456, 20, colors.darkred)

draw.DrawNonParsedText(agenda.Title, "DarkRPHUD1", 30, 12, colors.red, 0)
draw.DrawNonParsedText(agendaText, "DarkRPHUD1", 30, 35, colors.white, 0)

end

hook.Add("DarkRPVarChanged", "agendaHUD", function(ply, var, _, new) if ply ~= localplayer then return end if var == "agenda" and new then agendaText = DarkRP.textWrap(new:gsub("//", "\n"):gsub("\n", "\n"), "DarkRPHUD1", 440) else agendaText = nil end

if var == "salary" then
salaryText = DarkRP.getPhrase("salary", DarkRP.formatMoney(new), "")
end

if var == "job" or var == "money" then
JobWalletText = string.format("%s\n%s",
DarkRP.getPhrase("job", var == "job" and new or localplayer:getDarkRPVar("job") or ""),
DarkRP.getPhrase("wallet", var == "money" and DarkRP.formatMoney(new) or DarkRP.formatMoney(localplayer:getDarkRPVar("money")), "")
)
end

end)

local VoiceChatTexture = surface.GetTextureID("voice/icntlk_pl") local function DrawVoiceChat() if localplayer.DRPIsTalking then local _, chboxY = chat.GetChatBoxPos()

local Rotating = math.sin(CurTime() * 3)
local backwards = 0

if Rotating < 0 then
Rotating = 1 - (1 + Rotating)
backwards = 180
end

surface.SetTexture(VoiceChatTexture)
surface.SetDrawColor(ConVars.Healthforeground)
surface.DrawTexturedRectRotated(Scrw - 100, chboxY, Rotating * 96, 96, backwards)
end

end

local function LockDown() local chbxX, chboxY = chat.GetChatBoxPos() if GetGlobalBool("DarkRP_LockDown") then local shouldDraw = hook.Call("HUDShouldDraw", GAMEMODE, "DarkRP_LockdownHUD") if shouldDraw == false then return end local cin = (math.sin(CurTime()) + 1) / 2 local chatBoxSize = math.floor(Scrh / 4) draw.DrawNonParsedText(DarkRP.getPhrase("lockdown_started"), "ScoreboardSubtitle", chbxX, chboxY + chatBoxSize, Color(cin * 255, 0, 255 - (cin * 255), 255), TEXT_ALIGN_LEFT) end end

local Arrested = function() end

usermessage.Hook("GotArrested", function(msg) local StartArrested = CurTime() local ArrestedUntil = msg:ReadFloat()

Arrested = function()
local shouldDraw = hook.Call("HUDShouldDraw", GAMEMODE, "DarkRP_ArrestedHUD")
if shouldDraw == false then return end

if CurTime() - StartArrested <= ArrestedUntil and localplayer:getDarkRPVar("Arrested") then
draw.DrawNonParsedText(DarkRP.getPhrase("youre_arrested", math.ceil((ArrestedUntil - (CurTime() - StartArrested)) * 1 / game.GetTimeScale())), "DarkRPHUD1", Scrw / 2, Scrh - Scrh / 12, colors.white, 1)
elseif not localplayer:getDarkRPVar("Arrested") then
Arrested = function() end
end
end

end)

local AdminTell = function() end

usermessage.Hook("AdminTell", function(msg) timer.Remove("DarkRP_AdminTell") local Message = msg:ReadString()

AdminTell = function()
draw.RoundedBox(4, 10, 10, Scrw - 20, 110, colors.darkblack)
draw.DrawNonParsedText(DarkRP.getPhrase("listen_up"), "GModToolName", Scrw / 2 + 10, 10, colors.white, 1)
draw.DrawNonParsedText(Message, "ChatFont", Scrw / 2 + 10, 90, colors.brightred, 1)
end

timer.Create("DarkRP_AdminTell", 10, 1, function()
AdminTell = function() end
end)

end)

--[[--------------------------------------------------------------------------- Drawing the HUD elements such as Health etc. ---------------------------------------------------------------------------]] local function DrawHUD() local shouldDraw = hook.Call("HUDShouldDraw", GAMEMODE, "DarkRP_HUD") if shouldDraw == false then return end

Scrw, Scrh = ScrW(), ScrH()
RelativeX, RelativeY = 0, Scrh

shouldDraw = hook.Call("HUDShouldDraw", GAMEMODE, "DarkRP_LocalPlayerHUD")
shouldDraw = shouldDraw ~= false
if shouldDraw then
--Background
draw.RoundedBox(6, 0, Scrh - HUDHeight, HUDWidth, HUDHeight, ConVars.background)
DrawHealth()
DrawInfo()
GunLicense()
end
Agenda()
DrawVoiceChat()
LockDown()

Arrested()
AdminTell()

end

--[[--------------------------------------------------------------------------- Entity HUDPaint things ---------------------------------------------------------------------------]] -- Draw a player's name, health and/or job above the head -- This syntax allows for easy overriding plyMeta.drawPlayerInfo = plyMeta.drawPlayerInfo or function(self) local pos = self:EyePos()

pos.z = pos.z + 10 -- The position we want is a bit above the position of the eyes
pos = pos:ToScreen()
if not self:getDarkRPVar("wanted") then
-- Move the text up a few pixels to compensate for the height of the text
pos.y = pos.y - 50
end

if GAMEMODE.Config.showname then
local nick, plyTeam = self:Nick(), self:Team()
draw.DrawNonParsedText(nick, "DarkRPHUD2", pos.x + 1, pos.y + 1, colors.black, 1)
draw.DrawNonParsedText(nick, "DarkRPHUD2", pos.x, pos.y, RPExtraTeams[plyTeam] and RPExtraTeams[plyTeam].color or team.GetColor(plyTeam) , 1)
end

if GAMEMODE.Config.showhealth then
local health = DarkRP.getPhrase("health", self:Health())
draw.DrawNonParsedText(health, "DarkRPHUD2", pos.x + 1, pos.y + 21, colors.black, 1)
draw.DrawNonParsedText(health, "DarkRPHUD2", pos.x, pos.y + 20, colors.white1, 1)
end

if GAMEMODE.Config.showjob then
local teamname = self:getDarkRPVar("job") or team.GetName(self:Team())
draw.DrawNonParsedText(teamname, "DarkRPHUD2", pos.x + 1, pos.y + 41, colors.black, 1)
draw.DrawNonParsedText(teamname, "DarkRPHUD2", pos.x, pos.y + 40, colors.white1, 1)
end

if self:getDarkRPVar("HasGunlicense") then
surface.SetMaterial(Page)
surface.SetDrawColor(255,255,255,255)
surface.DrawTexturedRect(pos.x-16, pos.y + 60, 32, 32)
end

end

-- Draw wanted information above a player's head -- This syntax allows for easy overriding plyMeta.drawWantedInfo = plyMeta.drawWantedInfo or function(self) if not self:Alive() then return end

local pos = self:EyePos()
if not pos:isInSight({localplayer, self}) then return end

pos.z = pos.z + 10
pos = pos:ToScreen()

if GAMEMODE.Config.showname then
local nick, plyTeam = self:Nick(), self:Team()
draw.DrawNonParsedText(nick, "DarkRPHUD2", pos.x + 1, pos.y + 1, colors.black, 1)
draw.DrawNonParsedText(nick, "DarkRPHUD2", pos.x, pos.y, RPExtraTeams[plyTeam] and RPExtraTeams[plyTeam].color or team.GetColor(plyTeam) , 1)
end

local wantedText = DarkRP.getPhrase("wanted", tostring(self:getDarkRPVar("wantedReason")))

draw.DrawNonParsedText(wantedText, "DarkRPHUD2", pos.x, pos.y - 40, colors.white1, 1)
draw.DrawNonParsedText(wantedText, "DarkRPHUD2", pos.x + 1, pos.y - 41, colors.red, 1)

end

--[[--------------------------------------------------------------------------- The Entity display: draw HUD information about entities ---------------------------------------------------------------------------]] local function DrawEntityDisplay() local shouldDraw, players = hook.Call("HUDShouldDraw", GAMEMODE, "DarkRP_EntityDisplay") if shouldDraw == false then return end

local shootPos = localplayer:GetShootPos()
local aimVec = localplayer:GetAimVector()

for _, ply in pairs(players or player.GetAll()) do
if not IsValid(ply) or ply == localplayer or not ply:Alive() or ply:GetNoDraw() or ply:IsDormant() then continue end
local hisPos = ply:GetShootPos()
if ply:getDarkRPVar("wanted") then ply:drawWantedInfo() end

if GAMEMODE.Config.globalshow then
ply:drawPlayerInfo()
-- Draw when you're (almost) looking at him
elseif hisPos:DistToSqr(shootPos) < 160000 then
local pos = hisPos - shootPos
local unitPos = pos:GetNormalized()
if unitPos:Dot(aimVec) > 0.95 then
local trace = util.QuickTrace(shootPos, pos, localplayer)
if trace.Hit and trace.Entity ~= ply then break end
ply:drawPlayerInfo()
end
end
end

local tr = localplayer:GetEyeTrace()

if IsValid(tr.Entity) and tr.Entity:isKeysOwnable() and tr.Entity:GetPos():DistToSqr(localplayer:GetPos()) < 40000 then
tr.Entity:drawOwnableInfo()
end

end

--[[--------------------------------------------------------------------------- Drawing death notices ---------------------------------------------------------------------------]] function GM:DrawDeathNotice(x, y) if not GAMEMODE.Config.showdeaths then return end self.Sandbox.DrawDeathNotice(self, x, y) end

--[[--------------------------------------------------------------------------- Display notifications ---------------------------------------------------------------------------]] local function DisplayNotify(msg) local txt = msg:ReadString() GAMEMODE:AddNotify(txt, msg:ReadShort(), msg:ReadLong()) surface.PlaySound("buttons/lightswitch2.wav")

-- Log to client console
MsgC(Color(255, 20, 20, 255), "[DarkRP] ", Color(200, 200, 200, 255), txt, "\n")

end usermessage.Hook("_Notify", DisplayNotify)

--[[--------------------------------------------------------------------------- Remove some elements from the HUD in favour of the DarkRP HUD ---------------------------------------------------------------------------]] function GM:HUDShouldDraw(name) if name == "CHudHealth" or name == "CHudBattery" or name == "CHudSuitPower" or (HelpToggled and name == "CHudChat") then return false else return self.Sandbox.HUDShouldDraw(self, name) end end

--[[--------------------------------------------------------------------------- Disable players' names popping up when looking at them ---------------------------------------------------------------------------]] function GM:HUDDrawTargetID() return false end

--[[--------------------------------------------------------------------------- Actual HUDPaint hook ---------------------------------------------------------------------------]] function GM:HUDPaint() localplayer = localplayer and IsValid(localplayer) and localplayer or LocalPlayer() if not IsValid(localplayer) then return end

DrawHUD()
DrawEntityDisplay()

self.Sandbox.HUDPaint(self)

end

Dumb x 3Funny x 2
#4

ye all i see is bunch of balh blah blah, im just gonna wait for my developer to tell me what to do

Edited The developer does no know what u pasted either

Funny x 1Dumb x 1
#5
ByLAST OF USat 28th of August 2018 09:14:04
ye all i see is bunch of balh blah blah, im just gonna wait for my developer to tell me what to doEditedThe developer does no know what u pasted either

Sounds like your developer has a DarkRP dev certificate if he doesn't know what Lapin posted.

Agree x 2Funny x 1
#6

should i just paste it in init.lua?

Dumb x 1
#7

Change his rank to jobs.lua developer.

No, you don't edit gamemode files. Create a seperate serverside file in 'lua/autorun/server' and put it there.

#8

u want me to paste what he pasted or what i pasted?

Edited Btw i pasted both in the server folder and they all didnt do anything so ye

Dumb x 1
#9

No man, you don't just blatantly put any code in your server, thats how you get backdoors and get your server hacked. Never put any third party code in your server unless you trust it. Get a proper developer who can do more than edit a text file called jobs.lua. You yourself should get some proper knowledge on how to atleast understand code that is being given to you.

#10

Ive been trying for a 2 weeks to get this done, but i need help

#11

goto https://forum.facepunch.com/f/gmoddev if u want lua help

Agree x 1
#12
ByLAST OF USat 28th of August 2018 09:14:04
ye all i see is bunch of balh blah blah, im just gonna wait for my developer to tell me what to doEditedThe developer does no know what u pasted either

People who can make GayRP jobs are not developers. A developer would have understood what Lapin posted. Get a new developer.

Agree x 1
Users viewing this thread
Nobody