PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KS-Hilfe (ja, nur Hilfe)



Riendo
08.01.2004, 04:07
Also, ich habe bei meinem KS (rundenbasiert, mit Beachten der Agilitätswerte) schon die Basicgfx gemacht, sowie die ersten Statusangaben(LP-, MP-Leiste, Zahlen, Cursors, Zustände usw.) in Commonevents verfasst. Nun ist allerdings ein Problem aufgetreten. Ich weiß nicht, wie ich anfangen soll, bei dem Common Event, das berechnet, wer zuerst dran ist usw. (ist ja quasi ein Algorythmus).
Ich weiß, das man es mit Forks machen muss, aber denke, das wären doch relativ viele Abfragen. Auch weiß ich nicht genau, wie ich überhaupt anfangen sollte. Ich würde darum bitten, daß jemand mir die grobe Funktionsweise dieses Commonevents erklärt und mir ein paar Denkanstöße zukommen lässt. Wer sich hier im Thread meldet, wird über ICQ/MSN für genauere Erklärungen kontaktiert.

Danke im Vorraus,
Riendo

Rash
08.01.2004, 05:34
Such mal mit Google das 'Forgotten E-Book' falls dus noch nicht besitzt.

Da gibts so'n Sideview-KS Baukasten und allse super erklährthttp://www.multimediaxis.de/images/smilies/old/s_009.gif

Auch allse schön in einzele Rubriken unterteilt...

Wirf einfach mal n Blick drauf ;)


Gruß
Rash

