Hallo Welt!
Ich hoffe jemand hat ein wenig Zeit und Lust mir bei meinem kleinem Problem zu helfen.
Wie der Titel bereits sagt, möchte ich das der Spieler für jeden erlegten Zombie etwas Geld bekommt, die Menge des Geldes hängt davon ab welcher Zombie getötet wird. Für eine lächerliche Headcrab soll man natürlich weniger Geld bekommen als für einen Antilon Guard. Ich habe außerdem noch ein Fenster indem die aktuelle Geldmenge ausgegeben werden soll.
Ich denke ich benötige die Funktion GM:OnNPCKilled Da diese ja immer dann aufgerufen wird, wenn ein NPC sich verabschiedet. Ich dachte mir ich mach es so, brauche aber hilfe bei den stellen die ich mit rot markiert habe.
<init.lua>
Code:
local function GM:OnNPCKilled(victim,killer,weapon)
if victim == Headcrab and Player=killer then
AddMoney(5) --Addiert 5 zur Variable Money
elseif victim == Antilon Guard and Player=killer then
AddMoney(200)
end
end
--Ausgelöst durch drücken von F4 (Zum Öffnen des Fensters)
function GM:ShowSpare2(ply)
umsg.Start("Openup", PopUp01) umsg.End()
end
Was füge ich für Headcreab und Antilon Guard ein damit der Code tatsächlich funktioniert?
Wie realisiere ich es das die Aktion nur ausgelöst wird wenn ich selbst den Feind ausgeschaltet habe,
ich will ja nicht das ich Geld für Zombies bekomme die durch andere getötet wurden. Geht das so mit dem Code wie er da steht?
<shared.lua>
--Hier befinden sich meine beiden Funktionen AddMoney() und GetMoney()
Code:
Money = 0
function AddMoney(x)
Money = Money + x
print(x .." $ Hinzugefügt")
end
function GetMoney()
print(Money)
return Money
end
concommand.Add("getmoney", GetMoney)
Ich weiss nicht ob das mit dem Geld so hinhaut, ich denke eher nicht, da die Variable Money wahrscheinlich immer wieder den Wert 0 bekommt. Kann ich mein Vorhaben eigentlich so einfach lösen, oder bin ich gezwungen die Werte in Datenbanken zu speichern?
<cl_init.lua>
Das ist der Code für mein kleines Fenster das den aktuellen Geldstand anzeigt.
Code:
function PopUp01()
local ply = LocalPlayer()
local Fenster = vgui.Create("DFrame")
local Label01 = vgui.Create("DLabel",Fenster)
Fenster:SetPos(50,50)
Fenster:SetSize(100,300)
Fenster:SetTitle("Money")
Fenster:SetVisible(true)
Fenster:ShowCloseButton(true)
Fenster:SetDraggable(true)
Fenster:MakePopup()
Label01:SetPos(5,20)
Label01:SetSize(260,20)
Label01:SetColor(Color(255,255,255,255))
Label01:SetFont("default")
Label01:SetText( "Geld: " ..GetMoney() )
end
usermessage.Hook("Openup", PopUp01)
Ich hoffe wirklich sehr das mir jemand helfen kann. Ich wäre euch sehr dankbar ! 
-Eddman