Beiträge von Yoshis Fan

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“

    Hallo allerseits, ich hab letztens mal den Emerald Hack Flora Sky durchgespielt (das Original auf Englisch)
    und mir ist aufgefallen, dass dort Attacken hinzugefügt wurden, die es bei Gen 3 noch nicht gibt (ist auch nicht verwunderlich, gibt ja auch Gen 4 und 5 Pokés).
    Es gibt sogar selbst dazu erfundene Attacken, soweit ich weiß (Shadowflame, FlameOfRage...).
    Natürlich bedingen neue Attacken auch neue Animationen. Dazu wurden Grafiken und Paletten editiert, was ja an sich auch nix "specialiges" ist.
    Aber um NEUE Attacken hinzuzufügen, sprich Attacken >0x162 (Psyschub, IIRC) zu machen, müssen ja komplett neue Sachen hinzugefügt worden sein.
    Da Nintendo ja von Natur aus ziemliche Platzsparer sind, und sich Animationen unter den Attacken wiederholen, hab ich mir gedacht,
    dass jede Teil-Animation irgendwie indiziert sein muss.
    Ein Beispiel:


    Härtner -> Eisenglanz/-; Metallklaue -> Eisenglanz/Klauenattacke; Eisenschweif -> Eisenglanz/Schweifhieb;
    Zermalmklaue -> Klauenattacke/-; Drachenklaue -> Drachenfeuer/Klauenattacke


    Dies ließ mich zum Schluss gelangen, dass jede Attacke aus bis zu zwei Teil-Animationen aufgebaut ist,
    und diese in irgendeiner Art Tabelle (Indiziert oder Zeigertabelle) augelistet sein muss
    (auch mit Zeigern für die Palette, denn der Schild von Lichtschild/Reflektor/Barriere usw. hat je nach Attacke eine unterschiedliche Palette, die Animation an sich ist aber gleich).
    Ich habe das Experiment mit "Drachenstoß" gemacht: Attackennamen-Tabelle verschoben, Attackenwirkungen-Tabelle verschoben
    und die Attacke genauso gemacht wie Drachenstoß, die Attacke war Nummer 0x163. Ich hätte eig. gedacht, dass das Spiel stehenbleibt, wenn ich sie einsetze,
    aber stattdessen stand dann da: "KNAKRACK setzt eine DRA.-Attacke ein". Alles normal nur halt keine Animation.
    Natürlich, wenn ich die Attacke als 0x162 gemacht hätte, also Psyschub ersetzt hätte, wäre die Animation von Psyschub abgespielt worden.
    Also, weiß hier jemand von Euch, ob es diese Tabelle wirklich gibt, und wo ich sie finden kann?
    (Die Tabelle für das Laden der Attackengrafiken und Paletten habe ich schon gefunden, aber wenn man das editiert, ändert das die Animationenfolge kein bisschen, ändert halt nur Grafiken/Palette der Attacken, die die jeweilige Grafik/Palette nutzen)
    Speziell für Drachenstoß würde sich eine Kombi aus Drachenfeuer/Risikotackle eignen.
    Ich glaub' neue Animationen zu machen ist ZIEMLICH kompliziert und brauch ich auch nicht wirklich.
    Will halt nur vorhandene Animationen in bestimmter Reiheinfolge für bestimmte Attacken nutzen.
    Für die Feuerrote Edition, bitte!


    Das wär's, hoffe mir kann hier jemand helfen.
    Und danke fürs Lesen, falls sich einer das angetan hat :P

    Ich bin mir ziemlich sicher, dass ich alles richtig gemacht habe. Na gut, so dringed ist es jetzt auch nicht, ich habe einfach die Grafiken von den Exorzistinnen geopfert, aber das nächste Problem, das sich jetzt auftut ist, dass die Schrift rot ist, wenn die Weisen sprechen und ihre Pokémon ebenfalls alle weiblich sind... Kann man i-wo festlegen, ob das Spiel eine Personen-Nr als männlich oder weiblich ansieht?

    Ach so, danke!
    So, jetzt habe ich wieder was Neues:
    Ich bin beim KNOFENSA-TURM und muss jetzt natürlich OWs erstellen von den "Weisen". Dazu habe ich den unbenutzten Sprite OW, der den Pokédex zeigt, benutzt und schon mal auf 16x32 vergrößert und die Frame-Pointer repointet, aber die Sprite hat trotzdem nur eine Frame. Wie kann ich die Anzahl Frames jeder OW-Grafik einstellen?

    Also eigentlich sind immer Sprites betroffen, bei denen ich den weiter oben stehenden Bewegungstyp "Blicke nach unten" eingestellt habe. Er ist im Originalspiel auch zig-Mal eingestellt und dort gibt es nie Bugs. Das Seltsame ist jetzt, dass der Bug immer häufiger passiert. Ist die ROM corrupted? Natürlich, ich kanns immer fixen, dauert aber manchmal und ist nervig... Passiert auch, wenn ich den Pokédex aufrufe, ich habs so eingestellt, dass man schon zu Anfang den Nationalen Dex bekommt... Vielleicht hab ich ne Flag oder Var vergessen...?

    Nach einem Dreivierteljahr hatte ich mal wieder Bock aufs Arbeiten am Feuerrot-Hack (Auch bekannt als der 10.000 Remake der 2. Generation durch Benutzung der Engine der 3. Generation, Pokémon Pure Crystal).
    Naja, aber jetzt hat sich eine kleine Schwierigkeit gezeigt. Es geht um wilde Pokémon.
    Ich habe mir freie Mapdaten angelegt, sprich, ich habe jetzt 44 Mapbanks, statt 42. Also, jedenfalls auf Route 29 und Route 30 (43.1 und 43.7) (Route 31 ist die nächste Map, die ich erstelle), den bis jetzt einzigen Maps mit wilden Pokémon, scheint das Spiel nach einem Kampf mit einem wilden Pokémon manchmal verbuggt zu sein. Wenn ich in der Nähe des Items "Trank" auf Route 29 kämpfe, kann ich nach dem Kampf den Hero nicht mehr steuern, sondern scheinbar nur den Pokéball, der für das Item steht... Auf Route 30 kam nach einem Kampf plötzlich ein Trainerkampf mit einem der Trainer auf Route 30. Und ein anderes Mal konnte ich den Hero nicht mehr steuern und auch keine andere Person oder ein anderes Item. Die Routen sind exakte Remakes von denen der 2. Generation, was das Aussehen, die Größe und die Geh-Daten anbelangt. Auch glaube ich, dass ich beim Setzen der Pokémon-Daten alles richtig gemacht habe. Ich habe für alle 12 Pokémon eins angegeben und sogar Minimal- und Maximallevel überall gleichgesetzt (wie im Originalspiel). Auch werden dieselben Pokémon benutzt wie in der Kristall-Edition (logischerweise ohne Unterscheidung zwischen Tag und Nacht...). Die Scripts für die Personen/Items etc. funktionieren bugfrei und wenn ich die wilden Pokémon-Daten lösche, funktioniert auch wieder alles super...
    Vielleicht kann jemand helfen, oder schreiben, ob es besondere Dinge zu beachten gibt? Ich aber glaube, dass es ebenfalls an den Personen an sich liegen kann, auch wenn diese ja sonst tadellos funktionieren. Falls jemand will, dass ich den Hack mal schicke, mach ich einen IPS-Patch fertig.


    *Edit*
    Hm, seltsam, Änderung der Personen-Nr des Trankes behebt das Problem mit dem Trank völlig.
    Ich probier dasselbe mal mit dem Trainer...
    Okaaaay... Es funzt jetzt bugfrei, die Frage ist nur, warum es an der Personen-Nr lag...

    Ach so! Danke sehr!
    Aber ich meine es gäb wirklich ein Byte-Limit. Wenn ich ein existierendes, kompiliertes Script von AM aus in XSE editiere und Bytes (in Form von Befehlen) hinzufüge, nimmt er das nicht. Wenn ich es dann kompiliere, das Script schließe und danach wieder öffne, sieht es aus wie vorher. (Eigentlich muss es ja so sein, weil existierende Scripts sonst andere Sachen überschreiben würden)

    Ja, ich meinte ja setflag.
    Nicht der XSE bereitet mir Probleme sondern BufRite. Wenn ich z.B. ein Script, das schon im Spiel drin ist, öffne und daraus ein paar etwas "exotischere" Befehle wie z.B. setvar benutzen will, kompiliert BufRite diesen falsch. Wenn ich den Befehl "setvar 0x4002 0x3" z.B. benutzen will und ihn mit BufRite kompiliere (den Script habe ich vorher auch mit XSE geschrieben) kommt da irgendein Kauderwelsch raus, der dann keinen Sinn mehr macht. Wenn ich dann in AM auf das Script-Offset gehe und den Script öffne, steht da nur irgendwas sinnloses ab da, wo der "exotische" Befehl stehen sollte. Und im Nachhinein noch ein Script zu editieren ist auch blöd, weil man dann ein Byte-Limit hat.

    Ach so! Das heißt also, wenn ich ne Person mit der ID 8C3 hab, muss ich einfach [checkflag 0x8C3] schreiben und dann ist sie weg?
    Das Problem ist ja jetzt, dass es einer von den drei Bällen sein kann. Da mach ich dann einfach: Wenn ich ENDIVIE genommen hab, geht der Pokéball mit FEURIGEL weg, wenn ich KARNIMANI genommen hab, geht ENDIVIE weg und wenn ich FEURIGEL genommen hab, geht KARNIMANI weg.
    Wie sieht das mit dem falschen Kompilieren aus? Weiß jemand, wie ich das beheben kann. Ich geh mal davon aus, dass BufRite ein paar Befehle nicht kennt, die XSE kennt. Gibt's noch ein andere Compiler-Programm?


    (Falls es hier irgendjemanden interessiert: Ich werde Gengars Typ in Geist/Unlicht umwandeln, dieser Typ hat keine Schwächen!)
    (Und falls es dich interessiert, Prime, die TMs wurden von Zel in seiner Shiny Gold version geändert, vielleicht ist es so leichter, herauszufinden, wie's gemacht wird)

    So, ich hab jetzt mit XSE n bisserl gescriptet, aber wenn ich es kompiliere ist alles falsch. (Der Map-Script klappt jetzt aber, das war eigene Doofheit, ich hab vergessen den Befehl SETVAR auch im Script selbst zu benutzen :patsch: ) Ich muss es mit BufRite kompilieren, weil man mit XSE ja nicht kompilieren kann. Es ist ein dynamischer Script. Und immer wenn ich versuche, ihn irgendwie mit XSE zu kompilieren, sagt er mir, dass die Pointer fehlerhaft sind, weil sie ja dynamisch sind und nicht auf ein bestimmtes Offset zeigen. Hier ist der Script:


    Nebenbei: Kann man auch Map-übergreifende Scripts machen, wie in Kristall (ich glaub da ist so ein Trigger, sobald man bei Mr. Pokémon war, verliert Lind den 2. Pokéball. Sowas mein ich. Wenn man auf Map A.B ist und das Script ausgeführt wird, passiert etwas auf Map X.Y), oder braucht man dazu ASM?


    Ah, OK, danke Sturmvogel!
    Wie sieht's denn mit "selbstgemachter" Musik aus?
    Ich glaube, der GBA hat 16 Kanäle. Welche "Instrumente" hat er?
    Ich brauche die zusätzliche Musik für die Arenaleiter und für die Kämpfe gegen die Beschützer von Mew. (Vielleicht auch noch andere legendäre Pokémon)
    (Referenz zu Gold, Silber und Kristall) Aurius, Argentis und Crysthor (Bessere Vorschläge werden dankend angenommen, die Namen müssen aber eine Referenz zu den lateinischen Begriffen aufweisen) Der Kampf gegen Aurius und Argentis ist n Doppelkampf, sprich mit 2 Pokés auf jeder Seite.
    Hier sind n paar Midis. Die werde ich wahrscheinlich für die Beschützer von Mew nehmen, falls man Musik einfügen kann. Vielleicht erkennt jemand, von welchen Spielen die Musik kommt. Ich habe sie aber ein klein wenig bearbeitet.

    Sorry fürs Doppelposten, aber ich hab mal ne Frage. Die Chance, dass ein Shiny auftaucht steht ja 0,01220703125%
    Das sind 8 zu 65536. Heißt also auf gut deutsch, dass es doch eine variable, bestehend aus 2 Bytes geben muss, die als Wert 8 hat. Das Höchstmögliche sind 100%, also wäre das [FF FF] (0xFFFF=65536). Wahrscheinlich ist dieser Wert wieder Mal Byte-vertauscht, heißt also, er sollte [08 00] sein. Weiß jemand, wo er ist? Ich würde gerne die Wahrscheinlichkeit auf ein Shiny auf 0,5 oder 1% erhöhen.

    Hier ist er:

    So, da bin ich wieder. Hab das mit dem Map-Script jetzt mal probiert, funzt aber nicht GANZ so, wie ichs wollte. Bis zum Schluss ist alles super, aber dann funktioniert das "release" nicht und das Spiel friert ein. Ich hab das Script nicht geändert ich bin nur dem Tut gefolgt und hab dieses RAW-WORD und den andern Kram eingefügt...

    Ah, OK, danke sehr!
    Werde leider nicht mehr dazu kommen, es in der nächsten Zeit auszuprobieren, weil ich morgen um 4 Uhr aufstehen muss, es geht auf Kreuzfahrt ins Mittelmeer :thumbsup:
    Deswegen werde ich bis zum 3.8. nicht mehr an den PC können.

    Also ich hab das Script jetzt eins über den Warp gesetzt, geht ja auch und dann mit Var-Nummer 4050 und Unbekannt 3. Das hat einwandfrei funktioniert (Außer, dass ich mich n paar Mal beim Text verschätzt habe und er aus der Box geht) Hier ist ein Video.
    http://download312.mediafire.c…9t3k1o3ur6vnif4/LABOR.AVI
    Dass LIND nachher im Spieler drinsteht liegt daran, dass ich die movements nicht an die Script-Ausführ-Position angeglichen habe. Würde das Script bei Betreten des Raumes starten, wäre alles OK. Führt sich aufgrund der SetFlag auch nicht mehrmals aus, hab ich schon getestet. Jetzt muss ich es nur noch dazu bringen, dass es startet, wenn man das Labor betritt. Natürlich muss das Script noch verbessert werden, sodass er nicht während des Gehens redet und dass er erst wartet, wenn er das ! kriegt, bevor er geht. (Gibt's bei den movements ne Delay-Funktion oder muss ich immer auf pausemove 0x0 zurückgreifen?)
    Das Bild von PROF. LIND ist das Bild von normalen Forschern. Ich werde aber früher oder später mal einen eigenen LIND machen.
    Übrigens: Ich heiße im RL NICHT Uwe. Das war einfach nur n Zufallsname, der auf der Edition gespeichert ist.


    Und noch ne Frage: Kann ich Musik hinzufügen?
    Wenn ja, ist es bestimmt nicht getan mit MIDI auswählen & fertig, oder?

    Das ist die Art Syntax, wie ich sie als .rbc-Datei kompiliere. Also Script-Editor in AdvMap hab ich XtremeScriptEditor. Der schreibt das alles n bisschen anders. Aber das pausemove 0x0 hat bei mir bisher immer hervorragend geklappt. Weißt du, ob man bei Map-Scripts irgendwas bestimmtes beachten muss?

    Hey, ich hab hier mal nen Map-Script. Es soll so funktionieren, dass es sobald man das Labor betritt ausgeführt wird. Also habe ich bei den Map-Scripts das Offset eingetragen und 5: Bei betreten ausgewählt. Funktioniert aber leider nicht.
    Kannst du Fehler entdecken?


    OK, das Pokémon scheine ich zu bekommen, aber es ist irgendwie total buggy.
    Es kommt kein Textbox sondern nur die "Fanfare". Auch erscheint im START-Menü nicht der Unterpunkt POKéMON nachdem ich es erhalte, also kann ich nicht nachgucken, ob ich es wirklich erhalte. Ich habe dein Script exakt kopiert und mit Buf Rite kompiliert... Aber so richtig klappt's nicht. Außerdem ist EICHs Labor iwie komisch. Wenn ich dort einen zusätzlichen Pokéball mache, dann verschwindet ein anderer, der auf dem Tisch liegt. Außerdem kann ich dann kein Pokémon nehmen. Ich hab alle Map-Scripts schon gelöscht (keine Ahnung, wie die Map-Scripts funzen, oder wofür die gut sind...), aber es bringt nichts, ich kann mir einfach keins nehmen. Wenn ich den Pokéball irgendwo anders ablege kommt wie beschrieben nur die Fanfare und sonst nichts... Ich werd mal versuchen, ein eigenes zu schreiben. Aber wichtig ist, dass der Unterpunkt POKéMON im START-Menü erscheint. Da der 2. Pokéball später geklaut wird, muss er nicht sofort verschwinden.

    Okay, ich bin ja schon still :whistling:
    Sooo megadringend isses auch nicht, ich muss mich erstmal mit dem ganzen anderen Zeug rumschlagen. Der Spieler bekommt die erste TM ja sowieso erst nachdem er FALK besiegt hat.


    *EDIT*
    Nächstes Problem: Das erste Pokémon.
    Wenn ich zu PROF. LINDs (EICHs) Labor gehe, liegen da die 3 Pokébälle und wenn ich sie anquatsche, kann ich mir keinen nehmen (logisch, weil der EICH-Trigger in Alabastia erst kommen muss.) Da die Situation aber komplett anders ist, weil ich mir in der Kristall das erste nehmen kann, sobald ich das Labor betrete, sind die Scripts der Pokébälle ja überflüssig. Was fürn Script ist denn das einfachstmögliche, was ich schreiben kann? Natürlich will ich auch nicht, dass der andere Pokéball sofort verschwindet. Außerdem muss im START-Menü der Unterpunkt "POKéMON" angezeigt werden.