PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gescriptetes CTB-KS system



DusK
15.07.2006, 15:07
Folgendes, ich hab so nebenbei versucht ein CTB KS System zu scripten, also nur die Berechnung keine Aktionen es soll nur die Zugreihenfolge berechnet und angezeigt werden.
Nochmal: DAS IST KEIN VOLLSTÄNDIGES KAMPFSYSTEM, ES GEHT HIER NUR UM DIE GESCHWINDIGKEITSBERECHNUNG!

Jetzt wollt ichs mal hier reinstellen damit ihr es antesten könnt und um mich auf mögliche Fehler im Code selber hinzuweisen da ich eigentlich kein guter scripter bin. Ums kurz zu fassen, ich bitte euch um ne Qualitätskontrolle. Also Feedback und gefundene Bugs sind erwünscht

Diese Art von KS kennt man auch aus Velsarbor und Final Fantasy 10. Dürfte also bekannt sein um was es sich hier handelt.

<Download hier> (http://rapidshare.de/files/25908005/CTB_KS.rar.html)

EDIT:
AUf Wunsch hab ichs jetzt auch mal bei Filefront hochgeladen. Sucht euch aus was ihr wollt.
Hier (http://files.filefront.com/CTB_KSrar/;5258648;;/fileinfo.html)

EDIT:
NPCFighter war so nett und hat es bei sich hochgeladen. Ohne Wartezeit und ohne Werbun. Dafür nochmal ein großes Dankeschön!!

Download (http://upload.npcfighter.de/files/25/355CTB_KS.rar)

DR_Zeph
15.07.2006, 16:43
versteh mich nicht falsch, aber man kann nix testen, man kann Enter drücken und beobachten. Wow.
Naja, ein Profilierungsthread mehr, wen kümmerts?

DusK
15.07.2006, 16:46
Ich mein auch das man es sich im Maker aufmacht und den Code öffnet. Es war als script gedacht. Soll nur zeigen wie ein CTB KS funzt. Ich hätt mich nur gefreut wenn ein paar ihre Meinung dazu sagen und wie schon erwähnt Verbesserungsvorschläge abgeben,.

Isgar
20.07.2006, 18:26
Mhh...
Ganz nett. Ich hätte es nur, an einem richtigem KS gezeigt, ich denke ein Noob wird den Sinn hinter dem Skript warscheinlich nicht verstehen.

Inius
20.07.2006, 18:47
Kannst du vieleicht mal die Vollebezeichnung hinschreiben vom KS und mit welchem Spiel(KS) dieses Script ähnlickeit hat!:)

Phönix Tear
21.07.2006, 10:31
--HINWEIS---
Tjö, ich weiß auch nicht warum das bei mir am Anfang funktioniert hat. Kann es sein das du den 2k3 benutzt? Ich habs nämlich im 2k aufgemacht und hab mich erstmal nicht darüber gewundert das alles schwarz war (ist ja nur ein Skript). Irgendwann fiel mir dann nur auf das deine Helden garkeine Graphiken eingestellt hatten und sich auch kein Event auftreiben ließ das diese anzeigte. Nachdem ich dann auch die unten angegebenen Änderungen durchgeführt hatte ging alles völlig kaputt. Nun speichert er auch die Agility der Helden nicht mehr und macht auch sonst nur noch Mist. Ich weiß nicht genau woran das liegt (außerdem fand er keine Datei aus dem RTP mehr, also musste ich sie alle importieren, half nur auch nichts). Daher kann es durchaus sein das einige der gefundenen Fehler bei dir keine sind weil mein Maker einfach ein paar Befehle die er so nicht kannte weggemacht hat. Na ja, ich hoffe es hilft dir trotzdem ein bisschen...
--HINWEIS ENDE---


Joa, so wie ich das sehe ist das ganz in Ordnung. Ein kleiner Knackpunkt ist nur gleich ganz am Anfang deiner Berechnung. Dort nimmst du die ATB-Variablen alle + die Agility deiner Helden und Monster. Dort würde ich eher ein "set" empfehlen, da es sonst, solltest du am Ende des Kampfes vergessen diese wieder zu nullen, zu Fehlern kommen könnte (im nächsten Kampf würden auf die alten Werte die neuen Addiert so das es zu einer völlig falschen Berechnung kommt).
Letztendlich kannst du auch das "<>CTB Position, set 6" unter der Fork für "CTB Position >= 14" wegmachen. Ist zwar kein Fehler, bringt da aber nix ;)

Ein weiteres Problem ist das Held 2 und Monster 1 manchmal unrechtmäßig aussetzen müssen. Dieser Fehler ist recht simpel und tritt auch nur daher so stark auf da Held 1, Held 2 und Monster 1 alle den gleichen Agility-Wert haben. Hier schonmal das Bild wo der Fehler liegt:
http://www.directupload.net/images/060721/temp/ak5BTZ98.png (http://www.directupload.net/show/d/765/ak5BTZ98.png)
Zur Erklärung:
Beim ersten Durchlauf tritt der Fehler noch nicht auf, hier ist alles in Ordnung. Nehmen wir nun aber an Held 1 kommt drann. Seine CTB-Variable steht also auf 1280. Nun werden noch Held 2 und die Monster abgefragt. Die CTB-Variable von Held 2 hat nun auch den Wert 1280, damit ist er ebenfalls drann, leider hat aber Held 1 schon Platz 13 (und damit den letzten) belegt. Trotzdem wird ihm ein Platz zugewiesen und zwar Platz 14. Genau so geht es unserem Monster 1. Dieses ist auch im selben Moment "fertig" bekommt also den Platz 15. Jetzt wird der Cycle unterbrochen und die Person an erster Stelle kommt drann. Danach werden (was ganz richtig ist) alle Positionen um 1 nach vorne geschoben. Aber nur bis zur Position 13! Danach wird deine Platzvergabe-Variable wieder auf 13 gesetzt und dieser Platz neu belegt. Leider sind die CTB-Variablen von Held 1, Held 2 und Monster 1 alle wieder auf 0, das Rennen geht also wieder von Vorne los. Das Held 2 und Monster 1 nun die Plätze 14 und 15 haben interessiert das KS reichlich wenig, diese werden schließlich nie abgefragt. Damit mussten sie unrechtmäßig einen Zug aussetzen. Diesen Fehler kann man auf verschiedene Arten beheben, eine gebe ich hier mal an (die einfachste ^^).
Da Held 2 und Monster 1 immer gleichzeitig mit Held 1 "fertig werden" musst du ja letztendlich nur verhindern das ihnen Plätze über 13 zugewiesen werden. Daher machst du am besten noch eine Fork unter das "Held1ATB >= 1280" (auch bei allen anderen Helden und Monstern) die abfragt ob "CTB Position >= 14". Wenn ja passiert nichts (ist schlecht, warum später), wenn nein kommt dein ganz normaler Code. Warum das schlech ist? Nehmen wir nun an Held 1 erreicht die 1280. Gleichzeitig tut dies auch Held 2. Held 1 bekommt die Position 13, Held 2 wird übergangen. Der Cycle wird beendet, die Aktion durchgeführt und es geht von Vorne los. Jetzt ist Platz 13 frei, Held 2 bekommt ihn also. Leider hat er bis dahin bereits 1300 ATB-Punkte, also 20 verschenkt. Monster 1 verschenkt sogar 40 Punkte weil es ja zwei mal warten muss. Das ist nicht toll, aber noch einigermaßen akzeptabel (kann man natürlich wegmachen wenn man will, da ich aber nur die einfachste Lösung machen wollte mach ich das hier erstmal nicht (wenn dus doch haben willst, und nicht genau weißt wies gehen könnte, frag einfach ;) )). So, damit sollte der Fehler so einigermaßen behoben sein. Tja, da jetzt aber irgendwie alles kaputt ist weiß ich auch nicht weiter...

DusK
21.07.2006, 12:30
Erstmal danke, das doch noch feedback kam.

@Phoenix Tear

Ja, das wurde mit dem RPG2k3 gemacht deshalb gibts bei dir schwarze chips, mien Fehler hätt ich wohl erwähnen müssen. Danke für das große Feedback hat mir sehr geholfen. Ich überlege noch Aktionen zu scripten, also das es als vollständiges KS funktioniert. Weis aber nicht ob sich das lohnt da es schon andere Scripts dieser art gibt.