PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie würdet ihr folgndes Problem lösen?



Dr.Brain
03.01.2004, 15:35
Servus!
Ich bin grad dabei ein Rundenbasiertes Ks
zu basteln.Jetzt muss ich mit Variablen ausrechnen
wer am Rundenanfang den 1.Schlag ausführt wer den 2. usw.
Dazu kommmt noch das man berüksichtigen muss das nicht
immer 8Personen (4Helden und 4Monster) auf demScreen sind.
Wenn diese Rechnung die Bestimmt wer anfängt fertig ist
soll ein Common Event welches bei jeder Person anderst ist
aufgerufen werden(wen der Member nicht da ist wird es
übersprungen)
Schreibt mir wie ihr das machen würdet! :)

S!r !ronh@nd
03.01.2004, 16:40
Also, wenn immer der mit der höchsten Agility anfangen soll, benennst du eine Variable "Schnellster" . Sie gibt an, wer am schnellsten ist. Ist sie 1 istr es beispielsweise der erste Held, ist sie 8 ist es z.B. das vierte Monster. Dann benennst du eine Variable mit dem Namen "Höchstwert Agl". außerdem brauchen wir für jeden Kampfbeteiligten einen Switch wie z.b. "Kämpfer 1 war schon dran"...
Als allererstes machen wir ein Label 1. Danach, wenn Kämpfer 1 im Kampf ist und der Switch Kämpfer 1 war schon dran OFF (mit forks abfragen)ist setzt du Höchstwert gleich mit Der Agility von Kämpfer 1 und setzt "Schnellster" auf Dann fragst du mit ner Forks MIT ELSE ab, ob die Geschwindigkeit des nächsten im Kampf (musst vorher bei jedem mit ner Fork prüfen ob im Kampf, und ob "war schon dran" OFF) höher ist, als der Wert Höchstwert. Wenn das so ist, beispielsweise Kämpfer 2 war nicht im Kampf und Kämpfer 3 ist jetzt schneller, dann setzt du "Höchstwert" gleich Geschwindigkeit von Kämpfer 3 und "Schnellster" auf 3...nach diesem Schema geh dann immer vor, indem du immer den "Höchstwert" mit den nächsten vergleichst. Am musst du halt je nachdem welchen Wert die Variable "Schnellster" hat ein Common Event für denjenigen aufrufen lassen mit den Angriffen (z.b. wenn schnellster = 5, dann Common Event Monster 1) und danach setzt du den Switch "war schon dran" für diese Person auf ON. Dann machst du erstmal ein Common Event mit dem Namen "Alle dran?" in dem du prüfst ob alle Switches mit "war schon dran" auf ON sind, wenn ja, setze sie alle wieder OFF. Dieses Common Event callst du, danach setzt du die Variablen "schnellster" und "höchstwert" = 0 und gehst dann zurück zu Label 1 (Goto Label 1)...

ich hoffe das war nicht zu wirr...aber so müsste es funzen, wenn dus richtig umsetzst

Edit: es wird noch leichter und du sparst Forks, wenn du für alle die, die nicht im Kampf sind, von Anfang an die "war schon dran"-switches auf ON setzst

Dr.Brain
03.01.2004, 17:30
Cool Thanx!
Ich probiers!

S!r !ronh@nd
03.01.2004, 17:33
sollte es bugs geben, poste einfach mal das Script dieses Events, wie du es umgesetzt hast, dann werd ich den Fehler suchen