Hi, ich bin gerade dabei ein Geld-System zu scripten dabei bin ich auf folgendes Problem gestossen.
Ich möchte das ein Sani-Feldlazarett nur dann erscheint wenn der Spieler die Aktion SaniHQ kaufen ausgewählt hat und der aktuelle Geldstand bei 2500 $ liegt. Das Script dazu ist bereits fertig.
Init-Zeile Spieler:
Code:
buy_sanihq = this addaction ["Sani-Lazarett (2500$)","buy\buy_sanihq.sqf"];
buy_sanihq.sqf
Code:
if (int getVariable "geld" >= 2500) then
{
int setVariable ["sanihq",true];
{_x removeAction buy_sanihq} forEach units group player;
int setVariable ["geld",(int getVariable "geld")-2500];
hint format ["SaniHQ wurde errichtet! Aktueller Kontostand = %1%2", int getVariable "geld"," $"];
} else {
X = ((int getVariable "geld") - 2500) * (-1);
hint format ["Nicht genug Geld! Ihnen fehlen %1 $", X];
};
Int ist der Name einer Logik Einheit die ich auf der Map platziert habe, sie dient lediglich dazu Variablen vom Typ Integer zu speichern.
Init-Zeile der Logikeinheit:
Code:
int setVariable["sanihq",false]; int setVariable["geld",1000];
Unter "
Anwesenheit (Bedingung)" des Feldlazaretts habe ich folgendes geschrieben:
Code:
int getVariable "sanihq";
Leider funktioniert es so nicht, das Lazarett wird nicht erstellt, obwohl ich über 2500 $ habe. Ich vermute es liegt daran das nur einmal ganz am Anfang geprüft wird ob die Bedinung wahr ist, dann garnicht mehr? Liege ich richtig? Falls ja, wie kann ich dieses Problem dann beheben?
Danke im Vorraus für jede Hilfe!
Gruß M.S.