PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spiel-Wiederherstellungspunkte setzen



HyperRPG
11.12.2004, 12:35
Hallo,

ich habe ein Problem:
Niemand von euch wird wahrscheinlich alle 5000 Switches und Variablen benutzen, oder?
Also empfiehlt es sich die restlichen Sw. und Varis auch zu verwerten indem man eine Funktion einbaut, die dem Spieler die Möglichkeit gibt sogenannte Wiederherstellungspunkte im laufenden Spiel zu setzen. Das Verfahren ist relativ einfach:

Es werden einfach alle schon vorhanden Variablen gespiegelt, d. h. die Werte einfach in eine andere übertragen. Das wird bei Variablen, Switches usw. gemacht. Wichtig ist dabei natürlich noch die aktuelle Map ID mit einzubeziehen, und die X und Y Pos. des Helden. Jetzt könnte man sagen das wäre ziemlich viel Scriptarbeit für jede Variable und für jeden Switch einzeln die Spiegelung durchzuführen, aber das ist gar nicht nötig. Seht euch folgendes Beispiel an:

Wir benutzen alle Switches von 1 -2500 und alle Variablen von 1 - 2500. Variable 2496 nennen wir MapID, 2497 HeroX und 2498 HeroY. Dann werden ersteinmal die entsprechenden Werte in die Variablen gespeichert. Dann nennen wir Variable 2499 Temp1 und 2500 Temp2. Temp1 wird auf 1 gesetzt und Temp2 auf 2501. Dann geht es los:


<>Loop
<>Change Var: [Var[2500]] (Set)- Var[Var[2499]
<>Change Var: [Var[2499:Temp1]] (+)- 1
<>Change Var: [Var[2500:Temp1]] (+)- 1
<>If Var(2499:Temp1) 2500
<>Break
<>
<>End Case
<>
<>End Loop


Alle Variablen wurden jetzt gespiegelt. Jetzt gibt es ein Problem:
Die Switches lassen sich nicht so einfach spiegeln. Denn dort ist keine Set Funktion vorhanden die dies erlaubt.
Meine 2. Lösung wäre dann gewesen: Prüfe einfach ob Switch soundso AN oder AUS ist und stelle Switch soundso+2500 dann auf entsprechenden Wert. Problem ist diesmal: Bei einer Fork lässt sich keine bestimmte Switchnummer, die in einer Var angegeben wird überprüfen.
Und genau das macht die ganze Sache kaputt. Meint ihr dass es noch eine andere Lösung gibt???

D+one
11.12.2004, 16:57
Im Moment fällt mir nur eine Lösung ein, die aber sehr umständlich ist, und viel Scriptarbeit ist. Lass ALLES doch über Variablen laufen! Pass mal auf:

-bedingung->soundso an
>set variable irgendeine - 1

-bedingung->soundso aus
>set variable irgendeine - 2

Dann kann man weiterspielen, und die Switches ändern, aber die Variablen bleiben auf ihren Werten.
Wenn dann die Wiederherstellung ausgeführt werden soll:

-bedingung->irgendeine - 1
>set switch soundso an

-bedingung->irgendeine - 2
>set switch soundso aus

Das muss man dann mit jedem Switch im Spiel machen, ausser die, die man nicht mehr brauch.


Wie gesagt, das ist sehr umständlich, benötigt viel Zeit und viel script.
Ne andere Lösung fällt mir jetzt aber so spontan nicht ein.

D+one

HyperRPG
11.12.2004, 16:58
Wenn man das so löst kann ich aber logischerweise auch gleich alles über Switches machen. Außerdem ist das zuviel Script-Arbeit.

D+one
11.12.2004, 17:02
Ich weiss, aber du willst ja gerade keine Switches.

Du kannst die IDs der Switches nicht speichern. Ausserdem spielst du ja immer weiter und änderst Switches, sie sollen aber bei der Wiederherstellung genau so sein wie vorher. Und das kannst du nur über dem Umweg Variablen, dann jeden Switch abfragen...

D+one