PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Set Teile



Soldier
17.11.2007, 12:37
Hallo liebe Community !

Also ich hab da mal ne Frage...

Ich habe einen ganz einfachen Code gemacht in dem geprüft wird
ob der Held eine bestimmte Rüstung an hat.
Hat er sie an wird der Status um ein paar Punkte erhöht
und zieht man sie aus setzt sich der Status auf die
Standartwerte zurück.

Der Code sieht wie folgt aus:
http://img-up.net/thumbs/sethJqms.jpg (http://img-up.net/?up=sethJqms.JPG)

Da dies aber ein Paralell Process ist wird der Status dauerhaft erhöht und wird die Rüstung ausgezogen setzt sich der Statuswert auch nicht zurück.
Und jetzt wollt ich mal Fragen ob jemand vielleicht eine Ahnung hat wie ich es
richtig machen könnte

Ich bedanke mich jetzt schonmal für eure Hilfe.
Cya, Soldier

~Jack~
17.11.2007, 12:54
Wie wärs wenn du einfach jeder Rüstung ne ID gibst und dann entsprechend ne Variable auf diesen Wert setzt wenn die Rüstung angelegt wurde und dann vor dem Werteerhöhen abfragst ob die Variable diesen Wert hat. Wenn, dann wird der Wert nicht erhöht. Also sozusagen so hier:

-Abfrage ob Held Rüstung anhat
-Abfrage ob Variable RÜSTUNGSID der ID dieser Rüstung entspricht
->Wenn ja, dann geschiet nichts
->Wenn nein wird der Wert erhöht und die Variable auf den entsprechenden Wert gesetzt

Das mit dem Zurücksetzen der Werte würd ich so machen das der alte Rüstungswert in ner andern Variable gespeichert wird und dann ne Abfrage kommt ob dieser und der aktuelle Rüstungswert gleich sind, wenn nicht werden die Modifikationen der alten Rüstung rückgängig gemacht und die Variable mit der neuen ID geupdatet.

Pantoffelninja
17.11.2007, 15:25
Es geht auch so:

Wenn das Set komplett ist, abfragen, ob ein Switch OFF ist. Wenn dies der Fall ist, wird der Wert erhöht und genau der abgefragte Switch eingeschaltet. Dann stellst du bei jeder Fork für die Ausrüstungsteile die ELSE-Condition an und setzt in jeden ELSE-Sparte einen weiteren Fork, ob der oben abgefragte Switch ON ist. Wenn dies der Fall ist, setzt du die Werte wieder zurück und stellst den Switch aus.
Damit das Spiel nicht laggt, empfiehlt es sich, einen Wait von 0.0 ganz am Ende des Common Events zu setzen.
(Bei Parallel Events sollte man generell einen Wait von 0.0 am Ende einsetzen, sonst laggt es)

Master Tom
17.11.2007, 15:28
Du könntest das so machen:

http://s4.directupload.net/images/071117/c5opvdjc.png

So wird sichergestellt, dass, wenn das Set nicht mehr getragen wird, der Bonus wieder abgezogen wird. Allerdings wird nichts abgezogen,wenn der Held es vorher nicht getragen hat, darum noch mal die Switchabfrage.

Greyce
17.11.2007, 16:03
Du musst das ganze übirgens nicht als pp machen.
Es reicht völlig aus, jedes mal abzufragen, wenn der Spieler einen
der Gegenstände findet (das weißt du ja) ob er schon alle hat.
Also reicht hier ein Call Event.

~Waradience~

Master Tom
17.11.2007, 16:05
Du musst das ganze übirgens nicht als pp machen.
Es reicht völlig aus, jedes mal abzufragen, wenn der Spieler einen
der Gegenstände findet (das weißt du ja) ob er schon alle hat.
Also reicht hier ein Call Event.

~Waradience~

Eigentlich nicht, da es um das Ausrüsten der Gegenstände geht und nicht nur ums Besitzen.

Caine Luveno
17.11.2007, 16:13
Du könntest das so machen:

http://s4.directupload.net/images/071117/c5opvdjc.png

So wird sichergestellt, dass, wenn das Set nicht mehr getragen wird, der Bonus wieder abgezogen wird. Allerdings wird nichts abgezogen,wenn der Held es vorher nicht getragen hat, darum noch mal die Switchabfrage.

Das geht nicht denn da es ein PP Event ist würde wenn einer der Gegenstände getragen wird bei jedem Durchlauf die Variable steigen und somit einen unendlichen Wert erreichen können.

Master Tom
17.11.2007, 16:17
Das geht nicht denn da es ein PP Event ist würde wenn einer der Gegenstände getragen wird bei jedem Durchlauf die Variable steigen und somit einen unendlichen Wert erreichen können.

