Guten Morgen Leute, ich habe ein kleines Problem. Ich habe einen Script für eine Pistole geschrieben, er funktioniert auch, dürfte nach meiner Logik aber gar nicht gehen. Vielleicht stehe ich einfach nur auf dem Schlauch, kann mir das bitte mal jemand erklären?
var MunitionPistole = 15;
var Pistole_am_schiessen = 0;
action Pistole
{
var Zielkoordinaten;
if (MunitionPistole > 0 && Pistole_am_schiessen == 0)
{
vec_set(Zielkoordinaten, vector(1000, 0, 0));
vec_rotate(Zielkoordinaten, vector(player.pan, 0, 0));
vec_add(Zielkoordinaten.x, my.x);
c_trace (my.x, Zielkoordinaten.x, ignore_me | use_box | ignore_passable | activate_shoot);
MunitionPistole -= 1;
Pistole_am_schiessen = 1;
sleep (1);
Pistole_am_schiessen = 0;
}
}
Nach meiner Logik wird die IF Anweisung ausgeführt, wenn die Munition > 0 ist und man im Moment nicht schießt. Dann wird alles für c_trace vorbereitet (ausrichten) und im Anschluss daran, c_trace durchgeführt. Wenn c_trace durchgeführt ist, soll die Munition um 1 verringert werden und der Status ob die Pistole schießt auf 1 gesetzt werden. Nach meiner Logik müsste Achnex jetzt die IF Anweisung verlassen, tuts aber nicht, sondern führt sleep und die Variable auf 0 setzen auch noch aus. Warum?