Archiv verlassen und diese Seite im Standarddesign anzeigen : Technik-Sammelthread für Probleme und Antworten
IndependentArt
15.09.2018, 15:39
Offizieller 2k3? :D
Da du dieses Problem schon mal angesprochen hast, wäre es gut, wenn du mal die genaue Makerversion, also nicht nur "legaler Rm2k3", sondern auch V1.??, posten könntest. Auch ein Screenshot, wie eine leere Textbox bei dir aussieht, wäre gut. Denn wie ich früher schon mal geschrieben habe, braucht man beim legalen Rm2k3 eigentlich kein Tool mehr, weil in der Textbox Begrenzungslinien angezeigt werden. Ist zumindest bei mir so.
@Independent Art: Ja :D
Version ist 1.08 Translated by RPG Advocate
@Leana:
http://share.cherrytree.at/showfile-31528/textboxproblem.png
So sieht das bei mir aus, als Beispiel mal mit Text. Da vermisse ich die Trennlinien.
Die Version 1.08 ist KEINE legale Makerversion, die hat aktuell die Nummer V1.12. Für V1.08 und früher gibt es keine Möglichkeit, diese Hilfslinien anzuzeigen, da musst du mit einem externen Hilfstool arbeiten.
So sieht es beim legalen Rm2k3 aus:
http://share.cherrytree.at/showfile-31529/textbox.png
Falls du eine legale Version besitzt, empfehle ich dir, dein Spiel darauf zu aktualisieren. Falls du die RTP-Dateien in dein Spiel integriert hast (was inzwischen von vielen Spielern erwartet wird), dann geht das ganz schnell. Einfach mit offiziellem Rm2k3 öffnen und die Frage nach dem Update bejahen. Ein weiterer Vorteil vom legalen Rm2k3 ist, dass es bei Betriebssystemen wie z.B. Windows 10 keinen Blureffekt im Vollbildmodus gibt.
Upps das ist^mir jetzt peinlich. Mea culpa.
Vielen Dank für die Info. Ich hatte mir wirklich einen RPGMaker der neuen Version gekauft aber offensichtlich beim Transport von altem zu neuen Laptop gepfuscht.
Dann schau ich mal und kaufe mir notfalls nochmal den Rm2k3. ^^ Danke schon mal Leana für deine Hilfe!
Edit: Problem hat sich damit gelöst. Kostet mich also doch noch mal etwas Geld, aber das ist es wert. :)
Hm, wieso noch mal neu kaufen? Hast du denn den Registrierungsschlüssel nicht mehr?
Hm, wieso noch mal neu kaufen? Hast du denn den Registrierungsschlüssel nicht mehr?
Nein leider mal Mails gelöscht vor ner Weile. Frag nicht warum.:D
Hab mir auch schon überlegt, die anzuschreiben und vielleicht krieg ich ja auf Kulanz noch mal einen. :)
Hey zusammen. :)
Folgende Herausforderung habe ich beim Gebrauch eines Zauberspruches meiner kämpferischen Zauberin. ;)
So sieht meine Datenbank Einstellung aus.
http://share.cherrytree.at/showfile-31872/herausforderung_datenbank.png
Im Testkampf wird nun allerdings der Spruch "Feuerball" ausgegraut und kann nicht von mir verwendet werden. Wo liegt der Fehler, any guesses? Was übersehe ich vielleicht?
Vielen Dank im Voraus!
Linksawakening
01.11.2018, 18:28
Mal ganz dumm gefragt: a) ist in dem Testkampf ein Stab angelegt als Waffe? b) Sind genug MP vorhanden um den Spruch zu casten?
Ansonsten kann ich nichts auffälliges entdecken ...
Mal ganz dumm gefragt: a) ist in dem Testkampf ein Stab angelegt als Waffe? b) Sind genug MP vorhanden um den Spruch zu casten?
Ansonsten kann ich nichts auffälliges entdecken ...
Ja Stab war angelegt. MP sind auch genug vorhanden. Problem hat sich aber insofern "gelöst", dass ich die Attackelemente "Stab" und "Magisch" rausgenommen habe und nur "Feuer" dringelassen habe. Danke. :)
Pacebook
21.11.2018, 10:26
Hallo,
ich habe ein "kleines" problem mit dem kampfsystem des 2003ers. Und zwar diese situation:
Ich habe in einem kampf statt angreifen, verteidigen etc. custom-optionen für den charakter gewählt, die bestimmte dialoge auslösen, wie etwa in Unterwegs in düsterburg bei Doria. Wählt der spieler die aus, gibt es einen dialog, dann einen switch, damit dialog 2 kommt, wenn er das selbe nochmal wählt.
Beispiel:
Statt ANGRIFF hat der charakter die option BETTELN. Wenn er das zum ersten mal drückt kommt Betteln1. Dann switch, damit beim nächsten mal betteln2 kommt.
Folgendes problem:
Ich habe es so gelöst, dass am ende des ersten dialogevents der switch aktiviert wird. auf der nächsten seite dann: IF SWITCHX IS ACTIVE, IF CHARACTER USES BATTLECOMMAND BETTELN. Leider spielt er alle Betteln-Events nacheinander ab, ohne pause. Ich weiß nicht genau warum, oder wie man das ändern kann. ich habe versucht, leere zwischenseiten zwischen die dialoge zu bauen, die mit den switches aktiviert werden, und in den nächsten dialog eine turn-elapsed-condition einzubauen, bringt beides nichts. Sind alle szenen durch und wählt der spieler das kommando erneut aus, kommen wieder alle szenen von anfang.
Wie kann man es einrichten, dass jedes mal, wenn der spieler das kommando wählt, einer der dialoge kommt? Natürlich in richtiger reihenfolge. Fünf sind es insgesamt.
Danke für eure hilfe
Liferipper
21.11.2018, 10:58
Bedingung: Hero uses the Betteln Battle Command
If Switch 5555 is on
"Mach irgendwas ganz tolles"
Else
If Switch 4444 is on
"Mach irgendwas ganz tolles, das davor passieren soll"
Switch Operation: [5555] ON
Else
[...]
Else
"Mach irgendwas ganz tolles, was als erstes passieren soll"
Switch Operation: [1111] ON
End
End
End
End
End
End
Noch eleganter ist es natürlich, wenn man eine hochzählende Variable statt Switches verwendet ;).
Anstelle von Switches würde ich es mit einer "Status"-Variablen lösen. Jedesmal, wenn dieses Kommando aufgrufen wird, wird zunächst der Wert dieser Variablen abgefragt und dem entsprechend der dazu gehörige Dialog angezeigt, dann die Variable um 1 erhöht. Das Ganze kannst du in einen einzigen Battleevent packen.
Edit: Ich schreib eindeutig zu langsam :D
Pacebook
27.11.2018, 15:17
Hallo,
vielen dank für eure hilfe, so mache ich es!! :)
Ich habe eine schwierigere frage:
ich möchte ein gewisses rätsel designen, bei dem der spieler sieben bestimmte items in fester reihenfolge nutzen soll bzw. abgeben soll. Ist es technisch möglich, das hinzubekommen? Das problem ist, dass nicht alle davon benutzbare items im menü sind, und ich nicht multiple choice machen möchte. Das heißt auch die abfrage nach der itemanzahl bringt nichts weil der spieler sie nicht auswählen kann. Ich habe überlegt ob man mit einem common event in diesem kleinen raum die eigenschaften des items ändert aber das geht glaube ich nicht. Kann man das irgendwie machen oder muss ich dazu übergehen, nur nutzbare items zu verlangen und danach die anzahl noch vorhandener abzufragen?
danke für eure zeit
Spontane Idee:
Du hast pro Item einen Switch. Nachdem Item 1 benutzt wurde, setzt du Switch 1 auf ON. Bei Item 2 fragst du nun ab, ob Switch 1 = ON ist, ehe du Switch 2 auf ON stellst. Bei Switch 3 fragst du dasselbe dann mit 2 ab, usw. Somit kann ein Switch nur auf ON gesetzt werden, wenn der Vorgänger auch ON ist. Je nach dem kannst du auch mit ELSE arbeiten und, wenn der Vorgänger nicht ON ist, alle Switches auf OFF stellen, damit der Spieler von vorne anfangen muss.
Ob du diese Switches nun in einem Common-Event abfragst, das bei Benutzung eines Items ausgelöst wird oder im Zuge irgendeines Dialogs bleibt ja nun dir überlassen, ob und an was für Items du das jetzt koppelst ist also egal.
IndependentArt
27.11.2018, 20:10
Vielleicht übersehe ich da was, aber was spricht dagegen, eine Variable hochzuzählen?
So in der Struktur:
@> Conditional Branch: Variable [0001:Item] == 1
@> Control Variables: [0001:Item] = 2
@> -->Item 1 abgeben
: Else
@> Conditional Branch: Variable [0001:Item] == 2
@> Control Variables: [0001:Item] = 3
@> -->Item 2 abgeben
: Else
@> ... USW ...
: Branch End
@>
: Branch End
maniglo93
01.12.2018, 23:30
@Pacebook: Wenn ich das richtig verstanden habe, ist das Problem, dass die Items,bzw. nur ein paar, nicht per Menü benutzt werden können. Und somit die Abfrage schwierig ist, wenn es erst gar nicht nutzbar ist. Ich denke du möchtest eine Lösung haben, in der das Item für den Raum / Rätsel nutzbar wird, so verstehe ich dein Problem.
Die einfachste Möglichkeit:
Erstelle ein zweites Item (identisch) aber dieses ist nutzbar. Wenn das Rätsel aktiviert wird, machst du ein Event, dass die Items im Inventar austauscht. So kann es dann für das Rätsel aktiviert werden. Nach dem Rätsel wieder austauschen.
Beispiel: Schlüssel (nicht nutzbar) und Schlüssel (nutzbar) erstellen -> wenn Rätsel beginnt/Raum betreten Schlüssel (nicht nutzbar) aus dem Inventar entfernen und Schlüssel (nutzbar) in das Inventar hinzufügen -> Rätsel ( da haben @IndependentArt und @BDraw ja schon gute Vorschläge gebracht) -> Items wieder austauschen.
Ich hoffe ich habe dir gehollfen.
Cheers
Pacebook
04.12.2018, 19:26
Danke euch für eure hilfen. Alle haben mir geholfen.
Danke mani, so meinte ich das. Ich werde es so machen. :)
Evermore Secret
07.12.2018, 01:06
Ich hab da ein kleines Problem mit dem XP Maker. Ich hab vorgestern ein klitzekleines Demo Programm erstellt was ich einem Freund per E-Mail zu geschickt hab. Leider konnte er es nicht öffnen da ihm angeblich das RGSS-RTP Standard fehlt. Nu hab ich ihm alles Dateien aus dem Projekt zukommen lassen, hab aber keine Ahnung wie bei der Steam Version es sich mit dem RTP Package verhält . Muss mein Bekannter sich die RTP Dateien irgendwo extra herunterladen ?
""Update"" Hatt sich erledigt ,hab die Lösung gefunden!^^
maniglo93
08.12.2018, 11:19
Entnommen aus einem anderem Forum, um RPG Maker Xp ohne RTS spielbar zu machen (ohne das sich jemand das RTP herunterladen muss) :
Es gilt also folgendes zu beachten:
- Du brauchst nicht das komplette RTP übernehmen, sondern nur das, was auch im Spiel verwendet wird. Dies sollte in den passenden Ordnern im Spiel einsortiert werden. Bitte nicht nachträglich umbenennen, sonst werden die Datein nicht gefunden.
- In der Game.ini, welche du im Spieleordner selber findest, ist der Pfad zum RTP verzeichnet. Dies musst du ändern, damit nicht weiter nach dem installierten RTP gesucht wird. Dazu die ini mit dem normalen Windows-Editor öffnen und den Eintrag nach "RTP1 =" löschen, da steht im Normalfall "Standard".
Oben drüber findest du auch die dll, die der Maker verwendet notiert. Es lohnt sich meist, diese dll vorsichtshalber dem Spieleordner noch ein mal beizufügen.
Ich bin viele
08.12.2018, 21:03
Hey!
Ich bin auf einige Fragen gestoßen die mir Kopfzerbrechen bei der Planung eines Spiels bereiten. (2k3)
1. Die MP, also Mana, soll später einen anderen Namen bekommen (aber nur für einen Charakter, die Anderen sollen die Bezeichung Mana behalten, wie im Vocabulary festgelegt). Wie ist dies möglich?
2. Ich will als Fortbewegungsmittel auf der Weltkarte ein Schiff nehmen, welches aber nur an bestimmten Orten, also Häfen, stoppen kann. Ist dies mit einem normalen Vehilce möglich? Oder muss ich dies per Event einbauen? Wenn ich dafür ein Event machen muss, was wäre hier der leichteste Weg dies zu bewerkstelligen? Ich dachte daran, das Wasser als passierbares Terrain zu nehmen und die Ränder der Inseln bzw. Kontinente unpassierbar zu machen, wäre das eh schon die leichteste Lösung?
3. Ich möchte Skills einbauen die 0 MP kosten, dafür aber eine Abklingzeit besitzen. Ich würde gerne einbauen, dass jeder individuelle Skill eine gewisse Rundenanzahl zum abklingen braucht, wäre dies denn möglich? Falls nicht, wie wäre es mit einem Timer ausserhalb der Kämpfe, würde das gehen?
Edit: 4. Wie kann ich beim Hänlder einen Rabatt geben? Muss ich dafür jedes Item mit einem neuen Preis erstellen oder geht sowas auch anders?
Ich hoffe ihr könnt mir die Fragen beantworten :)
Evermore Secret
10.12.2018, 22:29
"2. Ich will als Fortbewegungsmittel auf der Weltkarte ein Schiff nehmen, welches aber nur an bestimmten Orten, also Häfen, stoppen kann. Ist dies mit einem normalen Vehilce möglich? Oder muss ich dies per Event einbauen? Wenn ich dafür ein Event machen muss, was wäre hier der leichteste Weg dies zu bewerkstelligen? Ich dachte daran, das Wasser als passierbares Terrain zu nehmen und die Ränder der Inseln bzw. Kontinente unpassierbar zu machen, wäre das eh schon die leichteste Lösung?"
Ich denke das Küstenränder standardmäßig als unpassierbar eingestellt sein sollten. Ansonsten müßte sich das in der Database anpassen lassen (o und x) Für das Vehicle selbst müßte es eigentlich auch bereits ein Standard Script geben was man verwenden kann. Vorrausgesetzt 2k3 hatt die Scriptdatenbank implementiert was ich grad nicht mehr weiß, anderfalls lassen sich bestimmt noch irgendwo entsprechende scripts finden.
"4.Wie kann ich beim Hänlder einen Rabatt geben? Muss ich dafür jedes Item mit einem neuen Preis erstellen oder geht sowas auch anders?"
Ich würde da mit einem Item arbeiten als Auslöser und dann mit Variablen ein Event erstellen das bei allen Händlern oder nur bei bestimmten gilt Beispiel : Held hatt Königliches Edikt (Erlass) Item in der Datenbank erstellen und dann eine einfach If und when Schleife einbauen! If hatt Held Item "Königlicher Erlass =1 when Preise X Minus soundso viel Prozent oder ist kleiner als .•••••. Sorry ich bin mit den If und When gedöns auch noch net so hundert pro gefestigt.. oder besser "nicht" mehr ^^ Aber ein Item als Auslöser für den Rabatt halte ich für die einfachste Möglichkeit . Aber viell. weiß ja jemand hier noch ne bessere .
Zu Punkt 1 und 3 fällt mir leider jetzt auch nichts hilfreiches ein!
Evermore Secret
10.12.2018, 22:37
Entnommen aus einem anderem Forum, um RPG Maker Xp ohne RTS spielbar zu machen (ohne das sich jemand das RTP herunterladen muss) :
Es gilt also folgendes zu beachten:
- Du brauchst nicht das komplette RTP übernehmen, sondern nur das, was auch im Spiel verwendet wird. Dies sollte in den passenden Ordnern im Spiel einsortiert werden. Bitte nicht nachträglich umbenennen, sonst werden die Datein nicht gefunden.
- In der Game.ini, welche du im Spieleordner selber findest, ist der Pfad zum RTP verzeichnet. Dies musst du ändern, damit nicht weiter nach dem installierten RTP gesucht wird. Dazu die ini mit dem normalen Windows-Editor öffnen und den Eintrag nach "RTP1 =" löschen, da steht im Normalfall "Standard".
Oben drüber findest du auch die dll, die der Maker verwendet notiert. Es lohnt sich meist, diese dll vorsichtshalber dem Spieleordner noch ein mal beizufügen.
Das mit dem Entfernen der Standard Einträge in der Konfigurationsdateien hatte ich bereits gefunden und ihm geschickt .. Allerdings die Sache mit der dll hab ich noch nicht ausprobiert.
Allerdings ist nun die Fehlermeldung "unable to find file Graphics/Windowskins/0001-Blue01 " aufgetaucht bei ihm . Ist die Systemskin nicht automatisch im Projektordner kopiert wenn ich ich die Projekt Dateien aus dem Ordner in einen seperaten Ordner (mit gleichem Ordnernamen ) kopiere ?
Sanghelios
15.12.2018, 10:51
Hallo zusammen. Ich würde gerne wissen ob es möglich ist, beim MV einen Skill zu entwerfen, der States vom Ziel auf den Anwender überträgt.
Mit a.addState(id); (a.atk * 1.2 - b.def) kann man ja bereits Schaden machen und gleichzeitig dem Anwender einen bestimmten State geben. Deshalb dachte ich, es müsste ja vielleicht auch möglich sein, einen State beim Ziel abzufragen (in der Art b.ifState(xx)) und dementsprechend dem Anwender übertragen.
Don Sella
17.02.2019, 14:34
Ich habe ein Problem mit dem KS des 2k3. Man kann ja einstellen, dass in einer gewissen Runde oder bei einem gewissen HP-Status des Gegners oder auch des eigenen Helden etwas passiert. In meinem Fall möchte ich, dass z.B. zwischen 30-50% der HP des Gegners und später dann bei 10-20% HP ein Dialog aufploppt, allerdings nur einmal. Aber leider ploppt er immer wieder auf und ich verstehe nicht so ganz, wie ich das mit Switches oder anderswie regeln kann, irgendwie will es nicht funktionieren. Wie kann ich also einstellen, dass die Dialoge jeweils nur einmal erscheinen?
Liferipper
17.02.2019, 15:00
Ich habe ein Problem mit dem KS des 2k3. Man kann ja einstellen, dass in einer gewissen Runde oder bei einem gewissen HP-Status des Gegners oder auch des eigenen Helden etwas passiert. In meinem Fall möchte ich, dass z.B. zwischen 30-50% der HP des Gegners und später dann bei 10-20% HP ein Dialog aufploppt, allerdings nur einmal. Aber leider ploppt er immer wieder auf und ich verstehe nicht so ganz, wie ich das mit Switches oder anderswie regeln kann, irgendwie will es nicht funktionieren. Wie kann ich also einstellen, dass die Dialoge jeweils nur einmal erscheinen?
Als Start-Bedingung für das Event stellst du die HP% des Gegners ein.
Das Event selbst sollte dann etwa so aussehen:
Branch if Switch [1234: Kampfgelaber] is OFF
Message: Blablabla
Switch Operation: [1234: Kampfgelaber] ON
End
Don Sella
28.02.2019, 00:04
@Liferipper: Eigentlich so simpel und ich bin nicht darauf gekommen ...
Danke dir auf jeden Fall.
Hallöchen.
Ich habe aktuell auch ein paar Probleme mit dem 2k3.
Mir ist aufgefallen, dass der Maker neuerdings Schwierigkeiten hat MP3s abzuspielen.
Er tut es zwar, aber nicht, ohne sich vorher mehrere Sekunden aufzuhängen. Kennt irgendjemand das Problem?
Ich hatte das die ganzen letzten Jahre nicht, es lief immer alles einwandfrei. Ich habe aber auch nichts Nennenswertes an meinem
Rechner geändert. Alles läuft genauso wie es das immer tut, nur der Maker hat plötzlich Schwierigkeiten, wo vorher keine waren.
Sonderlich viele MP3s habe ich auch nicht im Spiele-Ordner und die Tracks haben eine maximale Bitrate von 128 Kbit/s.
Irgendjemand eine Idee? (Es ist nicht so als ob ich nicht mehr arbeiten könnte, aber es ist doch etwas nervig.)
Ich bin viele
18.03.2019, 20:52
Hey Leute!
Ich mache mich gerade an die Skills im 2k3 und hab da mal ne Frage die mir nicht in der internen Makerhilfe beantwortet wird: Wie kann ich die Chance auf einen Statuseffekt einstellen? z. B. will ich, dass ein Skill zu 20% Blind verursacht, nun kann ich aber scheinbar nur einstellen dass der Skill Blind verursacht, jedoch nicht dessen Chance. Bei "Success Rate" stelle ich ja vermutlich ein wie oft der Angriff treffen soll (da hab ich 75%), und bei "Variance" wie sehr der Schaden variieren soll, also hab ich keine Ahnung wo ich das genau einstellen kann.
Liferipper
18.03.2019, 21:51
Hm, wenn der Skill nur einen Status-Effekt verursachen soll, kannst du die Success Rate verwenden, wenn der Skill mehr als einen Effekt haben soll (z.B. zusätzlich Schaden verursachen oder mehrere Stauseffekte verursachen), wirst du nicht drumherum kommen, die Susceptibility-Einstellung im Condition-Tab zu verwenden.
Dann wäre es z.B. möglich, dass du die Anfälligkeit aller Monster für Blindheit auf 20% stellst.
Noch etwas komplizierter wird es dann allerdings, wenn du verschiedene Skills mit demselben Effekt (z.B. Blindheit) aber unterschiedlichen Wahrscheinlichkeiten haben wolltest. In dem Fall müsstest du dann für jede Wahrscheinlichkeit eine eigene Statusveränderung erstellen und die Anfälligkeit der Monster entsprechend anpassen.
Z.B.
Skill 1: "Vielleicht Blind"
Verursacht Zustand "Blind 1" (Alle Anfälligkeitsstufen (A-E) auf 20%)
Skill 2: "Wahrscheinlich Blind"
Verursacht Zustand "Blind 2" (Copy-Paste von Blind 1, allerdings alle Anfälligkeitsstufen auf 80% statt 20%).
(In diesem Beispiel gehe ich davon aus, dass beide Skills eine Success Rate von 100% haben, sonst müsste man die Zahlen natürlich noch etwas anpassen.)
Ich bin viele
19.03.2019, 17:13
Erstmal Danke Dir für die ausfürliche Antwort!
Ich habe mir gedacht das dies der einzige Weg sein wird das Ganze einzustellen, schade eigentlich. Ich denke ich werde einfach die von mir erdachten Zauber etwas Balancen um sie dem Standard System anzupassen, das wäre wohl das einfachste und auch zu verschmerzen.
Nun habe ich aber noch ein paar Fragen zum Thema Skills:
1. Ist es möglich, dass der Skill einen zufälligen Gegner angreift? Der Skill soll schon noch auf einen "Single Enemy" gehen, jedoch darf diesen der Spieler nicht auswählen. Oder von mir aus kann es auch ganz zufällig sein, also auch das nicht ausgeschlossen wird das Partymitglieder angegriffen werden, wie wenn er verwirrt wäre, nur halt für diesen einen Angriff.
2. Ist es möglich eine Skill zu erstellen, der den normalen Angriff ein Element hinzufügt? z. B. soll nach dem Zaubern des Skills für einige Zeit (vl bis zum Ende des Kampfes?) Eisschaden verursachen.
3. Ist es möglich einen Skill zu erstellen der z. B. Ohnmacht heilt aber dafür Vergiftet? Ich kann nur entweder "Inflict" oder "Heal" auswählen, jedoch nicht Beides..
Hab leider nicht damit gerechnet dass der 2k3 soviele Restriktionen hat was Skills angeht und hab etwas übertrieben bei der Planung, aber vielleicht lässt sich ja wenigstens etwas davon umsetzen :D
Liferipper
19.03.2019, 18:34
Umsetzbar wären alle 3 Aktionen, allerdings ziemlich umständlich über Battle Events, was zum einen einigen Aufwand an Scripting und zum anderen bedeuten würde, dass die entsprechenden Events für jeden einzelnen Kampf (oder zumindest für alle Kämpfe, in denen sie auftreten können) übernommen werden müssten.
Ich bin viele
19.03.2019, 19:42
Sowas in der Art habe ich bereits versucht (Schritt 3 hab ich umgesetzt, jeweils ausserhalb und innerhalb von kämpfen). Leider hab ich gerade keine Idee wie man Schritt 2 so umsetzen könnte, da ich nicht genau weiß wie man dem normalen Angriff ein Element zuweisen kann :P
Liferipper
19.03.2019, 21:11
Leider hab ich gerade keine Idee wie man Schritt 2 so umsetzen könnte, da ich nicht genau weiß wie man dem normalen Angriff ein Element zuweisen kann :P
Geht soweit ich weiß auch nicht direkt. Allerdings lässt sich der Effekt (mit einigem Aufwand!) simulieren:
Zunächst einmal legst du jede Waffe mehrmals an: Einmal in der normalen Version und (je) einmal mit dem(/jedem) zuweisbaren Element(en). Also z.B. Kurzschwert, Kurzschwert mit Eisattribut, Kurzschwert mit Donnerattribut usw.
Vor jedem Kampf startetst du ein Common Event, das überprüft, welche (attributlose) Waffe jeder Held gerade ausgerüstet hat und speicherst das in Variablen. Z.B. if Alex Kurzschwert equipped then set Variable 1234 1, else if Alex Langschwert equipped then set Variable 1234 2, else... (Die Ausrüstung lässt sich im Kampf leider nicht mit Conditional Branch abfragen).
Dann machst du aus dem Elementzuweisungsskill einen Switch-Skill.
Im Kampf fügst du dann ein Event hinzu, dass startet, sobald der Switch aktiviert ist. Dieses Event ersetzt die aktuell ausgerüstete Waffe aller Helden (ich habe keine Idee, wie man den Effekt auf einen einzelnen Helden anwenden könnte Edit: Ok, ich habe doch eine Idee, aber das würde das Ganze noch umständlicher machen...) mit der elementaren Version (z.B. if Variable 1234 is 1, then Alex Kurzschwert mit Eisattribut equip, else if Variable 1234 is 2 then Alex Langschwert mit Eisattribut equip, else...).
Nach dem Kampf startest du ein weiteres Common Event, das ausgerüstete elementaren Waffen wieder durch die gewöhnlichen Varianten ersetzt und die elementaren Varianten anschließend aus dem Inventar wirft (if Alex Kurzschwert mit Eisattribut equipped, then Change Equipment Alex Kurzschwert equip, then Change Items Kurzschwert mit Eisattribut remove, else if Alex Kurzschwert mit Donneratribut equipped...).
Wie gesagt, machbar aber ziemlich aufwendig.
Ich bin viele
19.03.2019, 22:07
Super, danke!
Es funktioniert tadellos! Es handelt sich zum Glück nur um ein Element und der Zauber ist sowieso nur auf den Wirker anwendbar, also ist es nicht soo viel Arbeit ;D
Hey Leutz,
ich arbeite mit dem RPG Maker VX Ace und habe ein Problem (offensichtlich):
Da ich die VX-Grafiken verabscheue, und damit auch diese Minichars, benutze ich XP-Grafiken.
Leider gibt es da ein Problem mit den Tiles die in der Database mit einem Stern markiert sind (siehe Bild im Spoiler).
https://i.ibb.co/mJjsmTr/Mit-dem-Kopf-durch-den-Zaun.png (https://imgbb.com/) Aua, aua...
Sollte es dafür ein Script geben, wäre ich sehr dankbar wenn mir das jemand verlinken könnte.
Denn leider weiß ich nicht, wie ich dies betiteln soll damit google mir kompetente Links gibt und allgemeine Scriptsuche mit Selbstfilterung hat auch nichts hilfreiches ergeben.
Ich bin viele
26.03.2019, 18:28
Hey Leute :)
Ich hab mal wieder eine Frage (vielleicht sollte ich mal meinen eigenen Fragenthread eröffnen :P):
Es handelt sich um den RM2k3.
Ich möchte dem Spieler eine gewisse Freiheit bieten und so hab ich mich entschlossen den Spieler entscheiden zu lassen ob er lieber einen Schwertkämpfer oder einen Magier spielen will. Dafür hab ich 2 Waffenkategorien für den Helden angelegt, nämlich Schwerter und Stäbe. Nun will ich aber, da es sonst einfach zu unbalanced wäre wenn nur die Intelligenz bei Stäben angehoben wird, dass die maximale Mana ebenfalls angehoben wird (Stab 1 +5 max Mana, Stab 2 +10 max Mana usw.). Ich weiß zwar wie ich bewerkstellige dass die max Mana angehoben werden, jedoch nicht wie es geht die Mana wieder in den Urspungszustand zurückzuversetzen wenn der Stab deeqipped oder ein Schwert equipped wird.
Ich hoffe diesmal findet sich eine etwas leichtere Lösung, sonst verliere ich allmälich den Glauben an den 2k3 :D
Caledoriv
26.03.2019, 18:54
@ Agura:
Ohne mich jetzt mit dem ACE auszukennen, behaupte ich einfach mal, dass der Stern bedeutet, dass das "über" dem Helden angezeigt wird. D.h. wenn du jetzt auf die andere Seite des Zauns gehst, wird er korrekt über dem Helden angezeigt.
Ein möglicher Workaround wäre, die obere Reihe des Zauns komplett durch Events darzustellen. Diese haben je zwei Event Pages:
- Seite A wird über dem Helden angzeigt
- Seite B wird unter dem Helden angezeigt und hat einen Switch "Held südlich vomo Zaun" als Bedingung
Dann musst du nur noch sicherstellen, dass dieser Switch immer richtig gesetzt ist (d.h. sobald der Held sich in den Bereich nördlich bzw. südlich vom Zaun bewegt / teleportiert, wird der Switch entsprechend gesetzt).
@ Ich bin viele:
Ein eigenes Kampfsystem wirkt da Wunder ;). Da kannst du nämlich alle Werte selbst bestimmen und auch sowas wäre leicht machbar.
Was vielleicht irgendwie gehen könnte, wäre Folgendes: Du gehts vor jedem Kampf (bzw. nach jedem Menüaufruf) einmal das Equipment der Helden durch und hast für jeden Stab eine Variable, die den Manabonus für diesen Stab festlegt. Außerdem eine Variable für den Grundwert des Manas des Helden (ohne Gegenstände) und für den aktuellen Wert (d.h. mit Bonus). Das muss entsprechend in einem riesigen If-Grab wieder alles abgefragt und geupdated werden. Und ggf. bei Level-Ups, sofern du da die normalen EXP und Leveleinstellungen des Makers benutzt...
Linksawakening
26.03.2019, 19:16
@Ich bin viele: Ohne es getestet zu haben, bin ich der Überzeugung, dass der 2k3 bereits über das "Job" System verfügt, mit dem du in der Lage sein solltest diese Unterschiede
abzubilden - eventuell kennt sich ja jmd hier ausreichend damit aus um das genauer erläutern zu können.
Im deutschen müsste das Ganze dan unter "Klassen" o. ä. laufen - wenn du dort verschiedene Klassen definierst (mage, Warri, etc.) sollte es möglich sein, beim Waffenwechsel den
Wechsel der Klasse ebenfalls zu automatisieren ...
@ Agura:
Ohne mich jetzt mit dem ACE auszukennen, behaupte ich einfach mal, dass der Stern bedeutet, dass das "über" dem Helden angezeigt wird. D.h. wenn du jetzt auf die andere Seite des Zauns gehst, wird er korrekt über dem Helden angezeigt.
Ein möglicher Workaround wäre, die obere Reihe des Zauns komplett durch Events darzustellen. Diese haben je zwei Event Pages:
- Seite A wird über dem Helden angzeigt
- Seite B wird unter dem Helden angezeigt und hat einen Switch "Held südlich vomo Zaun" als Bedingung
Dann musst du nur noch sicherstellen, dass dieser Switch immer richtig gesetzt ist (d.h. sobald der Held sich in den Bereich nördlich bzw. südlich vom Zaun bewegt / teleportiert, wird der Switch entsprechend gesetzt).
Dem bin ich mir bewusst, Beidem. Ich weiß, was der Stern macht, wenn ich vor dem Zaun stehe, ist falsch, aber man (oder Tier) soll ja auch hinter dem Zaun stehen können.
Deine Idee mit dem Events ist mir auch gekommen, aber wie ich bereits sagte, will ich meine Maps nicht mit so vielen aktiven Events bombadieren. Ausßerdem ist das dann immer vom Helden abhängig. Das heißt, dass wenn der Held unter dem Zaun steht, alle anderen AUF dem Zaun sind, das gilt dann für Tiere oder evtl. folgenden Helden.
Desswegen ja ein Script, das mittels einem Terrain Tag bescheid weiß, wie er das für die entsprechenden einzelnen Events berechnen muss.
Trotzdem vielen Dank für deine Hilfe. ;)
Hallo Agura,
Beim Maker haben die "*-Tiles" leider immer einen fixen Z-Wert, der so eingestellt ist, dass er über dem Charakter steht.
Ich wollte dir gerade ein Script schreiben, welches den Z-Wert anhand der Position/Größe anpasst, als ich merkte, dass es da etwas gibt (gut, dass ich immer selbst google, bevor ich loslege):
Quelle: https://save-point.org/thread-4971.html
#==============================================================================
#
# ▼ Moby's Script System - Correct Sprite Display V1.0
# -- Last Updated: 2013.01.26
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["MSS-Correct_Sprite_Display"] = 1.0
#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# (by brushfe) Tall events interact better with other tall events
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script corrects how sprites will be displayed, to prevent errors
# happening when the sprite is higher than 32px and the tile above it is set
# to star passability.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
#
#
# If you have any questions, bugs you want to report or anything else,
# please contact me at mobychan@gmx.de or via my profile on
# http://forums.rpgmakerweb.com (mobychan).
#
#
# This script is Plug and Play.
# It automatically checks if the Sprite is bigger then 32px and adjust the
# tiles around that sprite accordingly.
# If you're using Anaryu's Particle Engine (ported by Yami)
# there won't be any issues.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================
#
#==============================================================================
# ▼ Known Issues
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Really wide character sprites still are sometimes drawn behind tiles they
# should be in front of.
#==============================================================================
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc. It's used
# within the Scene_Map class.
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Update Character Sprite
#--------------------------------------------------------------------------
alias msscsd_update_characters update_characters unless $@
def update_characters
msscsd_update_characters
@character_sprites.each do |curr_sprite|
if curr_sprite.character.class.name == "Game_Event" ||
curr_sprite.character.class.name == "Game_Player" ||
curr_sprite.character.class.name == "Game_Follower"
height = get_height(curr_sprite)
if height > 1
x = curr_sprite.character.x
curr_sprite.z = 100
id = $game_map.data[x, curr_sprite.character.y, 2]
flag_pos = $game_map.tileset.flags[id]
if (!(flag_pos & 0x10 != 0) || id == 0)
for i in 2..height
y = curr_sprite.character.y - (i - 1)
if !$game_map.data[x, y, 2].nil?
flag = $game_map.tileset.flags[$game_map.data[x, y, 2]]
if flag & 0x10 != 0 && # [☆]: No effect on passage
$game_map.data[x, y, 2] != 0
curr_sprite.z = 300
break
else
curr_sprite.z = 100
end
loc = [curr_sprite.character.x, curr_sprite.character.y - 1]
$game_map.events_xy(*loc).each do |event|
if curr_sprite.character.class.name == "Game_Player" ||
curr_sprite.character.class.name == "Game_Follower" ||
curr_sprite.character.class.name == "Game_Event"
curr_sprite.z = 300
break
end
end
end
end
end
end
end
end
end
#--------------------------------------------------------------------------
# * Gets the given Sprites height
#--------------------------------------------------------------------------
def get_height(curr_sprite)
height = 0
if curr_sprite.character.character_name.scan(/$/)
height = (curr_sprite.bitmap.height / 4) / 32
height += 1 if (curr_sprite.bitmap.height / 4) % 32 > 0
else
height = (curr_sprite.bitmap.height / 8) / 32
height += 1 if (curr_sprite.bitmap.height / 8) % 32 > 0
end
return height
end
#--------------------------------------------------------------------------
# * Add Particle
#--------------------------------------------------------------------------
def add_particle(target, name, blend, setting, offset, v = nil, a = nil)
particle = Particle.new(@viewport2, target, name, blend, setting, offset, v, a)
@particles.push(particle)
end
end
Sollte etwas nicht funktionieren, gib mir gerne Bescheid. Bei Zeiten kann ich mir das Script anschauen und anpassen, falls nötig.
Hallo Linkey,
Vielen Dank für das Raussuchen, ich hab beim besten Willen selbst nichts finden können. x.X
Das Script funktioniert FAST perfekt. Es tut was es tun soll, aber wenn ich an den Zaun vorbeilaufe, kommt an den Ecken zu Problemen:
Wenn das Event (z.B. der Held) von dem Tile seitlich wegläuft, wird das Tile wieder nach oben befördert.
https://i.ibb.co/g7P9KKm/Mit-dem-Kopf-durch-den-Zaun-2.png (https://imgbb.com/)
Mit häufigen Versuchen hab ich kontrolliert, ob das bei den Followern auch der Fall ist, aber nein, es ist nur für das Event, das das Tile gerade verlässt.
Moin Agura,
hab mal schnell zwei Dinge eingebaut:
1. Wenn der Charakter breiter als 32 Pixel ist, werden nun auch die benachbarten Felder geprüft
2. Wenn der Charakter über einer Grafik angezeigt wird (z.B. Zaun) und sich bewegt, bleibt er solange im Vordergrund, bis er das nächste Feld erreicht hat
#==============================================================================
#
# ▼ Moby's Script System - Correct Sprite Display V1.0
# -- Last Updated: 2013.01.26
#
# -- Update: LDT0319
# -- Date: 2019.03.30
# -- User: D.T. Linkey
# -- Change: If character is wider than 1 tile, check neighbour fields to
# the correct Z-Value
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["MSS-Correct_Sprite_Display"] = 1.0
#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# (by brushfe) Tall events interact better with other tall events
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script corrects how sprites will be displayed, to prevent errors
# happening when the sprite is higher than 32px and the tile above it is set
# to star passability.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
#
#
# If you have any questions, bugs you want to report or anything else,
# please contact me at mobychan@gmx.de or via my profile on
# http://forums.rpgmakerweb.com (mobychan).
#
#
# This script is Plug and Play.
# It automatically checks if the Sprite is bigger then 32px and adjust the
# tiles around that sprite accordingly.
# If you're using Anaryu's Particle Engine (ported by Yami)
# there won't be any issues.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================
#
#==============================================================================
# ▼ Known Issues
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Really wide character sprites still are sometimes drawn behind tiles they
# should be in front of.
#==============================================================================
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc. It's used
# within the Scene_Map class.
#==============================================================================
class Spriteset_Map
#LDT0319 flag to check if character was in front of something before moving
@chinfr = false
#--------------------------------------------------------------------------
# * Update Character Sprite
#--------------------------------------------------------------------------
alias msscsd_update_characters update_characters unless $@
def update_characters
msscsd_update_characters
@character_sprites.each do |curr_sprite|
if curr_sprite.character.class.name == "Game_Event" ||
curr_sprite.character.class.name == "Game_Player" ||
curr_sprite.character.class.name == "Game_Follower"
height = get_height(curr_sprite)
#========LDT0319 Start
#get character width
width = get_width(curr_sprite)
#if character is moving and was already in front, keep z = 300
if(curr_sprite.character.class.name == "Game_Player")
if(curr_sprite.character.moving? && @chinfr)
curr_sprite.z = 300
return
end
end
#========LDT0319 End
if height > 1
x = curr_sprite.character.x
curr_sprite.z = 100
id = $game_map.data[x, curr_sprite.character.y, 2]
flag_pos = $game_map.tileset.flags[id]
if (!(flag_pos & 0x10 != 0) || id == 0)
for i in 2..height
y = curr_sprite.character.y - (i - 1)
if !$game_map.data[x, y, 2].nil?
flag = $game_map.tileset.flags[$game_map.data[x, y, 2]]
if flag & 0x10 != 0 && # [☆]: No effect on passage
$game_map.data[x, y, 2] != 0
curr_sprite.z = 300
break
else
#========LDT0319 Start
#check if width is greater than one tile
if(width > 1)
# for each additional tile, check the field
for ti in 2..width
# check the field on the left first...
tx = curr_sprite.character.x - (ti - 1)
if(!$game_map.data[tx, y, 2].nil?)
flag = $game_map.tileset.flags[$game_map.data[tx, y, 2]]
if flag & 0x10 != 0 && # [☆]: No effect on passage
$game_map.data[tx, y, 2] != 0
curr_sprite.z = 300
break
else
curr_sprite.z = 100
end
end
# ... check the field on the right
tx = curr_sprite.character.x + (ti - 1)
if(!$game_map.data[tx, y, 2].nil?)
flag = $game_map.tileset.flags[$game_map.data[tx, y, 2]]
if flag & 0x10 != 0 && # [☆]: No effect on passage
$game_map.data[tx, y, 2] != 0
curr_sprite.z = 300
break
else
curr_sprite.z = 100
end
end
end
else
curr_sprite.z = 100
end
#========LDT0319 End
end
loc = [curr_sprite.character.x, curr_sprite.character.y - 1]
$game_map.events_xy(*loc).each do |event|
if curr_sprite.character.class.name == "Game_Player" ||
curr_sprite.character.class.name == "Game_Follower" ||
curr_sprite.character.class.name == "Game_Event"
curr_sprite.z = 300
break
end
end
end
end
end
end
end
#========LDT0319 if character is in front, set chinfr to true
@chinfr = true if(curr_sprite.z == 300 && curr_sprite.character.class.name == "Game_Player")
@chinfr = false if(curr_sprite.z == 100 && curr_sprite.character.class.name == "Game_Player")
end
end
#--------------------------------------------------------------------------
# * Gets the given Sprites height
#--------------------------------------------------------------------------
def get_height(curr_sprite)
height = 0
if curr_sprite.character.character_name.scan(/$/)
height = (curr_sprite.bitmap.height / 4) / 32
height += 1 if (curr_sprite.bitmap.height / 4) % 32 > 0
else
height = (curr_sprite.bitmap.height / 8) / 32
height += 1 if (curr_sprite.bitmap.height / 8) % 32 > 0
end
return height
end
#========LDT Start
def get_width(curr_sprite)
width = 0
if curr_sprite.character.character_name.scan(/$/)
width = (curr_sprite.bitmap.width / 3) / 32
width += 1 if (curr_sprite.bitmap.width / 3) % 32 > 0
else
width = (curr_sprite.bitmap.width / 12) / 32
width += 1 if (curr_sprite.bitmap.width / 12) % 32 > 0
end
return width
end
#========LDT End
#--------------------------------------------------------------------------
# * Add Particle
#--------------------------------------------------------------------------
def add_particle(target, name, blend, setting, offset, v = nil, a = nil)
particle = Particle.new(@viewport2, target, name, blend, setting, offset, v, a)
@particles.push(particle)
end
end
Allerdings gibt es auch mit dieser Lösung ein Problem: Der Charakter steht entweder vor oder hinter den Grafiken. Wenn auf deinem Bild nun ein Turm über die Füße deines Charakters ragen würde, würden die Füße über dem Turm angezeigt werden.
Darauf musst du dann beim Mappen achten :D
Moin Agura,
hab mal schnell zwei Dinge eingebaut:
1. Wenn der Charakter breiter als 32 Pixel ist, werden nun auch die benachbarten Felder geprüft
2. Wenn der Charakter über einer Grafik angezeigt wird (z.B. Zaun) und sich bewegt, bleibt er solange im Vordergrund, bis er das nächste Feld erreicht hat
[..]
Allerdings gibt es auch mit dieser Lösung ein Problem: Der Charakter steht entweder vor oder hinter den Grafiken. Wenn auf deinem Bild nun ein Turm über die Füße deines Charakters ragen würde, würden die Füße über dem Turm angezeigt werden.
Darauf musst du dann beim Mappen achten :D
Zu 1 & 2: Super, dankeschön. Allerdings wurde das mit dem Follower wohl falsch verstanden: Wenn der Follower das Tile betritt ist alles super, wenn diese allerdings das Tile verlässt, besteht das alte Problem immer noch.
Zu deinem angesprochen Porblem: Ja... das gilt nicht nur für einen Turm, sondern auch für Bäume, leider... Kann man mit arbeiten, allerdings gibt es den Fehler in einer anderen Form nochmal, welcher ebenfalls versucht werden muss zu umgehen oder noch gefixt werden muss.
https://i.ibb.co/XpM1p8J/Ins-Gesicht.png (https://imgbb.com/) Selten, aber schmerzhaft.
Es handelt sich dabei um ein Event, das ich versuchshalber am Zaun langlaufen ließ.
Hallo Agura,
schmeiß das alte Script weg und nimm das hier, das funktioniert besser:
##-----------------------------------------------------------------------------
# Large Sprite ☆ Display Fix v1.3
# Created by Neon Black at request of seita
# v1.4 - 12.18.14 - Added position tuning
# v1.3 - 1.12.14 - Viewport/position issue fixes
# v1.1 - 8.18.13 - Fixed an odd lag issue
# v1.0 - 8.17.13 - Main script completed
# For both commercial and non-commercial use as long as credit is given to
# Neon Black and any additional authors. Licensed under Creative Commons
# CC BY 4.0 - http://creativecommons.org/licenses/by/4.0/
##-----------------------------------------------------------------------------
# -- Update: LDT0319
# -- Date: 2019.03.30
# -- User: D.T. Linkey
# -- Change: Enabled Game_Followers too
##------
## By default, this script only affects the player. To allow it to affect
## an event page as well, add a comment with the tag <large sprite> to the page
## of the event you would like to have affected by this.
class Sprite_Character < Sprite_Base
##------
## The ID of the terrain used to display the large character above ☆ tiles.
## If the player is below this tile (y position), the sprite will appear
## above all tiles and events from that y position up. If the player is on
## the same tile or above (y position) the event will appear BELOW ☆ tiles
## from that position up.
##------
UpperTerrain = 7
##------
## This value is the pixel tuning used to check the location. This is
## because characters tagged with a '!' in their name are drawn lower than
## normal characters and are considered to be lower than these. This causes
## the script to think they are on the tile below where they really are and
## draw them above tiles they should appear under.
##------
Tuning = -1
alias :cp_011214_update_bitmap :update_bitmap
def update_bitmap(*args)
if graphic_changed? && @set_upper_area_sprite
@force_no_gfx_change = true
else
@force_no_gfx_change = false
end
cp_011214_update_bitmap(*args)
end
## Alias the update method to add in the new graphic check.
alias :cp_073013_update_pos :update_position
def update_position(*args)
cp_073013_update_pos(*args)
check_encompassed_area if sprite_is_onscreen?
end
## Alias the dispose to dispose the upper sprite.
alias :cp_073013_dispose :dispose
def dispose(*args)
@upper_area_sprite.dispose if @upper_area_sprite
cp_073013_dispose(*args)
end
#~ ## Alias the graphic changed method to allow the sprite to revent to what it
#~ ## was during the last frame. This allows the check to work again.
#~ alias :cp_073013_graphic_changed? :graphic_changed?
#~ def graphic_changed?(*args)
#~ cp_073013_graphic_changed?(*args) || @set_upper_area_sprite
#~ end
## Check if the sprite is onscreen. Reduces redundant drawing.
def sprite_is_onscreen?
#LDT0319 enabled game_follower
return false if @character.is_a?(Game_Vehicle)
return false unless @character.is_a?(Game_Player) || @character.is_a?(Game_Follower) || @character.large_sprite
return false if @character.screen_z >= 200
top_left, bot_right = get_edge_corner_dis
return false if top_left[0] > Graphics.width
return false if top_left[1] > Graphics.height
return false if bot_right[0] < 0
return false if bot_right[1] < 0
return true
end
## Get the top left and bottom right positions.
def get_edge_corner_dis
top_left = [self.x - self.ox, self.y - self.oy]
bot_right = [top_left[0] + self.width, top_left[1] + self.height]
return [top_left, bot_right]
end
## Long method that checks each position and draws the upper sprite.
def check_encompassed_area
if @set_upper_area_sprite && !@force_no_gfx_change
old_src = self.src_rect.clone
self.bitmap = @old_bitmap
self.src_rect = old_src
end
@set_upper_area_sprite = false
top_left, bot_right = get_edge_corner_dis
last_x, last_y, copy_region = nil, nil, 0
map_xd, map_yd = $game_map.display_x * 32, $game_map.display_y * 32
total_height = (self.height + @character.jump_height).round
self.width.times do |x|
xp = map_xd.to_i + top_left[0] + x
unless xp / 32 == last_x
last_x = xp / 32
last_y, copy_region = nil, 0
total_height.times do |y|
yp = map_yd.to_i + bot_right[1] + @character.jump_height - y + Tuning
next if yp.to_i / 32 == last_y
last_y = yp.to_i / 32
if last_y == (@character.screen_y + @character.jump_height + Tuning +
map_yd).to_i / 32
break if $game_map.terrain_tag(last_x, last_y) == UpperTerrain
next
end
next if $game_map.terrain_tag(last_x, last_y) != UpperTerrain
copy_region = [self.height, total_height - y + 1].min
set_upper_sprite
break
end
end
next if copy_region == 0
rect = Rect.new(src_rect.x + x, src_rect.y, 1, copy_region)
@upper_area_sprite.bitmap.blt(x, 0, self.bitmap, rect)
self.bitmap.clear_rect(rect)
end
if !@set_upper_area_sprite && @upper_area_sprite
@upper_area_sprite.visible = false
end
end
## Creates the upper sprite that's a copy of the current sprite.
def set_upper_sprite
return if @set_upper_area_sprite
@upper_area_sprite ||= Sprite.new
@upper_area_sprite.bitmap = Bitmap.new(self.width, self.height)
props = ["x", "y", "ox", "oy", "zoom_x", "zoom_y", "angle", "mirror",
"bush_depth", "opacity", "blend_type", "color", "tone", "visible",
"viewport"]
props.each do |meth|
@upper_area_sprite.method("#{meth}=").call(self.method(meth).call)
end
@upper_area_sprite.z = 200
@set_upper_area_sprite = true
@old_bitmap, old_src_rect = self.bitmap, self.src_rect.clone
self.bitmap = Bitmap.new(@old_bitmap.width, @old_bitmap.height)
self.bitmap.blt(0, 0, @old_bitmap, @old_bitmap.rect)
self.src_rect = old_src_rect
end
end
class Game_Event < Game_Character
attr_reader :large_sprite
alias :cp_081713_setup_page_settings :setup_page_settings
def setup_page_settings(*args)
cp_081713_setup_page_settings(*args)
get_large_sprite_conditions
end
def get_large_sprite_conditions
@large_sprite = false
return if @list.nil? || @list.empty?
@list.each do |line|
next unless line.code == 108 || line.code == 408
case line.parameters[0]
when /<large sprite>/i
@large_sprite = true
end
end
end
end
Quelle: https://forums.rpgmakerweb.com/index.php?threads/large-sprite-%E2%98%86-display-fix.22243/
Mit diesem Script musst du die entsprechenden Tiles (z.B. den Zaun) auf Terrain-Tag 7 stellen.
Ich habe das Script noch kurz angepasst, sodass es nicht nur für den Helden, sondern auch für die Follower funktioniert.
Willst du Events ebenfalls korrekt anzeigen, musst du im Event einen Kommentar einfügen: <large sprite>
Hallo Linkey,
vielen Dank, dieses Script funktioniert wirklich besser. Ich muss jetzt nur noch auf eine Sache beim Mappen achten (siehe Spoiler), aber sonst ist alles gut.
Wenn du Zeit, Lust und Güte dafür hast, kannst du dir das vielleicht noch anschauen, aber sonst muss ich einfach etwas ummappen.
https://i.ibb.co/V2v6BbP/Baumaffen.png (https://imgbb.com/)
Nochmals: Vielen Dank. :A
Ist denn nur der Zaun auf Terrain 7 gestellt oder auch die Baumkrone? Und wie ist das ganze genau gemappt?
Nur der Zaun. Die Baumkrone ist mittels einem "Above Hero"-Event ohne sonstige Anmerkungen oder Befehlen realisiert worden.
Hey Agura,
ich habe es nun so erweitert, dass "above hero" events immer "on top" angezeigt werden:
##-----------------------------------------------------------------------------
# Large Sprite ☆ Display Fix v1.3
# Created by Neon Black at request of seita
# v1.4 - 12.18.14 - Added position tuning
# v1.3 - 1.12.14 - Viewport/position issue fixes
# v1.1 - 8.18.13 - Fixed an odd lag issue
# v1.0 - 8.17.13 - Main script completed
# For both commercial and non-commercial use as long as credit is given to
# Neon Black and any additional authors. Licensed under Creative Commons
# CC BY 4.0 - http://creativecommons.org/licenses/by/4.0/
##-----------------------------------------------------------------------------
# -- Update: LDT0319
# -- Date: 2019.03.30
# -- User: D.T. Linkey
# -- Change: Enabled Game_Followers too
##------
## By default, this script only affects the player. To allow it to affect
## an event page as well, add a comment with the tag <large sprite> to the page
## of the event you would like to have affected by this.
class Sprite_Character < Sprite_Base
##------
## The ID of the terrain used to display the large character above ☆ tiles.
## If the player is below this tile (y position), the sprite will appear
## above all tiles and events from that y position up. If the player is on
## the same tile or above (y position) the event will appear BELOW ☆ tiles
## from that position up.
##------
UpperTerrain = 7
##------
## This value is the pixel tuning used to check the location. This is
## because characters tagged with a '!' in their name are drawn lower than
## normal characters and are considered to be lower than these. This causes
## the script to think they are on the tile below where they really are and
## draw them above tiles they should appear under.
##------
Tuning = -1
alias :cp_011214_update_bitmap :update_bitmap
def update_bitmap(*args)
if graphic_changed? && @set_upper_area_sprite
@force_no_gfx_change = true
else
@force_no_gfx_change = false
end
cp_011214_update_bitmap(*args)
end
## Alias the update method to add in the new graphic check.
alias :cp_073013_update_pos :update_position
def update_position(*args)
cp_073013_update_pos(*args)
check_encompassed_area if sprite_is_onscreen?
end
## Alias the dispose to dispose the upper sprite.
alias :cp_073013_dispose :dispose
def dispose(*args)
@upper_area_sprite.dispose if @upper_area_sprite
cp_073013_dispose(*args)
end
#~ ## Alias the graphic changed method to allow the sprite to revent to what it
#~ ## was during the last frame. This allows the check to work again.
#~ alias :cp_073013_graphic_changed? :graphic_changed?
#~ def graphic_changed?(*args)
#~ cp_073013_graphic_changed?(*args) || @set_upper_area_sprite
#~ end
## Check if the sprite is onscreen. Reduces redundant drawing.
def sprite_is_onscreen?
#LDT0319 enabled game_follower & put "above hero" events always on top
self.z = 500 if(@character.is_a?(Game_Event) && @character.priority_type >= 2)
return false if @character.is_a?(Game_Vehicle)
return false unless @character.is_a?(Game_Player) || @character.is_a?(Game_Follower) || @character.large_sprite
return false if @character.screen_z >= 200
top_left, bot_right = get_edge_corner_dis
return false if top_left[0] > Graphics.width
return false if top_left[1] > Graphics.height
return false if bot_right[0] < 0
return false if bot_right[1] < 0
return true
end
## Get the top left and bottom right positions.
def get_edge_corner_dis
top_left = [self.x - self.ox, self.y - self.oy]
bot_right = [top_left[0] + self.width, top_left[1] + self.height]
return [top_left, bot_right]
end
## Long method that checks each position and draws the upper sprite.
def check_encompassed_area
if @set_upper_area_sprite && !@force_no_gfx_change
old_src = self.src_rect.clone
self.bitmap = @old_bitmap
self.src_rect = old_src
end
@set_upper_area_sprite = false
top_left, bot_right = get_edge_corner_dis
last_x, last_y, copy_region = nil, nil, 0
map_xd, map_yd = $game_map.display_x * 32, $game_map.display_y * 32
total_height = (self.height + @character.jump_height).round
self.width.times do |x|
xp = map_xd.to_i + top_left[0] + x
unless xp / 32 == last_x
last_x = xp / 32
last_y, copy_region = nil, 0
total_height.times do |y|
yp = map_yd.to_i + bot_right[1] + @character.jump_height - y + Tuning
next if yp.to_i / 32 == last_y
last_y = yp.to_i / 32
if last_y == (@character.screen_y + @character.jump_height + Tuning +
map_yd).to_i / 32
break if $game_map.terrain_tag(last_x, last_y) == UpperTerrain
next
end
next if $game_map.terrain_tag(last_x, last_y) != UpperTerrain
copy_region = [self.height, total_height - y + 1].min
set_upper_sprite
break
end
end
next if copy_region == 0
rect = Rect.new(src_rect.x + x, src_rect.y, 1, copy_region)
@upper_area_sprite.bitmap.blt(x, 0, self.bitmap, rect)
self.bitmap.clear_rect(rect)
end
if !@set_upper_area_sprite && @upper_area_sprite
@upper_area_sprite.visible = false
end
end
## Creates the upper sprite that's a copy of the current sprite.
def set_upper_sprite
return if @set_upper_area_sprite
@upper_area_sprite ||= Sprite.new
@upper_area_sprite.bitmap = Bitmap.new(self.width, self.height)
props = ["x", "y", "ox", "oy", "zoom_x", "zoom_y", "angle", "mirror",
"bush_depth", "opacity", "blend_type", "color", "tone", "visible",
"viewport"]
props.each do |meth|
@upper_area_sprite.method("#{meth}=").call(self.method(meth).call)
end
@upper_area_sprite.z = 200
@set_upper_area_sprite = true
@old_bitmap, old_src_rect = self.bitmap, self.src_rect.clone
self.bitmap = Bitmap.new(@old_bitmap.width, @old_bitmap.height)
self.bitmap.blt(0, 0, @old_bitmap, @old_bitmap.rect)
self.src_rect = old_src_rect
end
end
class Game_Event < Game_Character
attr_reader :large_sprite
alias :cp_081713_setup_page_settings :setup_page_settings
def setup_page_settings(*args)
cp_081713_setup_page_settings(*args)
get_large_sprite_conditions
end
def get_large_sprite_conditions
@large_sprite = false
return if @list.nil? || @list.empty?
@list.each do |line|
next unless line.code == 108 || line.code == 408
case line.parameters[0]
when /<large sprite>/i
@large_sprite = true
end
end
end
end
Hallo Linkey,
Absolut perfekt, on top, top notch, (insert another "top"-Joke her).
Vielen, vielen Dank. :A
Hallo ich weiß nicht ob ich hier richtig bin, aber ich versuchs einfach mal:
Wenn ich meine RPGs spiele dann kommt es bei manchen vor, dass der Bildschirm immer mal wieder zwischendrin für einen kurzen Moment schwarz wird nur für 1-2 Sekunden, in Kämpfen kann sich das manchmal auch häufen.
Ist mein PC dafür zu modern? Früher war das nie so. Leider weiß ich nicht so genau wann es anfing das geht schon ne Weile so.
Also ich rede von Spielen wie VD, VD2, Der Brief für den König, Zauberer und Prinzessin usw..
Ich wäre das gerne los.
Hallo ihr guten Frauen und Männer der Technik, ich habe leider wieder ein Problem. Da ich leider keinerlei Rubyerfahrung habe, kann ich das Problem auch nicht selber lösen.
Folgendes: Ich verwende den Vx-Ace und das Pop-Up-Message-Script von Yami. Da diese/r allerdings die Scripts nicht mehr aktuell hällt, bzw. diese von der Seite aus nicht mehr zu finden sind, musste ich eine zufällige Version nehmen. Diese hat allerdings noch einen gravierenden Fehler.
25229
Wie man sehen kann, ist die Textbox wesentlich größer, als sie sein muss. Wenn man sich das ganze im Maker ansieht, habe ich eine Vermutung.
25230
Ich gehe davon aus, dass es sich um die Befehle handelt welche dafür da sind, um die Textbox über den NPC anzeigen zu lassen und um den Namen in einer seperaten Box dazustellen.
Anscheinend werden beim berechnen der Textboxbreite ALLE Zeichen mitgenommen, so auch die Befehle.
def cal_width_line(text)
result = 0
text.each_line { |line|
result = text_size(line).width if result < text_size(line).width
}
return result
end
Das ist der Ausschnitt vom Script, der die Breite berechnet. Ich weiß, dass man das mit regulären Ausdrücken rausfiltern kann. Wie gesagt, ich habe keine Rubyerfahrung und weiß daher nicht, wie ich das implementieren muss.
Den regulären Ausdruck kann ich liefern:
\\[a-z]{1,3}[\[<][\w\säöüÄÖÜß]+[\]>]
Kann mir jemand den kompetent einarbeiten? Wenn das komplette Skript gebraucht, kann ich das gerne liefern.
Allternativ kann man mir auch einfach die aktuellste Version von Yamis Skript geben. ^^'
Ich bedanke mich schon mal im Vorraus.
So, ich hab auch mal wieder eine Frage, zu der Funktion "Shop Processing" im Eventmodus des 2k3. :)
Mein Vorhaben:
Ich habe im Spiel einen Händler erstellt.
Dieser soll einem nur spezielle Items abkaufen, die sonst kein Händler im Ankauf annehmen würde (in diesem Fall Kristalle und Edelsteine, er ist ein ehemaliger Minenarbeiter).
Wie kann ich das vom Eventcode her lösen?
Meine Idee war die Option "Sell Only" zu nehmen, aber dann könnte ich ihm ja auch alles andere verkaufen, was ich nicht will.
Habt ihr Lösungsvorschläge? :)
Mit dem Standard-Shop geht es nicht. Du könntest aber ein eigenes Event schreiben, mit dem die Gegenstände per "Show Choices" verkauft werden können.
WildGuess
03.02.2021, 15:18
(Ohne Gewähr)
Ich glaube zwar, dass das im 2k3 möglich, aber aufwendig ist. Hoffentlich hat hier jemand eine bessere Idee.
Soweit ich weiß, ist der Verkauf immer direkt abhängig von deinem tatsächlichen Inventar. Also muss man direkt das Inventar modifizieren.
Wenn du unbedingt dss Shopmenü anzeigen willst und das dir den Aufwand Wert ist, würde ich:
1. Alle Gegenstände im Inventar als Variablen abspeichern,
2. Alle Gegenstände abseits der Edelsteine entfernen
3. Nach Verkaufsabschluss alle Gegenstände wieder hinzufügen, abseits der Edelsteine.
Wenn du das so machst, würde ich noch vorschlagen, dass du die Abwicklung in ein CommonEvent packst, damit du einen schnellen Blick auf den Codewulst hast, wenn du ein neues Item einfügst.
Andernfalls kannst du dir die Frage stellen, ob der Shopbildschirm überhaupt notwendig ist, gerade im Fall, falls es keinen anderen Nutzen für die Steine geben sollte, als sie zu verkaufen.
In dem Fall würde:
1. Einfache Dialogauswahl mit "Edelsteine verkaufen"
2. "Du hast \[n] viele Rubine, etc gesammelt. Insgesamt bin ich bereit für die Menge x$ zu zahlen"
3. Alle Edelsteine aus dem Inventar entfernen
oder so wie Kelven es gerade auch vorgeschlagen hat.
Mit dem Standard-Shop geht es nicht. Du könntest aber ein eigenes Event schreiben, mit dem die Gegenstände per "Show Choices" verkauft werden können.
Das ist eine einfache, super Idee! So werde ich es probieren! Danke dir und danke WildGuess!
Nochmal eine Frage, dieses Mal zum KS vom 2k3... wie kann ich dafür sorgen, dass Gegner im KS nach einer gewissen Situation / Rundenzahl Verstärkung rufen? Stehe gerade irgendwie auf dem Schlauch und finde die Option dafür nicht... :/
Inselmanager
14.02.2021, 16:07
Nochmal eine Frage, dieses Mal zum KS vom 2k3... wie kann ich dafür sorgen, dass Gegner im KS nach einer gewissen Situation / Rundenzahl Verstärkung rufen? Stehe gerade irgendwie auf dem Schlauch und finde die Option dafür nicht... :/
Du musst den Gegner zuerst ausblenden. Dazu klickst du einfach unter "Troops" mit der rechten Maustaste auf ihn und wählst "Appear Midway" aus. Mit dem Battle Event "Enemy Encounter" lässt du ihn dann während des Kampfes auftauchen. Unter "Conditions" stellst du ein, wann das passieren soll. Willst du ihn z.B. nach 5 Runden auftauchen lassen, machst du ein Häkchen bei "Turn No." und gibst "0x + 5" ein.
Ich mache da jetzt einfach mal n Doppelpost draus:
Vor dem legalen RPGMaker 2003, der 2015 rauskam, gab es doch per DynRPG / PlugIn /whatever eine Möglichkeit, den klassischen Titelscreen durch direkten Sprung auf eine Map zu ersetzen. Damit hab ich mir damals einen individuellen Titelscreen gemacht, den es mir nach dem Port auf die legale Variante zerschossen hat.
Geht das noch irgendwie mit dem legalen Maker? Oder bin ich als Entwickler an das klassische Startinterface gebunden?
Danke im Voraus für eine Antwort. :)
IndependentArt
18.02.2021, 12:28
Diesen Haken rausnehmen:
https://i.ibb.co/xmb7XZG/Unbenannt.png
Fand ich auch sehr .... "offensichtlich".
Aua... das hätte ich mir eigentlich denken können (im Nachhinein ergibt es Sinn!), aber da bin ich wie ein Maulwurf dran durch^^
Danke dir!
Nagasaki
18.02.2021, 12:44
So wie von IndependentArt beschrieben. Allerdings eventuell noch Folgendes beachten.
https://cherryshare.at/t/fMvr51 (https://cherryshare.at/f/fMvr51)
Sofern du die Testplay Funktion im Maker nutzt, ist an der Stelle wichtig, den Title Screen zu aktivieren. Sonst wird statt deinem selbsterstelltem Titelbild automatisch das Lademenü aufgerufen. Beim Starten über die exe ist das natürlich egal.
Man kann aber natürlich einfach ESC drücken im Lademenü. Es ist für den Test nämlich ganz nützlich.
Zum Thema "offensichtlich": ich hab versucht, mich an die existierenden Konventionen zu halten, Frames werden ja auf dieselbe Weise aktiviert oder deaktiviert (in System 2).
Aber lies sonst vielleicht auch noch mal den Changelog, da hab ich all diese Änderungen auch reingeschrieben: http://tinyurl.com/rm2003cl
Man kann aber natürlich einfach ESC drücken im Lademenü. Es ist für den Test nämlich ganz nützlich.
Zum Thema "offensichtlich": ich hab versucht, mich an die existierenden Konventionen zu halten, Frames werden ja auf dieselbe Weise aktiviert oder deaktiviert (in System 2).
Aber lies sonst vielleicht auch noch mal den Changelog, da hab ich all diese Änderungen auch reingeschrieben: http://tinyurl.com/rm2003cl
Danke für den Link, Cherry! Bin gerade dabei mich durchzulesen. :)
Was meinst du mit den Frames genauer?
Gibt es die Möglichkeit manche Begriffe wie Nickname, Class, usw. zu übersetzen? Irgendwie finde ich die Möglichkeit dafür in meiner Database nicht... (hab schon alles von Glossary 1-5 abgesucht)
Danke!
Mit Frames meinte ich die in ihrer aktuellen Form leider ziemlich merkwürdige Funktion, eine Grafik der Ressourcenart "Frame" permanent über das ganze Spiel zu legen (unter System2). Übrigens haben Frame-Ressourcen auch noch eine zweite Einsatzmöglichkeit, nämlich können sie als Kampfhintergrund verwendet werden, der dann auch horizontal oder vertical scrollen und loopen kann. (mMn entstand das aus einer nicht so idealen Kommunikation der Requirements zwischen Enterbrain und dem neuen Entwickler den sie damals für den 2k3 geholt hatten, genauso wie ein paar andere merkwürdige Funktionen, wirkt zumindest stark so)
Begriffe: Nein das geht leider nach wie vor über Resource Hacker oder ähnliche Tools.
Okay, das beantwortet meine Fragen, danke! :)
Nun habe ich schon wieder eine neue, wer auch immer das weiß, vielen Dank! :)
Und zwar will ich ein Artwork als Panorama importieren, allerdings hat der Künstler von damals das Bild hochkant gemalt,
sodass es nach Verkleinerung gerade eben nun 320x480 groß ist.
Nun gefällt mir das Werk so gut, dass ich es dennoch verwenden möchte.
Weiter zuschneiden ist nicht möglich.
Kann ich das trotz dieser Größe bedenkenlos importieren und darstellen ohne den 2k3 zu sprengen? Denn diese Maße sind ja Übergröße UND nicht im richtigen Verhältnis.^^
IndependentArt
20.02.2021, 20:00
Ja, sollte er problemlos darstellen. Um das ganze Artwork zu zeigen musst du dann natürlich drüber scrollen. ;) Bzw. das Artwork scrollen lassen.
Ja, sollte er problemlos darstellen. Um das ganze Artwork zu zeigen musst du dann natürlich drüber scrollen. ;)
Danke dir! Ja, das hatte ich dann auch vor. :)
IndependentArt
20.02.2021, 20:04
Ich glaube, nur der illegale "Urmaker" hatte mal eine Begrenzung von 640x480 für Grafiken. Ich erinnere mich noch an eine dunkle Zeit, zu der ich mich dieser Beschränkung auch unterwerfen musste. Richtig abgeschafft hat Cherry das glaub ich mit dem offiziellen Release.
Innocentia
20.02.2021, 21:28
Ich hätte da auch eine Frage:
Mein Maker bekommt es nicht mehr hin, bei den Textboxen 4 Zeilen richtig zu nutzen.
Ich kann maximal 3 Zeilen voll schreiben, aber wenn ich einen weiteren Absatz machen will, kommt nur der Windows-Fehlersound.
Wenn ich eine Textbox, die schon 4 Zeilen habe, bearbeite, löscht der mir Zeile 4 und sogar 3 raus und ich müsste alles wieder neu tippen, was aber dann auch nicht wirklich geht, wegen oben genannten Fehler.
Ich hab zwar einige Jahre mit dem Maker nicht mehr gearbeitet, aber früher ging das doch, dass man 4 Zeilen benutzen konnte? Wie kommt diese Einschränkung zustande?
Benutze meine Urversion vom rm2k3 über den rm2k9 Ultimate, Windows 10. Könnte da irgendwie der Grund verborgen sein? Meine, davor noch mit Windows 7 oder 8.1 gearbeitet zu haben... Da war das noch nicht so.
Danke im Voraus für eventuelle Antworten :)
- Das Inno -
Ich vermute, das Problem ist die Scrollbar, die der Ultimate da einfügt - eventuell wird dadurch der innere Boxbereich zu niedrig für eine 4. Zeile. Ich hab da zwar die Box insgesamt um 16 Pixel erhöht, was bis jetzt OK war, aber vielleicht sind bei dir einfach Scrollbars höher (vielleicht hast du irgendwie eine andere Designeinstellung im Windows oder so).
Die Lösung ist, in der Datei "uimod\widemessagebox.ini" vom RM2k9U an allen Stellen das "16" auf was Höheres zu ändern, zB "20" oder "24". Kannst dich ja damit herumspielen bis es passt.
IndependentArt
21.02.2021, 08:51
Vmtl hat das nichts damit zu tun, weil das Problem so wie es bei dir klingt permanent auftritt: Aber bei mir ist es manchmal so, dass ich keinen weiteren Text hinzufügen kann, weil ich den Text aus irgendeinem Dokument kopiert habe und irgendwelche Umbrüche mit kopiere, die dann die Box voll machen.
Innocentia
21.02.2021, 10:58
Ich vermute, das Problem ist die Scrollbar, die der Ultimate da einfügt - eventuell wird dadurch der innere Boxbereich zu niedrig für eine 4. Zeile. Ich hab da zwar die Box insgesamt um 16 Pixel erhöht, was bis jetzt OK war, aber vielleicht sind bei dir einfach Scrollbars höher (vielleicht hast du irgendwie eine andere Designeinstellung im Windows oder so).
Die Lösung ist, in der Datei "uimod\widemessagebox.ini" vom RM2k9U an allen Stellen das "16" auf was Höheres zu ändern, zB "20" oder "24". Kannst dich ja damit herumspielen bis es passt.
Cherry, du bist ein Schatz, vielen Dank! Ich hab alle Werte mal auf 24 gemacht und jetzt kann ich die Textboxen ganz normal wieder bearbeiten :) Kein nerviger Windows-Fehlersound mehr :D
Gibt es eigentlich noch die Möglichkeit, das Programm mit einer anderen Auflösung laufen zu lassen als 640 x 480? Eventfenster und die Maps sind derzeit bei mir ziemlich klein, gerade die Schrift zu lesen ist schon etwas anstrengend. Seit Win 10 ist ja alles bisschen kleiner geworden (könnte aber auch an meiner Auflösung vom Laptop liegen, diese ist übrigens bei 1920 x 1080, mit einer benutzerdefinierten Skalierungsgröße von 130), aber wäre cool, wenn man das auch irgendwie ändern könnte. Hab bisschen mit der DPI unter Eigenschaften herum gespielt, bekam aber kein zufriedenstellendes Ergebnis.
Wenn das nicht gehen sollte, ist es auch okay. Mir wäre es nur am wichtigsten, dass ich die Eventbefehle etwas größer stellen könnte, weil das hier (https://sta.sh/01g6s8qpldfd) strengt meine Augen auf Dauer an ^^;
Vmtl hat das nichts damit zu tun, weil das Problem so wie es bei dir klingt permanent auftritt: Aber bei mir ist es manchmal so, dass ich keinen weiteren Text hinzufügen kann, weil ich den Text aus irgendeinem Dokument kopiert habe und irgendwelche Umbrüche mit kopiere, die dann die Box voll machen.
Dann würde ich es ja auch verstehen, aber ich konnte ja nur 2 Zeilen nutzen, die ich von Hand geschrieben habe und das war definitiv vorher [vor etlichen Jahren] nicht so. Zwischendurch legte ich mir einen neuen Laptop mit neuen Betriebssystem zu. Lag wohl tatsächlich an der Auflösung.
- Das Inno -
G-Brothers
21.02.2021, 22:11
Gibt es eigentlich noch die Möglichkeit, das Programm mit einer anderen Auflösung laufen zu lassen als 640 x 480?
Ich kenne da eine Lösung. Man kann auch den offiziell lokalisierten RPG Maker 2003 verwenden und dann das neue RPG_RT durch das alte (mit DynRPG) ersetzen. Die Schrift ist bei diesem Maker ein bisschen grösser und man kann den Eventeditor sogar als Vollbild schalten.
Aber bevor du das machen würdest, sollte vielleicht eine Frage beantwortet werden:
@Cherry
Ist das überhaupt eine gute Idee? Also ich mache das schon so seit der 2k3 offiziell auf Steam gebracht wurde, und bisher ist mir nichts um die Ohren geflogen.Hab auf diese Weise halt ein paar Eventbefehle, die mit 1.0.8.0 inkompatibel sind und einfach nichts bewirken, aber ansonsten...?
Ich hab versucht Kompatibilität zu wahren, aber ja, natürlich funktionieren dann alle neuen Sachen nicht (und du musst dich aber erinnern, welche das sind - schau z.B. im Changelog http://tinyurl.com/rm2003cl, da hab ich extra Editor-Änderungen und Engine-Änderungen getrennt beschrieben), und dein Editor und deine Engine verwenden verschiedene RTP-Versionen, d.h. manche RTP-Grafiken die du im Editor siehst werden in der Engine nicht gefunden, und umgekehrt. Mit all dem kann man aber arbeiten, wenn man weiß wie, natürlich. Man kann auch die Aufforderung, die RPG_RT.exe zu aktualisieren, auf "don't ask me again" schalten (und sollte man sich irgendwann mal doch umentschieden haben, kann man Shift gedrückt halten beim Öffnen des Projekts, dann kommt die Aufforderung wieder.)
Das einzige was du verlierst (was eh keiner braucht, mMn) ist die Einstellung "Bottom Half Transparency" bei Pictures.
@Inno: Da du ja eh den RM2k9U verwendest, kannst du auch mal ausprobieren, was passiert wenn du an den Schriftgrößen unter "[FontReplacements]" in der ultimate.ini schraubst. Für die Fenstergrößen an sich könntest du den Goliath Patch von Aten dir mal anschauen, ich bilde mir ein der macht auch Fenster größer. (Geht auch in Kombination mit dem Ultimate natürlich.)
Innocentia
22.02.2021, 11:01
Ich kenne da eine Lösung. Man kann auch den offiziell lokalisierten RPG Maker 2003 verwenden und dann das neue RPG_RT durch das alte (mit DynRPG) ersetzen. Die Schrift ist bei diesem Maker ein bisschen grösser und man kann den Eventeditor sogar als Vollbild schalten.
Coole Sache, dass das überhaupt geht, aber ehrlich gesagt traue ich mich das nicht ^^; Ich behalte es aber im Hinterkopf :)
@Inno: Da du ja eh den RM2k9U verwendest, kannst du auch mal ausprobieren, was passiert wenn du an den Schriftgrößen unter "[FontReplacements]" in der ultimate.ini schraubst. Für die Fenstergrößen an sich könntest du den Goliath Patch von Aten dir mal anschauen, ich bilde mir ein der macht auch Fenster größer. (Geht auch in Kombination mit dem Ultimate natürlich.)
Nach etwas reinlesen und ausprobieren habe ich
1=MS UI Gothic,0,MS Shell Dlg,10 mal hinten auf 15 gestellt und es ist nun wesentlich angenehmer zu lesen :)
Ich hab mir zudem mal den Goliath Patch angesehen, aber ich denke, dass ich ihn nicht nutzen kann, da er hierfür eine andere Exe vorraussetzt. Ich meine mich zu erinnern, dass ich bereits eine modifizierte exe für mein Projekt verwende, aber da müsste ich Corti mal fragen. Daher lasse ich vorerst mal die Finger davon, aber heruntergeladen ist der Patch schon mal :)
Übrigens, falls es interessant ist:
Ich hab aus Jux mal meine Urversion vom rm2k3 geöffnet und da ist die Auflösung/Größe anders:
https://cherryshare.at/t/gyRkta (https://cherryshare.at/f/gyRkta/rm2k3-Event_Editor.png)
https://cherryshare.at/t/ytsvO5 (https://cherryshare.at/f/ytsvO5/rm2k3-Map.png)
Im Vergleich zum rm2k9U:
https://cherryshare.at/t/uazo45 (https://cherryshare.at/f/uazo45/rm2k9U-Event_Editor.png)
https://cherryshare.at/t/8F6swG (https://cherryshare.at/f/8F6swG/rm2k9U-Map.png)
(Natürlich jetzt mit der vergrößerten Font auf 15)
An sich wäre mir die Größe der Map und des Event-Editors vom rm2k3 lieber, aber dafür ist sie wieder unscharf, was meinen Augen auch nicht gerade gut tut. Dann lieber über den rm2k9U mit der geänderten Font :)
Danke noch mal an allen für die Ratschläge!
- Das Inno -
Hm, es scheint so, als würde Windows beim einen DPI-Skalierung anwenden (drum größer aber unscharf) und beim anderen nicht, wobei ich nicht weiß wieso.
Ligiiihh
22.02.2021, 15:22
Das Problem habe ich auch sehr häufig bei verschiedenen Programmen, da muss man einfach die Eigenschaften der .exe-Datei aufrufen und unter Kompatibilität die DPI-Einstellungen anpassen (lassen). Weiß aber auch nicht, warum Windows das ständig macht, vermutlich hat es was mit dem Alter der Programme oder sowas zu tun, weil ich bei neueren Spielen/Programmen das nie machen muss.
Habe mal wieder eine Frage:
Bezüglich Lautstärken von Soundeffekten und wie diese sich verändern, wenn der Held sich der "Lärmquelle" nähert.
Ich habe vor, dies für meine Wasserfälle im Spiel umzusetzen. Leider kenne ich mich trotz langer Makernutzung mit 80% vom Eventcode und dessen Befehlen nicht so gut aus. Doch ich traue mich jetzt einfach mal zu fragen und eventuelle Wissenslücken zu schließen.^^
Bislang löse ich das so (wahrscheinlich viel zu umständlich, deswegen hier auch geschildert):
Parallel Process Event auf der Map
Erste Eventseite:
Play Soundeffect (mit reduzierter Lautstärke)
plus Wait Befehl in Länge des Soundeffektes
Zweite Eventseite, getriggert durch Switch:
Play Soundeffect (mit voller Lautstärke)
plus Wait Befehl in Länge des Soundeffektes
Dazu mache ich auf jeder Map dementsprechend Events am Boden, die den Switch oben triggern, wenn der Held nahe genug am Wasserfall ist, triggert Eventseite 2 (oder sich wieder entfernt, triggert Eventseite 1).
Dabei kam mir der Gedanke: Das muss doch bestimmt mit anderen Befehlen schneller und effektiver zu lösen sein, doch ich hab keine Ahnung welche und wie. Habt ihr Ideen wie es besser geht? Gerne auch in Makercodeform, dass ich mich da mal endlich reinfuchsen kann.
Komme mir gerade vor wie der Ochs vorm Berg.^^
IndependentArt
23.02.2021, 20:33
Ja, geht in der Tat einfacher. Ich würde die Distanz des Heros zum Event berechnen, wie es mir Corti vor einigen Jahren (zum Glück) mal beigebracht hat.
Der Code dazu sieht so aus:
@> Control Variables: [Hero X] = Player's X Coordinate
@> Control Variables: [ Hero Y] = Player's Y Coordinate
@> Control Variables: [Event X] = [Event]'s X Coordinate
@> Control Variables: [Event Y] = [Event]'s Y Coordinate
@> Control Variables: [Hero X] -= Variable [Event X]
@> Control Variables: [Hero Y] -= Variable [Event Y]
@> Conditional Branch: Variable [Hero X] < 0
@> Control Variables: [Hero X] *= -1
@>
: Branch End
@> Conditional Branch: Variable [Hero Y] < 0
@> Control Variables: [Hero Y] *= -1
@>
: Branch End
@> Conditional Branch: Variable [Hero X] < 5
@> Conditional Branch: Variable [Hero Y] < 5
@> Variable/Switch
@>
: Else
@>
@>
: Branch End
@>
: Else
@> C
@>
: Branch End
Das ganze ist ein PP-Event, was auf der Map liegt, mit einem 0.0 Wait.
Du subtrahierst quasi die Koordinaten des Events von denen des Heros, prüfst, ob ggf. Negative werte rauskommen und machst daraus positive. Damit hast du die Entfernung bestimmt.
Jetzt kannst du in einer Abfrage festlegen, dass die Entfernung in beiden Achsen wie in meinem Bsp unter 5 liegen muss.
Das Sound-Event würde ich ehrlich gesagt mit einer Variable steuern. Damit könntest du sogar sowas wie 5 Abstufungen der Lautstärke machen. Oder den Sound auch erst ab einer bestimmten Nähe anschalten.
Falls du das für mehrere Events/Lärmquellen machen möchtest, würde ich alles ab der 5.Zeile in ein Common Event packen.
Schau mal, ob du damit klar kommst, ansonsten, melde dich.
Hey IndependentArt! :)
Vielen Dank, das klappt schon mal ganz gut. :)
So hab ich dann mal nach deiner Beschreibung den Code gestrickt.
@> Wait: 0.0 seconds
@> Control Variables: [0115:Helden Koord. x] = Player's X Coordinate
@> Control Variables: [0116:Helden Koord. Y] = Player's Y Coordinate
@> Control Variables: [0117:Wasserfall X] = [Mittelpunkt Wasserfa]'s X Coordinate
@> Control Variables: [0118:Wasserfall Y] = [Mittelpunkt Wasserfa]'s Y Coordinate
@> Control Variables: [0115:Helden Koord. x] -= Variable [0117]
@> Control Variables: [0116:Helden Koord. Y] -= Variable [0118]
@> Conditional Branch: Variable [0115:Helden Koord. x] < 0
@> Control Variables: [0115:Helden Koord. x] *= -1
@>
: Branch End
@> Conditional Branch: Variable [0116:Helden Koord. Y] < 0
@> Control Variables: [0116:Helden Koord. Y] *= -1
@>
: Branch End
@> Conditional Branch: Variable [0115:Helden Koord. x] < 5
@> Conditional Branch: Variable [0116:Helden Koord. Y] < 5
@> Control Variables: [0119:Nähe Wasserf. Sound] = 1
@>
: Else
@> Conditional Branch: Variable [0115:Helden Koord. x] < 8
@> Conditional Branch: Variable [0116:Helden Koord. Y] < 8
@> Control Variables: [0119:Nähe Wasserf. Sound] = 2
@>
: Else
@> Conditional Branch: Variable [0115:Helden Koord. x] < 12
@> Conditional Branch: Variable [0116:Helden Koord. Y] < 12
@> Control Variables: [0119:Nähe Wasserf. Sound] = 3
@>
: Else
@> Conditional Branch: Variable [0115:Helden Koord. x] < 15
@> Conditional Branch: Variable [0116:Helden Koord. Y] < 15
@> Control Variables: [0119:Nähe Wasserf. Sound] = 4
@>
: Else
@> Conditional Branch: Variable [0115:Helden Koord. x] >= 15
@> Conditional Branch: Variable [0116:Helden Koord. Y] >= 15
@> Control Variables: [0119:Nähe Wasserf. Sound] = 5
@>
: Else
@>
: Branch End
@>
: Else
@>
: Branch End
@>
: Branch End
@>
: Else
@>
: Branch End
@>
: Branch End
@>
: Else
@>
: Branch End
@>
: Branch End
@>
: Else
@>
: Branch End
@>
: Branch End
@>
: Else
@>
: Branch End
Mein Problem:
Also lauter wird es je näher ich komme, aber es dauert zu lange bis es wieder leiser wird, wenn sich der Held dem Event entfernt.
So habe ich das andere Event aufgebaut, vielleicht hab ich da einen Fehler drin?
Beispielseite:
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 100, 100, 50
@> Wait: 25.7 seconds
Da fehlt mir irgendein Befehl, um den Wasserfallsound jederzeit zu unterbrechen, bzw. mit veränderter Lautstärke neu zu starten. Wie kann ich das machen?
Du kannst den Sound unterbrechen indem du ihn 4x mit 0% Lautstärke abspielst
So hab ich dann mal nach deiner Beschreibung den Code gestrickt.
Sieht wahrscheinlich gerade nur im Forum so für mich aus, aber funktioniert deine Abfrage aktuell nicht nur, wenn der Held auf der X Achse nur 5 Felder entfernt ist?
Sieht wahrscheinlich gerade nur im Forum so für mich aus, aber funktioniert deine Abfrage aktuell nicht nur, wenn der Held auf der X Achse nur 5 Felder entfernt ist?
Wie meinst du das? Ich habe in dem Beispiel gleich alle für mich relevanten Entfernungen eingebaut. hat sich da ein Fehler eingeschlichen?:)
@Cherry: Danke, das probiere ich gleich mal!
Edit:
Hab das jetzt so eingebaut
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 100, 100, 50
@> Wait: 25.7 seconds
Ändert nichts dran, dass es gleich lauter wird, wenn der Held sich dem Wasserfall nähert, aber nicht mehr wirklich leiser... hab alle Seiten so aufgebaut bis auf den Trigger als Variable. Was übersehe ich? :D
Nagasaki
24.02.2021, 14:21
Nur so nebenbei- spricht etwas dagegen, den Sound als BGM und die BGM stattdessen als Sound abzuspielen? Wäre eleganter gelöst. So kannst du die Lautstärke auch während des Abspielens und ohne Unterbrechung/ Neustarten anpassen.
Naja die Logik ergibt so nicht so viel Sinn, da du alles verschachtelst hast aber eigentlich immer 2 Dinge überprüfst. Es ist so, wie Linkey schrieb, es wird z.B. gar nichts gemacht wenn der Held horizontal mehr als 5 Felder weg ist.
Das wäre zu lösen indem du die Bedingungen einfach untereinander packst anstatt verschachtelt, aber selbst dann stimmts nicht weil wenn die Entfernung in X und Y verschieden ist, wird in vielen Fällen wieder gar nichts passieren.
Was du wirklich brauchst ist eine tatsächliche Distanz (Länge des Distanzvektors), die wäre die Quadratwurzel aus x²+y² (Pythagoras). Jetzt hat der Maker zwar keine Wurzelfunktion, aber das macht nichts weil du halt stattdessen nicht mit der gewünschten Entfernung d (z.B. 5) sondern mit dem Quadrat davon d² (z.B. 25) vergleichen kannst (d²=x²+y²).
Außerdem willst du ja nur dann den Sound erneut abspielen, wenn sich die Lautstärke geändert hat, oder wenn er durchgelaufen ist, d.h. wir müssen auf die Änderung überprüfen und anstatt eines statischen Waits einen Framezähler nehmen der bis zu 25.7 Sekunden = 1542 Frames zählt.
Mein Vorschlag wäre daher folgender:
* Var X = X von Held
* Var Y = Y von Held
* Var X -= X von Wasserfall
* Var Y -= Y von Wasserfall
* Var X *= Var X <<< hier brauchen wir keine Überprüfung auf negative Zahlen mehr, weil wir den Wert eh quadrieren
* Var Y *= Var Y
* Var DistanzQuadrat = X
* Var DistanzQuadrat += Y
* Var NeueLautstärke = 0
* If DistanzQuadrat < 225 <<< d.h. <15 Felder (quadriert)
... * Var NeueLautstärke = 1
: end
* If DistanzQuadrat < 144 <<< d.h. <12 Felder (quadriert)
... * Var NeueLautstärke = 2
: end
* If DistanzQuadrat < 64 <<< d.h. <8 Felder (quadriert)
... * Var NeueLautstärke = 3
: end
* If DistanzQuadrat < 25 <<< d.h. <5 Felder (quadriert)
... * Var NeueLautstärke = 4
: end
* If Var NeueLautstärke != Var AktuelleLautstärke <<< hat sich die Lautstärke geändert?
... * Var ZeitÜbrig = 0 <<< direkt neues Abspielen des Sounds auslösen
... * Var AktuelleLautstärke = Var NeueLautstärke
: end
* If Var ZeitÜbrig <= 0
... * Play SE 0% <<< zuerst alten Sound stoppen
... * Play SE 0%
... * Play SE 0%
... * Play SE 0%
... * If Var AktuelleLautstärke == 1 <<< Hinweis: Überprüfung auf Lautstärke 0 nicht nötig weil der Sound dann einfach gar nicht gespielt wird
... ... * Play SE 25%
... : end
... * If Var AktuelleLautstärke == 2
... ... * Play SE 50%
... : end
... * If Var AktuelleLautstärke == 3
... ... * Play SE 75%
... : end
... * If Var AktuelleLautstärke == 4
... ... * Play SE 100%
... : end
... * Var ZeitÜbrig = 1542 <<< Dauer des Sounds in Frames (25.7s * 60 FPS = 1542)
* Var ZeitÜbrig -= 1 <<< verbleibende Zeit für den Sound bis zum Loopen um 1 Frame runterzählen
(kein Wait 0.0 nötig, denn da das ein Parallel Process ist, wird ohnehin 1 Frame gewartet bis das Event wieder von vorne anfängt)
Um das ganze zu resetten, z.B. wenn man die Map frisch betritt, einfach ZeitÜbrig auf 0 setzen.
An deiner Stelle würde ich für die Abfrage der Koordinaten des Wasserfalls direkt "This Event" verwenden und den Code in das Wasserfall-Zentrums-Event selber packen. Dann kannst du es beliebig auf andere Maps kopieren ohne was zu ändern (bzw. nur den Sound zu ändern, wenn nötig).
Das ganze hat noch einen Haken: Wenn keine Events ausgeführt werden können, z.B. wenn man ins Menü geht oder eine Screentransition stattfindet (Show/Hide Screen), wird der Zähler auch nicht reduziert (das Problem hättest du mit deinem Wait aber auch), d.h. danach glaubt der das Spiel, der Sound ist weniger weit fortgeschritten, als er wirklich ist, und es entsteht eine Lücke wenn der Sound ausläuft, das Game es aber noch nicht weiß. Das könnte man zumindest einigermaßen abfedern indem man den Sound in der Sounddatei selber mehrfach geloopt reinmacht und aber trotzdem für den Zähler die einfache Länge verwendet, dann gibts zumindest einen Puffer, wo es nicht auffällt wenn man kürzer als dieser Puffer lang ist sich im Menü o.ä. befindet.
@Nagasaki: Ich würde vermuten, die Tatsache dass Sound-Effekte nicht MIDI oder MP3 sein können und auch nicht automatisch gespeichert, beendet und wiederhergestellt werden wenn man z.B. kämpft, und auch unterbrochen werden würden wenn man ins Menü geht und dazwischen die Musik ausläuft (was sicher mehr auffällt als beim Sound) wird wohl dagegen sprechen... Aber je nach Rahmenbedingungen kanns natürlich eine interessante Herangehensweise sein. (Neuere Maker haben genau dafür ja BGS...)
Nagasaki
24.02.2021, 14:42
Das ergibt Sinn.
@Cherry:
Vielen Dank für deinen Code und die Erklärung. Ich schaue morgen mal in Ruhe, ob ich das eingebaut kriege. :D
Hallo zusammen!
Ich hab ein Problem mit einem Skill in der Database. Zwei Bilder um es anschaulicher zu machen.
https://cherryshare.at/i/O1U8bA (https://cherryshare.at/f/O1U8bA)
https://cherryshare.at/i/M4pF8W (https://cherryshare.at/f/M4pF8W)
Und zwar will mein liebenswert tollpatschiger Held auf Level 14 diese Technik nicht lernen. Dabei wird es bei einem Level Up im Kampfsystem sogar angezeigt, dass er "Wutanfall" lernt, doch wenn ich im Menü danach schaue ist da nichts.
Irgendwelche Ideen woran es liegen könnte?
Die Technik hat übrigens noch das Attribut "Luft" aber das hat die Waffe auch, von dem her sollte es daran nicht liegen... :)
Könnte es sein, dass du einen Spielstand lädst, in dem die Fähigkeit noch nicht in der Datenbank war? Ich weiß nicht, wie der Maker mit so einer Situation umgehen würde.
Liferipper
02.04.2021, 11:22
Ändere mal den Skill Type zu Technik (oder wie imer es auch heißen mag, jedenfalls etwas anderes).
Könnte es sein, dass du einen Spielstand lädst, in dem die Fähigkeit noch nicht in der Datenbank war? Ich weiß nicht, wie der Maker mit so einer Situation umgehen würde.
Ich habe zur Gegenprobe das Spiel gerade auf dem Level 14 begonnen. Im Menü sind alle bis dahin erlernbaren Techniken bis auf der "Wutanfall" Technik. Kann aber sein, dass es darüber hinaus mit deinem Tipp zusammenhängt.
Ändere mal den Skill Type zu Technik (oder wie imer es auch heißen mag, jedenfalls etwas anderes).
Technik habe ich nicht als Auswahl bei den Skills, nur Normal/ Switch/ Escape / Teleport. Oder wie meinst du das?
Liferipper
02.04.2021, 15:34
Technik habe ich nicht als Auswahl bei den Skills, nur Normal/ Switch/ Escape / Teleport. Oder wie meinst du das?
Im RM2k3 ist nicht jeder Skill von jeder Klasse anwendbar und im Kampf taucht der entsprechende Skill daher nicht im auf. Ich dachte, dass das hier der Fall sein könnte. Aber wenn der Skill schon im Menü nicht zu sehen ist, müsste der Grund ohnehin ein anderer sein, wie mir inzwischen eingefallen ist.
Konnte das Problem lösen, indem ich den Skill kopiert habe und auf ein freien Skillslot (Nummer 200 :D)) eingefügt habe. :)
Gibt es ein Programm / Tool, womit ich im Spiel unbenutzte Ressourcen schnell ausfindig machen kann? :)
WildGuess
26.04.2021, 13:04
Versuch es mal mit dem RPGRewriter von vgperson, trotz des Artikelnamen hat der auch eine Datei-Checkfunktion.
https://vgperson.com/posts.php?p=rpgmakerguide
Kurzanleitung (Bestätige jede Eingabe mit Enter):
- Um auf den Check-Modus zu wechseln gib mehrmals die 1-Taste ein.
- Dann stell den Datei-Check via Druck auf die 5-Taste an (Sollte dann sagen: "Check Unused Files") (Optional kannst du die anderen Checks je nach Bedarf auch noch anpassen)
- Anschließend gib die Z-Taste ein und wähle die .lmt Datei des zu überprüfenden Projekts aus.
- Bestätige mit der Y-Taste das Erstellen einer log.txt, in der du dann nachschauen kannst, welche Dateien nicht genutzt werden.
PK-Laharl
15.05.2021, 00:30
Ich habe ein Problem mit den Bilder Events...
Ich habe hier alles geschildert und brauche dringend Hilfe bitte...
https://www.multimediaxis.de/threads/146162-Bilder-anzeigen-Bilder-tauchen-nicht-auf-obwohl-sie-im-Ordner-sind
Ich bin viele
23.05.2021, 15:54
Grüß euch!
Ich würde gerne wissen ob jemand ein Programm kennt, mit dem ich .wav Dateien ein bisschen kleiner bekomme. Manche meiner Ambientsounds sind ganze 500 MB groß, das wäre zu viel des Guten ;D
Was ich sicher noch anmerken sollte, ist, dass die ganz großen .wavs alle im "B-Format" sind, und die kann ich mit meinem Go-to Soundprogramm nicht einmal öffnen ^^'
Liferipper
23.05.2021, 16:10
wav-Dateien wirst du nicht kleiner bekommen, da wav ein unkomprimiertes Format ist. Wenn du kleinere Dateien willst, wirst du sie in ein anderes Format konvertieren müssen. Welches hängt davon ab, welchen Maker du benutzt. Beim legalen RM2k3 dscheint nur mp3 in Frage zu kommen.
Ich bin viele
23.05.2021, 16:21
Schade, mp3s kann ich nicht als SEs nutzen. Danke trotzdem!
IndependentArt
23.05.2021, 16:34
Ich kenne mich mit den technischen Details nicht so aus, aber ich bekomme .wav auf jeden Fall kleiner. In FormatFactory kannst du 3 Qualitätsstufen auswählen, vielleicht reicht ja auch "mittel". Du kannst allerdings auch mal versuchen von dem, was du aktuell hast, in "hohe" Qualität zu konvertieren, je nach dem wo deine Quelldatei herkommt, könnte sie dadurch auch schon ein bisschen kleiner werden.
Mich würde noch interessieren: Wie lang sind denn die Sounds ...? Ein loop von mehr als 2-3 Minuten ist idR unnötig.
Ich bin viele
23.05.2021, 16:38
Ich hab zum Glück in diesem Fall einen anderen Loop gefunden, der wesentlich kleiner ist. Diese Sounddatei war ganze 7 Minuten lang, da ich aber B-Format wavs mit meinem wav Cutter nicht öffnen kann, konnte ich auch nichts schneiden ;D
Ich bin kompletter Laie was Sounddateien angeht, also werde ich mir die FormatFactory vorsichtshalber mal holen, danke dir IndependentArt!!
G-Brothers
23.05.2021, 17:59
Ich weiss zwar nicht, was dein Go-to Soundprogramm ist, aber ich nutze für sowas Audacity. Hab nur leider keine Ahnung, ob man diesen B-Format darin öffnen kann. ^^"
Aber damit kann man auch bei .wav die "Hz" runterdrosseln und mit vielen Stufen zwischen Speicher und Qualität abwägen.
https://i.imgur.com/2xwSKEv.png
Ich bin viele
23.05.2021, 19:05
Danke vielmals G-Brothers!
Damit konnte ich die Datei bearbeiten, und bin auf schlappe 33 MB heruntergekommen (vorher 441 MB!), ohne großen Verlust, zumindest für ein Hobby 2k3 Projekt ;D
Hz drosseln ist aber eine schlechte Idee weil das hört sich furchtbar an sobald es nicht mehr 44.1kHz ist, zumindest für junge Menschen die hohe Frequenzen noch gut hören. Qualität bei sowas wie MP3 ist was anderes, das wirkt sich auf sowas wie Detailgetreuheit aus und weniger auf die Frequenzbandbreite.
G-Brothers
23.05.2021, 22:25
Furchtbar ist etwas übertrieben, finde ich. Meistens merkt man erst ab unter 16kHz einen deutlichen Qualitätsverlust. Und in den meisten Fällen sind Ambientsounds eh etwas leiser, während Musik nebenher tüdelt.
Kann aber sein, dass ich plötzlich eine schockierende Erkenntnis gewinne, wenn ich irgendwann mal eine Soundkarte habe. (*_*)
bin auf schlappe 33 MB heruntergekommen (vorher 441 MB!)
Finde ich ehrlichgesagt immer noch ziemlich heavy. Wie lange ist die Soundspur denn? :O
Ich bin viele
24.05.2021, 02:02
7 Minuten! Ich hab ein geeigeteres Ambientloop gefunden, daher hab ich diese Datei nicht geschnitten. Aber ja, die Sounds von Sonniss sind allesamt ziemlich groß, dafür aber qualitativ extrem hochwertig.
IndependentArt
24.05.2021, 09:47
Welcher loop braucht denn 7 Minuten, um seine Wirkung zu entfalten? :rolleyes:
Also wenn du mir irgendeinen Sound oder eine Musik auf 32kHz abspielst schaue ich schief und bei 22.5kHz sag ich dir sorry aber das kann ich mir nicht anhören.
Aber das ist natürlich subjektiv...
G-Brothers
24.05.2021, 16:28
Na wie du meinst. Ich merke den Unterschied jedenfalls erst bei besonders orchestralischen Klängen.
7 Minuten! Ich hab ein geeigeteres Ambientloop gefunden, daher hab ich diese Datei nicht geschnitten. Aber ja, die Sounds von Sonniss sind allesamt ziemlich groß, dafür aber qualitativ extrem hochwertig.
7 Minuten ist viel zu lange. o_o Solche Ambientsounds sind ja eigentlich für Videos gedacht und die Länge sorgt dafür, dass man die Spur nicht ewig duplizieren muss.
Mein längster Ambientsound im Gameordner dauert 8 Sekunden. Vielleicht solltest du dir aus den 7 Minuten eine Stelle raussuchen, die keine auffällige Klänge hat, welche für einen 5-10 Sekundenloop zu auffällig sind, und entsprechend kürzen.
Ich glaube, in deinem Fall wäre es nicht mal nötig, die Hz zu senken, weil die Länge das eigentliche Problem ist. :hehe:
Ich bin viele
24.05.2021, 17:08
Also wenn du mir irgendeinen Sound oder eine Musik auf 32kHz abspielst schaue ich schief und bei 22.5kHz sag ich dir sorry aber das kann ich mir nicht anhören.
Aber das ist natürlich subjektiv...
Gut zu wissen! Bis jetzt hab ich zum Glück noch keine Sounds verändert, ich werd es auch dabei belassen denke ich, besonders wenn es so arg auffällt.
@IndependentArt und G-Brothers
Wie gesagt, ich hab mich sowieso für einen viel kürzeren und kleineren Loop entschieden. Bei diesem speziellen Sound spielt denke ich mal die Qualität eine große Rolle bei der Größe, da das wie gesagt ein sogenanntes B-Format ist, und wenn ich das richtig verstanden habe, ist das eine der qualitativ hochwertigsten Soundformate.
Ich stecke gerade mitten in den Betatests für mein Projekt Schuld und Sühne.
Nun können zwei der Betatester die veränderte, neu hochgeladene Version nicht mehr entpacken, es kommt die Meldung das Archiv sei beschädigt oder unbekanntes Format. Bei mir selber habe ich kein Problem mit der Version, kann sie problemlos entpacken und spielen.
Woran könnte das liegen, hat jemand da eine Idee? :)
Ich hatte mal so ein Problem mit 7-Zip, als ich eine rar-Datei entpacken wollte. Es lag daran, dass meine Version von 7-Zip schon in die Jahre gekommen war. Ein Update hat das Problem behoben.
Übrigens @Ich bin viele was Sound-Dateigrößen angeht hat KotatsuAkira auf RMW was gepostet, das mir neu war: https://forums.rpgmakerweb.com/index.php?threads/advice-about-space.136921/post-1190873
Es gibt anscheinend sehr wohl einen Kompressionsalgorithmus, den man in WAV-Dateien verwenden kann, und zwar ADPCM! Ich dachte immer dass WAV zwingend unkomprimiert sein muss aber da habe ich mich geirrt offensichtlich!
Ich gehöre zu Bens Betatestern und wollte wissen ob sich Winrar nicht selbst aktualisiert, denn damit wollte ich es entpacken. Allerdings habe ich mir letztens auch dein Eterna 2 runtergeladen Kelven, damit hatte ich keine Probleme.
Außerdem haben wir es bei mir nachdem es auf CherryShare nicht geklappt hat, über Filehorst probiert, gleiches Problem.
Ich hoffe diese Infos helfen etwas.
https://cherryshare.at/i/c99EcY (https://cherryshare.at/f/c99EcY)
Das ist die entsprechende Fehlermeldung. Hat da jemand Ideen, woran der Fehler liegen könnte?
Ich bin viele
18.06.2021, 19:47
@Cherry
Super, danke dir vielmals Cherry! Da werd ich sicher Spaß beim experimentieren haben, bin schon gespannt ob ich die SEs auf eine angemessenere Größe damit bringen kann!
Mein Senf zum Schuld und Sühne Archivproblem
Das erste Archiv, das Ben nur kurze Zeit vor der problematischen Version hochgeladen hat, konnte ich ohne Fehler entpacken und auch spielen. Zwischen den Uploads der Versionen liegen nur knappe 20 Minuten!
Ich kann das Archiv normal downloaden und auch öffnen, aber beim Verschieben ist der Hund drin.
Hm, lustig. Hab diese Version jetzt nochmals geladen (von CherryShare, selber Link als zuvor) und jetzt wurde alles korrekt entpackt, ich kann die Beta auch ganz normal spielen... Versuchs nochmal Grazia, vielleicht klappts dann bei dir auch ;D
@Grazia
Wenn Winrar automatisch nach Updates suchen würde, müsste es eigentlich eine Meldung vor der Installation geben. Eterna 2 hab ich als ZIP gepackt, das ist also ein anderer Fall. Wie gesagt, bei mir lag es daran, dass mein 7-Zip RAR5-Archive nicht erkannt hat und da kam meine ich die Fehlermeldung, die Ben verlinkt hat.
Hm also laut 7-Zip hat das Archiv keinerlei Probleme:
https://cherryshare.at/i/ivi5cU/image.png
Ich habs damit jetzt mal neu verpackt als 7z, vielleicht klappts dann besser - Link hast du bekommen
Vielen Dank Kelven und Cherry
Hallo zusammen! :)
Ein User hat folgende Fehlermeldung beim Starten von Schuld und Sühne gehabt.
https://cherryshare.at/i/8Bp11D (https://cherryshare.at/f/8Bp11D)
Kann jemand helfen, bzw. weiß wie sich das Problem lösen lässt? :)
Innocentia
18.07.2021, 19:31
Hallo zusammen! :)
Ein User hat folgende Fehlermeldung beim Starten von Schuld und Sühne gehabt.
https://cherryshare.at/i/8Bp11D (https://cherryshare.at/f/8Bp11D)
Kann jemand helfen, bzw. weiß wie sich das Problem lösen lässt? :)
Sieht mir spontan nach einem Umlaut-Fehler aus. Auch Winrar kann Dateien wie diese zerschießen. Deswegen nie Dateien mit Umlaute benennen ;)
Wie man das behebt... Nun, du könntest als Ersteller durchgehen, welche Dateien Umlaute haben und diese ersetzen. Bedeutet natürlich einiges an Arbeit, da man diese manuell im Maker auch ersetzen muss.
Oder der User soll mal versuchen, die entsprechende Datei selbst umzubenennen. Je nachdem, wie viele Dateien du aber mit Umlauten drin hast, wird das keine "dauerhafte" Lösung sein.
Sag mal, ob es das war, ansonsten müssen wir mal weiter sehen.
- Das Inno -
Hey Inno,
Danke dir für die schnelle Antwort und den Lösungsvorschlag. :)
Ich werde das fürs nächste Update dann fixen mit den Dateinamen.
Komisch halt nur, dass es keinen der Betatester betroffen hat.
Da hatte die Datei bereits denselben Namen...
Innocentia
18.07.2021, 20:23
Hey Inno,
Danke dir für die schnelle Antwort und den Lösungsvorschlag. :)
Ich werde das fürs nächste Update dann fixen mit den Dateinamen.
Komisch halt nur, dass es keinen der Betatester betroffen hat.
Da hatte die Datei bereits denselben Namen...
Ich bin jetzt kein Technik-Freak, da kann bestimmt jemand anderes sagen, warum das vereinzelt auftritt. Aber ich meine mich zu erinnern, dass es auf die Winrar-Version ankommt. Wenn eine englische Version installiert wurde, machen diese beim Entpacken bei Dateien mit Umlaute Probleme. Macht für mich auch Sinn, da im englischsprachigen Raum keine Umlaute existieren :)
Gerade deswegen immer auf diese verzichten, denn diese machen wie du siehst ziemlich viele unnötige Probleme :)
- Das Inno -
IndependentArt
18.07.2021, 20:40
Evtl mal normales .zip versuchen. fundiertes Wissen kann ich dazu auch nicht liefern. Aber das ist bestimmt besser als alle Dateien zu tauschen, die evtl Probleme machen. Wenn das im Titel schon vorkommt, wird es ja auch das restliche Spiel betreffen ...
Ich denke, das Problem ist ein anderes, nämlich das umgekehrte - sieht man auch am Fenstertitel, da ist nämlich auch kein Umlaut: Die Default Locale für Non-Unicode-Programme ist bei diesem Benutzer nicht auf Deutsch (oder einer anderen Codepage mit den nötigen Zeichen) eingestellt, sondern offenbar auf Japanisch oder sowas in der Art. Dadurch können in Strings, die das Spiel verwendet und an das Betriebssystem weitergibt (z.B. um eine Datei zu öffnen oder das Spielfenster oder diese Messagebox da anzuzeigen), solche Zeichen schlichtwegs nicht vorkommen bzw. werden anders interpretiert. Die Datei heißt also höchstwahrscheinlich richtig, aber das Spiel kann diesen richtigen Dateinamen nicht ans System übermitteln.
Die universelle Lösung ist auch da, keine non-ASCII-Zeichen in Dateinamen vorkommen zu lassen, aber die Lösung aus Spielersicht wäre hier, die entsprechende Einstellung in Windows zu ändern, oder ein Programm wie NTLEA (https://github.com/zxyacb/ntlea) zu verwenden (klappt leider nicht immer so gut).
Man findet diese Einstellung in Windows 10 unter Einstellungen -> Zeit und Sprache -> Sprache -> Administrative Sprachoptionen -> Gebietsschema ändern:
https://cherryshare.at/i/WSoIjp/image.png
(Wichtig: Die Checkbox "UTF-8 für weltweite Sprachen verwenden" muss aus sein.)
(Mit der falschen Einstellung gibt es eventuell auch Probleme bei der Anzeige von Text in Dialogen mit Umlauten, aber das würde wenigstens nicht das Game breaken wenn die Dateinamen nicht wären.)
Ich bin viele
08.08.2021, 20:19
Grüß euch!
Ich würde gerne wissen ob jemand ein Programm kennt, mit dem ich .wav Dateien ein bisschen kleiner bekomme. Manche meiner Ambientsounds sind ganze 500 MB groß, das wäre zu viel des Guten ;D
Was ich sicher noch anmerken sollte, ist, dass die ganz großen .wavs alle im "B-Format" sind, und die kann ich mit meinem Go-to Soundprogramm nicht einmal öffnen ^^'
Kleines Update hierzu, das Problem an den .wav Dateien, bzw. deren Größe, war, dass sie Stereo waren! Als ich die Dateien in Mono gespeichert habe wurden sie erheblich kleiner. Ein Beispiel: Als Stereo hatte eine .wav Datei mit einer Länge von 1:43 min eine Größe von satten 141 MB, als Mono jedoch ist sie nur noch 18 MB groß.
Nur für den Fall, dass jemand noch so unwissend ist wie ich ;D
Lest lieber Cherry's Kommentare weiter unten.
Falls das Audio drin aber wirklich Stereo war (und nicht 2x dieselbe Spur) dann wird das aber jetzt etwas von seinem Effekt eingebüßt haben. Besonders Hintergrundsounds sollen ja atmosphärisch sein und profitieren daher immens von Raumklang.
Dein Größenvergleich kann auch nicht wirklich sein, weil wenn es nur das gewesen wäre, müsste die Datei halb so klein sein, nicht 8x so klein. Ich hab eher das Gefühl dass du beim Bearbeiten und erneuten Speichern auch sonst noch implizit andere Einstellungen verwendet hast als ursprünglich...
Eigentlich stimmt da sogar was doppelt nicht, weil die Größe von 18 MB würde man bei Stereo erwarten! Mono wäre 9 MB.
https://cherryshare.at/i/LpnRcP/image.png
Die große Frage ist hier ja, warum hat die Ursprungsdatei 143 MB, das ist nämlich absurd viel. Würd mich persönlich interessieren, vielleicht magst du mir die Datei ja mal rüberschieben.
EDIT: Übrigens, wie ich inzwischen gelernt habe, kann man WAV (anders als Liferipper schrieb) sehr wohl komprimieren. Das Zauberwort heißt "ADPCM". Um KotatsuAkiras Post auf RMW zu zitieren:
A little advice regarding WAV files: Try compressing your sound effects with ADPCM (https://en.wikipedia.org/wiki/Adaptive_differential_pulse-code_modulation), it's supported since RPG2000 1.50 and RPG2003 1.05 (or in other words: many years ago). That should save a lot of space even on highest quality option (ADPCM is a lossy type of compression, so don't set it too low). Also it's perfectly okay to use mono sounds (I'm not talking about music) instead of stereo, most notably if they are voiceclips.
Example: 「花嫁の冠」 / 「Hanayome no Kanmuri」 the first RPG2000 SampleGame has around 1700 compressed WAV voice files (at least the version found in RPG2000VALUE! and V!+) with 177kbps (uncompressed files tend to have ~1411kbps when using default settings in most programs) in the sounds folder. For a game that needs less than 140MB, the resulting audio quality is fantastic.
Ich bin viele
09.08.2021, 19:14
Grüß dich Cherry!
Stereo war wohl der falsche Ausdruck, Surround Sound triffts vielleicht eher. Die Datei hatte zu Beginn ganze 5 Spuren. Mir ist zwar bewusst, dass ich da etwas Klangtiefe einbüße, allerdings muss ich das fast machen, da das Projekt jetzt schon satte 1,2 GB groß ist (ist etwa ein Viertel des Spiels, allerdings recycle ich im späteren Spiel viele der Soundfiles, also sollte die VV nicht über 2 GB kommen) ^^'
Auch habe ich darauf geachtet, wirklich nichts zu verändern, ausser natürlich die Umwandlung in Mono. (Hab nochmal nachgesehen, die Mono Datei hat ebenfalls 96k Hz)
Ich hab die Datei mit Audacity geöffnet und exportiert, danach war sie Mono und nur mehr 18,7 MB groß. Mehr hab ich nicht gemacht, und zu mehr bin ich derzeit auch nicht in der Lage (aufgrund meiner Technikresistenz ;))
Zu der ADPCM Komprimierung: Ich hab leider bis jetzt noch nicht herausgefunden, wie ich das anstelle. Alles was ich darüber lese klingt wie Kauderwelsch, da fühle ich mich wie ein alter Mann ;D
Das gesagt, bin ich trotzdem sehr zufrieden mit den "kleineren" Soundfiles, habs mit guter Anlage sowie mit Kopfhörern getestet. Nicht perfekt, aber dank der vielen verschiedenen Sounds + BGM klingts trotzdem zufriedenstellend (für mich zumindest).
Edit:
Hab den Downloadlink entfernt und dir stattdessen ein PN geschickt.
Ah OK gut bei 96kHz ergibt die Größe bei Mono wieder Sinn.
Da wäre es aber dann besser du machst 44.1kHz und Stereo, da haben die Spieler mehr davon.
Ich hab mir die Originaldatei angeschaut und jetzt ist alles klar, ja - es ist Surround Sound 5.0 mit 96kHz und 24 Bit - das ist natürlich absoluter Irrsinn für ein Makerspiel :D
https://cherryshare.at/i/OdArPh/image.png
Ich hab das ganze jetzt umgewandelt, jetzt ist die Datei Stereo, 44.1kHz, 16 Bit, ADPCM, klingt immer noch bombastisch und hat dabei nur ~4 MB: SummerInTheFields_fixed.wav (https://cherryshare.at/f/y3l0qg/SummerInTheFields_fixed.wav) (im Browser lädt sie so nimmer aber im Maker sollte sie gehen)
Wie ich das gemacht habe: Mit ffmpeg (https://ffmpeg.org/download.html). Ist ein Commandlinetool, gibt es für diverse Plattformen.
Der Befehl den ich verwendet habe:
ffmpeg -i SummerInTheFields.wav -ac 2 -af volume=1.667 -f wav -acodec adpcm_ms -ar 44100 -sample_fmt s16 SummerInTheFields_fixed.wav
Erklärung dazu:
ffmpeg
-i SummerInTheFields.wav
<<< Quelldatei
-ac 2
<<< Auf 2 Audiokanäle runtermixen
-af volume=1.667
<<< Lautstärke um 66.7% erhöhen - das war
nur nötig wegen dem Runtermixen von
5.0 Surround auf Stereo
-f wav
<<< Outputformat WAV
-acodec adpcm_ms
<<< Mit ADPCM komprimieren
-ar 44100
<<< Auf 44.1kHz Samplerate konvertieren
-sample_fmt s16
<<< Auf 16 Bit konvertieren
SummerInTheFields_fixed.wav
<<< Zieldatei
Du kannst bei anderen Sachen entsprechende Parameter weglassen die nicht nötig sind.
(Stereo macht bei der Datei übrigens einen riesigen Unterschied. Alleine schon die Vögel, aber auch dann die Mosquitos die durchs "Bild" fliegen - das würde alles ziemlich zerstört mit Mono.)
Ich bin viele
09.08.2021, 22:11
Vielen, vielen Dank dir Cherry, sehr lieb von dir! :)
Inzwischen hab ich das Projekt von ca. 1,2 GB auf 600 MB gebracht, und dabei alle Sounds, die ich unwissenderweise in Mono umgewandelt hab, nun wieder in Stereo im Spiel, und das mit trotzdem deutlich kleinerer Dateigröße! :D
Deusmars
30.11.2021, 15:38
Hallo,
Die Titelmusik von Calm Falls 2 funktioniert überhaupt nicht, es bleibt einfach still.
Andere MP3s jedoch gehen, wie die Titelmusik von Vampires Dawn 2.
Auch wenn ich Calm Falls 2 über den Easy-RPG Player starte, läuft die Musik und auch wenn ich sie manuell über den Ordner höre. Ich will aber jetzt auch nicht unbedingt jedes Game über diesen Player spielen.
Ich hab schon versucht zahlreiche Codecs zu installieren und dachte es liegt daran.
Irgendwelche Ideen? Ich habe Windows 10.
Ich bin viele
09.02.2022, 15:41
Grüß euch, ich wieder ;D
Ich wollte fragen, ob jemand weiß wie ich am besten Videos zuschneiden kann. Hier ein Beispielvideo, und zwar will ich die horizontalen Balken wegbekommen. (https://youtu.be/2LWdY6ukBtg)
Hab schon ein paar Programme durch, leider ist da das Problem, dass entweder die Qualität darunter leidet, oder die Pixel uneben werden, was Beides doof aussieht.
Ich hab schon gesehen, dass man mit FFMPEG da irgendwie tricksen kann, habs aber bis jetzt nicht geschafft, da ich auch die Dimensionen nicht kenne, die ich benötige.
Wäre cool, wenn jemand diesem unbeholfenen Mann helfen kann :)
Liebe Grüße,
Legion
Carolina
12.02.2022, 01:53
Hallo,
Die Titelmusik von Calm Falls 2 funktioniert überhaupt nicht, es bleibt einfach still.
Andere MP3s jedoch gehen, wie die Titelmusik von Vampires Dawn 2.
Auch wenn ich Calm Falls 2 über den Easy-RPG Player starte, läuft die Musik und auch wenn ich sie manuell über den Ordner höre. Ich will aber jetzt auch nicht unbedingt jedes Game über diesen Player spielen.
Ich hab schon versucht zahlreiche Codecs zu installieren und dachte es liegt daran.
Irgendwelche Ideen? Ich habe Windows 10.
Tja, weißt du, es gibt einfach Menschen, die machen sich die Mühe, ein Spiel zu erstellen, aber sind dann, sage und schreibe, zu faul, es RTP-unabhängig zu machen oder, wie in diesem Fall, die MP3-Harmony mit hineinzulegen, sodass auch Leute, die den MP3-Patch nicht installiert haben, die MP3-Musik hören könnten.
Um deine Frage zu beantworten: Ich denke du brauchst diese Datei:
https://workupload.com/file/kueMhBgZFMs
Die legst du dann in den Spielordner bzw. ersetzt die dort eventuell bereits drin liegende Harmony.dll mit dieser speziellen MP3-Harmony.dll
Dann sollte es gehen.
Ich bin viele
12.02.2022, 18:22
Grüß euch, ich wieder ;D
Ich wollte fragen, ob jemand weiß wie ich am besten Videos zuschneiden kann. Hier ein Beispielvideo, und zwar will ich die horizontalen Balken wegbekommen. (https://youtu.be/2LWdY6ukBtg)
Hab schon ein paar Programme durch, leider ist da das Problem, dass entweder die Qualität darunter leidet, oder die Pixel uneben werden, was Beides doof aussieht.
Ich hab schon gesehen, dass man mit FFMPEG da irgendwie tricksen kann, habs aber bis jetzt nicht geschafft, da ich auch die Dimensionen nicht kenne, die ich benötige.
Wäre cool, wenn jemand diesem unbeholfenen Mann helfen kann :)
Liebe Grüße,
Legion
Das hat sich erledigt! Für die, die interessiert sind: Vorher hab ich den ganzen Bildschirm mit OBS aufgenommen, daher die Balken, die natürlich im 2k3 vorkommen, will man denn gleich große Pixel haben.
Nun nehme ich nur das Fenster selber auf, also nicht mehr im Vollbildmodus. Dazu hab ich noch die Aufnahme um 2 Pixel in jede Richtung zugeschnitten (Bei "Transformieren"), damit die Fensterränder nicht zu sehen sind.
Tja, geht halt doch immer einfacher, als man annehmen mag ;D
Liebe Grüße,
Legion
Deusmars
14.09.2022, 01:42
Tja, weißt du, es gibt einfach Menschen, die machen sich die Mühe, ein Spiel zu erstellen, aber sind dann, sage und schreibe, zu faul, es RTP-unabhängig zu machen oder, wie in diesem Fall, die MP3-Harmony mit hineinzulegen, sodass auch Leute, die den MP3-Patch nicht installiert haben, die MP3-Musik hören könnten.
Um deine Frage zu beantworten: Ich denke du brauchst diese Datei:
https://workupload.com/file/kueMhBgZFMs
Die legst du dann in den Spielordner bzw. ersetzt die dort eventuell bereits drin liegende Harmony.dll mit dieser speziellen MP3-Harmony.dll
Dann sollte es gehen.
Super, hat geklappt. :) Danke für die Hilfe.
Gibt es eine Möglichkeit das Bild (Face) des gerade aktiven Heldens in der Message anzeigen zu lassen ohne bei dem Event mit Variablen zu arbeiten ?
ist der RPG Maker 2000
in meinem Spiel kann man am Anfang zwischen 4 Helden wählen, die auch alle andere Gesichter haben.
ich will das bei jedem Dialog das Gesicht des Helden zu sehen ist.
Wie mache ich das nun am besten?
Zimberliese
03.10.2022, 21:18
Die Funktion "Change Faceset" vor der Funktion "Show Text..." auswählen.
So mache ich es zumindest.
https://bilderupload.org/image/thumbnail/resized-91ba28302-unbenannt.png (https://bilderupload.org/bild/91ba28302-unbenannt)
Am besten du machst ein Common Event, welches überprüft welcher Held in der Party ist (mit einem Conditional Branch bzw Fork) und das entsprechende Face setzt, mit dem Befehl den Zimberliese dir gezeigt hat.
Dann brauchst du nur das Common Event callen jedes Mal bevor du eine Message anzeigst (nicht nötig wenn die vorige Message dasselbe Face hatte).
Danke Cherry
An so etwas habe ich nicht gedacht..
Habe zuerst etwas gesucht das mir in der Database das Gesicht des Heldes sucht und dann direkt anzeigt..
Werd ich mal probieren mit der Fork
Grüsse aus der Schweiz
Hey zusammen!:)
Habe eine kleine Frage zum KS des 2k3ers.
Kann ich die Statusveränderungen in der Database so einstellen, dass jeder Charakter maximal eine Veränderung haben kann, ähnlich wie bei Pokémon (wo Paralyse, Schlaf, Eis, Gift und Brand sich gegenseitig ausschließen)?
Oder müsste ich da alle Kämpfe skripten?
Liferipper
22.12.2022, 16:09
Gegnbesietiges Ausschließen ist meines Wissens nicht möglich.
Womit du arbeiten könntest sind Prioritäten: Wenn der Prioritätsunterschied zwischen zwei Zuständen hoch genug ist (ich glaube über 10, aber müsstest du im Zweifelsfall testen) macht der Zustand mit der höheren Priorität den mit der geringeren Priorität unwirksam, bzw. kann der überhaupt nicht verursacht werden. Allerdings ist das ist immer eine Einbahnstraße.
Ein Beispiel: Wenn Paralyse eine (deutlich) höhere Priorität hat als Gift, könnte ein vergifteter Gegner trotzdem noch paralysiert werden, würde dabei aber eben den Gift-Zustand verlieren, wohingegen ein paralysierter Gegner grundsätzlich nicht vergiftet werden kann.
Danke Liferipper das hilft schon Mal zu wissen. Dann muss ich meine interne Herausforderung anders angehen 😄
Hohoho weihnachtlicher Doppelpost! ;)
Bin gerade dabei, ein Partywechselskript umzusetzen und das klappt bis auf eine Kleinigkeit ganz gut.
Da man in Schuld und Sühne ab einem gewissen Punkt wirklich völlig frei die Kampfparty arrangieren können soll, gibt es eine Herausforderung.
Wie kann ich im Maker abprüfen, an welcher Stelle im Team welches Mitglied steht? Es würde reichen, wenn ich abfragen kann, wer an oberster Stelle ist und daher die umherlaufende Heldengrafik stellt.
Da in manchen Sequenzen die Helden alle als Event erscheinen, bzw. aus dem Helden heraustreten und dann in manchen Konstellationen ein Charakter doppelt zu sehen ist.
Vielleicht gibt es da ja eine simplere Lösung die ich gerade völlig übersehe? :D
goldenroy
28.12.2022, 16:36
Hohoho weihnachtlicher Doppelpost! ;)
Bin gerade dabei, ein Partywechselskript umzusetzen und das klappt bis auf eine Kleinigkeit ganz gut.
Da man in Schuld und Sühne ab einem gewissen Punkt wirklich völlig frei die Kampfparty arrangieren können soll, gibt es eine Herausforderung.
Wie kann ich im Maker abprüfen, an welcher Stelle im Team welches Mitglied steht? Es würde reichen, wenn ich abfragen kann, wer an oberster Stelle ist und daher die umherlaufende Heldengrafik stellt.
Da in manchen Sequenzen die Helden alle als Event erscheinen, bzw. aus dem Helden heraustreten und dann in manchen Konstellationen ein Charakter doppelt zu sehen ist.
Vielleicht gibt es da ja eine simplere Lösung die ich gerade völlig übersehe? :D
Geht glaube ich im Vanilla 2k3 nicht, leider. Eigentlich voll der oversight, dass in den Conditional Branch oder Variable-Einstellungen nicht einfach die Actor ID abgefragt werden kann. Das einzige von dem ich weiß, dass es auf den Party Leader pointet ist \n[0] in Show Message, das überträgt sich allerdings nicht auf sowas wie Change Actor Name, was man mit ner Conditional Branch abfragen könnte.
Wenn du mit der Standard Formation-Menüfunktion arbeitest, musst du wahrscheinlich irgendwo nen Patch anfragen, oder du baust ein Custom System dafür, das mit den IDs arbeitet. Bei RPGMakerWeb (https://forums.rpgmakerweb.com/index.php?threads/solved-can-character-formation-affect-events.89781/) hat das 2018 schon mal jemand angefragt und bekam so ne Lösung. Ich dachte kurz da sind Maker-Magier am Werk, aber es ist "nur" Input Number haha.
Hey Goldenroy,
danke dir für den Fund und die schnelle Antwort!
Bin gerade an einem eigenen Workaround für einiges im 2k3, mal sehen wo das hinführt...
Hey zusammen!
In meinem Spiel gibt es eine Timerabfrage, die ich mit in einen Kampf nehmen möchte.
Sprich: eine Seite in den Battleevents soll getriggert werden, wenn der Timer innerhalb des Kampfes abläuft.
Bei Ablauf des Timers (sprich Nicht-Bestehen der Aufgabe) gibt es negative Konsequenzen.
Nun habe ich gemerkt, dass es keine Abfragemöglichkeit im KS des 2k3er gibt, um den Timer zu implementieren.
Gibt es eine andere Möglichkeit das zu lösen?
Du könntest vielleicht den groben Wert des Timers in einer Variable speichern und diesen Wert im Kampf beim Zug eines Gegners reduzieren.
Du kannst etwas machen was bei jedem Zug läuft und dann den Timerwert per Eventcode abfragen, also zB in eine Variable speichern. (Vergiss nicht dass du auch Common Events callen kannst, die mehr Befehle zur Verfügung haben als Battle Events, bzw. falls du den offiziellen Maker verwendest kannst du auch den nötigen Befehl vom CE ins BE copypasten.)
Du könntest vielleicht den groben Wert des Timers in einer Variable speichern und diesen Wert im Kampf beim Zug eines Gegners reduzieren.
Du kannst etwas machen was bei jedem Zug läuft und dann den Timerwert per Eventcode abfragen, also zB in eine Variable speichern. (Vergiss nicht dass du auch Common Events callen kannst, die mehr Befehle zur Verfügung haben als Battle Events, bzw. falls du den offiziellen Maker verwendest kannst du auch den nötigen Befehl vom CE ins BE copypasten.)
Hey Danke Kelven und Cherry für die schnellen Antworten! Das werde ich demnächst ausprobieren!
Hey zusammen!
Bin gerade dabei einen Kampf im Standard-KS des 2k3ers zu skripten. Möchte, dass zunächst keine Flucht möglich ist, ab einem gewissen Punkt der Spieler allerdings einmalig sicher fliehen kann (ausgelöst durch ein Show Choice Befehl mit dem "Force Escape" Befehl). Allerdings scheint das nicht zu funktionieren. Kann ich die Möglichkeit zur Flucht aus einem Kampf während diesem noch irgendwie nachträglich ändern?
Du könntest Abort Battle benutzen.
Liferipper
18.08.2023, 22:08
Eine Möglichkeit, die Einstellungen zur Flucht innerhalb des Kampfes zu ändern, kenne ich nicht.
Was du machen könntest, ist Flucht für den Kampf grundsätzlich zu erlauben (Execute Custom Handler), aber den Helden für den Kampf Klassen zu geben, die keinen Zugriff auf den Escape Befehl haben, bzw. bei denen er nichts bewirkt (Battle Commands - Escape: Link to Event)
Abort Battle ist in dem Fall die Lösung für mich. Doch der Ansatz von Liferipper ist auch gut!
Danke euch Beiden für die schnelle Hilfe!
Hey zusammen!
Ich möchte ein animiertes Bild im 2k3 einfügen (kleines Beiboot, dass sich in den Wellen bewegt). Allerdings ist die Map nicht 20x15 sondern 22x30. Welche Koordinaten muss ich da einstellen, wenn ich das Bild ganz oben auf der Map fixieren möchte? Und funktioniert das überhaupt?
Auf den alten Makern müsste das gehen. Ich hab das immer so gemacht:
- Ein Event dorthin setzen, wo das Bild angezeigt werden soll.
- In zwei Variablen die Screen-X- und Screen-Y-Koordinaten des Events speichern.
- Das Picture mit den beiden Variablen als Ursprung anzeigen. Meistens muss man die Koordinaten noch ein wenig anpassen, also z. B. den Y-Wert - 16 nehmen, damit das Bild wirklich auf dem Event zentriert wird.
Ich mach das Ganze jetzt so:
https://cherryshare.at/i/fHLdD9 (https://cherryshare.at/f/fHLdD9)
https://cherryshare.at/i/UXNz3S (https://cherryshare.at/f/UXNz3S)
So lange ich auf der Map bleibe ist alles cool, das schiff bewegt sich sogar problemlos über die Sprites.
Nur wenn ich die Map verlasse und von außen die Map erneut betrete, verschiebt es das Boot in der Gegend herum und korrigiert den Kurs nicht wieder trotz dem Event.
Noch anzufügen ist, dass ich in den Teleportevents von den Maps runter die beiden Variablen auf 0 setze.
Irgendwelche Ideen woran es hakt? :)
Der Maker merkt sich die Position der Pictures nicht und der Parallel Process startet ja auch wieder von vorne, setzt das Picture also auf die Startkoordinaten.
Davy Jones
02.03.2024, 21:08
Setz einen NPC auf eine Map, lass ihn mal mit Move Event 5 Schritte laufen, verlass die Map und geh wieder rauf. Der NPC ist nun wieder auf seiner Startposition, bevor er die 5 Schritte gegangen ist.
Und so wird mit allen Events verfahren (der NPC ist ja selber einer).
Wenn du also das Picture auf ein Event mit dessen X- und Y-Koordinaten festnagelst, wirst du exakt das gleiche Verhalten erleben. Du musst also den alten Event deaktivieren und einen neuen Event schaffen, auf dem die neue Position des Schiffes angezeigt wird.
Der Maker merkt sich die Position der Pictures nicht und der Parallel Process startet ja auch wieder von vorne, setzt das Picture also auf die Startkoordinaten.
Genau das will ich ja. Aber das Schiff ist auf einmal viel zu weit rechts wenn ich rechts die Map verlasse und wieder betrete und wenn ich die Map links verlassen, vice versa. Das Event bewegt sich zu keinem Zeitpunkt da es keinerlei movement route hat und seine Position auch nicht verändert wird und das Picture wackelt auch nur hoch und runter weil die Grafik ein Spritesheet ist, dass ich dementsprechend eingestellt habe.
Was macht denn der Switch beiboot movement bzw. wie bewegt sich das Schiff?
Was macht denn der Switch beiboot movement bzw. wie bewegt sich das Schiff?
Switch ist mittlerweile wirkungslos. Solte ein zweites Event ansteuern.
Das Schiff bewegt sich über den Check bei der Box Spritesheet Unterpunkt bei Show picture, das ist eine meines Wissens eine Neuerung des legalen 2k3s von Cherry.
Dann weiß ich auch nicht, woher der Fehler kommt. Ich hab mal ein ähnliches Event gebaut (wobei ich Screen-X und Screen-Y benutze) und bei mir bleibt das Picture auch nach Mapwechsel auf der gleichen Stelle.
Davy Jones
03.03.2024, 04:54
Halten wir mal fest:
Du hast den RPG Maker 2003 v.1.12 (Steam Version) und nutzt eine neue Funktion, mit der du ein Bild per Sprite Sheet animierst.
Das Bild wird mit X- und Y-Koordinaten auf ein Event fixiert, der Event selbst bewegt sich nicht.
Startest du auf der Map, ist alles ok. Verlässt du die Map und betrittst sie wieder, ist die Position des Bildes plötzlich anders.
Da hilft nur Ausschlussverfahren.
Erst einmal: Sofern dies bei dir nicht schon der Fall ist, nimm Screen-Relative X und Y, nicht die regulären X und Y.
Die machen bei solchen Anzeigen nämlich Probleme und sind eher dafür gedacht, bspw. Helden-Koordinaten für Skripte abzufragen.
https://i.imgur.com/hTSlpmH.png
Dann das hier:
Noch anzufügen ist, dass ich in den Teleportevents von den Maps runter die beiden Variablen auf 0 setze.
Die beiden Varis für die X-Y-Koordinaten? Nimm das mal raus.
Jedes mal wenn du die Map erneut betrittst, werden doch sowieso die Koordinaten neu abgefragt, warum also nochmal an den Variablen rumschrauben?
Außerdem: Je kleiner der Code ist und je weniger durch Einflüsse aus anderen Events herumgepfuscht wird, desto eher lässt sich die Fehlerquelle finden.
Und als letztes, nimm mal ein ganz reguläres Picture ohne die SpriteSheet-Funktion.
Probier mal alles der Reihe nach, setz deine Varis zuerst auf Screen-Relative X/Y, teste durch, dann nimm die Variablenoperation aus deinen Teleports weg, teste durch, dann ersetze die SpriteSheet-Funktion durch eine reguläre Bildanzeige, teste durch.
Zum Vergleich: So sieht ein funktionierendes Event mit statischem Pic bei mir aus:
https://i.imgur.com/DglqRY6.png
Das Pic bleibt bombenfest auf seinem Platz, egal wie oft ich hin- und herteleportiere. Andere Befehle / Events zur Steuerung des Pictures gibt es bei meiner Variante nicht.
Edit: Die Mapgröße, in welchem dieses Event vorkommt, ist ebenfalls übergroß und beträgt 34x27 Felder.
okay danke für eure Tipps. Der Punkt ist, ich hatte die Grafik zunächst als statisches Charset auf der Map und das hatte bereits gut funktioniert Dann werde ich es wohl probieren, das kleine Schiff als NPc zu animieren. Dachte halt, es wäre einfacher als Picture mit diesem Spritebefehl, aber nachdem ich gestern über 2 Stunden erfolglos damit rumfuhrwerkt habe ist in dem Fall wohl das editieren der Charsets die einfachste Lösung.
Erweiterung: Es klappt nun, dass das Ganze zumindest statisch ist mit dem Bild. Ich probiere jetzt doch noch etwas rum.
Danke auf jedenfall für jeden eurer Posts!
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.