S!r !ronh@nd
08.01.2004, 15:05
das hab ich hier (http://forum.rpg-ring.com/forum/showthread.php?s=&threadid=21561) schon einmal erklärt! vielleicht kannst du damit was anfangen ;)

Dr.Brain
08.01.2004, 15:22
Siehe oben!!!
Er hat mir geholfen(das Funktioniert!)
Und noch Thanx an S!r !ronh@nd http://www.multimediaxis.de/images/smilies/old/sm_12.gif

Riendo
08.01.2004, 22:33
Habe ich nicht ausführlich genug erklärt oder habt ihr nur nicht richtig gelesen...? Naja, wie gesagt, mir ist das Ebook durchaus bekannt, da Dr. Alzheim ja im Quartier (meine Herkunft) sein Unwesen treibt. Ich habe es gelesen und weiß somit auch, dass das SKS im Ebook die Werte nicht mit einbezieht, wie oben beschrieben, sondern nur per Zufall bestimmt wird, wer zuerst dran ist. Also bitte erst genau lesen, was ich will, denn ich dachte jetzt, einer will mir helfen...und dann das... :rolleyes:

@Sir Ironhead: Thx, ich guck's mir mal an^^

Gruß,
Riendo

Dr.Brain
08.01.2004, 22:44
Du willst ein Rundenbasiertes Ks machen?
Das geht so:
Eine Variable heißt "Schnellster"
Die andere "HöchstwertAGL."
Nun kommt ein Label(#1)
If held1 is in Party:
If switch held1 war schon is off:
set "HöchstwertAGL." Held1 Agility
set Variable Schnellster:1
else case:
If held2 is in party
If switch held2 war schon is off:
set HöchstwertAGL." Held2 Agility
set Variable Schnellster:2
else case:
If hero3 u.s.w.

If held2 agility is greater than Höchstwertagility
set Variable höchstwertAGL. held2 Agility
set Variable schnellster:2
das kommt bei allen(auch den gegnern)
Danach:
If Variable Schnellster=1
Call event Held1(was auch immer)
change switch: Held 1 war schon
If Variable Schnellster=2
Call event Held2(was auch immer)
U.S.W
Am schluss kommt GOTOLABEL1

So das Funkt!!!
Und zwar nicht zufällig!

Riendo
08.01.2004, 22:57
@Dr.Brain:
Du hast genau das gleiche gepostet wie Sir Ironhead im verlinkten Thread,du Kern. Kurz gesagt-->sinnlos. Aber egal, Hauptsache Postingcounter + 1, ne?

@Sir Ironhead:
Danke für die Erklärung, hast du ICQ oder MSN? Ich muss mich nochmal in Verbindung mit dir setzen, es gibt da ein kleines Problem.

Gruß,
Dark Zero

Dhan
09.01.2004, 00:24
Also, mach folgendes:
erstmal werden alle Agility-Werte in Variablen geschrieben (hero1ag, enem2ag usw)
Dann machst du einen Durchlauf, der den höchsten Wert ermittelt (fork hero2ag > Höchsterwert, if yes, Höchsterwert = hero2ag usw)
Dann gehst du nochmal durch alle und suchst den Ersten in der Liste mit dieser Agility. Der darf dann eine Kampfaktion durchführen, anschließend wird seine Agility (die Variable) auf 0 gesetzt und das Ganze oben wiederholt.
Wenn Höchsterwert nach einem Durchlauf 0 beträgt, kommt die nächste Runde.

Hoffe, du verstehst es so.

Fertig. (Vielleicht gibbet ne geschicktere Lösung, kA, hab bisher noch kein KS gemacht und wenn, dann wirds sowieso ATB weil ATB rult ^^)

Gekiganger
09.01.2004, 00:37
Achtung, den folgenden Beitrag habe ich ursprünglich für ein anderes Problem geschrieben, das Prinzip ist aber das selbe.
Man sollte allerdings gut mit den Variablenfunktionen umgehen können um es zu verstehen.
Die IDs des zweiten Arrays können für die Gegner stehen. Das ganze ist für 7 Elemente ausgelegt, du müsstest es also noch um eines erweitern für 8 Kämpfer (4 Helden + 4 Gegner).
Hinweis: Die originalen Werte für das Beispiel standen in den Variablen 1-7 und wurden in die Variablen 11-17 rüberkopiert.



Erstmal solltest du das ganze per Bubble sort sortieren, so dass zum Schluss die größte Variable am Anfang und die kleinste am Ende des Arrays steht.
Da ich nicht weiß wie du die Variablen anderweitig verwendest, lasse ich ihnen mal ihre Werte. Allerdings müssen die Werte in einen temporären Array rüberkopiert werden.

Also z.B.:

Variable 11: 3
Variable 12: 7
Variable 13: 85
Variable 14: 11
Variable 15: 1
Variable 16: 99
Variable 17: 2

Zusätzlich wird ein weiterer Array erstellt, der die IDs der Orginalvariablen in paralleler Reihenfolge zum Originalarray beinhaltet.

Variable 21: 1
Variable 22: 2
Variable 23: 3
Variable 24: 4
Variable 25: 5
Variable 26: 6
Variable 27: 7

Nun kommt der Bubblesort zum tragen. Zuerst wird das erste Element des temporären Arrays (11-17) mit dem zweiten Element mithilfe von Zeigervariablen verglichen. Ist es kleiner, so werden beide Elemente miteinander vertauscht, da das größte Element an den Anfang des Arrays wandern soll. Parallel dazu werden im ID Array (21-27) das erste und zweite Element vertauscht.
Nun wird im 11-17 Array das zweite und dritte Element miteinander verglichen, gegebenenfalls vertauscht und das selbe im 21-27 Array vorgenommen.
Und das wird solange gemacht, bis Element 6 und 7 miteinander verglichen wurden.
Bei jeder Vertauschung muss ein Switch angeschaltet werden. Am Ende dieser Vergleichsaktion wird abgefragt, ob der Switch an oder aus ist. Ist er an so bedeutet dies, dass irgendwo ein Vertausch vorgenommen wurde und es gut möglich ist, dass einige Elemente noch in der falschen Reihenfolge sind. Das ganze muss also wiederholt werden, es muss also der gesamte Code in einen Cycle.
Am Anfang dieses Cycles muss der Switch logischerweise wieder ausgeschaltet werden.
Ist der Switch jedoch aus bedeutet dies, dass kein Vertausch von statten ging. Dies bedeutet gleichzeitig, dass sich alle Elemente in der richtigen Reihenfolge befinden. Der Cycle kann also durchbrochen werden.

Der 21-27 Array hat nun folgende Werte:

Variable 21: 6
Variable 22: 3
Variable 23: 4
Variable 24: 2
Variable 25: 1
Variable 26: 7
Variable 27: 5

Zuerst wird also die Variable mit der ID 6 abgerufen, dann die mit der ID 3 usw...

Hier hab ich mal ein Skript dazu. (http://de.geocities.com/xcube2cast/gekibubble.zip)
(Rechtsklick -> Ziel speichern unter oder Link in Adressleiste kopieren)

Riendo
09.01.2004, 00:55
@Gekiganger:
Sry, aber das versteh ich nicht. Denn du sagtest ja, das du es von einem anderen Problem übertragen hast, dass ich (leider) nicht kenne, von soher habe ich null Ahnung, was z.B. ein Array oder Bubble ist. Ich mein, man kann das sicherlich auf den Maker beziehen wieder, nur leider mangelt es mir dazu atm an Kombinationsgabe und Spitzfindigkeit.^^ Trotzdem danke.

Gruß,
Riendo

Dhan
09.01.2004, 04:02
Huuu... Arrays mit dem Maker... eine super Idee eigentlich... (jetzt fehlen noch Klassen und etwas, was die Objektorientierung unnötig macht ^^... geht zwar net, wär aber trotzdem toll ^^)

Riendo, wenns dus net verstehst, saug dir sein Script und schaus dir an, die Möglichkeit ist technisch gesehen sauberer als meine (warum bin ich da net draufgekommen wos doch so nahe liegt? *michselbstohrfeig*)

Und wenn du wissen willst, was Arrays sind... sozusagen Zuordnungstabellen, wenn man es so will.
Du hast z.B. eine Liste Kinder, deren Namen du in einen Array eingetragen hast und denen du Lieblingssüßigkeiten zuteilst und anschließend das ganze abrufen kannst. Aber merks dir bloß net, beim Maker wirst dus nie in der Form brauchen weils einfach net gescheit geht^^
seufz
Ich muss endlich mal ordentlich programmieren lernen (vor allem praktizieren... *mirselbstarschtrittgeb*)