Oh, stimmt, danke ^^
Dann muss man noch bei den einzelnen Teilen Switches einfügen.

Also:
Falls XYZ ausgerüstet ist:
- Falls Switch A aus:
-- Variable rauf
-- Switch A an
Sonst:
- Switch A aus
- Variable runter

Soldier
17.11.2007, 17:48
Erstmal vielen Dank für die ganzen Antworten!
Ich werde eure Vorschläge mal testen und wenn es nich
klappt komm ich wieder ^^

Cya, Soldier

Soldier
18.11.2007, 17:52
Sry wegen Doppelpost aber sonst siehts ja keiner ^^'

Also ich hab den Code von Master Tom versucht, umgebaut und sontwas damit gemacht aber das klappt irgendwie nich...

Entweder sinkt die Hp sofort dauerhaft oder wird gar nich erst erhöht.
Ich hab das Gefühl ich mach was falsch ^^

Wäre nett wenn ihr nochmal versuchen würdet mir zu Helfen :D

Cya, Soldier

Caine Luveno
18.11.2007, 18:11
http://img87.imageshack.us/img87/5171/setaf8.th.jpg (http://img87.imageshack.us/my.php?image=setaf8.jpg)

Versuchs mal damit.

Zunächst einmal wird abgefragt ob alle Set Teile angelegt sind.



Fork Condition: Blah, Item Equipped: Holzschwert
Fork Condition: Blah, Item Equipped: Holzschild
Fork Condition: Blah, Item Equipped: Holzhelm
//beliebig eitere
ELSE

END:
ELSE

END:
ELSE

END:


Wenn ja, kommt noch eine Abfrage nach einem Switch durch den überprüft wird ob der Bonus schon gegeben wurde. In die Fork Condition kommen dann die Boni, außerdem wird vorher abgefragter Switch auf ON gestellt. So wird der Bonus nicht wieder gegeben.



Fork Condition: Blah, Item Equipped: Holzschwert
Fork Condition: Blah, Item Equipped: Holzschild
Fork Condition: Blah, Item Equipped: Holzhelm
Fork Condition: Switch, Set Ausgerüstet is OFF
//hier kommen die boni rein
Change Switch: Set ausgerüstet ON;
END;
ELSE

END:
ELSE

END:
ELSE

END:


In die ELSE Cases kommt nun die Abfrage zum entziehen der Boni. Vorher wird aber abgefragt ob der Switch eingeschaltet ist, also der Bonus gegeben wurde.



Fork Condition: Switch, Set Ausgerüstet is ON
//hier werden die boni abgezogen
Change Switch: Set ausgerüstet OFF;
END;


Fertig sieht es dann so aus:



Fork Condition: Blah, Item Equipped: Holzschwert
Fork Condition: Blah, Item Equipped: Holzschild
Fork Condition: Blah, Item Equipped: Holzhelm
Fork Condition: Switch, Set Ausgerüstet is OFF
//hier kommen die boni rein
Change Switch: Set ausgerüstet ON;
END;
ELSE
Fork Condition: Switch, Set Ausgerüstet is ON
//hier werden die boni abgezogen
Change Switch: Set ausgerüstet OFF;
END;
END:
ELSE
Fork Condition: Switch, Set Ausgerüstet is ON
//hier werden die boni abgezogen
Change Switch: Set ausgerüstet OFF;
END;
END:
ELSE
Fork Condition: Switch, Set Ausgerüstet is ON
//hier werden die boni abgezogen
Change Switch: Set ausgerüstet OFF;
END;
END:


oder eben wie auf dem Screenshot ;) Hoffe das hilft. Habs so getestet und es geht einwandfrei.

lokipoki
18.11.2007, 18:38
Also hier ist meine Lösung:

Für jede Rüstung(Kopf, Brust, Hand etc.) ein Variabel. Nun eine Pointervariabel und Gesamttrüstungsvariabel. Der Pointer fragt nun ab was angelegt ist und erhöht demnach die Gesamtrüstung. Jetzt wird abgefragt welche diese hat und je nachdem die "skills" erhöht.

Ob diese Methode nun komfortabler ist weiss ich nicht, aber wenn man Rüstungen mit Variabeln deklariert, könnte man dieses Verfahren in Betracht ziehen...

Master Tom
18.11.2007, 20:28
Hm, tut mir Leid, wenn mans nicht testet, dann passiert sowas xD
Getestet und es funktioniert, falls dus mit Variablen machen willst:

http://s4.directupload.net/images/071118/5midsy5c.jpg

Soldier
21.11.2007, 13:42
Okay es geht endlich.
Vielen dank für eure Hilfe und vor allem für eure gedult ^^

Cya, Soldier