Server to Client % alle npcs entfernen
Hallo
Ich mache gerade meinen ersten Gamemod, und der soll so aussehen:
Jedesmal wen du einen zombie tötest spawnen 2 neue, esseiden es gibt schon mehr als 60.
Die Zahl der kills wird mitgezählt und auf dem Hud ausgegeben.
Wenn der spieler stirbt wird die Killszahl wieder auf 0 gesetzt und die zombies getötet.
Es funktoniert ansich alles auser die sache mit dem ausgeben der Killzahl auf dem hud. Wenn ich es in der console ausgebe funktioniert es einwandfrei.
Also die Frage wie bekomme ich den wert einer Variable von der init.lua zu der cl_init.lua ?
Und dann weiss ich auch nicht wie ich die ganzen Zombies wieder entfernen kann wenn der spieler gestorben ist. Also wie geht das ?
Hier noch der Quelltext:
cl_init.lua:
[LUA]function hidehud(name)
for k, v in pairs{"CHudHealth", "CHudAmmo", "CHudSecondaryAmmo"} do
if name == v then return false end
end
end
hook.Add("HUDShouldDraw", "hidehud", hidehud)
function GM:HUDPaint()
self.BaseClass:HUDPaint()
surface.CreateFont("coolvetica",64,400,false,false ,"douchebag")
surface.SetTextColor(255,255,255,255)
surface.SetTextPos(34,(ScrH()/2+ScrH()/4))
surface.SetFont("douchebag")
surface.DrawText(LocalPlayer():Health())
surface.CreateFont("coolvetica",64,400,false,false ,"killanzeige")
surface.SetTextColor(255,255,255,255)
surface.SetTextPos(34,300)
surface.SetFont("killanzeige")
surface.DrawText("Kills: " .. tostring(kills))
end
[/LUA ]
init.lua:
[LUA ]
AddCSLuaFile( "cl_init.lua" )
AddCSLuaFile( "shared.lua" )
include( 'shared.lua' )
kills = 0
zombies = 0
// Serverside only stuff goes here
-----------------------------------------------------------
function GM:PlayerLoadout( pl )
pl:StripWeapons()
pl:Give( "Weapon_SMG1" )
end
-----------------------------------------------------------
function GM:PlayerInitialSpawn( pl )
-- Um bug zu beheben
self.BaseClass:PlayerInitialSpawn( pl )
if pl:IsAdmin() then
pl:PrintMessage( HUD_PRINTTALK, "Hallo Admin!" )
end
end
-----------------------------------------------------------
function GM:PlayerSpawn( pl )
-- wegen Bug
self.BaseClass:PlayerSpawn( pl )
kills = 0
zombies = 0
local npc1 = ents.Create("npc_zombie")
npc1:SetPos(Vector( math.random( -700, -500 ),math.random( 520, 740 ),-76))
npc1:Spawn()
npc1:Activate()
zombies = zombies + 1
-----------pl:SetGravity( 1 ) -- zwischen 1 und 0
-----------pl:SetMaxHealth( 120, true )
pl:SetWalkSpeed( 100 )
pl:SetRunSpeed( 100 )
end
function GM:OnNPCKilled(victim,killer,weapon)
zombies = zombies - 1
kills = kills + 1
print("Kills: "..tostring(kills))
local weaponDrop = ents.Create("Weapon_SMG1")
weaponDrop:SetPos(victim:GetPos()+Vector(0,0,120))
weaponDrop:Spawn()
weaponDrop:Activate()
if zombies < 60
then
local npc1 = ents.Create("npc_zombie")
npc1:SetPos(Vector( math.random( -700, -500 ),math.random( 520, 740 ),-76))
npc1:Spawn()
npc1:Activate()
local npc2 = ents.Create("npc_zombie")
npc2:SetPos(Vector( math.random( -1560, -1340 ),math.random( 840, 1060 ),-76))
npc2:Spawn()
npc2:Activate()
zombies = zombies + 2
end
end[/LUA ]
Ich habe google und eure suchmaschiene im Forum bemüht, doch nichts gefunden.
Vielen dank im Vorraus.
AW: Server to Client % alle npcs entfernen
Da du anscheinend nicht mal weißt wie man ein Forum benutzt wird es mit dem Gamemode sicher auch nichts. Bitte editiere deinen ersten Post und schreib den Code der Lua Files zwischen die Lua-Tags.
Beispiel:
Code:
[LUA]Dein Lua Code[/LUA ]
AW: Server to Client % alle npcs entfernen
Zitat:
Zitat von
pirateKing
Also die Frage wie bekomme ich den wert einer Variable von der init.lua zu der cl_init.lua ?
http://wiki.garrysmod.com/?title=Networking_Variables
Zitat:
Zitat von
pirateKing
Und dann weiss ich auch nicht wie ich die ganzen Zombies wieder entfernen kann wenn der spieler gestorben ist. Also wie geht das ?
http://wiki.garrysmod.com/?title=Ents.FindByClass
AW: Server to Client % alle npcs entfernen
Viele vielen dank Joker!
Habs eingebaut und es funktioniert.
Super forum hier!