Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere Bedingungen
Chao-Ren
17.11.2009, 13:16
Aloha,
Beim Schreiben eines kleinen Scripts hab' ich als absoluter Scripting-Noob mal wieder Probleme. Ich will nämlich meherere Bedingungen für eine Function, hab' aber keine Ahnung wie das geht.
kleines Beispiel:
scn DoppelIfScript
short controlvar
begin OnActivate
if controlvar == 0 (und hier sollte noch ne' zweite Bedingung hin z.B if GetItemCount TestItem == 1)
Player.AddItem Gold001 5
endif
end
Danke im Vorraus an alle Scripting-Götter.http://www.multimediaxis.de/images/smilies/old/sm_12.gif
kenet_korva
17.11.2009, 14:29
entweder du fügst die zweite Bedinnung mit "&&" ein also:
if BedinnungA == X && BedinnungB == X
Allerdings kann diese Variante zu Problemen, und sogar zu Abstürzen führen. Daher benütze ich immer die 2. Variante:
if BedinnungA == X
if BedinnungB == X
Blabla
endif
endif
Chao-Ren
17.11.2009, 16:00
Lol ist das einfach. Auf jeden Fall vieeelen Dank!http://www.multimediaxis.de/images/smilies/old/sm_12.gif
Abstürze? In wie fern? Ich benutz && häufig und hatt jetz noch keine besonderen Abstürze (jenfalls keine die ich direkt im zusammenhang damit gesehn hab^^). Wann genau kommts damit zu Abstürzen?
kenet_korva
20.11.2009, 18:52
Angeblich kann es zu "unvorhersehbaren Ergebnissen" führen, wenn eine der beiden Bedinnungen richtig ist, und die andere nicht. Genau weiß ich das nicht und einen hundertprozentig bestätigten Fall hatte ich auch noch nicht, aber das ist halt eine der Sachen, die ich überprüfe, wenn ein Script Probleme macht. ^^
Das Absturzproblem tritt auf, wenn ein nichtgültiger Check durchgeführt wird.
Beispiel:
if IsActor == 1 && GetDead == 0
;do something
endif
Im Vergleich zu
if IsActor == 1
If GetDead == 0
;do something
endif
endif
Wird das auf eine Tür aufgeführt, wird beides mal, der Check, ob es ein Actor ist, falsch. Der zweite Codeschnipsel tut dann nichts mehr. Aber beim ersten wird zusätzlich noch gecheckt, ob die Tür tot ist oder nicht. Und das sind dann "unerwartete" Checks, die zu Abstürzen führen können.
(Zudem ist es auch im Sinne der Perfomance, wenn man Checks verschachtelt, da wie geschrieben bei einer Reihe alles durchgecheckt wird.)
ah, ok.
Ist mir bis jetz noch nich passiert, also entweder hab ich meine selbst gemachten Skripte bis jetz noch nich exesiv genug getestet oder meine && verbinden nur erwartete Vergleiche...
(Wieso hat Beth nich zur Sicherheit nicht in diese Funktionen Abfragen eingebaut, die solche unerwarteten Vergleiche abfangen, also wenn eine Tür nich tot ist (was die meisten nicht sind^^) dann kommt halt raus, dass sie nich tot ist (ohne Absturz^^). Wär gar nich mal unmöglich gewesen...)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.