Jetzt hat das Skript jedoch zwei kleine "Kinderkrankheiten". Ich brauch jemand, der mir hilft, das nach meinen wünschen anzupassen. Also folgendes:
1.) Das Skript loggt wirklich jeden Spielzug mit. Bei 20+ Spielzügen geht das ganz schön an die Performance und allein der Aufruf des Logs dauert sehr lange, weil alle Spielzüge von 1 bis X mitgeloggt werden. Vielleicht wäre es eine Lösung, nur die letzten 10 Logs anzuzeigen.
2.) Wenn man den Log aufruft, muss man jede einzelne Zeile runtergehen. Man drückt also ganz schön oft die Pfeiltaste runter, bis man mal alles durchgesehen hat. Wäre es hier vielleicht möglich eine Scrollfunktion einzubauen, sodaß man einfach bequem runterscrollen kann per Tastendruck wie man es eben auch im Browserfenster macht?
Das wärs.
Hoffentlich kann jemand helfen.
Danach lass ich euch auch mal für eine Weile in Ruhe :3
Ken der Combatkot
--
Ein sehr symphatischer und überaus aktiver RPG Maker Benutzer
Geändert von Ken der Kot (05.09.2018 um 18:02 Uhr)
Wenn dir bisher niemand eine Antwort gegeben hat, dann bringt es auch nicht viel, den Thread nach oben zu bumpen - mal davon abgesehen, dass das hier nicht gern gesehen wird. Ein Bump ist okay, wenn der Thread droht, auf der zweiten Seite zu verschwinden und das Problem dann noch nicht gelöst ist.
Ok, um mal Input zu liefern: Was ich selbst versucht habe:
Folgende Stelle
ändern zu
was aber nicht klappt, denn dann zeigt das Log gar keinen Text mehr an.
Blöderweise war das das naheliegendste und alle weiteren Operationen führen dazu, daß mir das Ding crasht wie ein Flugzeug bei einer Bruchlandung.
Kann es sein, daß das Skript gar keine Methode zur Einstellung des Limits hat? Ich dachte eig, daß das durch "Item_max" definiert ist. Kann sich aber auch auf eingesetzte Items im Kampf beziehen. Jetzt bin ich nicht sicher, ob ich an der Methode überhaupt rumoperieren soll oder ob mir das alles kaputt macht.
Naja, wer helfen will -> Hut ab!
Ich mach hier solange mal selber Trial und Error.
Ken der planlose Kot
--
Ein sehr symphatischer und überaus aktiver RPG Maker Benutzer
Nur letzte 10 Logs anzeigen müsste trivial sein, die andere Aufgabe ziemlich kompliziert, da es von Window_Selectable abhängt, was das generische Auswahlfenster ist.
Da könnte man z.B. mit einem Slice die letzten 10 Elemente nehmen, also in Zeile 328 schreiben:
Aber kein Plan ob das Steinzeit-Ruby 1.9 schon die last-Methode hat, Stand der Technik ist Ruby 2.4
Und dein Code der es einfach auf 10 hardcoded kann nicht gehen, weil du dann für die Fälle wenn nur 0-9 Elemente drin sind außerhalb der Array-Grenzen indizierst -> CRASH
Danke, Ghabry. Es passiert was, allerdings nicht das, was ich will. Nämlich: Es zeigt dann nur die letzten 10 Zeilen des Logs an und nicht die letzten 10 Logs (also die Logs der einzelnen Turns 1 bis 10) als Gesamtpaket. Aber ich glaub wir sind nah an der Lösung des Problems.
--
Ein sehr symphatischer und überaus aktiver RPG Maker Benutzer
Geändert von Ken der Kot (03.09.2018 um 15:16 Uhr)
Zu Punkt 2: Ich kann mich auch irren, aber hat Window_Selectable nicht von Haus aus Scrollsupport? Probier mal "L" und "R" (Sollte Bild ↑ und Bild ↓ bei der Standard-Tastaturbelegung sein). Stimme dir aber zu, so wie es jetzt ist, ist es aber wohl ziemlich hässlich zu bedienen ist, verstehe auch nicht, warum das Ding überhaupt mit einem Window_Selectable realisiert wurde.
Edit: Okay, hat es wohl nicht und scheint sowieso nicht so zu funktionieren wie ich dachte sondern einfach "seitenweise" zu springen...
Zitat von Ghabry
Aber kein Plan ob das Steinzeit-Ruby 1.9 schon die last-Methode hat, Stand der Technik ist Ruby 2.4
...
Die hatte selbst Ruby 1.8 schon
--
"Banjo, you're a BEAR... and I will teach you... THESE MOVES!"
Oh, hab nicht richtig gelesen, diese subtile Änderung macht es direkt viel komplizierter, weil dies eindeutig nicht vorgesehen ist.
z.B. könnte man ein neues Array einführen und dann in "turn_end" jeweils zählen, wie viele neue Zeilen pro Zug hinzugekommen sind und wenn das neue Array die Größe 11 erreicht, werden so viele Zeilen gelöscht, wie im ersten Arrayindex stehen, dann den ersten Arrayindex löschen, dadurch wirds beim nächsten "turn_end" mal wieder Größe 11 usw.
Ich will halt einfach nicht, daß der Log erstmal 10 oder mehr Sekunden laden muss, wenn man ihn aufruft. Das kann passieren, wenn der Kampf schon weit fortgeschritten ist (20 oder mehr "Spielzüge"), daher dachte ich, daß es eine gute Idee wäre, die letzten Logs auf 10 zu begrenzen, damit es nicht so lange dauert, den Log aufzurufen. Ist ja echt blöd so.
--
Ein sehr symphatischer und überaus aktiver RPG Maker Benutzer
Und dein Code der es einfach auf 10 hardcoded kann nicht gehen, weil du dann für die Fälle wenn nur 0-9 Elemente drin sind außerhalb der Array-Grenzen indizierst -> CRASH
...
Du kannst in Ruby auch auf nicht indizierte Werte zu greifen. Es wird einfach "nil" ausgewiesen.
a = [1,2,3]
p(a[4]) => nil
@topic: ich hatte leider keine Zeit dort reinzuschauen, und nach dem der thread innerhalb - mal wieder - von weniger als 24 stunden (am wochenende) bereits gebumpt wurde, auch ehrlich gesagt 0,0 Motivation
@topic: ich hatte leider keine Zeit dort reinzuschauen, und nach dem der thread innerhalb - mal wieder - von weniger als 24 stunden (am wochenende) bereits gebumpt wurde, auch ehrlich gesagt 0,0 Motivation
...
Hmmm
--
Ein sehr symphatischer und überaus aktiver RPG Maker Benutzer
Ist das die ganze Meldung? Schreibt er keine Zeilennummer dazu, wo der Fehler auftritt?
Liegt aber vermutlich am doppelten alias. Enferne mal die Zeile alias scene_battle_turn_start_cld turn_start in meinem Script und schau ob es dann läuft.
--
"Banjo, you're a BEAR... and I will teach you... THESE MOVES!"
Gabs schon Ideen, wie man die Scrollfunktion evtl implementieren könnte? Will ja nicht bumpen, aber das wäre schon auch noch wichtig und ich wäre super dankbar.
--
Ein sehr symphatischer und überaus aktiver RPG Maker Benutzer
Na wenn du es nicht willst, warum tust du es dann? Wenn es hier auf deine Frage noch keine Antwort gibt, hat das sicher seinen Grund. Dein letzter Post ist auch gerade einmal 2 Tage alt. Bitte versuch dich ein wenig zu gedulden und nicht unnötig die Threads mit so vielen inhaltslosen ein bis zweizeilern voll zu spammen, du bekommst sicher später noch eine Antwort.