$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“
  • ich glaube bei der mehrzwahl von Syntax kommt Syntaxe raus...
    aber egal: Nach dem Script zu urteilen, hast du keine Flaggesetzt, die die Sprite erscheinen/verschwinden lassen würde...
    Du musst der Person die du verschinden lassen bzw auftauchen lassen möchtest eine Personen-ID geben, die gleichzusetzten ist, mit einer noch freien Flag.
    Wenn du nun die Person anzeigen bzw. verschinden lassen möchtest musst du zuerst die Flag setzten bzw. clearen und anschließend über show- bzw. hidesprite den Sprite erscheinen lassen. (ich weis jetzt nicht ob Setflag + showsprite den sprite erscheinen lässt oder clearflag + showsprite. Dementsprechend weis ich es auch nicht beim hidesprite...)

    Ich hab meine Schwester gefragt, die hat griechisch, darauf vertraue ich erst mal :P
    Egal; es reicht einfach nur die Flag setzen um den Verschwinden zu lassen, man braucht kein hidesprite (das wieder auftauchen ist hier mein Problem). Wenn man bei Bewegung schon versteckt nimmt kann es jedenfalls sein, dass man zusätzlich noch showsprite braucht, ausprobieren kann ichs nicht, weil mein Hacking-PC grade schrott ist, ich werde einfach mal warten was ihr sagt^^

    [tabmenu][tab=YT-Channel]DarkTekHacks
    In Bearbeitung: Scripting Tutorial #001 - Grundlagen zu Events
    Ich habe im Moment keine Zeit für Tutorials, sorry.
    [tab=dA-Account]TheDarkShark
    Ab sofort wird immer, wenn ich was sehenswertes mache, hochgeladen![/tabmenu]

  • Ich hab meine Schwester gefragt, die hat griechisch, darauf vertraue ich erst mal :P
    Egal; es reicht einfach nur die Flag setzen um den Verschwinden zu lassen, man braucht kein hidesprite (das wieder auftauchen ist hier mein Problem). Wenn man bei Bewegung schon versteckt nimmt kann es jedenfalls sein, dass man zusätzlich noch showsprite braucht, ausprobieren kann ichs nicht, weil mein Hacking-PC grade schrott ist, ich werde einfach mal warten was ihr sagt^^


    jo danke das hab ich mir schon gedacht nur ich lerne diesen script gerade erst und daher weiß ich nicht was ich genau einsetzen muss!


    Also muss ich
    Showsprite 0x und dann die personen ID oder was? ?(

  • nein, setflag 0xPersonen-ID
    (die Personen-ID musst eine freie Flag sein und dem Sprite mit AM zuteilen)
    hidesprite 0x Personen nummer wie auch beim Applymovement.
    Anstelle des hidesprites geht auch der entsprechende Befehl beim Movement.


    oder eben clearflag 0xPersonen-ID
    showsprite 0xPersonen nummer wie auch beim Applymovement.
    Anstelle des showsprites geht auch der entsprechende Befehl beim Movement.


    ich hoffe die Konstelation passt so, von clearflag-> showsprite und setflag->hidesprite...


  • ich werds mal versuchen! Danke nochmals

  • ich wollte nur sagen dass das script seit einiger Zeit perfekt geht ich habe auch ein bisschen Hilfe von einem Youtuber bekommen
    #org $begin
    lock
    applymovement 0xD $move1
    pausemove 0x0
    message $1
    boxset 6
    trainerbattle 9 0x001 $before $after
    message $beaten
    boxset 6
    applymovement 0xD $move2
    pausemove 0x0
    message $3
    boxset 6
    applymovement 0xD $move3
    pausemove 0x0
    message $4
    boxset 6
    giveitem 0x0A 0x01
    message $5
    boxset 6
    applymovement 0xD $move4
    pausemove 0x0
    #raw 53
    #raw D
    #raw 00
    setflag 0x1200
    setvar 0x6000 0x0001
    release
    end



    #org $1 1
    =Hey, \v\h01! Wie gehts? \nalso ich war gerade \pin Orania City! \pLos lass uns kämpfen!


    #org $2 1
    =\v\h01 du bist stark \ngeworden! \pNa warte! Beim nächsten \nTreffen siege ich!


    #org $3 1
    =Oh ich vergaß!


    #org $4 1
    =Das ist für dich!


    #org $5 1
    =Das ist ein Timerball! \nEin sehr nützliches Item!


    #org $before 1
    =Der Sieg ist mein!


    #org $after 1
    =Neiiin!


    #org $beaten 1
    =Meine Güte!


    #org $move1
    #raw 0x11 0x11 0x11 0x11 0xFE


    #org $move2
    #raw 0x10 0x10 0x10 0xFE


    #org $move3
    #raw 0x11 0x11 0x11 0xFE


    #org $move4
    #raw 0x10 0x10 0x10 0x10 0x10 0xFE


    ich habe wie ihr es gesagt habt eine setflag eingebaut und habe noch einen setvar eingebaut!
    Der hauptsächliche Fehler war dass ich statt "applymovement 0xD" "applymovement 0x13" geschrieben habe und habe dabei ganz vergessen das in Hexerdezimal zu schreiben!
    Aber trotzdem nochmals danke für den Tipp! ;D

  • Der hauptsächliche Fehler war dass ich statt "applymovement 0xD" "applymovement 0x13" geschrieben habe und habe dabei ganz vergessen das in Hexadezimal zu schreiben!
    Aber trotzdem nochmals danke für den Tipp! ;D

    "0x" ist das meist verwendete Vorzeichen für Hexadezimal; wenn du das liest, weißt du sicher, dass du Hex benutzen musst. Etwas seltener ließt man auch &H oder so was ähnliches (ich vergesse das immer wieder xD), aber ich hab das glaub ich nur einmal gesehen, und das war bei einem Grundlagentutorial für das Hexsystem^^
    Und als kleiner Hinweis: XSE erkennt auch Dezimal an (ohne Vorzeichen), ob PokeScript das macht weiß ich nicht. BTW: wieso benutzt du Pokescript? XSE hat mehr Features und schreibt das ganze direkt in den ROM. Kann ich nur empfehlen.


    PS: frohe Weihnachten

    [tabmenu][tab=YT-Channel]DarkTekHacks
    In Bearbeitung: Scripting Tutorial #001 - Grundlagen zu Events
    Ich habe im Moment keine Zeit für Tutorials, sorry.
    [tab=dA-Account]TheDarkShark
    Ab sofort wird immer, wenn ich was sehenswertes mache, hochgeladen![/tabmenu]

  • "0x" ist das meist verwendete Vorzeichen für Hexadezimal; wenn du das liest, weißt du sicher, dass du Hex benutzen musst. Etwas seltener ließt man auch &H oder so was ähnliches (ich vergesse das immer wieder xD), aber ich hab das glaub ich nur einmal gesehen, und das war bei einem Grundlagentutorial für das Hexsystem^^
    Und als kleiner Hinweis: XSE erkennt auch Dezimal an (ohne Vorzeichen), ob PokeScript das macht weiß ich nicht. BTW: wieso benutzt du Pokescript? XSE hat mehr Features und schreibt das ganze direkt in den ROM. Kann ich nur empfehlen.


    PS: frohe Weihnachten


    Erstmal dir ebenfalls frohe Weihnachten und frohes neues!
    Ähm ich hab schonmal angesprochen dass ich XSE benutze^^ ^.^
    wollt ich nur nochmal sagen aber naja ich weiß jetz halt woran es lag

  • Hi,
    ich hab da ein problem mit meinem script:
    Ich verwende Feuerrot und XSE.



    Sobald flag 301 gesetzt ist, funktioniert msgbox bei dieser person nichtmehr,
    also die textbox ist anscheinend da, weil ich mich durchklicken muss, aber movement geht noch.
    Ich denke ich habe irgendwo etwas falsch gemacht, ich kann den Fehler aber nicht entdecken,
    habs jetzt paar mal abgewandelt noch versucht, jedoch passiert dann trotzdem das selbe..
    Hoffe ihr könnt helfen ^.^


    Falls es von nöten ist, poste ich auch gleich mal das script, in dem 301 gesetzt wird,
    ist leider schon etwas her, daher ist es schon kompiliert.
    (jedoch merke ich grade, das ich dieses script nicht vollendet habe, liegt evtl. daran..)




    /edit: hat sich irgendwie gelöst^^
    habe das unvollendete script vollendet und weg war das problem^^
    Mal wieder schwein gehabt :D :D :smalleyes:


    Schönen Abend wünsch ich euch noch.

  • Ich brauch hilfe! Ich habe einen Applymovement Script für Twin (Smaragd Rom) gemacht und die Person redet nur ihr zeug an statt danach zu gehen, hier det Script:



    P.S.: Falls das closeonekeypress falsch sein sollte besser ich es aus.

  • Korrekturen in Rot:



    Falls du Pokescript benutzt, solltest du natürlich auch die entsprechende Syntax verwenden :P
    Bist du sicher, dass es Personennummer 0x11 (ist in Dezimal 17) und nicht 11 ist? Personennummer 11 wäre 0xB. Wichtig ist an dieser Stelle, das XSE zwischen Hex und Dez unterscheidet. d.h. dass wenn du 0x11 schreibst, ein anderes Ergebnis bekommst, als bei 11. Gleiches gilt für unten (bei den #raw Befehlen): 36 ist nicht gleich 0x36!
    Was ich dir auch noch empfehlen würde, ist statt


    Code
    lock faceplayer msgbox 0x88D2FE5 0x6


    folgendes zu nehmen:


    Code
    msgbox 0x88D2FE5 0x2


    Hat den gleichen Effekt, ist aber kürzer. Sollte so eigentlich funktionieren.
    mfg, Darkshark

    [tabmenu][tab=YT-Channel]DarkTekHacks
    In Bearbeitung: Scripting Tutorial #001 - Grundlagen zu Events
    Ich habe im Moment keine Zeit für Tutorials, sorry.
    [tab=dA-Account]TheDarkShark
    Ab sofort wird immer, wenn ich was sehenswertes mache, hochgeladen![/tabmenu]

  • Also, wieder mal ich^^
    Ich hab denke ich etwas mit den scripts(dem grünen S) nicht verstanden,
    benutze immernoch XSE und Feuerrot.
    Wenn ich auf das Feld trete, auf dem das Script ist, passiert nichts...(also das game freezed dann)
    Hier das script.



    Liegts am script oder muss ich bei AM irgendwas umstellen? ?(


    /edit: habs in dem englischen xse tut gefunden. musste unbekannt und var umstellen.

  • Lies dir mal meinen letzten Post durch, es sind ähnliche Syntax-Fehler (Ich wundere mich, dass XSE so was überhaupt noch annimmt, war das nicht nur für ältere Versionen?). Was noch wichtig ist, ist erstmal die Flag rauszulassen. Trage beim Scriptfeld in AM einfach bei Var ein freie Var-Nummer ein (4050 aufwärts) und stelle Unbekannt auf 0001. Der Script wird dann nur ausgeführt, wenn die angegebene Var != 1. Damit der Script nur einmal ausgeführt wird, fügst du dann an:


    Code
    setvar 0x4050 0x1


    Dann brauchst du, wie gesagt, keine Flag mehr zu benutzen.

    [tabmenu][tab=YT-Channel]DarkTekHacks
    In Bearbeitung: Scripting Tutorial #001 - Grundlagen zu Events
    Ich habe im Moment keine Zeit für Tutorials, sorry.
    [tab=dA-Account]TheDarkShark
    Ab sofort wird immer, wenn ich was sehenswertes mache, hochgeladen![/tabmenu]

  • Ja, ich nu wieder^^


    Ich meld' mich wieder mit einer Frage zu ASM, genauer gesagt MMX' Alph-Ruinen Puzzle (KLICK). Wie im Tutorial beschrieben habe ich den Hauptpointer (0x4D58) durch die letzten Bytes des Pointers zum Offset, das ich zur Platzierung genutzt habe, (0x7308) ersetzt. Da ich eine deutsche Feuerrot benutze sollte ich ja auch den Pointer zu LASTRESULT ändern, war aber nicht nötig, da es in beiden Sprachversionen der gleiche zu sein scheint (0xD0700302). Mein Problem ist, dass die Paletten des Puzzles selbst ziemlich durcheinander sind, sowie einige Tiles in der Overworld. Am Ende des Tutorials steht, das ich die RAM-Pointer 0x0203C000, 0x0203D000, 0x0203E000 und 0x0203F000 ändern soll, falls es Probleme gibt. Aber wie finde ich den freien Speicher, auf den ich pointen muss?


    EDIT: Ich habe mal kurz in den Memory Viewer geschaut und Testhalber den Pointer auf 0x0203C000 auf 0x02010000 umgepointet. Als Folge gibts jetzt noch schlimmere Tile-Errors, die Palette im Minispiel ist immer noch grün und ich habe den Cursor irgendwie... geschrottet. Außerdem waren gar keine Pointer auf 0x0203D000, 0x0203E000 oder 0x0203F000 zu finden, die ich hätte umpointen können. War im Tutorial etwa gemeint, dass ich auf diese Offsets umpointen soll, oder hab ich irgendwas kaputt gemacht?


    Danke im Vorraus,
    mfg Darkshark


    btw: Ich hoffe, mir ist der Doppelpost zu verzeihen, denn einen Edit würd ja keiner bemerken :rolleyes: .

  • Bin gerade dran, bei meinem Hack die ersten Trainer zu erstellen (per A-Trainer) und wollte deshalb fragen, die ich freie Offsets herausfinden kann (In einem Tutorial wurde zu Hex-Editor geraten, aber wie genau mach ich das damit?)?

  • Freie Offsets findest du bei Feuerrot ab etwa 0x800000
    Wirklich "frei" ist der Platz wenn dort nichts an (wichtigen) Daten ist, sprich viele 0xFF oder 0 Bytes.


    Alternativ gibt es "Free Space Finder", aber ob das die Mühe wert ist kann ich nicht sagen.


    ~Sturmvogel

  • Erstmal noch danke für deine Antwort, hat funktioniert ;-)
    Meine nächste Frage ist, wie ich neue Trainer in das Spiel einfüge, also sprich: Neue Sprites beim Kampf und auch neue Sprites auf den Maps.
    Danke schon mal im Voraus.
    Exodus

  • Exodus: Gehört zwar nicht mehr so ganz hier rein (gut, teilweise schon :P), aber gut. Neue Kampfsprites fügst du mit dem unLZ-gba ein (Tutorial gubt's hier ), funktioniert genau wie bei den Pokémon Sprites, die Nummern sind eben unterschiedlich. Neue Overworldsprites mit dem OWE, OWE-RE oder NSE (sorry, bin zu faul dafür Links rauszusuchen, google mal nach Overworld Editor Pokémon oder ähnlichem). Die Trainer Events musst du dann noch scripten .


    mfg Darkshark


    Edit: Ach ja, dankje driver! Hatte gar nicht mehr an eine Antwort deinerseits gedacht ;)

    [tabmenu][tab=YT-Channel]DarkTekHacks
    In Bearbeitung: Scripting Tutorial #001 - Grundlagen zu Events
    Ich habe im Moment keine Zeit für Tutorials, sorry.
    [tab=dA-Account]TheDarkShark
    Ab sofort wird immer, wenn ich was sehenswertes mache, hochgeladen![/tabmenu]