Hi,
Arbeite gerade an einem spiel und will da eine varriable if abfrage einbauen. habe versucht den anfang der if abfrage mit execute auszüfuhren ging aber nicht.
if ????????? then
bleibt gleich
else
bleibt gleich
endif
Hi,
Arbeite gerade an einem spiel und will da eine varriable if abfrage einbauen. habe versucht den anfang der if abfrage mit execute auszüfuhren ging aber nicht.
if ????????? then
bleibt gleich
else
bleibt gleich
endif
Das Script wäre hilfreich.
>> Sonst weiß ich nicht was du meinst
habs beim script aber noch nicht und das mit execute habe ich weider weggetan so funktioniert es ja einwandfrei nur habe ich die anderne karten noch nicht eingebaut.
Nach aktuellem Informationsstand rate ich einfach mal, dass dein Problem folgendes ist:
Du möchtest die Bedingung in der If-Abfrage variabel halten; eine Variable zum Beispiel soll den benötigten Operator (>, <, <>, >=, <=, =, ==) liefern.
Nach meinem Wissensstand ist das in dieser Form unmöglich. Du kannst im Prinzip nur eine verschachtelte If-Abfrage benutzen oder eben eine Kombination aus Switch und If.
Hoffe, dass ich dein Problem richtig verstanden habe.
Gruß stay
PS: Versuche bitte mal, deine Frage in verständlichem Deutsch zu formulieren und achte auf die Rechtschreibung - sonst ist das wildes Rätselraten.
ja genau das meine ich und die variablen die da vorkommen solten auch variable sein.
dann muss ich halt jede if abfrage extra schreiben, da es so nicht geht.
Beispiel?
$a = 'If $b = 5 and $c = "4" then'
$b = 'If $y = "65" or $n = "5" then'
execute($b)
$t = 4
$e= 5
else
$t = 3
$e = ""
endif
... Das Beispiel.....
Argh!
$y ist nicht definiert -> Error.
$a und $b bekommen Werte zugewiesen, die so oder so nicht genutzt werden.
Bei der Deklaration von $a und $b würde dir der Interpreter auch nochmal ein paar Fehler schmeißen. Wenn schon so:
$a = "If $b = 5 and $c = '4' then"
$b = "If $y = '65' or $n = '5' then"
Und wieso setzt du Zahlen überhaupt in Anführungsstriche?:S
lg chess
Edit:
Okay, du hast den Post editiert.
das war nur ein beispiel um zu verdeutlichen was ich meine.
So macht man das...
$b = 5 ;6
$c = "4"
$a = ($b = 5 And $c = "4")
[/autoit] [autoit][/autoit] [autoit]If $a Then
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
$t = 4
$e = 5
Else
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
$t = 3
$e = ""
EndIf
ja aber das geht mti solchen zeilen nicht mehr oder
[autoit]If ($jump_2[$_player_move] < 15 And $jump[$_player_move] = True Or $jump_2[$_player_move] = 0) And ((_beetween($figur_y[$_player_move],355+10,380) (Or _beetween($figur_x[$_player_move],355,390) And $figur_y[$_player_move] >= 330)) Or (_beetween($figur_y[$_player_move],330 -10,346) Or _beetween($figur_x[$_player_move],-10,25) And $figur_y[$_player_move] <= 355) Or( $figur_y[$_player_move] <= 295 And _beetween($figur_x[$_player_move],-6,21) = False)) Then
[/autoit]Edit:
achso jetzt weiß ich was du meinst danke probiere es glecih mal
danke das funktioniert
Eigentlich sind diese "logischen" Ausdrücke so zu verwenden, dass garkeine "IF/THEN"-Kaskaden entstehen....
If $b=5 and $c="4" Then
$t = 4
Else
$t = 3
EndIf
;entspricht
[/autoit] [autoit][/autoit] [autoit]$t= 3 + 1 * ($b=5 and $c="4")
[/autoit]das war doch nur ein besipiel ist für mein spiel gedacht und da sind die kollisionabfragen pro level ja immer einzigartig und sonst müsste ich immer die ganze if funkiton neu schreiben udn die ist 10 zeilen lang bei 20 karten wären dass 200 zeilen so sind es nur 60