Archiv verlassen und diese Seite im Standarddesign anzeigen : Conditional Turn Based - Kampfsystem
BlueScope
18.07.2004, 05:30
Morgen Leute, ich meld mich nach ner Weile kreativer Pause mal wieder bei euch (die Pause is schon länger vorbei aber bisher hab ich Probleme selber gelöst bekommen ^^' )
Also ich hab vor, ein CTB-Kampfsystem ähnlich dem in FFX zu machen, also keines, das vor dem Zug die Aktionen festlegen lässt und dann abhängig von den Geschwindigkeitswerten die Reihenfolge festlegt, aber jeder im Zug nur einmal drankommt, sondern z.B. wenn der erste Held eine Schnelligkeit von 100 hat und alle anderen Charaktere nur eine Schnelligkeit von jeweils zehn, das der erste Held dann zehnmal dran ist, bevor einer der Anderen agieren kann ! Klingt komisch, ist aber so ^^'
Wie man das mit den Angriffscommands macht und allgemeines KS-Design weiss ich und hab ich auch schon, das meiste jedenfalls ^^', aber ich hab einfach keine Ahnung, wie ich das mit der Reihenfolge hinbekommen soll ... please help ! ;)
sorry, aber ich versteh dich nicht so recht.^^
ich würde einfach mal sagen, du stellst einen Charaktere auf Tempo 100 und die anderen auf 10, dann müsste der mit 100 automatisch 10 mal vorher dran kommen.
Oder was meinst du jetz?
Dr.Brain
18.07.2004, 15:52
Jo ne!
*ich bins euer peter**g*
die Idee is gut, aber auch sinnvoll?
Denn letztendlich ist nur das Agilityevent anders.
Und(ich kenn mich mit dem Syst nich aus) was passiert
wenn einer 47 hat und der andere nur 32???
BlueScope
19.07.2004, 06:40
@jason: joa, aber wie mach ich das ? ich verwende ja nicht das standart-ks vom 2003er sondern ein Eigenes, deshalb stellt sich mir die frage ... ich könnte es da auch mit agility-wert-abfragen machen, aber dann würde ja immer der held drankommen, der den höchsten wert hat, also z.B. einer hat 100 und der andere 99, abfrage welcher wert am höchsten ist => der mit 100, danach wieder abfrage => wieder der mit 100 ^^'
@Brain: Ich finde es schon sinnvoll ^^'
Wenn einer 47 hat und einer 32, dann kommt der 47er viermal dran und der 32er nur dreimal, wenn ichs mir genauer vorstellen könnte, könnte ichs selber ^^'
vom prinzip her is das eigentlich dem atb gar nicht so unähnlich.
du legst dir eine feste grenze fest, die die kämpfer überschreiten müssen. das machst du, in dem du zu einer variablen die agilität immer wieder addierst, nur diesmal eben ohne wartezeit zwischendrin. wenn einer über dem limit ist, ziehst du genau dieses von seiner variablen ab.
dann brauchst du noch variablen für die verschiedenen plätze der ctb leiste. wie viele das sind, kannst du ja selbst entscheiden.
also wenn der 1. kämpfer z.B. über dem limit ist, gibst du der variablen für den ersetn platz den wert 1, beim 2. kämpfer 2, beim 3. 3 usw.
wenn du das limit von seinem ctb wert wieder abgezogen hast (er muss ja "neu anfangen") gehst du wieder an den anfang des events und erhöhst die ctb werte der kämpfer wieder um ihre agilitätswerte, bis der nächste über dem limit ist.
dann machst du das selbe wie oben beschrieben, nur musst du die ID eben in die variable für den 2. platz speichern.
das ganze dann solange wiederholen, bis alle plätze voll sind.
das is so der grobe aufbau, vielleicht kannste ja was damit anfangen ^^
BlueScope
20.07.2004, 02:04
Was damit anfangen kann ich schon, so wie ich das verstehe gibts eine Variable, von der die ganze Zeit die Agility-Werte addiert werden, bis sie über einer Grenze sind, dann fangen sie wieder von vorne an oder so ähnlich ^^' Und wie macht man dann die Variablen der anderen Charaktere abhängig von der einen, von der du gesprochen hast ?
PS: Code-Beispiel wäre echt hilfreich ^^'
ok, war wohl etwas verwirrend geschrieben ^^°
du brauchst für jeden kämpfer eine agilitätsvariable und eine ctb-wertvariable.
zur ctb variable addierst du dann eben die agilität.
Var[CTB Wert Kämpfer 1] + [Agi Kämpfer 1]
Var[CTB Wert Kämpfer 2] + [Agi Kämpfer 2]
Var[CTB Wert Kämpfer 3] + [Agi Kämpfer 3]
usw.
dann checkst du mit forks, ob eine der variablen über dem limit ist. das limit kannste dir selbst festlegen (ich nehm als beispiel mal 1000)
hier musste noch ne variable einführen, de den ctb wert der kämpfer nochmal speichert, das hatte ich beim ersten post vergessen :/ ich nenn die einfach mal CTB-Höchstwert. die musst du zusätzlich hier nochmal auf 0 setzen, siehst gleich, wozu die gut ist.
Var[CTB-Höchstwert] Set 0
Var[Kämpfer ID] Set 0
Fork: [CTB Wert Kämpfer 1] above 1000
>Fork: [CTB Wert Kämpfer 1] Bigger [CTB Höchstwert]
>>Var[CTB-Höchstwert] Set [CTB Wert Kämpfer 1]
>>Var[Kämpfer ID] Set 1 (für den ersten kämpfer)
>End Case
End Case
Fork: [CTB Wert Kämpfer 2] above 1000
>Fork: [CTB Wert Kämpfer 2] Bigger [CTB Höchstwert]
>>Var[CTB-Höchstwert] Set [CTB Wert Kämpfer 2]
>>Var[Kämpfer ID] Set 2 (für den zweiten kämpfer)
>End Case
End Case
usw. bis zum letzten kämpfer
darunter dann sowas:
Fork:[Kämpfer ID] Same 0
Goto Label 1 (das für ganz nach oben, wo du die ctb werte erhöhst. wenn die variable gleich 0 ist, heißt das, dass kein kämpfer übers limit gekommen ist)
End Case
hier lässt du dann am besten noch ne variable hochzählen, die überprüft, für welchen platz die ID ist. ich nenn die einfach mal "stelle" ^^
Var[Stelle] +1
Fork:[Stelle] Same 1
Var[Platz 1] Set [Kämpfer ID]
End Case
Fork:[Stelle] Same 2
Var[Platz 2] Set [Kämpfer ID]
End Case
usw bis zum letzten platz
als nächstes ziehst du vom ctb wert des kämpfers, der über das limit gekommen ist, genau dieses ab. (ich denke, das kriegste auch ohne codebeispiel hin XD)
dann noch ganz unten:
Fork:[Stelle] Same 8 (<- beispiel, je nachdem, wie viele plätze du anzeigen willst, musst du hier ne andere zahl nehmen. hier wären das eben 8 stellen, die du in der ctb leiste anzeigen willst.)
Goto Label 2
End Case
Goto Label 1 (<- um ne schleife zu erzeugen)
Label 2 (der "ausgang" aus dem event ^^°)
das is wieder nur ein grober aufbau, das ganze event hier hinzuschreiben würde doch deutlich länger dauern o_o°
bei weiteren fragen kann ich dir auch mal ne art script zukommen lassen, die das alles demonstriert.
Ich würds so machen:
am Anfang des Kampfes:
MaxAg = der höchste Agilitätswert, der vorkommt
jede "Runde":
(HeroX/MonXMomAg ist jeweils eine am Anfang auf 0 stehende Variable, HeroX/MonXAg ist jeweils der Agilitätswert der Person)
Hero1MomAg= + Hero1Ag
fork (Hero1MomAg >=MaxAg)
{
Hero1MomAg = -MaxAg
Hero1dran
}
Hero2MomAg= + Hero2Ag
fork (Hero2MomAg >=MaxAg)
{
Hero2MomAg = -MaxAg
Hero2dran
}
[...]
Mon1MomAg= + Mon1Ag
fork (Mon1MomAg >=MaxAg)
{
Mon1MomAg = -MaxAg
Mon1dran
}
wobei Hero1dran/Hero2dran/Mon1dran etc immer ein Platzhalter ist für das Script, das kommt, wenn die entsprechende Figur einen Zug machen darf
BlueScope
21.07.2004, 20:54
Sorry, das ich so lange nicht gefeedbackt habe ^^' aber ich wollte es erstmal ausprobieren und ich hatte nicht so oft Zeit in den letzten Tagen ...
Auf jeden Fall funktioniert alles, was ich brauche, superperfekt und ich bin dir superdankbar @melior und dafür bekommste auf jeden Fall n Creditseintrag, wennde dich nicht mit Händen und Füßen gegen wehrst ^^'
Dazu muss ich noch sagen, das das mit der CTB-Leiste nicht funktioniert, wie es anscheinend soll (ich nehme an, du hast dich auch an FFX orientiert). Da werden bei deiner Version in jedem Zug der Mensch angezeigt, der gerade am Zug war, also im ersten Zug ist noch gar niemand zu sehen, im zweiten Zug der Mensch, der beim ersten Zug dran war, usw., dabei sollten doch immer 6 Leutz zu sehen sein und der Oberste sollte immer der sein, der als nächstes dran ist ... wie gesagt habe ich alles, was ich brauche, die ctb-leiste wollte ich nicht integrieren, es ging mir nur um das Rundensystem abhängig der Charakterwerte,und das hab ich ja jetzt dank dir, also thx und bis zum nächsten Mal ! :D
@Dhan: Ob deine Version funktioniert, weiss ich nicht, da ich Meliors ausprobiert habe und die funktionierte, weshalb ich jetzt froh bin ^^' und deine nicht auch noch ausprobiert habe ... bin mir aber sicher, das sie auch funktioniert ^^'
wenn die ctb leiste nich eingebaut wird, dann is mein script viel zu umständlich o_o°
bei dir sollte dann eigentlich schon sowas wie das ganz normale atb reichen, nur eben ohne wartezeit, wie dhan das geschrieben hat.
is denke ich auch besser für die rechenpower, auch wenn da nich so viel unterschied sein sollte.
(btw. funzt bei mir die ctb leiste bestens... aber das wird wohl daran liegen, dass ich noch n paar sachen zusätzlich im script hab)
BlueScope
21.07.2004, 21:15
Njoa, kompliziert oder nicht, immerhin funktioniert es und da ich vorher absolut keinen Plan hatte, wie das überhaupt gehen soll (jetzt ist es ja anders ^^' ) bin ich froh mit dem, was ich habe :D
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.