PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : if (MenuMode ) return



Uranor
15-04-05, 21:19
ReneMiner hat grad vor der falschen Nutzung von

if ( MenuMode )
return
endif

gewarnt. Mal ist es wichtig, mal ggf. egal, dann aber wieder falsch. Ich kann den Schlüssel zum Verstehen nicht entdecken. Lassen sich da so ein paar Anhaltspunkte bennen, damit man ggf. ein Schema erkennen kann?

Uranor
15-04-05, 21:19
ReneMiner hat grad vor der falschen Nutzung von

if ( MenuMode )
return
endif

gewarnt. Mal ist es wichtig, mal ggf. egal, dann aber wieder falsch. Ich kann den Schlüssel zum Verstehen nicht entdecken. Lassen sich da so ein paar Anhaltspunkte bennen, damit man ggf. ein Schema erkennen kann?

ReneMiner
15-04-05, 23:47
Das macht man nur wenn man sicher ist das das Script im Menu nicht gebraucht wird.
Wenn der Spieler das Menu aufhat kann er z.B. mit dem Mauszeiger Dinge anklicken/ aktivieren/ aufheben- im Gespräch neue Objekte erhalten/ abgenommen bekommen/ Variablen-Werte können sich ändern - das Spiel steht nicht wirklich still.
Scripte an Objekten im Inventar die evtl sogar am Köper getragen werden und darauf reagieren wäre es natürlich schlecht wenn das Script z.B. weil gerade im MenuMode eine Aktion des Spielers nicht mitkriegt.

Uranor
16-04-05, 03:58
Ah ja. Also returnt man im MenuMode nur, wenn dafür eine triftiger Grund vorliegt. Jau, das ist 'ne klare Orientierung.

jsc-850
16-04-05, 05:30
Falsch ... man returnt im MenuMode immer dann, wenn kein triftiger Grund vorliegt ein Script weiter laufen zu lassen.
Zugriffe auf das Inventar (Menu) benötigen viel Rechenzeit. Jedes Script welches da nicht voll durchlaufen wird ist ein Gewinn...

Uranor
16-04-05, 05:52
Hmmm... leuchtet total ein, jsc. Ich merk ja das Idle. Nur weiß mein Script nicht, was der Spieler ggf. im Menü tun will. Auf der anderen Seite hab ich aber auch im MenuMode nocht keinen Activator/Container ausgelöst.

Bisher hatte ich es so verstanjden, wenn ich jetzt ein Script returne, käme es im nächsten Frame wieder. Ist also nicht unbedingt so?

ReneMiner
16-04-05, 06:00
Globale/ StartUp-Scripts lassen sich schonmal kein mehrfaches return gefallen - wohin auch?

Es geht nur return in Scripts an Objekten deren alleinige Anwesenheit in jedem Frame einen Startscript-Befehl für das anhängliche Script auslöst.

Der_Buhmann1989
17-04-05, 01:00
Ich bau das in jedes Script ein!?!?!

Man braucht es doch (glaub ich), wenn man einen Fluch auf den Spieler legt, dass der Timer angehalten wird, wenn man im Inventar ist!

ReneMiner
17-04-05, 02:55
in jedes ist falsch und völlig unüberlegt.

Das ist eine Anweisung die genau wie viele andere einen bestimmten Zweck erfüllt. Man kann auch den Timer nur weiterzählen if ( Menumode == 0 ) ist und dennoch einen Teil eines Scriptes ausführen, kommt immer drauf an wozu es gut sein soll.

Auf jeden Fall wird bei

if ( menuMode == 1 )
return
endif

; alles was jetzt folgt im Menu nicht ausgeführt
; und spart rechenzeit

aber wenn z.b. darüber steht

if ( Cellchanged == 0 )
return
endif

; würde alles was hier steht nur ausgeführt wenn ; der spieler die Zelle betritt

... kann man auch machen. Ist noch flotter. Aber eben nur wenn's geht.

Oder bei Objekten die angelegt werden können - das geht auch im Menu http://forums.ubi.com/infopop/emoticons/icon_biggrin.gif - da wäre es wohl sinnvoll das Script so zu machen wenn's geht:

if ( OnPCEquip == 0 )
return
endif

Der_Buhmann1989
18-04-05, 09:27
Jetzt wo du's sagst! http://forums.ubi.com/infopop/emoticons/icon_biggrin.gif

"dahinpfeif"