Problem beim Pokeball script mit AM

  • Hey wie im Titel bereits steht besteht mein Problem darin das die Item Pokebälle nicht richtig funktionieren.
    Ich arbeite mit einer Feuerrot Rom.
    Entweder der Pokeball wird im Spiel selbst nicht angezeigt oder es passiert nichts beim anklicken.
    Ich habe den selben Script dann in einer Test-Rom ausprobiert und da funktioniert es ohne Probleme.
    Der einzige unterschied ist das ich die Map in dem Fall Alabastia & Route 1 vergrößert und verändert habe.
    Könnte es eventuell daran liegen? Nur dann hätte AdvanceMap ja eigentlich keinen Sinn mehr wenn
    man dies nicht machen dürfte. Unten schreibe ich den script rein


    Ich hoffe jemand kann mir helfen


    Hier ist der Script:


    #org $script
    lock
    #raw 0x53 0x04 0x00
    giveitem 0x4 10
    setflag 0x1250
    release
    end

  • Probiere mal diesen Script aus.


    Welche Personennummer hat denn der Pokeball bzw hast du die Mapscripts von Alabastia gelöscht? Da zb. Prof Eich Personennr.3 ist und im original zwar sich auf der Map befindet, aber unsichbar ist und erst mittels Script sichtbar gemacht wird..

  • erstmal Danke für die Andwort
    das ist doch glaube ich ein XSE script und ich arbeite mit PokeScript
    oder verwechsel ich da grad etwas?


    Jedenfalls nach 2-3 stunden probieren und suchen war die Lösung doch etwas zu simpel :D


    Also auf Route 1 war das Problem das man das Item nicht sehen konnte.
    Dies ist wohl passiert weil ich da auf der Route stand beim speichern.


    Da ich dachte liegt vielleicht an der Karte habe ich das in Alabatia nachgestellt und da lies der sich nicht anklicken.
    das Problem da habe ich nicht gelöst und ist auch wieder aufgetaucht auf Route 1 nachdem ich ein 2. Item erstellen wollte.

  • Ja mein Script ist in XSE geschrieben. Würde ich dir auch empfehlen!
    Schick doch bitte mal einen Screenshot von deiner Map aus AM (im Fenster Events). Klicke davor auf das Item was bei dir nicht klappt und beschreibe dann noch einmal ausführlich was du gemacht hast und was für ein Fehler auftritt.

  • Ich habe das besagte Item gelöscht und nicht weiter dran gearbeitet gehabt da ich bei einem anderen Problem dran bin,
    aber ich vermute das dies an der "setflag" im script liegt. Da das 2. Item verschwand als ich das erste Item anklickte schloss ich da draus das ich nicht die setflag 0x1250 mehrfach nutzen darf. Dies ergab für mich auch Sinn also habe ich einfach eine andere setflag genommen und es mit 0x1251 probiert aber dann hat sich der besagte Ball nicht mehr anklicken lassen beziehungsweise es geschah nichts außer das klick Geräusch ingame.


    Ich weiß nicht genau wie man hier screens hochläd aber im Grunde ändere ich im Event Fenster nicht viel außer
    Die anzahl der Personen und die Bildnummer eben für besagten Pokeball.
    dann den script offset und zum schluss noch Personen-ID auf die besagte setflag.


    So habe ich das einem Video entnommen aber der sagte auch das man bei Items immer setflag 0x1250 nimmt was ja auch nicht wirklich zu stimmen scheint


    PS: Ich habe es jetzt mit setflag 0x200 ausgetestet aber es passiert immernoch nichts wenn man das Item anklickt


    Ich bin jetzt zu XSE gewechselt und habe deinen Pokeball Script mal testen wollen.
    Wenn ich auf Kompilieren gehe kommt die Meldung
    : Unbekanntes Schlüsselwort "checkitemamount" in Zeile 4

  • Eine Setflag sollte man nur einmal für ein Event verwenden, es sei denn du möchtest das mehrere Sachen auf einmal verschwinden.
    Screenshots kannst du hier hochladen, indem du auf "Antworten" drückst und danach unten auf "Dateianhänge".
    Auf jeden Fall musst du darauf achten, das keine Personennummer! nicht Bildnummer nur ein einziges mal auf der Map vorkommt.


    Der Fehler beim Script liegt daran, dass ich meine Scripte in der XSE Version 1.0.0 schreibe und du mit Sicherheit eine höhere Version verwendest. In den anderen XSE Versionen wurde die Scriptschreibweise etwas geändert.
    Man müsste also diesen Befehl etwas umschreiben.


    Aber für dein Vorhaben, kannst du den Befehl auch weglassen.


  • Ich möchte den oben stehenden Nutzer korrigieren und dir raten, das genannte Script nicht zu nutzen.
    Folgenden Scriptaufbau solltest du verwenden:


    Code
    1. #org @start
    2. giveitem ITEM_TM05 0x1 MSG_FIND
    3. end


    Du kannst den Parameter "ITEM_TM05" auch durch eine Item-ID ersetzen, das wäre z.B. 0x0A für den Timerball.
    Bei Personen-ID setzt du dann die Flag ein, bitte hier die Flags nehmen die auch frei sind (eine Liste für FR habe ich angehangen).


    Edit: Sturmvogel hat ganz gut erläutert, wieso das Script in dieser Form besser ist:

    Sicherheit ist vermutlich der falsche Ausdruck für sowas... Das Makro von MrPokémon tut genau das, was du willst, und es ist die Methode, die auch das Originalspiel verwendet. Dabei passiert im übrigen ein bisschen mehr, als einfach nur den Counter für ein Item um 1 zu erhöhen. Es wird automatisch der Sprite versteckt, und damit das Flag gesetzt. Es wird automatisch eine Nachricht angezeigt, und überprüft ob das Item überhaupt in den Beutel passt. Das alles in einer Zeile, sollte schon Grund genug sein, das auch zu verwenden.


    Im übrigen ist dein Flag mit ziemlicher Sicherheit Out of Range.


    ~Sturmvogel


    Lg
    PTTV

  • Kannst du mir bitte erklären, warum mein Script "unsicherer" ist? :)
    Ich habe zumindest das so vor 10 Jahren gelernt und hatte bis heute noch nie Probleme mit meinem Script..

  • Sicherheit ist vermutlich der falsche Ausdruck für sowas... Das Makro von MrPokémon tut genau das, was du willst, und es ist die Methode, die auch das Originalspiel verwendet. Dabei passiert im übrigen ein bisschen mehr, als einfach nur den Counter für ein Item um 1 zu erhöhen. Es wird automatisch der Sprite versteckt, und damit das Flag gesetzt. Es wird automatisch eine Nachricht angezeigt, und überprüft ob das Item überhaupt in den Beutel passt. Das alles in einer Zeile, sollte schon Grund genug sein, das auch zu verwenden.


    Im übrigen ist dein Flag mit ziemlicher Sicherheit Out of Range.


    ~Sturmvogel


    Let the old ways live and prosper in the hearts of our young