Öhm sorry ^_^" Da komme ich nicht ganz mit.
Flag 201 ist in FR/BG eine unbenutzte Flag. Sie hat noch keinen anderen Inhalt. Muss ich also die Personen-ID der zu verschwindenden Person in 0201 ändern? Oder muss ich der Person überhaupt mal irgendeine ID geben und die dann hinter hidesprite angeben? ?(
$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“-
-
Sry aber ich kenne mich nur aus mit Scripten mit Pokescript.
Ich kann dir hier ein Tutorial schicken, leider für Pokescript:Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Lg Passy
-
D'awww, ich benutze nur XSE... ist Pokéscript sehr anders? Aber nein, das gehört nicht hierher. Vielen Dank für deine Hilfe! (-:
-
XSE unterscheidet sich nicht sehr von Pokéscript, viele Sachen sind ähnlich, könnte also durchaus helfen. Davon mal abgesehen muss die Flag natürlich in die Personen-ID eingegeben werden, damit klar ist, welche Person nach Setzen der Flag wegbleiben soll.
Edit: Glaub ich zumindest, ich kenn mich nicht gut damit aus^^
-
OH MEIN GOTT. Es hat tatsächlich funktioniert. Ich musste nur 201 in Hex umformen und als ID angeben und jetzt ist sie weg und bleibt auch verschwunden. Ich schulde euch beiden was. Vielen vielen Dank. *_*
-
Hi;
ich arbeite mit XSE und habe folgendes Problem: Nachdem ich bei einem script eine Person verschinden gelassen habe, ist sie nach dem erneuten Laden des Spielstandes wieder da. Wie schaffe ich es, dass sie für immer wegbleibt?#org $script
playsound 0x013B
nop
applymovement 0x02 $move
pausemove 0x0
message $1
boxset 6
trainerbattle 9 0x146 $before $defeat
message $after
boxset 6
playsound 0x013C
nop
applymovement 0x02 $move2
pausemove 0x0
#raw 0x53
#raw 0x02
#raw 0x00
setflag 0x998F
setvar 0x4056 0x3
release
end#org $move
#raw 0x13 0x10 0x10 0x10 0x10 0x10 0x10 0xFE#org $move2
#raw 0x11 0x11 0x11 0x11 0x11 0x11 0x12 0xFE#org $before
$before 1 = Text#org $defeat
$defeat 1 = Text#org $after
$after 1 = Text#org $1
$1 1 = Text -
Ich habe nicht viel Erfahrung mit Scripten, aber normalerweise sollte das doch mit der Flag zusammenhängen, oder? Du musst die Flag einfach am Ende des Scripts auf erledigt setzen, würde ich sagen.
-
Heißt das jetzt, dass ich anstatt dem Setflag 0x998F (personennummer) eine clearflag setzen muss?
Edit: Ok, hat sich erledigt, es hat jetzt endlich geklappt :) -
Hi,
irgendwie komme ich mit Levelscripts, die erst starten, wenn eine bestimmte var gesetzt worden ist, nicht ganz klar. Also ich möchte eine Person auf der Map durch ein Levelscript erst verschwinden lassen, wenn die Var 0x4029 0x1 gesetzt worden ist. Also gebe ich jetzt in Advance Map bei Mapscript den Type [02] ein und als Flag 0x4029 0x1. Dann noch diesen Script:Zitat'-----------------------
#org 0x817B28
hidesprite 0x1
release
end
So, dieser Level-Script soll nun erst starten, wenn die var in diesem script aktiviert wurde:Zitat'-----------------------
#org 0x819004
msgbox 0x8819012 '"Hallo!"
callstd 0x6
setvar 0x4029 0x1
release
end'---------
' Strings
'---------
#org 0x819012
A= Hallo!Aber die Person ist schon verschwunden, bevor die var in dem anderen script gesetzt wurde. Was mache ich falsch?
-
Hi;
ich hätte mal wieder eine Frage^^; Ich weiß nicht, ob jemand das weiß, aber ich habe ein Problem damit, bei meinem Smaragd Hack die Symbole aus der Kampfzone dem Kampfzonenpass hinzuzufügen; Ich habe bei dem schon in der Rom vorhandenen Levelscript der Kampffabrik die nötige Setvar gefunden, nämlich setvar 0x8004 0xD gefolgt von special 0xEA; Ich habe es in meinem Script eingefügt, aber nicht das Kenntnissymbol, sondern das Anlagesymbol bekommen; dann habe ich bei den anderen Kampfeinrichtungen der Kampfzone bei den anderen Symbolen den gleichen Setvar gefunden, wieder 0x8004 0xD; wie kann es sein, dass diese setvar dort die richtigen Symbole freischaltet und nicht das Anlagesymbol?
Ich hoffe, jemand weiß die Antwort :);
Danke im VorausEdit: Frage hat sich erledigt; Ich konnte die Flags für die Symbole beim Script von Scott herausfinden ;)
-
So, ich melde mich auch endlich mal wieder mit ein paar Fragen an die Pros, natürlich wieder auf ASM bezogen. Ich habe kein konkretes Problem, die Sache ist nur, ich habe mich ein wenig mit Grafiken auf Hardware-Ebene auseinander gesetzt, allerdings gibt es ein paar Punkte, bei denen ich meine Quellen, hauptsächlich GBATek, nicht ganz verstehe. Fangen wir mit Backgrounds an, das ist in meinen Augen einfacher:
1. TileMaps
Ein wesentlicher Punkt das Setzen der Tiles in der Tilemap. Wie ich eine Grafik in den RAM lade weiß ich, wie ich sie dann aber anzeigen lassen kann nicht. Zwei Beispiel-Szenarien:- 16 Farb-Modus, ich möchte ein GUI-Element oder ähnliches an der Position (0|0) mit einer Größe von 3x3 Tiles anzeigen lassen (das eigentliche Spielgeschehen wird nicht beeinflusst), dementsprechend auf Layer BG0. Meine Tiles liegen in der CharBase 0x0600C000, genauer gesagt handelt es sich um die Tiles 1 bis 9.
- 256 Farb-Modus, ich möchte für eine art Cut-Scene ein Bildschirmgroßes Bild anzeigen lassen, um die Map nicht neu laden zu müssen alles auf Layer BG0. Ich bin mir nicht mal sicher, ob dieses Szenario realistisch ist, ich weiß auch nicht, ob man da mit der letzten, eventuell kleineren (?) CharBase auskommt, aber ich behaupte mal, ich wolle die CharBase 0x06010000 benutzen.
2. Alpha-Blending
Behaupten wir mal, ich wolle die TextBox semi-transparent machen, die Schrift sowie, sagen wir mal, 3 weitere Farben dieser Palette hingegen nicht. Ist das überhaupt möglich, oder wird der Alpha-Wert mit dem Tile bzw. dem BG-Layer festgelegt? Dass Bit15 (oder war es Bit0? ) einer Farbe für Transparenz steht weiß ich, aber es handelt sich dabei nicht um den Alpha-Channel, oder? Oder habe ich die GBATek total missinterpretiert und nur Sprites können einen Alpha-Wert benutzen? Ich habe das Alpha-Blending noch nie in Aktion gesehen und was darüber zu finden war, hab ich eigentlich nicht wirklich verstanden, von daher möge man mir diese sehr vage formulierte Frage verzeihen.3. Sprites & OAM
Okay, hier muss ich zugeben, mir nicht ein mal besonders Mühe gegeben habe, zu verstehen, was die GBATek beschrieben hat, ich will es daher kurz fassen: Wie rendere ich einen Sprite von, sagen wir mal, 16x16px Größe? Wie bestimme ich, wohin im RAM der Sprite geladen werden muss, wie sind die OAM-Daten vor den Bild-Daten aufgebaut?So frech es auch klingen mag, ich hoffe auf eine hilfreiche und schnelle Antwort, auch wenn ich sie nicht all zu bald brauche, geschweige denn erwarte, gibt immerhin nicht viele hier, die sich mit ASM auskennen...
Danke im Vorraus,mfg, Darkshark
-
Over all Keyword: IO-RAM im RAM-Bereich 0x4000000.
1. Einfach daten in die RAM schreiben, bzw je nach Situation, falls ein häufiges Update erfolgt, die Source oder den Code finden, von dem die Daten kopiert werden bzw. welcher den Kopiervorgang leitet und diese(-n) dann verändern.
Die genauen Spezifikationen werden in der IO-RAM festgelegt.Bei den 256-Farben hast du schon mal ein etwas größeres Problem, da du die Farben überschreiben musst. Ansonsten die Eigenschaften eines Layers mit der IO-RAM verändern und freuen.
btw. ist die Charbase 0x6010000 für OWs reserviert und kann nicht für die Backgrounds verwendet werden.
2. Transparenz und Semitransparenz... hab ich leider nicht mehr so ganz im Kopf geht aber so weit ich weiß nur mit OWs und diese hast du bei einer Textbox ja leider nicht vorliegen...
Das erste Bit, das die größte Zahl darstellt, hat damit nichts zu tun und wird so weit ich weiß einfach nicht benutzt.Weitere grafische und soundtechnische Effekte kannst du übrigend in der IO-Ram erstellen.
3. Lies dir GBATek durch, da steht alles und ich würde es dir hier auch nur kopieren -.-
-
erledigt^^ :d
-
Von manchen Maps funktionieren Warps nicht auf andere Maps... es könnte daran liegen.
Ansonsten ist mir beim Überfliegen nichts aufgefallen -
Hätt mal ne Frage zu nem eigentlich "leichtem" Script.
Code
Alles anzeigen#dynamic 0x800000 #org @main checkflag 0x200 if b_true goto @done lock msgbox @text callstd 0x6 applymovement 0xFF @go release end #org @done end #org @go #raw 0x11 #raw 0xFE #org @text = Im Brief von Professor Hawkins stand, dass\ndas Labor in Richtung Norden ist.\pIch darf keine Zeit verlieren!
Das Script stürzt mir immer ab.
Ich hab den Code schon 10 mal durchgelesen, aber ich find keinen Fehler ... -
der Bytecode bzw das Decompilierte Script sollte man sich dann auch mal anschauen... Einen Fehler kann ich hier auch nicht erkennen.
-
k hier is dann mal der decompilierte.
Code
Alles anzeigen'----------------------- #org 0x8004C3 checkflag 0x200 if 0x1 goto 0x88004DF lock msgbox 0x88004E4 '"Im Brief von Professor Hawkins stan..." callstd 0x6 applymovement MOVE_PLAYER 0x88004E1 release end '----------------------- #org 0x8004DF end '----------- ' Movements '----------- #org 0x8004E1 #raw 11 'Step Up (Normal) #raw FE 'End of Movements '--------- ' Strings '--------- #org 0x8004E4 = Im Brief von Professor Hawkins stand, dass\ndas Labor in Richtung Norden ist.\pIch darf keine Zeit verlieren!
Ist auch nichts ungewöhnliches, meiner Meinung nach :/
-
Wie wird das Script ausgelöst (kursiv ist meine Vermutung)?
Person: alles sollte eigentlich funktionieren
Scriptsign (orangenes Scriptfeld, das durch das Ansprechen ausgelöst wird): auch hier müsste alles klappen
Scriptfeld: hier musst du eine var anstelle der flag verwenden, die du auch im Scriptfeld verwendest, damit es nicht zu einer internen Endlosschleife beim Scriptcall kommt und das Spiel sich aufhängt (afaik).
Levelscript: Sind andere Levelscripts gelöscht und ggf der Scriptheader angepasst? -
Und das Problem hat sich gelöst :)
Ist ein Scriptfeld. Ich tu mir da immer recht schwer wenn ich jetzt eine var oder eine flag brauch.
Hättest du da nen Tipp wie ich das am Besten unterscheiden kann? Aber vielen dank schonmal, ich werd versuchen ob ich es jetzt schaff.E://
Hab das jetzt hinbekommen. Aber nicht ganz. Der Text wird zwar angezeigt, aber es is kein Applymovement des Heros.
Hab die Var 4041 gesetzt in AM -
Vars (4 Stellige Hexwerte) werden bei Levelscripts, Scriptfeldern und als Speichermedium für einen Wert bis 65535 benutzt. Die Vars dienen also der "Komunikation" zwischen dem Script und der Map. Flags (3-1 Stellige Hexwerte) werden eigentlich nur in dem Script selbst benutzt und können nur gesetzt oder nicht gesetzt sein. Ausserhalb werden sie lediglich bei Personen benutzt um diese verschwinden zu lassen.
Und mir ist gerade doch noch ein Fehler aufgefallen: Du hast waitmovement vergessen. Füge also bitte noch waitmovement 0xFF um auf den Spieler zu warten oder waitmovement 0x0 um auf alle applymovements aller OWs zu warten nach dem applymovement-Befehl ein.