Error local payer avec mon HUD :-( J'attend les pro la !

  • Initiateur de la discussion MrProof
  • Date de début
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
Salutation a chaque fois que je met ce code qui est indispensable pour mon serveur :

Code:
local ply = LocalPlayer()
local function Armed(ply) for v,k in pairs(ply:GetWeapons()) do local exploded = string.Explode( "_", k:GetClass() ) if exploded[1] == "fas2" or exploded[1] == "ak47" or zaclass == "weapon_lightsaber" or exploded[1] == "m4a1" or exploded[1] == "bw" or exploded[1] == "m3" or exploded[1] == "m9k" then return true end end
end if Armed(pi) then surface.SetTextPos( ScrW()/2-38, ScrH()/2+80 ) surface.SetTextColor(225,0,0) surface.DrawText( "[ADDICT] Armé(e)" ) else surface.SetTextPos( ScrW()/2-44, ScrH()/2+80 ) surface.SetTextColor(0,225,0) surface.DrawText( "[ADDICT] Non Armé(e)" )
end

Voici le code entier mon HUD :

Code:
MODULE.Name = "HUD"
MODULE.Author = "Q2F2 & Ghosty"
MODULE.Realm = 2
local tag = "BaseWars.HUD"
function MODULE:__INIT() surface.CreateFont(tag, { font = "Roboto", size = 16, weight = 800, }) surface.CreateFont(tag .. ".Large", { font = "Roboto", size = 20, weight = 1200, }) surface.CreateFont(tag .. ".Time", { font = "Roboto", size = 28, weight = 800, })
end
local clamp = math.Clamp
local floor = math.floor
local round = math.Round
local ply = LocalPlayer()
local function Armed(ply) for v,k in pairs(ply:GetWeapons()) do local exploded = string.Explode( "_", k:GetClass() ) if exploded[1] == "fas2" or exploded[1] == "ak47" or zaclass == "weapon_lightsaber" or exploded[1] == "m4a1" or exploded[1] == "bw" or exploded[1] == "m3" or exploded[1] == "m9k" then return true end end
end if Armed(pi) then surface.SetTextPos( ScrW()/2-38, ScrH()/2+80 ) surface.SetTextColor(225,0,0) surface.DrawText( "[ADDICT] Armé(e)" ) else surface.SetTextPos( ScrW()/2-44, ScrH()/2+80 ) surface.SetTextColor(0,225,0) surface.DrawText( "[ADDICT] Non Armé(e)" )
end
local function Calc(real, max, min, w) real = clamp(real,min or 0,max) real = real / max if w then local calw = w * real return calw, w - calw else return real end
end
local oldhW = 0
local oldHP = 0
local oldaW = 0
local oldAM = 0
local shade = Color(0, 0, 0, 140)
local trans = Color(255, 255, 255, 150)
local textc = Color(100, 150, 200, 255)
local hpbck = Color(255, 0 , 0 , 100)
local pwbck = Color(0 , 0 , 255, 100)
local red = Color(255, 0 , 0 , 245)
function MODULE:DrawStructureInfo(ent) local Pos = ent:GetPos() Pos.z = Pos.z + 14 Pos = Pos:ToScreen() local name = (ent.PrintName or (ent.GetName and ent:GetName()) or (ent.Nick and ent:Nick()) or ent:GetClass()):Trim() local W = BaseWars.Config.HUD.EntW local H = BaseWars.Config.HUD.EntH local oldx, oldy = Pos.x, Pos.y local curx, cury = Pos.x, Pos.y local w, h local Font = BaseWars.Config.HUD.EntFont local Font2 = BaseWars.Config.HUD.EntFont2 local Padding = 5 local EndPad = -Padding * 2 curx = curx - W / 2 cury = cury - H / 2 surface.SetDrawColor(shade) surface.DrawRect(curx, cury, W, H) surface.SetFont(Font) w, h = surface.GetTextSize(name) draw.DrawText(name, Font, oldx - w / 2, cury, shade) draw.DrawText(name, Font, oldx - w / 2, cury, textc) if ent:Health() > 0 then cury = cury + H + 1 surface.SetDrawColor(shade) surface.DrawRect(curx, cury, W, H) local MaxHealth = ent:GetMaxHealth() or 100 local HealthStr = ent:Health() .. "/" .. MaxHealth .. " HP" local HPLen = W * (ent:Health() / MaxHealth) draw.RoundedBox(0, curx + Padding, cury + Padding, HPLen + EndPad, H + EndPad, hpbck) surface.SetFont(Font2) w, h = surface.GetTextSize(HealthStr) draw.DrawText(HealthStr, Font2, oldx - w / 2, cury + Padding, shade) draw.DrawText(HealthStr, Font2, oldx - w / 2, cury + Padding, color_white) end if ent.GetPower then cury = cury + H + 1 surface.SetDrawColor(shade) surface.DrawRect(curx, cury, W, H) local MaxPower = ent:GetMaxPower() or 100 local PowerStr = (ent:GetPower() > 0 and ent:GetPower() .. "/" .. MaxPower .. " PW") or BaseWars.LANG.PowerFailure local PWLen = W * (ent:GetPower() / MaxPower) draw.RoundedBox(0, curx + Padding, cury + Padding, PWLen + EndPad, H + EndPad, pwbck) surface.SetFont(Font2) w, h = surface.GetTextSize(PowerStr) draw.DrawText(PowerStr, Font2, oldx - w / 2, cury + Padding, shade) draw.DrawText(PowerStr, Font2, oldx - w / 2, cury + Padding, color_white) end if ent:BadlyDamaged() then cury = cury + H + 1 surface.SetDrawColor(shade) surface.DrawRect(curx, cury, W, H) local Str = BaseWars.LANG.HealthFailure surface.SetFont(Font2) w, h = surface.GetTextSize(Str) draw.DrawText(Str, Font2, oldx - w / 2, cury + Padding - 1, shade) draw.DrawText(Str, Font2, oldx - w / 2, cury + Padding - 1, color_white) end
end
function MODULE:DrawDisplay() local me = LocalPlayer() local Ent = me:GetEyeTrace().Entity if BaseWars.Ents:ValidClose(Ent, me, 200) and (Ent.IsElectronic or Ent.IsGenerator or Ent.DrawStructureDisplay) then self:DrawStructureInfo(Ent) end
end
local StuckTime
local me = LocalPlayer and LocalPlayer()
local stuckstr = CLIENT and string.format(BaseWars.LANG.StuckText, (input.LookupBinding("+duck") or "NONE"):upper(), (input.LookupBinding("+jump") or "NONE"):upper())
local Key = CLIENT and (input.LookupBinding("+menu") or "NONE"):upper() .. BaseWars.LANG.SpawnMenuControl
local col2 = Color(159,1,1,150)
local col1 = Color(1,159,1,150)
local enable_keyinfo = CLIENT and CreateClientConVar("bw_enable_keyinfo", "1", true, false)
function MODULE:Paint() if not IsValid(me) then me = LocalPlayer() return end self:DrawDisplay() local hp, su = me:Health(), me:Armor() if not me:Alive() then hp = 0 su = 0 end local hpF = Lerp(0.15, oldHP, hp) oldHP = hpF local suF = Lerp(0.15, oldAM, su) oldAM = suF local pbarW, pbarH = 256, 6 local sW, sH = ScrW(), ScrH() local Karma = me:GetKarma() local KarmaText = string.format(BaseWars.LANG.KarmaText, Karma) local Level = me:GetLevel() local XP = me:GetXP() local NextLevelXP = me:GetXPNextLevel() local LevelText = string.format(BaseWars.LANG.LevelText, Level) local XPText = string.format(BaseWars.LANG.XPText, XP, NextLevelXP) local LvlText = LevelText .. ", " .. XPText local hW = Calc(hp, 100, 0, pbarW) local aW = Calc(su, 100, 0, pbarW) local nhW,naW = 0,0 hW = Lerp(0.15,oldhW,hW) oldhW = hW nhW = pbarW - hW aW = Lerp(0.15,oldaW,aW) oldaW = aW naW = pbarW - aW if BaseWars.PSAText then surface.SetFont("BudgetLabel") local w, h = surface.GetTextSize(BaseWars.PSAText) local fw = sW + w * 2 local x, y = ((SysTime() * 50) % fw) - w, 1 local Col = HSVToColor(CurTime() % 6 * 60, 1, 1) draw.DrawText(BaseWars.PSAText, tag .. ".Large", x, y, Col, TEXT_ALIGN_LEFT) end -- Karma, XP + Controls if enable_keyinfo:GetBool() then draw.DrawText(BaseWars.LANG.MainMenuControl, tag, sW - 5, (BaseWars.PSAText and 20 or 3), red, TEXT_ALIGN_RIGHT) draw.DrawText(Key, tag, sW - 5, (BaseWars.PSAText and 33 or 16), red, TEXT_ALIGN_RIGHT) end draw.DrawText(os.date("%H:%M"), tag .. ".Time", sW / 2, (BaseWars.PSAText and 20 or 3), trans, TEXT_ALIGN_CENTER) draw.DrawText(KarmaText, tag, 64 + 26 + pbarW / 2, sH - 128 - 48 - 8, shade, TEXT_ALIGN_CENTER) draw.DrawText(KarmaText, tag, 64 + 24 + pbarW / 2, sH - 128 - 48 - 10, trans, TEXT_ALIGN_CENTER) draw.DrawText(LvlText, tag, 64 + 26 + pbarW / 2, sH - 128 - 8, shade, TEXT_ALIGN_CENTER) draw.DrawText(LvlText, tag, 64 + 24 + pbarW / 2, sH - 128 - 10, trans, TEXT_ALIGN_CENTER) -- Health draw.DrawText("HP", tag, 64 + 18, sH - 128 - 32 - 8, shade, TEXT_ALIGN_RIGHT) draw.DrawText("HP", tag, 64 + 16, sH - 128 - 32 - 10, trans, TEXT_ALIGN_RIGHT) if hW > 0.01 then draw.RoundedBox(0, 64 + 24, sH - 128 - 32 - 4, hW, pbarH, col1) draw.RoundedBox(0, 64 + 24 - nhW + pbarW, sH - 128 - 32 - 4, nhW, pbarH, col2) else draw.RoundedBox(0, 64 + 24, sH - 128 - 32 - 4, pbarW, pbarH, col2) end draw.DrawText(round(hpF), tag, pbarW + 98, sH - 128 - 32 - 8, shade, TEXT_ALIGN_LEFT) draw.DrawText(round(hpF), tag, pbarW + 96, sH - 128 - 32 - 10, trans, TEXT_ALIGN_LEFT) -- Armor draw.DrawText("SUIT", tag, 64 + 18, sH - 128 - 16 - 8, shade, TEXT_ALIGN_RIGHT) draw.DrawText("SUIT", tag, 64 + 16, sH - 128 - 16 - 10, trans, TEXT_ALIGN_RIGHT) if aW > 0.01 then draw.RoundedBox(0, 64 + 24, sH - 128 - 16 - 4, aW, pbarH, Color(90,120,200,150)) draw.RoundedBox(0, 64 + 24 - naW + pbarW, sH - 128 - 16 - 4, naW, pbarH, Color(10,40,150,150)) else draw.RoundedBox(0, 64 + 24, sH - 128 - 16 - 4, pbarW, pbarH, Color(10,40,150,150)) end draw.DrawText(round(suF), tag, pbarW + 98, sH - 128 - 16 - 8, shade, TEXT_ALIGN_LEFT) draw.DrawText(round(suF), tag, pbarW + 96, sH - 128 - 16 - 10, trans, TEXT_ALIGN_LEFT) if me.Stuck and me:Stuck() and me:GetMoveType() == MOVETYPE_WALK then if not StuckTime then StuckTime = CurTime() end if CurTime() > StuckTime + 1 then draw.DrawText(stuckstr, tag .. ".Large", sW / 2 + 2, sH / 2 + 2, shade, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) draw.DrawText(stuckstr, tag .. ".Large", sW / 2, sH / 2, trans, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) end else StuckTime = nil end
end
hook.Add("HUDPaint", tag .. ".Paint", Curry(MODULE.Paint))
function HideHUD(name) for k, v in next, {"CHudHealth", "CHudBattery", --[["CHudAmmo", "CHudSecondaryAmmo"]]} do if name == v then return false end end
end
hook.Add("HUDShouldDraw", tag .. ".HideOldHUD", HideHUD)

Et voici mon Erreur lua :

[ERROR] gamemodes/basewars/gamemode/modules/hud.lua:32: attempt to call global 'LocalPlayer' (a nil value)
1. unknown - gamemodes/basewars/gamemode/modules/hud.lua:32
2. unknown - [C]:-1
3. pcall - [C]:-1
4. Load - gamemodes/basewars/gamemode/modules.lua:104
5. unknown - gamemodes/basewars/gamemode/init.lua:7

Merci d'avance :)
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
MrProof à dit:
Salutation a chaque fois que je met ce code qui est indispensable pour mon serveur :

Code:
local ply = LocalPlayer()
local function Armed(ply) for v,k in pairs(ply:GetWeapons()) do local exploded = string.Explode( "_", k:GetClass() ) if exploded[1] == "fas2" or exploded[1] == "ak47" or zaclass == "weapon_lightsaber" or exploded[1] == "m4a1" or exploded[1] == "bw" or exploded[1] == "m3" or exploded[1] == "m9k" then return true end end
end if Armed(pi) then surface.SetTextPos( ScrW()/2-38, ScrH()/2+80 ) surface.SetTextColor(225,0,0) surface.DrawText( "[ADDICT] Armé(e)" ) else surface.SetTextPos( ScrW()/2-44, ScrH()/2+80 ) surface.SetTextColor(0,225,0) surface.DrawText( "[ADDICT] Non Armé(e)" )
end

Voici le code entier mon HUD :

Code:
MODULE.Name = "HUD"
MODULE.Author = "Q2F2 & Ghosty"
MODULE.Realm = 2
local tag = "BaseWars.HUD"
function MODULE:__INIT() surface.CreateFont(tag, { font = "Roboto", size = 16, weight = 800, }) surface.CreateFont(tag .. ".Large", { font = "Roboto", size = 20, weight = 1200, }) surface.CreateFont(tag .. ".Time", { font = "Roboto", size = 28, weight = 800, })
end
local clamp = math.Clamp
local floor = math.floor
local round = math.Round
local ply = LocalPlayer()
local function Armed(ply) for v,k in pairs(ply:GetWeapons()) do local exploded = string.Explode( "_", k:GetClass() ) if exploded[1] == "fas2" or exploded[1] == "ak47" or zaclass == "weapon_lightsaber" or exploded[1] == "m4a1" or exploded[1] == "bw" or exploded[1] == "m3" or exploded[1] == "m9k" then return true end end
end if Armed(pi) then surface.SetTextPos( ScrW()/2-38, ScrH()/2+80 ) surface.SetTextColor(225,0,0) surface.DrawText( "[ADDICT] Armé(e)" ) else surface.SetTextPos( ScrW()/2-44, ScrH()/2+80 ) surface.SetTextColor(0,225,0) surface.DrawText( "[ADDICT] Non Armé(e)" )
end
local function Calc(real, max, min, w) real = clamp(real,min or 0,max) real = real / max if w then local calw = w * real return calw, w - calw else return real end
end
local oldhW = 0
local oldHP = 0
local oldaW = 0
local oldAM = 0
local shade = Color(0, 0, 0, 140)
local trans = Color(255, 255, 255, 150)
local textc = Color(100, 150, 200, 255)
local hpbck = Color(255, 0 , 0 , 100)
local pwbck = Color(0 , 0 , 255, 100)
local red = Color(255, 0 , 0 , 245)
function MODULE:DrawStructureInfo(ent) local Pos = ent:GetPos() Pos.z = Pos.z + 14 Pos = Pos:ToScreen() local name = (ent.PrintName or (ent.GetName and ent:GetName()) or (ent.Nick and ent:Nick()) or ent:GetClass()):Trim() local W = BaseWars.Config.HUD.EntW local H = BaseWars.Config.HUD.EntH local oldx, oldy = Pos.x, Pos.y local curx, cury = Pos.x, Pos.y local w, h local Font = BaseWars.Config.HUD.EntFont local Font2 = BaseWars.Config.HUD.EntFont2 local Padding = 5 local EndPad = -Padding * 2 curx = curx - W / 2 cury = cury - H / 2 surface.SetDrawColor(shade) surface.DrawRect(curx, cury, W, H) surface.SetFont(Font) w, h = surface.GetTextSize(name) draw.DrawText(name, Font, oldx - w / 2, cury, shade) draw.DrawText(name, Font, oldx - w / 2, cury, textc) if ent:Health() > 0 then cury = cury + H + 1 surface.SetDrawColor(shade) surface.DrawRect(curx, cury, W, H) local MaxHealth = ent:GetMaxHealth() or 100 local HealthStr = ent:Health() .. "/" .. MaxHealth .. " HP" local HPLen = W * (ent:Health() / MaxHealth) draw.RoundedBox(0, curx + Padding, cury + Padding, HPLen + EndPad, H + EndPad, hpbck) surface.SetFont(Font2) w, h = surface.GetTextSize(HealthStr) draw.DrawText(HealthStr, Font2, oldx - w / 2, cury + Padding, shade) draw.DrawText(HealthStr, Font2, oldx - w / 2, cury + Padding, color_white) end if ent.GetPower then cury = cury + H + 1 surface.SetDrawColor(shade) surface.DrawRect(curx, cury, W, H) local MaxPower = ent:GetMaxPower() or 100 local PowerStr = (ent:GetPower() > 0 and ent:GetPower() .. "/" .. MaxPower .. " PW") or BaseWars.LANG.PowerFailure local PWLen = W * (ent:GetPower() / MaxPower) draw.RoundedBox(0, curx + Padding, cury + Padding, PWLen + EndPad, H + EndPad, pwbck) surface.SetFont(Font2) w, h = surface.GetTextSize(PowerStr) draw.DrawText(PowerStr, Font2, oldx - w / 2, cury + Padding, shade) draw.DrawText(PowerStr, Font2, oldx - w / 2, cury + Padding, color_white) end if ent:BadlyDamaged() then cury = cury + H + 1 surface.SetDrawColor(shade) surface.DrawRect(curx, cury, W, H) local Str = BaseWars.LANG.HealthFailure surface.SetFont(Font2) w, h = surface.GetTextSize(Str) draw.DrawText(Str, Font2, oldx - w / 2, cury + Padding - 1, shade) draw.DrawText(Str, Font2, oldx - w / 2, cury + Padding - 1, color_white) end
end
function MODULE:DrawDisplay() local me = LocalPlayer() local Ent = me:GetEyeTrace().Entity if BaseWars.Ents:ValidClose(Ent, me, 200) and (Ent.IsElectronic or Ent.IsGenerator or Ent.DrawStructureDisplay) then self:DrawStructureInfo(Ent) end
end
local StuckTime
local me = LocalPlayer and LocalPlayer()
local stuckstr = CLIENT and string.format(BaseWars.LANG.StuckText, (input.LookupBinding("+duck") or "NONE"):upper(), (input.LookupBinding("+jump") or "NONE"):upper())
local Key = CLIENT and (input.LookupBinding("+menu") or "NONE"):upper() .. BaseWars.LANG.SpawnMenuControl
local col2 = Color(159,1,1,150)
local col1 = Color(1,159,1,150)
local enable_keyinfo = CLIENT and CreateClientConVar("bw_enable_keyinfo", "1", true, false)
function MODULE:Paint() if not IsValid(me) then me = LocalPlayer() return end self:DrawDisplay() local hp, su = me:Health(), me:Armor() if not me:Alive() then hp = 0 su = 0 end local hpF = Lerp(0.15, oldHP, hp) oldHP = hpF local suF = Lerp(0.15, oldAM, su) oldAM = suF local pbarW, pbarH = 256, 6 local sW, sH = ScrW(), ScrH() local Karma = me:GetKarma() local KarmaText = string.format(BaseWars.LANG.KarmaText, Karma) local Level = me:GetLevel() local XP = me:GetXP() local NextLevelXP = me:GetXPNextLevel() local LevelText = string.format(BaseWars.LANG.LevelText, Level) local XPText = string.format(BaseWars.LANG.XPText, XP, NextLevelXP) local LvlText = LevelText .. ", " .. XPText local hW = Calc(hp, 100, 0, pbarW) local aW = Calc(su, 100, 0, pbarW) local nhW,naW = 0,0 hW = Lerp(0.15,oldhW,hW) oldhW = hW nhW = pbarW - hW aW = Lerp(0.15,oldaW,aW) oldaW = aW naW = pbarW - aW if BaseWars.PSAText then surface.SetFont("BudgetLabel") local w, h = surface.GetTextSize(BaseWars.PSAText) local fw = sW + w * 2 local x, y = ((SysTime() * 50) % fw) - w, 1 local Col = HSVToColor(CurTime() % 6 * 60, 1, 1) draw.DrawText(BaseWars.PSAText, tag .. ".Large", x, y, Col, TEXT_ALIGN_LEFT) end -- Karma, XP + Controls if enable_keyinfo:GetBool() then draw.DrawText(BaseWars.LANG.MainMenuControl, tag, sW - 5, (BaseWars.PSAText and 20 or 3), red, TEXT_ALIGN_RIGHT) draw.DrawText(Key, tag, sW - 5, (BaseWars.PSAText and 33 or 16), red, TEXT_ALIGN_RIGHT) end draw.DrawText(os.date("%H:%M"), tag .. ".Time", sW / 2, (BaseWars.PSAText and 20 or 3), trans, TEXT_ALIGN_CENTER) draw.DrawText(KarmaText, tag, 64 + 26 + pbarW / 2, sH - 128 - 48 - 8, shade, TEXT_ALIGN_CENTER) draw.DrawText(KarmaText, tag, 64 + 24 + pbarW / 2, sH - 128 - 48 - 10, trans, TEXT_ALIGN_CENTER) draw.DrawText(LvlText, tag, 64 + 26 + pbarW / 2, sH - 128 - 8, shade, TEXT_ALIGN_CENTER) draw.DrawText(LvlText, tag, 64 + 24 + pbarW / 2, sH - 128 - 10, trans, TEXT_ALIGN_CENTER) -- Health draw.DrawText("HP", tag, 64 + 18, sH - 128 - 32 - 8, shade, TEXT_ALIGN_RIGHT) draw.DrawText("HP", tag, 64 + 16, sH - 128 - 32 - 10, trans, TEXT_ALIGN_RIGHT) if hW > 0.01 then draw.RoundedBox(0, 64 + 24, sH - 128 - 32 - 4, hW, pbarH, col1) draw.RoundedBox(0, 64 + 24 - nhW + pbarW, sH - 128 - 32 - 4, nhW, pbarH, col2) else draw.RoundedBox(0, 64 + 24, sH - 128 - 32 - 4, pbarW, pbarH, col2) end draw.DrawText(round(hpF), tag, pbarW + 98, sH - 128 - 32 - 8, shade, TEXT_ALIGN_LEFT) draw.DrawText(round(hpF), tag, pbarW + 96, sH - 128 - 32 - 10, trans, TEXT_ALIGN_LEFT) -- Armor draw.DrawText("SUIT", tag, 64 + 18, sH - 128 - 16 - 8, shade, TEXT_ALIGN_RIGHT) draw.DrawText("SUIT", tag, 64 + 16, sH - 128 - 16 - 10, trans, TEXT_ALIGN_RIGHT) if aW > 0.01 then draw.RoundedBox(0, 64 + 24, sH - 128 - 16 - 4, aW, pbarH, Color(90,120,200,150)) draw.RoundedBox(0, 64 + 24 - naW + pbarW, sH - 128 - 16 - 4, naW, pbarH, Color(10,40,150,150)) else draw.RoundedBox(0, 64 + 24, sH - 128 - 16 - 4, pbarW, pbarH, Color(10,40,150,150)) end draw.DrawText(round(suF), tag, pbarW + 98, sH - 128 - 16 - 8, shade, TEXT_ALIGN_LEFT) draw.DrawText(round(suF), tag, pbarW + 96, sH - 128 - 16 - 10, trans, TEXT_ALIGN_LEFT) if me.Stuck and me:Stuck() and me:GetMoveType() == MOVETYPE_WALK then if not StuckTime then StuckTime = CurTime() end if CurTime() > StuckTime + 1 then draw.DrawText(stuckstr, tag .. ".Large", sW / 2 + 2, sH / 2 + 2, shade, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) draw.DrawText(stuckstr, tag .. ".Large", sW / 2, sH / 2, trans, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) end else StuckTime = nil end
end
hook.Add("HUDPaint", tag .. ".Paint", Curry(MODULE.Paint))
function HideHUD(name) for k, v in next, {"CHudHealth", "CHudBattery", --[["CHudAmmo", "CHudSecondaryAmmo"]]} do if name == v then return false end end
end
hook.Add("HUDShouldDraw", tag .. ".HideOldHUD", HideHUD)

Et voici mon Erreur lua :

[ERROR] gamemodes/basewars/gamemode/modules/hud.lua:32: attempt to call global 'LocalPlayer' (a nil value)
1. unknown - gamemodes/basewars/gamemode/modules/hud.lua:32
2. unknown - [C]:-1
3. pcall - [C]:-1
4. Load - gamemodes/basewars/gamemode/modules.lua:104
5. unknown - gamemodes/basewars/gamemode/init.lua:7

Merci d'avance :)
T’es pas côté client, LocalPlayer n’existe donc pas + tu n'utilise pas la variable donc aucune raison de la laisser
 
Dernière édition:
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
thepsyca à dit:
T’es pas côté client, LocalPlayer n’existe donc pas + tu n'utilise pas la variable donc aucune raison de la laisser
Tout d'abord merci de ta réponse en effet mais quand je l'enlève il me dit :
[ERROR] gamemodes/basewars/gamemode/modules/hud.lua:34: attempt to index local 'ply' (a nil value)
1. Armed - gamemodes/basewars/gamemode/modules/hud.lua:34
2. unknown - gamemodes/basewars/gamemode/modules/hud.lua:41
3. unknown - [C]:-1
4. pcall - [C]:-1
5. Load - gamemodes/basewars/gamemode/modules.lua:104
6. unknown - gamemodes/basewars/gamemode/init.lua:7
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
MrProof à dit:
Tout d'abord merci de ta réponse en effet mais quand je l'enlève il me dit :
[ERROR] gamemodes/basewars/gamemode/modules/hud.lua:34: attempt to index local 'ply' (a nil value)
1. Armed - gamemodes/basewars/gamemode/modules/hud.lua:34
2. unknown - gamemodes/basewars/gamemode/modules/hud.lua:41
3. unknown - [C]:-1
4. pcall - [C]:-1
5. Load - gamemodes/basewars/gamemode/modules.lua:104
6. unknown - gamemodes/basewars/gamemode/init.lua:7
Ligne 43 tu fais appel à la fonction Armed(pi), mais je vois pas où PI est définit sur ton code.
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
Code:
local function Armed(ply) for v,k in pairs(ply:GetWeapons()) do local exploded = string.Explode( "_", k:GetClass() ) if exploded[1] == "fas2" or exploded[1] == "ak47" or zaclass == "weapon_lightsaber" or exploded[1] == "m4a1" or exploded[1] == "bw" or exploded[1] == "m3" or exploded[1] == "m9k" then return true end end
end if Armed(ply) then surface.SetTextPos( ScrW()/2-38, ScrH()/2+80 ) surface.SetTextColor(225,0,0) surface.DrawText( "[ADDICT] Armé(e)" ) else surface.SetTextPos( ScrW()/2-44, ScrH()/2+80 ) surface.SetTextColor(0,225,0) surface.DrawText( "[ADDICT] Non Armé(e)" )
end
thepsyca à dit:
Ligne 43 tu fais appel à la fonction Armed(pi), mais je vois pas où PI est définit sur ton code.
En effet j'ai modifier avant que tu envoie le message mais ça fait pareil :/
[ERROR] gamemodes/basewars/gamemode/modules/hud.lua:34: attempt to index local 'ply' (a nil value)
1. Armed - gamemodes/basewars/gamemode/modules/hud.lua:34
2. unknown - gamemodes/basewars/gamemode/modules/hud.lua:41
3. unknown - [C]:-1
4. pcall - [C]:-1
5. Load - gamemodes/basewars/gamemode/modules.lua:104
6. unknown - gamemodes/basewars/gamemode/cl_init.lua:4
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
Si quelqu'un a un dérivé de ce script je veux bien car j'en ai besoin :/ ( Il affiche si quelqu'un est armée ou pas )
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Quelle version du basewars utilises-tu ?

La raison pour laquelle le module est chargé coté serveur est que le module loader utilise la variable MODULE.Realm où la valeur 2 = clientside, peut être que le nouveau module loader du basewars mis à jour fonctionne différemment.
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
While True à dit:
Quelle version du basewars utilises-tu ?

La raison pour laquelle le module est chargé coté serveur est que le module loader utilise la variable MODULE.Realm où la valeur 2 = clientside, peut être que le nouveau module loader du basewars mis à jour fonctionne différemment.
La dernière version
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Avant toute chose, il faut que tu saches comment le BaseWars charge les modules :

Coté serveur :
Pour chaque fichier trouvé dans le dossier modules, il effectue un pcall(include, fichier) (peut importe qu'il soit client/server/share-sided)
Cet appel exécute le fichier, ainsi si tu mets des fonctions telles que LocalPlayer() directement dans le fichier (pas dans encapsulée), les fonctions seront appelées et créeront une erreur.
L'appel d'include renvoie l'objet MODULE avec les champs Realm, __INIT etc.
En fonction de ces champ, le loader enverra ou pas le fichier au client.

Si le module est coté serveur/shared, il executera la fonction __INIT du module.
Si client/shared, il ajoute le fichier au téléchargement client (AddCSLua).

Pour l'ajout d'une fonction uniquement coté client, il faut que la fonction ne soit exécutée seulement coté client et donc chargée au lancement du module (MODULE:_INIT) et non pas au chargement du fichier du module (hors de quelconque encapsulation). Pour lire le fichier utilise le mot de passe "MODULE:_INIT".
Dans ton code la fonction Armed et LocalPlayer étaient mises en dehors de toute fonction, donc exécutées lors de include(), ce qui non seulement cause une erreur coté serveur mais n'aurait jamais fonctionné coté client car les fonction le la library Surface doivent être utilisées dans un hook d'affichage 2D (voir http://wiki.garrysmod.com/page/Category:2D_Rendering_Hooks)

Coté client :
Le loader lancera les fonctions MODULE:__INIT au chargement du module, là seront disponibles les fonctions client, dont LocalPlayer() et la library Surface/UI/etc.

Voici la version normalement fonctionnelle :

[Lua] BaseWars HUD - Clique ici

En revanche je te conseille de retravailler la fonction Armed, et ne pas l’appeler dans un hook Paint si tu ne veux pas faire perdre des FPS à tes joueurs pour rien. Enregistrer la variable armed, et la faire changer quand on recoit une arme par exemple, mais d'autres solutions sont possibles.
 
Dernière édition:
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
While True à dit:
Avant toute chose, il faut que tu saches comment le BaseWars charge les modules :

Coté serveur :
Pour chaque fichier trouvé dans le dossier modules, il effectue un pcall(include, fichier) (peut importe qu'il soit client/server/share-sided)
Cet appel exécute le fichier, ainsi si tu mets des fonctions telles que LocalPlayer() directement dans le fichier (pas dans encapsulée), les fonctions seront appelées et créeront une erreur.
L'appel d'include renvoie l'objet MODULE avec les champs Realm, __INIT etc.
En fonction de ces champ, le loader enverra ou pas le fichier au client.

Si le module est coté serveur/shared, il executera la fonction __INIT du module.
Si client/shared, il ajoute le fichier au téléchargement client (AddCSLua).

Pour l'ajout d'une fonction uniquement coté client, il faut que la fonction ne soit exécutée seulement coté client et donc chargée au lancement du module (MODULE:_INIT) et non pas au chargement du fichier du module (hors de quelconque encapsulation). Pour lire le fichier utilise le mot "MODULE:_INIT".
Dans ton code la fonction Armed et LocalPlayer étaient mises en dehors de toute fonction, donc exécutées lors de include(), ce qui non seulement cause une erreur coté serveur mais n'aurait jamais fonctionné coté client car les fonction le la library Surface doivent être utilisées dans un hook d'affichage 2D (voir http://wiki.garrysmod.com/page/Category:2D_Rendering_Hooks)

Coté client :
Le loader lancera les fonctions MODULE:__INIT au chargement du module, là seront disponibles les fonctions client, dont LocalPlayer() et la library Surface/UI/etc.

Voici la version normalement fonctionnelle :

[Lua] BaseWars HUD - Clique ici

En revanche je te conseille de retravailler la fonction Armed, et ne pas l’appeler dans un hook Paint si tu ne veux pas faire perdre des FPS à tes joueurs pour rien. Enregistrer la variable armed, et la faire changer quand on recoit une arme par exemple, mais d'autres solutions sont possibles.
Merci beaucoup mais je ne connais pas le mot de passe hi hi ^^
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
MrProof à dit:
Merci beaucoup mais je ne connais pas le mot de passe hi hi ^^
Apprends à lire alors.
Malheureusement, tu confirmes ce que je pressentais, t'attends une solution la bouche ouverte, tu n'as pas lu ce que je t'ai écris, et tes yeux se sont arrêtés sur la solution toute faite. C'est pas comme ça qu'on apprend, j'ai passé mon temps à essayer d'expliquer, tu n'as pas pris la peine de lire deux mots. C'est tout pour moi, je ne t'aiderai pas plus, il te suffit de lire l'entièreté de mon message pour trouver la réponse. Et il n'y a pas d'énigme cachée, juste de la lecture.
 
  • J'aime
Réactions: slownls
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
While True à dit:
Apprends à lire alors.
Malheureusement, tu confirmes ce que je pressentais, t'attends une solution la bouche ouverte, tu n'as pas lu ce que je t'ai écris, et tes yeux se sont arrêtés sur la solution toute faite. C'est pas comme ça qu'on apprend, j'ai passé mon temps à essayer d'expliquer, tu n'as pas pris la peine de lire deux mots. C'est tout pour moi, je ne t'aiderai pas plus, il te suffit de lire l'entièreté de mon message pour trouver la réponse. Et il n'y a pas d'énigme cachée, juste de la lecture.
En effet excuse moi je suis vraiment un gros débile mental, j'ai trouver après 4 relecture mais cette relecture ma permis de vraiment comprendre donc ^^
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
Tout fonctionne sauuf que le truc armée ou pas d'affiche pour moi seulement :/
 
edouard292

edouard292

Geek suprême
Messages
423
Score réaction
108
Points
150
Comme dis plus haut, ne t'attends pas à une réponse toute faite, recherche pourquoi ce que tu attendais du hud n'est pas complet et remplis cette fonctions par toi même :D
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
edouard292 à dit:
Comme dis plus haut, ne t'attends pas à une réponse toute faite, recherche pourquoi ce que tu attendais du hud n'est pas complet et remplis cette fonctions par toi même :D
En général si je viens dans un forum d'entraide c'est pour trouver de l'aide et j'ai déjà chercher des solutions mais je n'en trouve pas donc j'aimerais qu'on m'aide et de plus pour le discourt de l'autre, et bien c'était inutile le moment ou j'ai lu sont paragraphe j'était sur mon téléphone qui avait 4% de batterie donc c'était pratiquement illisible. Du coup dans le code quand je remplace le "Armed(me)" sa me refait la même érreur mais le "me" affiche la function sur moi même donc le script devient inutile :/
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
C'est toi qui a créé cette fonction Armed, je n'ai fait que t'indiquer où la mettre pour avoir accès aux fonctions auxquelles tu as besoin (LocalPlayer, surface), d'ailleurs si tu lis le code tu verras que me = LocalPlayer(), voilà pourquoi je n'ai pas remis ta ligne ply = LocalPlayer().

Je vais essayer de ne pas t'insulter, mais ça commence à bien faire, venir prétendre que le discourt était inutile parce que t'étais sur téléphone et que t'avais 4% de batteries, qu'en avons nous a bien foutre, c'est ton problème pas le nôtre.

Tu as répondu "Merci mais je ne connais pas le mot de passe", ce fut la preuve que tu n'as pas pris le temps de lire, que tu sois sur téléphone ou pas.

Enfin, jamais tu n'as décrit ton script et expliqué ce que tu voulais faire. Ne t'attends pas à ce qu'on lise dans tes pensées.
Tu as juste donné un code qui affichait au joueur si lui-même était armé.

Et oui, nous sommes sur un forum d'entraide, et c'est pas faute d'avoir essayé de t'aider, mais faut pas prendre les gens pour des cons.

Pour finir si tu veux vraiment de l'aide, alors décrit correctement tes besoins, les pistes que tu as déjà parcourues (soit disant tu aurais déjà cherchéBrokeBack), et peut être que quelqu'un de plus tolérant que moi acceptera de t'aider.
 
  • J'aime
Réactions: Membre supprimé 98332
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
While True à dit:
C'est toi qui a créé cette fonction Armed, je n'ai fait que t'indiquer où la mettre pour avoir accès aux fonctions auxquelles tu as besoin (LocalPlayer, surface), d'ailleurs si tu lis le code tu verras que me = LocalPlayer(), voilà pourquoi je n'ai pas remis ta ligne ply = LocalPlayer().

Je vais essayer de ne pas t'insulter, mais ça commence à bien faire, venir prétendre que le discourt était inutile parce que t'étais sur téléphone et que t'avais 4% de batteries, qu'en avons nous a bien foutre, c'est ton problème pas le nôtre.

Tu as répondu "Merci mais je ne connais pas le mot de passe", ce fut la preuve que tu n'as pas pris le temps de lire, que tu sois sur téléphone ou pas.

Enfin, jamais tu n'as décrit ton script et expliqué ce que tu voulais faire. Ne t'attends pas à ce qu'on lise dans tes pensées.
Tu as juste donné un code qui affichait au joueur si lui-même était armé.

Et oui, nous sommes sur un forum d'entraide, et c'est pas faute d'avoir essayé de t'aider, mais faut pas prendre les gens pour des cons.

Pour finir si tu veux vraiment de l'aide, alors décrit correctement tes besoins, les pistes que tu as déjà parcourues (soit disant tu aurais déjà cherchéBrokeBack), et peut être que quelqu'un de plus tolérant que moi acceptera de t'aider.
J'ai décris mes besoins mais ce n'est pas moi qui à fait la Fonction, l'hud que tu ma donner marche mais il affiche le truc pour sois même je voulais qu'il affiche aux autres joueurs pour que quand tu vise quelqu'un avec ton curseur ça te dit Armée ou Non armée, mais j'ai compris à présent mais je trouve pas sur le wiki ce qui correspond aux autres joueurs
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
MrProof à dit:
J'ai décris mes besoins
J'hallucine, t'as pas fini de faire l'idiot ou tu le fais pas exprès ? Jamais (avant ce message) tu n'as écrit que tu voulais que cela affiche si le joueur en face de toi est armé ou pas.
Débrouille toi avec ça : https://wiki.garrysmod.com/page/Player/GetEyeTrace
 
Dernière édition:
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
While True à dit:
J'hallucine, t'as pas fini de faire l'idiot ou tu le fais pas exprès ? Jamais (avant ce message) tu n'as écrit que tu voulais que cela affiche si le joueur en face de toi est armé ou pas.
Débrouille toi avec ça : https://wiki.garrysmod.com/page/Player/GetEyeTrace
Et tu va me traiter mais chaque tentative avec ce code fini avec :
[ERROR] gamemodes/basewars/gamemode/modules/hud.lua:314: attempt to call global 'GetEyeTrace' (a nil value)
1. fn - gamemodes/basewars/gamemode/modules/hud.lua:314
2. unknown - addons/ulib/lua/ulib/shared/hook.lua:109
même résultat si je crée une variable
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
up ?
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
@While True si tu veux bien m'aider une dernière fois sa serais pas de refus :x
 
Offshorp

Offshorp

Amazonia Studio
Messages
704
Score réaction
256
Points
210
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
RimosPixel à dit:
5 jours entre les UP.
Vendredi = 1 jour, Samedi = 2 jour, Dimanche = 3 jour, Lundi = 4 jour, Mardi = 5 jour et j'ai poster mon message Mercredi à 1 heure du matin donc c'est bon ...
 
Joe Leroi

Joe Leroi

Chuck Norris
Messages
4 368
Score réaction
933
Points
605
MrProof à dit:
@While True si tu veux bien m'aider une dernière fois sa serais pas de refus :x
Il t’a donnée tout les indices. Mais absolument tous...
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
Joe Leroi à dit:
Il t’a donnée tout les indices. Mais absolument tous...
J'ai pas demander des indices mais de l'aide mais je suis en train de réglé par conversation avec lui
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
[Lua] Untitled - paste.sx
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
While True à dit:
[Lua] Untitled - paste.sx
Merci merci merci et merci ! Je sais pas quoi te dire de plus :)
 
Offshorp

Offshorp

Amazonia Studio
Messages
704
Score réaction
256
Points
210
MrProof à dit:
Merci merci merci et merci ! Je sais pas quoi te dire de plus :)
Donne lui de la thune ça suffira
 
  • Initiateur de la discussion
MrProof

MrProof

Geek suprême
Messages
428
Score réaction
60
Points
130
Discord d'entraide
Rejoignz-nous sur Discord