$cript&ASM Help

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

Zu der Infoseite von „Die Mo-Mo-Manie“
  • In der alten Version von XSE gehört "callstd" hinter den msgbox Befehl. In der neuen wird es als Pararmeter von msgbox eingearbeitet. Vorher ist es aber auf jeden Fall nicht korrekt.


    ~Sturmvogel

  • hab callstd 0x6 entfernt. kein roter screen, ne textbox kommt trotzdem nicht...



    hinter der msgbox speichert das script das nicht ab...

  • ja... sieht so aus. am script liegt der redscreen jedenfalls nicht und auch sonst fällt mir keine Einstellung ein, die soetwas auslösen und wieder bekommen werden kann. In dem fall ist wohl deine ROM gecrasht. Es wäre also am besten noch mal mit einer clear-ROM zu starten und die Maps/Scripts/Grafiken und anderen Hacks darauf zu übertragen. Dabei natürlich auch immer Backups machen, damit du im Falle eines Falles einfach darauf zurückgreifen kannst und nicht alles erneut machen musst.

  • Bei deinem Script fehlt das callstd...
    Das muss entweder nach dem msgbox Befehl oder als "0x6" Pararmeter hinten dran(Kommt drauf an welche XSE Version du verwendest, ich denke mal die alte, also unter dem msgbox Befehl)


    ~Sturmvogel

  • 1. hab leider die beiden Posts über mir wegen der neuen Seite übersehen
    2. dennoch sollte ich vllt meine Vermutung etwas genauer ausdrücken:
    Der Redscreen wird von einem Crash der Textroutine/Textgrafik ausgelöst. Dies ist aber nur schwer zu fixen (man kann alles fixen, aber sich durch 8-16MB zu arbeiten ist nicht gerade angenehm) und du/wir wissen auch nicht, wo genau er liegt. Letztenendes, falls es also nicht unwahrscheinlicherweise durch SBirds tipps klappt, wäre wohl das Übertragen (abspeichern und einfügen) der Mapps über den AM einfacher, als den Fehler zu suchen.

  • Hallo liebe Bisafans und Scriptgemeinde,


    Ich bin zu euch gestoßen wegen eines Problemes. Ich möchte in meinem selbst kreierten Spiel einen alternativstart einfügen, so dass man, anstatt eines Start-pokemons, einen pokeball hat, mit dem man sich selbst sein erstes pokemon fangen muss.
    Die Vorlage zu diesem Script ist das Safariezonenscript, da man aber in diesem script 30 Safaribälle hat und eine gewisse Schrittanzahl, wollte ich es so umändern, dass man unendlich Schritt hat und eine Art Starterball basierend auf dem Meisterball. Leider sind meine Scriptkenntnisse noch nicht so ausgereift und ich hoffe das es jemanden in der comunity gibt der mir helfen könnte. Ich freue mich jetzt schon auf eure tollen Beiträge


    #org 0x8165797
    '-----------------------------------
    special 0xCD
    setvar 0x406E 0x2
    waitspecial
    storeitem 0x0 0x2500
    hidebox 0x1 0xF 0x0 0x22
    #raw 0xEB
    addvar 0x908 0x6B04
    end

  • Also, das hat wenig mit Scripting zu tun ;)
    Die 30 Bälle und die 600 Schritte die man hat, werden durch eine Routine im ROM bestimmt..
    Ich kann mich ja mal dransetzen und versuchen, diese Routine zu verändern, garantieren kann ich aber nichts :P


    Es wäre wahrscheinlich sogar leichter, eine eigene ASM-Routine zu schreiben..
    Denn ich glaube kaum dass du Steine und Köder werfen willst, oder? :D

  • Da wäre es wohl schlauer, sich zu helfen indem man eine Art Safarizone zu erschaffen, dem Spieler einen Meisterball und ein Leihpokémon in die Hand zu drücken und ihm dann den Auftrag zu geben sich ein Pokémon zu fangen. Das Leihpokémon kommt anschließend wieder weg und du hast zumindest eine ähnliche Situation. Du bräuchtest trotzdem etwas um dem Spieler sein Pokémon wieder wegzunehmen und ich weiß ja nicht, ob du dich dahingehend gut genug auskennst.


    Laz0r: Meh, 'nuf said


    ~Sturmvogel

  • Hallo liebes Forum :)


    Ich arbeite nicht zum ersten Mal mit Advance Map, deshalb kenne ich mich mit diesem Programm bereits aus, dennoch habe nun eine Frage:


    In Vertania City gibt es ja den alten Mann, der euch erst durchlässt, wenn (er seinen Kaffee bekommen hat)/ihr das Paket zu Prof. Eich gebracht habt.
    Ich möchte ihn nun an eine andere Stelle auf dieser Map verschieben, finde ihn aber nirgends in den Events!
    Seine Frau und das Skript neben ihm habe ich bereits verschoben, aber wie kann ich den alten Mann verschieben?


    Ich hoffe, ich bin hier in speziell diesem Forum richtig ;D


    Danke schonmal,
    PanCave

  • Hallo,
    Ich versuche gerade eine Map zu erstellen. Allerdings habe ich da ein Problem.


    Ich möchte in der ersten Stadt zwischen drei Pokemon auswählen. (Ich benutze die Smaragd Edition)
    Ich habe mir auch schon das Script angesehen:


    #org 0x1ECF74
    lock
    faceplayer
    setflag 0x860
    setflag 0x52
    fadescreen 0x1
    hidesprite 0x4
    movesprite 0xFF 0x6 0xD
    applymovement MOVE_PLAYER 0x827DCA5
    waitmovement 0x0
    special 0x9F
    waitstate
    applymovement 0x2 0x81ECFEB
    waitmovement 0x0
    msgbox 0x81ED08A '"PROF. BIRK: Puuuh[.]\pIch habe im h..."
    callstd 0x4
    special 0x0
    setflag 0x2D0
    clearflag 0x2D1
    setflag 0x2BC
    setvar 0x4084 0x2
    setvar 0x4060 0x3
    clearflag 0x4000
    checkgender
    compare LASTRESULT 0x0
    if 0x1 call 0x81ECFE3
    compare LASTRESULT 0x1
    if 0x1 call 0x81ECFE7
    warp 0x1 0x4 0xFF 0x6 0x5
    waitstate
    release
    end


    Kann mir jemand dieses Script umändern? So das ich nur die Auswahl der Pokemon habe oder ein anderes Script wo ich zwischen 3 Starter-Pokemon auswählen kann.


    Ich würde mich freuen wenn mir jemand weiter helfen könnte.


    Mfg, Sturmscar

  • Edit:


    OK, hab nach vielem herumsuchen, und Blicke auf die Scripte vom G/S Radioquiz und dem Zuchtopa in FR, endlich mal die Lösung gefunden. War einfacher als gedacht. Bin grad nur noch dabei das mit dem richtigen hin und herlatschen zwischen den Räumen hinzubasteln, sollte aber nu werden.



  • Hi zusammen


    Ich hoffe ich bin hier am richtigen Ort, geht eigentlich nicht um Mapping, aber ich habe keine bessere Kategorie gefunden.


    Ich bin gerade dran, zum ersten Mal eine ROM (BG) zu hacken.
    Da es das erste Mal ist, will ich nicht ein komplett neues Spiel erstellen.
    Ich möchte vor allem mappen, die Story ein wenig verändern, neue Orte und Pokémon erstellen...


    Besonders das Scripten scheint mir noch zu kompliziert. Ich ändere die Scripts lediglich ab.
    Nun komm ich aber kaum drum rum... Es ist folgendermassen:


    In der ersten Stadt muss man ja in BG/FR im Markt einen Brief abholen, der zu Professor Eich muss. Die Stadt habe ich komplett umgestaltet, dieser Umstand bleibt aber gleich. Ich möchte jetzt, dass beim Verlassen der Stadt auf die nächste Route ein Mensch steht, der mich nicht durchlässt, bis ich den Brief zu Prof. Eich gebracht habe.


    Der soll also quasi da stehen und mich darum bitten, den Brief zu holen und zu Eich zu bringen. Erst wenn ich das getan habe, soll er wieder verschwunden sein oder mich passieren lassen o.ä.


    Kann mir vlt jemand einfach erklären, wie man solche Dinge macht?
    Oder eine Script-Vorlage geben?


    Vielen Dank!


    Gruss

  • Ich bin gerade damit beschäftigt Pokemon Rubin ein bisschen Umzuscripten...
    Ich habe also einen neuen Trainer ins Spiel eingefügt und ein Script geschrieben.
    Wenn ich den Trainer von der Seite anspreche (er hat mich nicht zuerst gesehen) dann wird das Script aufgerufen, der Trainer sagt seinen vorbestimmten Text, ich kämpfe gegen ihn und so weiter, alles läuft also nach Plan.
    Wenn ich ihn aber nicht anspreche sondern er mich sieht, und auf mich zuläuft dann wird seltsamerweise das Script nicht geöffnet, der Bilschirm wird Pink und das Spiel chrasht.
    Woran liegt es, dass das richtige Script nur geöffnet wird wenn den Trainer anspreche und nicht wenn er mich sieht?



    Ich benutze übrigens:
    Advance Map
    Advance Trainer
    Pokescript von Pokewitch


    MfG Wassili Milotic

    3 Mal editiert, zuletzt von Wassili () aus folgendem Grund: Einen Teil des Problems konnte ich durch ewiges googlen lösen...

  • Ohne den Inhalt des Scripts ist es schwer, die möglichen Fehlerquellen zu bestimmen. Beim nächsten Mal bitte mit angeben.
    Ansonsten hilft dir vielleicht der eintrag in folgendem Tutorial bei Punkt 5.8 weiter, da steht erklärt, wie man mit Pokéscript einen Trainerkampf macht: Scripten via Pokescript

  • Zur Zeit versuche ich eine Attacke zu scripten, die wie Aussetzer und Konfustrahl zusammen funktioniert. Hierbei verwende ich das Pokemon Essentials Kit, bei dem die Attacken schon vorgegeben sind und ich sie im Grunde nur noch kombinieren muss. Das Problem darin liegt allerdings an den Situation in welchen dei Attacken nicht funktionieren. Somit schaffe ich es nicht die Attacke so zu scripten, dass beide Effekte eintreten. Entweder habe ich nur den Effekt von Aussetzer oder nur den Effekt von Konfustrahl. Ein weiteres Problem, dass dann auftreten wird ist, wenn die Attacke trifft, so wie sie sein soll, dann glaube ich, dass nur ein Effekt eintritt. Z.B. ist der Gegner bereits verwirrt, dann soll trotzdem noch der Effekt von Aussetzer eintreten und nicht die Attacke fehl schlagen.
    Ich habe mal die Scripts von Konfustrahl und Aussetzer in einen Spoiler gepackt:



    Bisher habe ich nur probiert beide Scripts nacheinander aneinander zu hängen, was natürlich nicht funktioniert hat.
    Ich würde mich freuen wenn jemand eine Idee hat, wie dieses Script umgesetzt werden kann und mir weiterhelfen kann.

  • Effektiv musst du die If-Anweisungen passend miteinander verschachteln, um das kombinierte Ergebnis zu erzielen. Wie du sie konkret verschachteln musst, hängt aber davon ab, wie die Kombinationsattacke funktionieren soll. Sollen beide Effekte unabhängig voneinander funktionieren, musst du quasi beide aneinander hängen, darfst aber erst ein return-Statement ausführen, wenn beide Teile abgearbeitet wurden. Soll das eine nicht funktionieren, wenn das andere auch nicht tut, kannst du die returns so lassen etc.
    Ein Beispiel für erstgenannte Möglichkeit wäre es, in den Code von Konfustrahl anstelle des "return 0" den kompletten Code von Aussetzer (bis auf die Funktionsdeklaration und das zugehörige end) einzufügen. Sollte so tatsächlich funktionieren, ggfs. solltest du aber noch die Texte anpassen und du musst dir Gedanken darüber machen, wann du -1 und wann 0 zurückgeben möchtest, also unter welchen Umständen die Attacke als erfolgreich betrachtet werden soll und wann nicht.

  • Ich bräuchte Hilfe für ein Script bei meinem Feuerrot-Hack (englisch, mit "Jpans Hacked Engine").


    Ich will einen NPC einbauen, der mir sagt, ob das erste Pokemon in meinem Team bereits die vollen 510 EV gesammelt hat oder nicht. Da es ja in FR/BG keinen EV-Prüfer gibt, sondern nur in RSE, habe ich mir erst einmal das entsprechende Script in Smaragd angeschaut und die dortigen specials in meinem Hack ausprobiert. Wie nicht anders zu erwarten war, hat es natürlich nicht funktioniert (aber hey, probieren geht über studieren).
    Meine zweite Idee war also, die einzelnen EV-Werte des Pokemon auszulesen, sie in jeweils eine variable zu stecken und diese Variablen dann miteinander zu addieren, um daraufhin zu überprüfen, ob der Endwert 510 ist oder nicht. Das Auslesen ist kein Problem, dafür aber das Addieren. Denn es gibt zwar "addvar", aber damit kann man nur einen festgelegten Wert zu einer Variable hinzufügen, ich will allerdings keinen festen Wert addieren, sondern eben eine andere Variable.


    Meine konkreten Fragen wären also:
    1. Gibt es in Feuerrot ein special, das die Vollständigkeit der EV überprüft?
    2. Ist es möglich, zwei Variablen miteinander zu addieren, wenn ja, wie?

    107716-bd8fa1b4.pngIch kenne die Hälfte von euch nicht halb so gut, wie ich es gern möchte, und ich mag weniger als die Hälfte von euch auch nur halb so gern, wie ihr es verdient.
    - Bilbo Beutlin -


    Meine Anime-Liste: MAL -Azaril-

  • vorweg, ich hab schon lange nichts mehr in diesem bereich gemacht und ggf gab es neue Erkenntnisse. Im weiteren kenne ich nicht alle features von der hacke-engine, ggs könnte es also auch hier einfachere wege geben.
    So weit ich weiß gibt es kein special dafür, die evs sollten aber in den Pokemon-daten stehen
    auch das Addieren zweier Variablen dürfte schwer werden. vllt gab es ein special, vermutlich wirst du dir aber mit ASM behilflich sein müssen.