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>
Was füge ich für Headcreab und Antilon Guard ein damit der Code tatsächlich funktioniert?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
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()
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?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)
<cl_init.lua>
Das ist der Code für mein kleines Fenster das den aktuellen Geldstand anzeigt.
Ich hoffe wirklich sehr das mir jemand helfen kann. Ich wäre euch sehr dankbar !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)
-Eddman



Zitieren
