PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anwesenheitbedingung funktioniert nicht


MagicStyle
26.08.2013, 11:37
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:
buy_sanihq = this addaction ["Sani-Lazarett (2500$)","buy\buy_sanihq.sqf"];

buy_sanihq.sqf

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: int setVariable["sanihq",false]; int setVariable["geld",1000];

Unter "Anwesenheit (Bedingung)" des Feldlazaretts habe ich folgendes geschrieben: 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.

MagicStyle
27.08.2013, 08:03
Hat jemand vielleicht nen Tipp ? Ich komm nicht drauf, ist es auch möglich die Bedinung in einem externem Script zu checken ? Falls ja, wie?

Danke im Vorraus!

Vienna
28.08.2013, 12:31
Anwesenheit (Bedingung) wird vermutlich nur beim Spielstart abgefragt.

Stell das Sanizelt wo im Abseits auf und dann nach dem Kauf mit setPos auf den gewünschten Platz oder erstelle es erst nach dem Kauf mit createVehicle. Die Variable "sanihq" ist dann überflüssig.

MagicStyle
28.08.2013, 18:48
Danke, wie gesagt denke auch ich das nur zu beginn abgefragt wird.