Gamestudio Links
Zorro Links
Newest Posts
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (AndrewAMD, VoroneTZ), 1,258 guests, and 4 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Problem mit der Logik #213689
06/30/08 07:58
06/30/08 07:58
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
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? blush

Code:
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? confused


Gruß
Alex =)
Re: Problem mit der Logik [Re: Alexander] #213697
06/30/08 08:52
06/30/08 08:52
Joined: Jan 2005
Posts: 545
Schleswig-Holstein, Deutschlan...
Artus Offline
User
Artus  Offline
User

Joined: Jan 2005
Posts: 545
Schleswig-Holstein, Deutschlan...
Originally Posted By: Alexander
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? confused


Und warum sollte die If verlassen werden?
Die Bedingung ob eine if abläuft wird zu Beginn der If geprüft und nicht während sie läuft, also können sich die Bedingungen im If-Scriptblock ändern, aber werden erst beim nächsten Durchlauf neu geprüft. Das Script im if-Sciptblock wird bis zum Schluss abgearbeitet.

Setze es mal in eine while-schleife um das Schritp mehrmals zu wiederholen.

Re: Problem mit der Logik [Re: Alexander] #213698
06/30/08 08:53
06/30/08 08:53
Joined: Dec 2005
Posts: 490
Germany/Berlin-Velten
kasimir Offline
Senior Member
kasimir  Offline
Senior Member

Joined: Dec 2005
Posts: 490
Germany/Berlin-Velten
weil die If anweisung nur die Werte verarbeitet die zu Begin gesetzt sind, d.h. einmal gestartet führt sie alles aus was folgt!

z.b.:

a = 0;
while (a == 0)
{
a = 1;
b = 1;
c = 1;
}

diese Schleife wird auch einmal durchlaufen, erst bei der nächsten Wiederholung ist die Ausgangs-bedingung falsch!
d.h. b und c sind 1!

um eine Schleife/ If-anwesiung in deinem Sinne auszusetzten benötigt man den Befehl "goto" oder ähnliches...

Last edited by kasimir; 06/30/08 08:55.
Re: Problem mit der Logik [Re: kasimir] #213700
06/30/08 08:58
06/30/08 08:58
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
A
Alexander Offline OP
Member
Alexander  Offline OP
Member
A

Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
Stimmt, ihr habt recht. Ich habe einfach nur auf dem Schlauch gestanden, bzw. hatte das falsch im Kopf. wink

Danke für eure Hilfe. smile


Gruß
Alex =)

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1