You are not logged in.

[Scripten (Anfänger)] XSE Tutorial

Dear visitor, welcome to RomHackersResources. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

pilo11

Gamer

  • "pilo11" started this thread

Posts: 477

Thanks: 7

  • Send private message

1

Monday, October 27th 2008, 6:22pm

XSE Tutorial

Fragen kommen in dieses Forum rein.

Das mit dem Video war in Ordnung, aber so ist es doch viel besser! Deswegen mache ich jetzt ein besseres Tut:

Neue Sachen sind rot markiert!

Inhaltsverzeichnis:
1. Einführung/ Funktionen
2. Text - Script
2.1 callstd Extras
3. Giveitem/Pokemon/Egg - Script
3.1 Flag
3.2 Giveegg
4. AdvanceMap Script einfügen
5. Applymovement - Script
5.1 Besondere Movements
6. Trainer/ Kampf - Script
6.1 Trainerbattle 0
6.2 Trainerbattle 1
6.3 AdvanceMap und A-Trainer
6.4 Besondere Trainer - Scripts
7. Sonstige
7.1 Setmaptile
7.2 Tür - Scripts/ Warp
7.3 Wildbattle
7.4 Wetter - Scripts
7.5 Pokemart
7.6 Hidesprite/ Showsprite
7.7 Erdbeben
7.8 Countpokemon
7.9 Buffer - Scripts
7.9.1 bufferpokemon
7.9.2 bufferfirstpokemon
7.9.3 bufferitem
7.9.4 bufferattack
7.9.5 buffernumber

8. Extras/ Listen
9. Nachwort
10. Credits


1. Einführung/ Funktionen

Benötigte Programme:
eXtreme Script Editor
AdvanceMap (Ich glaube das haben alle :lol: )

Anfangs öffnen wir XSE:


Nun gibt es verschiedene Funktionen:
Wir öffnen am besten mal eine Rom:
Datei -> Öffnen:


Dann können wir einen Script eingeben und wenn wir ihn in die Rom (brennen) wollen,
drücken wir einfach auf diese Taste:


Dann erscheint das und mit der Taste kopieren, kann man sogar das Offset in die Zwischenablage kopieren, toll oder?:


Rechts kann man sogar Dezimalzahlen in Hexzahlen umwandeln und anders herum, weil auch bei givepokemon Befehlen nicht wie in Poke(t)script givepokemon 11 5 0 im Dezimalsystem steht, sondern in Hex -> givepokemon 0xB 0x5 0x0 0x0 0x0 0x0

Hier kann man auch Scripts dekompilieren. Dazu muss man nur das Offset des Scriptes angeben oder man lädt sich den XSE.exe als Script-Editor in AdvanceMap und drückt dann entsprechend auf Script-Öffnen:

AdvanceMap:



Wer mehr Fragen zu den Funktionen hat, kann das gerne Posten! Oder per PN!



2. Text - Script:

So nun haben wir die einfachste Variante um einen Script zu schreiben. Einen ganz normalen Text - Script:
Beginnen wir mit den ersten Befehlen, die erklärt werden

Source code

1
2
3
4
5
6
7
8
9
10
#dynamic 0x800000
#org @main
lock
faceplayer
msgbox @textcallstd 0x6
release
end 

#org @text
= Hallo, ich heiße Nils und mache \ndieses Tutorial...


Source code

1
#dynamic 0x800000

Der Befehl sucht ein Offset mit "FF"s ab dem Offset 800000, die genug Bytegröße haben, dass er auch ja nicht andere Offsets/ Bytes überschreibt, passiert gar nicht so selten!

Source code

1
#org @main

Das "main" muss nicht sein, man hätte auch start oder so nehmen können. Der Befehl leitet den Start des Scripts ein.

Source code

1
lock

lock bringt den Player zum Stehen und er kann sich nicht mehr bewegen.

Source code

1
faceplayer

faceplayer sorgt dafür, dass der andere, den man anspricht, sich zu dem Player umdreht.

Source code

1
msgbox @text

msgbox öffnet eine Textbox, wo etwas hinein geschrieben werden kann. Wird häufig beim Sprechen mit einer Person benutzt.

Source code

1
msgbox @text 0x6

Den Befehl benutzt man bei der neuen XSE-Version. 0x6 ist ein callstd-Befehl. Aber hier wird er nicht gebrauch, er ist im msgbox mit drin.

Source code

1
callstd

Nur bei der alten Version, des XSE.
callstd öffnet verschiedene Arten von Textboxen. Hier eine Kleine Liste:
[list]

Spoiler Spoiler

1. callstd 0x6 Der häufigste, der eine normale Textbox anzeigt.
2. callstd 0x5 Eine Ja/Nein Box, ist auch nicht selten
3. callstd 0x4 Dieser Befehl sorgt dafür, dass erst nachdem eine Taste gedrückt wird, der Script weitergeführt wird.
4. callstd 0x3 Ist für Signposts gedacht, das es einem Schild ähnelt
5. callstd 0x2 kann man auch ohne lock und faceplayer nehmen, es ersetzt es quasi. Es ist im Prinzip dasgleiche wie 0x6
[/list]

Source code

1
release

Lässt den Player wieder gehen.

Source code

1
end

Beendet den Script.

Source code

1
2
#org @text
=

Damit ihr auch was schreiben könnt, müsst ihr auch einen Befehl nach dem end nehmen: #org @text (oder was ihr bei msgbox @? genommen habt) dann Absatz
= Bla Bla Bla...

Es gibt aber auch noch verschiedene Farben, womit man die Schrift schöner machen kann!
Dazu seht euch am besten das Tut von driver an:
Hier

Auch wenn es mit Poke(t)script-Befehlen ergänzt wurde übertragt einfach nur das "\c\..." Also womit man die Farben ändert.

Das war ein normales Beispiel zu einem callstd 0x6 Script, aber wie funktioniert er mit callstd 0x5, also Ja/Nein Box?

2.1 callstd Extras:

Das klären wir anhand dieses Beispieles:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#dynamic 0x800000
#org @main
lock
faceplayer
msgbox @text
callstd 0x5
Compare LASTRESULT 0x1
if b_true goto @ja
compare LASTRESULT 0x0
if b_true goto @nein
#org @ja
lock
faceplayer
msgbox @text2
callstd 0x6
release
end
#org @nein
lock
faceplayer
msgbox @text3
callstd 0x6
release
end

#org @text
= Möchtest du mich begleiten?

#org @text2
= Das finde ich toll.

#org @text3
= Das ist schade


Source code

1
Compare LASTRESULT 0x1

Dieser Befehl kontrolliert, was er eben gerade gedrückt hat, in diesem Fall kontrolliert er, ob man ja gedrückt hat, weil am Ende 0x1 steht.

Source code

1
Compare LASTRESULT 0x0

Der kontrolliert nein, weil da 0x0 steht.

Source code

1
if b_true goto @ja

Dieser befehl muss unter "compare LASTRESULT 0x1", weil er sagt, wenn ja gedrückt wurde, dann geh zu Script 1.

Source code

1
if b_true goto @nein

Dieser Befehl muss unter "Compare LASTRESULT 0x0", weil er sagt, wenn nein gedrückt wurde, dann geh zu Script 2.

In diesem Fall spaltet sich der Script also. Das kennst man auch von Programmen oder vom Essen.
Falls Spinat = Bäääääähhhhhh. Und kotz.
Falls Pommes = Mmmmhhhhhhh. Und genieß.
xD
Wichtig ist nur, dass man bei #org @ja oder #org @nein einen neuen Script anfängt wie bei #org @main (start, ...)

Ein kleines Erkenntnis habe ich auch gemacht, z. B., dass man nach 35 Buchstaben oder Zahlen oder so, besser ein \n setzt um in die nächste Zeile zu gelangen und wenn dann wieder 35 Buchstaben oder Zahlen kommen nicht wieder \n sondern \p kommen sollte! WICHTIG!
Aber nach den 35 Buchstaben, Zahlen wieder \n dann wieder \p usw...
Mein Erkenntnis war aber das mit den 35 Buchstaben oder Zahlen xD.


Ich glaube das wars auch schon zu den Text - Scripts

Für besondere Fragen, PN an mich...

3. Giveitem/ Pokémon - Script

Ich werde hier einfach wieder einen typischen Script hinzufügen, wo ich dann die Befehler erklaren werde:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
#dynamic 0x800000
#org @main
lock
faceplayer
msgbox @text
callstd 0x4
giveitem 0xD 0x1 0x0 0x0 0x0 0x0
release
end

#org @text
= Hier nimm einen Trank.


Source code

1
giveitem 0xItem 0xAnzahl 0x0 0x0 0x0

Ok, ich glaube, das klärt den neuen Befehl. Das einzige, was ich selber nicht weiß, ist, dass am Ende vier mal 0x0 steht, aber es muss sein, sonst geht es nicht...
Im giveitem-Befehl ist die fanfare + Du erhältst... mit eingebaut.

Hier eine List von mir:
[list]

Spoiler Spoiler

MEISTERBALL 0x1
HYPERBALL 0x2
SUPERBALL 0x3
POKEBALL 0x4
SAFARIBALL 0x5
NETZBALL 0x6
TAUCHBALL 0x7
NESTBALL 0x8
WIEDERBALL 0x9
TIMERBALL 0xA
LUXUSBALL 0xB
PREMIERBALL 0xC
TRANK 0xD
GEGENGIFT 0xE
FEUERHEILER 0xF
EISHEILER 0x10
AUFWECKER 0x11
PARA-HEILER 0x12
TOP-GENESUNG 0x13
TOP-TRANK 0x14
HYPERTRANK 0x15
SUPERTRANK 0x16
HYPERHEILER 0x17
BELEBER 0x18
TOP-BELEBER 0x19
TAFELWASSER 0x1A
SPRUDEL 0x1B
LIMONADE 0x1C
KUHMUH-MILCH 0x1D
ENERGIESTAUB 0x1E
KRAFTWURZEL 0x1F
HEILPUDER 0x20
VITALKRAUT 0x21
ÄTHER 0x22
TOP-ÄTHER 0x23
ELIXIeR 0x24
TOP-ELIXIER 0x25
LAVAKEKS 0x26
BLAUE FLÖTE 0x27
GELBE FLÖTE 0x28
ROTE FLÖTE 0x29
SCHWARZE FLÖTE 0x2A
WEISSE FLÖTE 0x2B
BEERENSAFT 0x2C
ZAUBERASCHE 0x2D
KÜSTENSALZ 0x2E
KÜSTENSCHALE 0x2F
PURPURSTÜCK 0x30
INDIGOSTÜCK 0x31
GELBSTÜCK 0x32
GRÜNSTÜCK 0x33
? en:HENTAIMAG 0x34
? en:NAMETAG 0x35
KP-PLUS 0x3F
PROTEIN 0x40
EISEN 0x41
CARBON 0x42
KALZIUM 0x43
SONDERBONBON 0x44
AP-PLUS 0x45
ZINK 0x46
AP-TOP 0x47
MEGABLOCK 0x49
ANGRIFFPLUS 0x4A
X-ANGRIFF 0x4B
X-ABWEHR 0x4C
X-TEMPO 0x4D
X-TREFFER 0x4E
X-SPEZIAL 0x4F
POKEPUPPE 0x50
ENECO-RUTE 0x51
SUPERSCHUTZ 0x53
TOP-SCHUTZ 0x54
FLUCHTSEIL 0x55
SCHUTZ 0x56
SONNENSTEIN 0x5D
MONDSTEIN 0x5E
FEUERSTEIN 0x5F
DONNERSTEIN 0x60
WASSERSTEIN 0x61
BLATTSTEIN 0x62
MINIPILZ 0x67
RIESENPILZ 0x68
PERLE 0x6A
RIESENPERLE 0x6B
STERNENSTAUB 0x6C
STERNENSTÜCK 0x6D
NUGGET 0x6E
HERZSCHUPPE 0x6F
ZIGZAGBRIEF 0x79
HAFENBRIEF 0x7A
GLITZERBRIEF 0x7B
EILBRIEF 0x7C
WALDBRIEF 0x7D
WELLENBRIEF 0x7E
PERLENBRIEF 0x7F
DUNKELBRIEF 0x80
TROPENBRIEF 0x81
TRAUMBRIEF 0x82
EDELBRIEF 0x83
RETROBRIEF 0x84
? en:CHERRY 0x85
? en:CHESTNUT 0x86
? en:PEACH 0x87
FRAGIABEERE 0x88
WILBIRBEERE 0x89
JONAGOBEERE 0x8A
? en:ORANGE 0x8B
PERSIMMON 0x8C
PRUNUSBEERE 0x8D
? en:CITRUS 0x8E
GIEFEBEERE 0x8F
? en:KIWI 0x90
? en:MANGO 0x91
GAUVEBEERE 0x92
? en:PAPAYA 0x93
HIMMIHBEERE 0x94
MORBBEERE 0x95
? en:BANANA 0x96
NIRBEBEERE 0x97
? en:PINEAPPLE 0x98
POMEGRANIT 0x99
SETANGBEERE 0x9A
QUALOTBEERE 0x9B
? en:HONEYDEW 0x9C
? en:GRAPE 0x9D
? en:TOMATO 0x9E
SAIMBEERE 0x9F
MAGOSTBEERE 0xA0
RABUTABEERE 0xA1
? en: LEMON 0xA2
KIWANBEERE 0xA3
PALLMBEERE 0xA4
WATERMELON 0xA5
DURINBEERE 0xA6
MYRTILBEERE 0xA7
LICHEE 0xA8
LIGANBEERE 0xA9
SALKABEERE 0xAA
TAHAYBEERE 0xAB
? en: APRICOT 0xAC
LANSATBEERE 0xAD
KRAMBOBEERE 0xAE
ENIGMABEERE 0xAF
BLENDPUDER 0xB3
SCHLOHKRAUT 0xB4
MACHOBAND 0xB5
EP-TEILER 0xB6
FLINKKLAUE 0xB7
SOOTHEBELL 0xB8
MENTALKRAUT 0xB9
WAHLBAND 0xBA
KING-STEIN 0xBB
SILBERSTAUB 0xBC
MÜNZAMULETT 0xBD
SCHUTZBAND 0xBE
SEELENTAU 0xBF
ABYSSZAHN 0xC0
ABYSSPLATTE 0xC1
RAUCHBALL 0xC2
EWIGSTEIN 0xC3
FOKUS-BAND 0xC4
GLÜCKS-EI 0xC5
SCOPE-LINSE 0xC6
METALLMANTEL 0xC7
ÜBERRESTE 0xC8
DRACHENHAUT 0xC9
KUGELBLITZ 0xCA
PUDERSAND 0xCB
GRANITSTEIN 0xCC
WUNDERSAAT 0xCD
SCHATTENGLAS 0xCE
SCHWARZGUT 0xCF
MAGNET 0xD0
ZAUBERWASSER 0xD1
HACKATTAKE 0xD2
GIFTSTICH 0xD3
EWIGES EIS 0xD4
BANNSTICKER 0xD5
KRÜMMLÖFFEL 0xD6
HOLZKOHLE 0xD7
DRACHENZAHN 0xD8
SEIDENSCHAL 0xD9
UPGRADE 0xDA
SEEGESANG 0xDB
SEERAUCH 0xDC
LAXRAUCH 0xDD
LUCKYPUNCH 0xDE
METALLSTAUB 0xDF
KAMPFKNOCHEN 0xE0
LAUCHSTANGE 0xE1
ROTER SCHAL 0xFE
BLAUER SCHAL 0xFF
ROSA SCHAL 0x100
GRÜNER SCHAL 0x101
GELBER SCHAL 0x102
EILRAD 0x103
MÜNZKORP 0x104
DETEKTOR 0x105
ANGEL 0x106
PROFIANGEL 0x107
SUPERANGEL 0x108
BOOTSTICKET 0x109
WETTBEWERB-KARTE 0x10A
SHIGGYKANNE 0x10C
AMULETT 0x10D
ASCHETASCHE 0x10E
KELLERÖFFNER 0x10F
KUNSTRAD 0x110
POKERIEGEL BOX 0x111
BRIEF 0x112
ÄON-TICKET 0x113
ROTE KUGEL 0x114
BLAUE KUGEL 0x115
SCANNER 0x116
WÜSTENGLAS 0x117
METEORIT 0x118
K1-SCHLÜSSEL 0x119
K2-SCHLÜSSEL 0x11A
K4-SCHLÜSSEL 0x11B
K6-SCHLÜSSEL 0x11C
L-SCHLÜSSEL 0x11D
WURZELFOSSIL 0x11E
KLAUENFOSSIL 0x11F
DEVON-SCOPE 0x120
TM01 0x121
TM02 0x122
TM03 0x123
TM04 0x124
TM05 0x125
TM06 0x126
TM07 0x127
TM08 0x128
TM09 0x129
TM10 0x12A
TM11 0x12B
TM12 0x12C
TM13 0x12D
TM14 0x12E
TM15 0x12F
TM16 0x130
TM17 0x131
TM18 0x132
TM19 0x133
TM20 0x134
TM21 0x135
TM22 0x136
TM23 0x137
TM24 0x138
TM25 0x139
TM26 0x13A
TM27 0x13B
TM28 0x13C
TM29 0x13D
TM30 0x13E
TM31 0x13F
TM32 0x140
TM33 0x141
TM34 0x142
TM35 0x143
TM36 0x144
TM37 0x145
TM38 0x146
TM39 0x147
TM40 0x148
TM41 0x149
TM42 0x14A
TM43 0x14B
TM44 0x14C
TM45 0x14D
TM46 0x14E
TM47 0x14F
TM48 0x150
TM49 0x151
TM50 0x152
VM01 0x153
VM02 0x154
VM03 0x155
VM04 0x156
VM05 0x157
VM06 0x158
VM07 0x159
VM08 0x15A
[/list]

So schwer ist das doch gar nicht. Aber es gibt ein Problem, wenn wir die Person nochmal ansprechen, kriegen wir das Item nochmal, hmm...
Hier kommen wir zum Unterthema
3.1 Flag:

Was soll das sein? Flag...
Flag kann man sich wie eine Fahne vorstellen. Man hisst eine Fahne und der Script weiß, aha jetzt muss ich das machen.

Es gibt 3 Befehle von Flag
1. setflag
2. clearflag
3. checkflag

Beginnen wir mit 1. setflag und 3. checkflag
Dazu nehmen wir unser Item Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#dynamic 0x800000
#org @main
lock
faceplayer
checkflag 0x200
if b_true goto @done
msgbox @text
callstd 0x4
giveitem 0xD 0x1 0x0 0x0 0x0 0x0
setflag 0x200
release
end

#org @text
= Hier nimm einen Trank.

#org @done 
lock
faceplayer
msgbox @text2
callstd 0x6
release
end

#org @text2
= Hey, du hast schon einen Trank!


Gehen wir das wieder gemeinsam durch:

Source code

1
checkflag

Dieser Befehl prüft, ob die Fahne 200 gehisst ist.

Source code

1
if b_true goto @done

Dieser Befehl ist uns schon mal begegnet. Er leitet uns zu einem neuen Script, wenn 200 schon gehisst wurde, nämlich zu #org @done.

Source code

1
setflag

Dieser Befehl hisst eine Fahne, sodass er, wenn man ihn ein zweites oder ein drittes oder ein noch öfteres mal anklickt, sagen wird, dass man schonmal was bekommen hat.

Ich glaube zu

Source code

1
clearflag
kann ich auch so etwas sagen:
Dieser Befehl macht die Fahne wieder start bereit. Also wenn z.B. eine andere Person den Script mit einem clearflag 0x200 beinhaltet, kann man wieder einen Trank bekommen.
Das war ein Beispiel für einen Flag-Befehl. Man benutzt die Flags nur einmal. Man darf aber keine X-Beliebigen nehmen, sondern nur Freie! Hier eine Liste mit Flags, die es gibt und wo man das bekommt. Freie gibts ab 200 bis 2A0 und 600 bis 6A0, aber da wäre ich vorsichtig.
Tipp: Macht euch ne Liste mit den Flags, die ihr benutzt und wo ihr sie benutzt!
Liste: Pokescript Scripting Tutorial
In diesem Tut findet ihr alle Flags in verschiedenen Editionen.

Nun kommen wir zum Givepokemon - Befehl, der ja dem Give - Item Befehl ziemlich ähnlich ist.

Hier nun wieder unser Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#dynamic 0x800000
#org @main
lock
faceplayer
fanfare 0x13E
msgbox @text
callstd 0x6
waitfanfare
givepokemon 0x1 0x64 0xD 0x0 0x0 0x0
setflag 0x200
release
end

#org @text
= [Player] hat ein Bisasam erhalten.


So gehen wir es durch:

Source code

1
fanfare 0x13E

Dieser Befehl lässt einen Sound laufen, der in dem Giveitem - Script mit intigriert war, aber hier muss er selbst eingefügt werden!

Source code

1
waitfanfare

Dieser Befehl lässt den Script erst fortfahren, wenn der Sound fertig abgespielt wurde. Man schreibt ihn hinter dem msgbox - Script, damit der Text + dem Sound gleichzeitig laufen und nicht erst der Sound und dann das "Du erhältst ein Bisasam".

Source code

1
givepokemon 0xPokemon 0xAnzahl 0xItem 0x0 0x0 0x0

Auch hier muss man wieder drei Nullen dahinter hängen, aber dem Pokemon kann man hier auch ein Item geben, die aus der Item-Liste.

Liste:
[TUT] Scripten via POKéScript
Da bekommt ihr eine Liste mit Pokemon, leider Englisch, hatte keine Zeit ein deutsche zu erstellen, aber die mit den Items hatte ich schon vor Jahren gemacht...

3.2 Giveegg:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
#dynamic 0x800000
#org @main
lock
faceplayer
giveegg 0x1
fanfare 0x13E
msgbox @text 0x6
waitfanfare
release
end

#org @text
= [player] hat ein Ei mit \nBISASAM erhalten.


Also, es ist ganz einfach:

Source code

1
giveegg 0xPokemon-Nr. (in Hex)

Der Befehl gibt dem player ein Ei, in dem Bisasam ist.

Aber was im allgemeinen bei givepokemon und giveegg fehlt sind die Prüfer! Lest einfach bei 7.8 weiter, wenn ihr das wissen wollt.

Das wars auch schon über Item/ Pokemon/ Egg - Scripts

Für besondere Fragen, PN an mich...

4. AdvanceMap Script einfügen

Es ist ja auch wichtig Scripts mit AdvanceMap zu den Leuten zu bringen. Das ist einfach:

Erstellen wir einfach eine neue Person in AdvanceMap und geben wir ihr das Offset vom Script:


Nun kann man die Person ansprechen und der Script startet sofort.
Aber manchmal möchte man, dass ein Script losgeht, wenn man zu einer bestimmten Stelle geht. Wie das geht beschreibe ich hier kurz:

Erst erstellen wir neue Events auf der Map:


Wir erhöhen einfach die Anzahl der Scripts um einen und drücken auf Events ändern. Dann haben wir dieses Event (grünes S). Es erscheint genau wie auch bei allen anderen Events am Anfang ganz oben links in der Map. Wir verschieben es da hin, wo der Script starten soll, wenn man auf das Feld kommt:


Nun kommt die Flag, ohne die kann man den Script nicht starten, aber hier ist das nicht 200 oder so sondern alles unter 4050, sind meine ich Frei. Hier würde ich auch wieder 'ne Liste mit den Flags machen. Dann fehlt natürlich noch das Offset:


Ich habe noch eine Person hinzugefügt, die einen Applymovement - Script hat, also dazu kommen wir aber später. Jetzt habe wir es geschafft, nur wie soll die Person zu dir oder du zu ihr. Das wird später geklärt. Jetzt sollten wir aber vorher noch einen Script unten einsetzen:


Es gibt da den Befehl setvar. Mit dem kann man verhindern, dass der Script ein zweites mal startet, wenn man die Fläche betritt, also einfach:

Source code

1
setvar 0xFlag 0x1

0x1 ist ein Ersatz für setflag, aber in diesem Fall darf man kein setflag benutzen, sondern nur setvar!

Das war ein Script mit einer bestimmten Stelle, es geht aber auch so, dass, wenn man die Map gerade betritt, der Script sofort beginnt. Den nennt man Levelscript.

Tut

Für besondere Fragen, PN an mich...

5. Applymovement - Script

Jetzt kommen wir zu einem Teil, der sehr wichtig ist und oft verwendet wird!

Hier wieder ein Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#dynamic 0x800000

#org @main
lock
faceplayer
applymovement 0x1 @go
waitmovement 0x0
msgbox @text
callstd 0x6
release
end

#org @text
= Blabla

#org @go
#raw 0x13
#raw 0x13
#raw 0x13
#raw 0x13
#raw 0xFE


Gehen wir es am besten einfach gemeinsam durch!

Source code

1
applymovement 0xPersonennummer @go

Mit diesem Befehl lässt man die Person 1 in der Map laufen. Wie kriege ich raus, ob das 1 oder 2 oder... ist? So:


Source code

1
waitmovement 0x0

Dieser Befehl wartet darauf, dass der Applymovement-Befehl beendet wurde und führt dann den Script fort. (Danke an Driver.)

Source code

1
#raw 0x13

Dieser Befehl bestimmt, wohin die Person geht. In diesem Fall 0x13 nach rechts in normaler Geschwindigkeit. Wichtig! Am Ende des Movements mit #raw 0x13 usw. immer raw 0xFE!!! Sonst stürzt der Script ab.

Hier eine Liste von den Movements aus Feuerrot:
Ich habe die Liste aus dem Script-Tut von thethethethe
[list]

Spoiler Spoiler

Face Down 0x00
Face Up 0x01
Face Left 0x02
Face Right 0x03
Step Down (Very Slow) 0x08
Step Up (Very Slow) 0x09
Step Left (Very Slow) 0x0A
Step Right (Very Slow) 0x0B
Step Down (Slow) 0x0C
Step Up (Slow) 0x0D
Step Left (Slow) 0x0E
Step Right (Slow) 0x0F
Step Down (Normal) 0x10
Step Up (Normal) 0x11
Step Left (Normal) 0x12
Step Right (Normal) 0x13
Jump Down 2 Squares 0x14
Jump Up 2 Squares 0x15
Jump Left 2 Squares 0x16
Jump Right 2 Squares 0x17
Step Down (Fast) 0x1D
Step Up (Fast) 0x1E
Step Left (Fast) 0x1F
Step Right (Fast) 0x20
Step on the Spot Down 0x21
Step on the Spot Up 0x22
Step on the Spot Left 0x23
Step on the Spot Right 0x24
Step on the Spot Down (Fast) 0x25
Step on the Spot Up (Fast) 0x26
Step on the Spot Left (Fast) 0x27
Step on the Spot Right (Fast) 0x28
Step on the Spot Down (Very Fast) 0x29
Step on the Spot Up (Very Fast) 0x2A
Step on the Spot Left (Very Fast) 0x2B
Step on the Spot Right (Very Fast) 0x2C
Face Down (Non-Instant) 0x2D
Face Up (Non-Instant) 0x2E
Face Left (Non-Instant) 0x2F
Face Right (Non-Instant) 0x30
Slide Down 0x31
Slide Up 0x32
Slide Left 0x33
Slide Right 0x34
Slide Down On Right Foot 0x3D
Slide Up On Right Foot 0x3E
Slide Left On Right Foot 0x3F
Slide Right On Right Foot 0x40
Slide Down On Left Foot 0x41
Slide Up On Left Foot 0x42
Slide Left On Left Foot 0x43
Slide Right On Left Foot 0x44
Face Player 0x4A
Face Away from Player 0x4B
Jump Down 1 Square 0x4E
Jump Up 1 Square 0x4F
Jump Left 1 Square 0x50
Jump Right 1 Square 0x51
Jump in Place (Facing Down) 0x52
Jump in Place (Facing Up) 0x53
Jump in Place (Facing Left) 0x54
Jump in Place (Facing Right) 0x55
Jump in Place (Facing Down->Up) 0x56
Jump in Place (Facing Up->Down) 0x57
Jump in Place (Facing Left->Right) 0x58
Jump in Place (Facing Right->Left) 0x59
Disappear 0x60
Reappear 0x61
"!" box popup 0x62
"?" box popup 0x63
"X" box popup 0x64
"!!" box popup 0x65
"^_^" box popup 0x66
[/list]


Und die Liste für Rubin/Saphir/Smaragd:
Auch aus dem Tut von thethethethe
[list]

Spoiler Spoiler

0x54 ' Hide
0x55 ' Show
0x56 ' Alert
0x57 ' Question
0x58 ' Love
0x5A ' Pokeball
0x10 ' Delay0
0x11 ' Delay1
0x12 ' Delay2
0x13 ' Delay3
0x14 ' Delay4

' Step
0x00 ' Down0
0x01 ' Up0
0x02 ' Left0
0x03 ' Right0
0x04 ' Down1
0x05 ' Up1
0x06 ' Left1
0x07 ' Right1
0x08 ' Down2
0x09 ' Up2
0x0A ' Left2
0x0B ' Right2
0x17 ' Left3
0x18 ' Right3
0x15 ' Down3
0x16 ' Up3
0x2D ' Down4
0x2E ' Up4
0x2F ' Left4
0x30 ' Right4

' Running
0x35 ' RunDown
0x36 ' RunUp
0x37 ' RunLeft
0x38 ' RunRight
0x7E ' RunDown2
0x7F ' RunUp2
0x80 ' RunLeft2
0x81 ' RunRight2

' Hop & Jump
0x0C ' HopTileDown
0x0D ' HopTileUp
0x0E ' HopTileLeft
0x0F ' HopTileRight
0x3A ' HighHopDown
0x3B ' HighHopUp
0x3C ' HighHopLeft
0x3D ' HighHopRight
0x46 ' HopDown
0x47 ' HopUp
0x48 ' HopLeft
0x49 ' HopRight
0x4A ' HopDown180
0x4B ' HopUp180
0x4C ' HopLeft180
0x4D ' HopRight180
0x42 ' JumpDown
0x43 ' JumpUp
0x44 ' JumpLeft
0x45 ' JumpRight

' Straf (May have glitches)
0x19 ' StDown1
0x1A ' StUp1
0x1B ' StLeft1
0x1C ' StRight1
0x1D ' StDown2
0x1E ' StUp2
0x1F ' StLeft2
0x20 ' StRight2
0x21 ' StDown3
0x22 ' StUp3
0x23 ' StLeft3
0x24 ' StRight3
0x25 ' StDown4
0x26 ' StUp4
0x27 ' StLeft4
0x28 ' StRight4
0x6A ' StDown1i
0x6B ' StUp1i
0x6C ' StLeft1i
0x6D ' StRight1i
0x6E ' StDown5
0x6F ' StUp5
0x70 ' StLeft5
0x71 ' StRight5

'Special
0x31 ' SlideFaceDown
0x32 ' SlideFaceUp
0x33 ' SlideFaceLeft
0x34 ' SlideFaceRight
0x86 ' IceSlideDown
0x87 ' IceSlideUp
0x88 ' IceSlideLeft
0x89 ' IceSlideRight

' Glitchy
0x3E ' Up0A
0x3F ' Down0A
0x4E ' Down0B
0x63 ' Up0B
0x65 ' Right0A
0x66 ' RunStopLoopDown
0x67 ' RunStopLoopUp
0x68 ' RunStopLoopLeft
0x69 ' RunStopLoopRight
0x72 ' Down15
0x73 ' Up15
0x74 ' Left15
0x75 ' Right15
0x7A ' Down6
0x7B ' Up6
0x7C ' Left6
0x7D ' Right6
0x82 ' Down7
0x83 ' Up7
0x84 ' Left7
0x85 ' Right7

' EXIT
0xFE
[/list]

Also wir haben einen grünen S Script in AdvanceMap mit einer Var-Nummer als Flag und eine Pers. mit einer Pers.-Nr. Dann müssen wir nur noch einen Script damit machen. Was kann man dazu noch groß sagen.

5.1 Besondere Movements

Schön jetzt können wir alles mit Applymovements. Ok, aber wie bewege ich die eigene Figur, also Player? Diese Pers.-Nr. findet man auf der Map nicht...
Das kann man so sagen:
Die Pers.-Nr. für den Player ist in jeder Map 0xFF. (Danke an driver!)

Ok, das wissen wir jetzt auch, aber was ist mit der Ansicht. Es ist möglich die Kamera zu verschieben, also die Ansicht bewegen. Wie geht das? Nicht sehr schwer:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#dynamic 0x800000

#org @main
lockall
special 0x113
applymovement 0x7F @go
pause 0x60
applymovement 0x7F @go2
pause 0x0
special 0x114
releaseall
end

#org @go
#raw 0x13
#raw 0xFE

#org @go3
#raw 0x12
#raw 0xFE


Ok

Source code

1
lockall

lockall blockt die Bewegungen aller Personen auf der Map und lock nur die Bewegung der Person die man ansprichst. (Von driver)

Source code

1
special 0x113

Das einzige was es macht ist die Kamera "freizusetzen", damit man sie mit der PersonenNummer 0x7F bewegen kannst. (von Driver)

Source code

1
0x7F

Das ist die Pers.-Nr. der Kamera

Source code

1
special 0x114

Der Befehl neutralisiert special 0x113 wieder.

Source code

1
releaseall

Neutralisiert lockall.

6. Trainer/ Kampf - Script

Das ist eine Scriptart, wo es einfache und erweiterte Kämpfe gibt. Der einfache ist, wenn man in die Sichtweite eines Trainers reinläuft beginnt der Kampf, man besiegt ihn und das wars...

Bei der anderen Scriptart kann man den Script nach dem Kampf weiterlaufen lassen.

Wir beginnen mit der ersten:

6.1 Trainerbattle 0

Ich werde wieder ein Beispiel zeigen und dann weiter erklären:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#dynamic 0x800000

#org @main
trainerbattle 0x0 0x1 0x0 @before @after
msgbox @text
callstd 0x6
release
end

#org @before
= Ich besiege dich...

#org @after
= Ich habe verloren...

#org @text
= Du warst einfach zu stark!


Source code

1
trainerbattle 0xArt des Kampfes 0xTrainer-ID 0x0 @before @after

Also die Art des Kampfes habe ich erläutert. Hier ist es ein einfacher Trainer-Kampf, also 0x0. Die Trainer-ID. Das erkläre ich noch und 0x0 als Platzhalter. @before ist das, was am Anfang des Kampfes gesagt wird und @after nach dem Kampf, logisch oder?...

Was macht das

Source code

1
msgbox @text
da?
Nachdem der Trainer besiegt wurde, wird der Trainerbattle-Befehl beim Ansprechen übersprungen, also würde die Rom crashen, wenn wir nichts dahinter setzen würden.

Das wars zum Script, aber wie man das in AdvanceMap einstellt, erkläre ich später.

6.2 Trainerbattle 1

Der Script ist nicht viel anders als Trainerbattle 0 seht her:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#dynamic 0x800000

#org @main
trainerbattle 0x1 0x1 0x0 @before @after @later
msgbox @text
callstd 0x6
release
end

#org @before
= Ich besiege dich...

#org @after
= Ich habe verloren...

#org @text
= Du warst einfach zu stark!

#org @later
lock
faceplayer
msgbox @text2
callstd 0x6
release
end

#org @text2
= Du hast mich zwar besiegt, \naber du wirst das Ewige Eis \ptrotzdem nicht bekommen...


Source code

1
trainerbattle 0x1 0x1 0x0 @before @after @later

Wie man hier erkennen kann, gibt es noch einen zweiten Script @later, der nach dem Kampf gestartet wird.

Wie wir sehen können ist der Script nicht viel anders.

6.3 AdvanceMap und A-Trainer

Nun kommen wir zum Interessanteren. Zuerst zeige ich was man in AdvanceMap einstellen muss, wenn es Trainerbattle 0 ist:


Bei Trainer muss ein Haken sein, es muss die Sichtweite angegeben sein, die bestimmt wie viele Schritte man im Kampf gefangen ist, also in dem Bild habe ich die beiden Felder neben dem Trainer markiert um zu zeigen, dass, wenn man nur Sichtweite 1 hätte, der Player ganz rechts einfach vorbei gehen kann. Die Richtung, wo er hinschaut muss man natürlich auch bestimmen.

Und nun die Einstellungen bei Trainerbattle 1:


Kaum Einstellungen, keine Sichtweite. Da nimmt man meistens einen "Grünen S" - Script (xD). Auf diesem Bild, aber ist das Offset bei der Person. (Danke an Driver!)

Und nun zu A-Trainer:
Download

Wir wollen jetzt also die Trainer-ID und den Trainer bestimmen, welche Pokémon er haben soll usw...
Fangen wir an:


Ok Name dürfte sich von selbst klären. Sex ist das Geschlecht, auch logisch. Bildnummer 72 ist die Bildnummer die zum Trainer passen muss. Man soll ja nicht einen Matrosen Ryu mit einem Team Aqua Bild machen xD. In deutschen Feuerrot Roms ist es hier so, dass man bei Trainer Class einen weiter unten nehmen muss, also wenn da ist:

Source code

1
2
3
Teenager
Matrose
Pokm-Trainer

und ich einen Matrose will, muss ich Pokm-Trainer wählen.
Bei Money-Rate kann man einstellen, wie viel Geld man bekommen soll. Bei Items nimmt man nur Tränke oder so, damit die Pokémon von Ryu sich auch erholen können. Wenn man aber einen Ball nimmt, ähh, wirft Ryu einen Ball, hmmm, Blödsinn! Schauen wir nun zur Pokémon-Data, aber vorher "Save":


Ok, hier kann man Pokémon auswählen, alles wunderbar. Beispiel: Ich erhöhe die Zahl der Pokémon bei Pokémon Amount wähle fröhlich meine Pokémon und plötzlich kann er nicht abspeichern. Hier brauchen wir einen Re-Point. Dazu drücken wir Repoint und machen das:







Falls der OK-Button nicht frei wird, ist zu wenig Platz in dem Offset, also müssen wir per Hex-Editor nach freien Offsets suchen. Denkt dran nicht nach 00 sondern FF.

Ich hoffe, dass ihr es Verstanden habt. Die Trainer-ID steht bei Trainer Selection links neben dem Trainer. Man kann auch PET benutzen, aber damit hatte ich oft Probleme!
Das wars zu diesem Thema!

6.4 Besondere Trainer - Scripts

OK, dann mal los:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#dynamic 0x800000

#org @main
checktrainerflag 0x002
compare 0x800D 0x1
if b_true goto @done
msgbox @text 0x6
release
end

#org @text
= Was du hast noch nicht \ngegen HANS gekämpft? \pDann solltest du das tun!

#org @done
msgbox @text2 0x6
release
end

#org @text
= Du hast HANS besiegt, Super!


Gehen wir das einfach mal durch!

Source code

1
checktrainerflag 0xTrainer-ID

Prüft, ob man schon gegen einen TRAINER gekämpft hat.

Source code

1
compare 0x800D 0x1

Das ist dasselbe wie compare LASTRESULT 0x1. Das ist nur eine andere Schreibweise.

Nächster Befehl:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#dynamic 0x800000

#org @main
trainerbattle 0x0 0x002 0x0 @before @after @later
msgbox @text 0x5
compare 0x800D 0x1
if b_true goto @ja
compare 0x800D 0x0
if b_true goto @nein
release
end

#org @before
= Ich besiege dich...

#org @after
= Ich habe verloren...

#org @text
= Willst du nochmal kämpfen?

#org @nein
faceplayer
msgbox @text2 0x6
release
end

#org @text2
= Dann nicht...

#org @ja
cleartrainerflag 0x002
repeattrainerbattle
release
end


Gehen wir das nochmal langsam durch!

Source code

1
cleartrainerflag 0xTrainer-ID

Löscht eine Trainerflag, sodass man nochmal gegen den Trainer kämpfen kann.

Source code

1
repeattrainerbattle

Wiederholt den Trainerbattle von eben. Man spart sich einen neuen trainerbattle 0x0 0x002 0x0 @before @after usw.

Und den letzten:
Jetzt mal ohne Beispiel.

Source code

1
settrainerflag 0xTrainer-ID

Wenn man z.B. in einer Arena ist und man einem Trainer ausgewichen ist, muss man nach dem Arenaleiterkampf die Flag setzen, damit man nicht gegen den Trainer kämpfen muss, denn man hat ja schon den Orden!

Das wars zu diesem Thema!

7. Sonstige

Hier werde ich ein paar andere Befehle vorstellen.

7.1 Setmaptile:
Tja, ok, ich werde mal die Funktion dieses Script-Befehls erklären. Setmaptile ersetzt in der Map z.B. einen Baum mit gewöhnlichem Gras. Beispiel mal wieder (xD):

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#dynamic 0x800000
#org @main
lock
fcaeplayer
msgbox @text
callstd 0x6
setmaptile 0x1 0x0C 0x07 0x0 
setmaptile 0x1 0x0D 0x07 0x0
setmaptile 0x1 0x0C 0x06 0x0
setmaptile 0x1 0x0D 0x06 0x0
setmaptile 0x26 0x0C 0x05 0x1
setmaptile 0x27 0x0D 0x05 0x1
special 0x8E
release
end

#org @text
= Hallo, wir sind der \nMotorsägenvertrieb Müller. \pIch zersäge diesen Baum.


Ok, gehen wir es langsam durch:

Source code

1
setmaptile 0xBlock 0xX-Kordinate 0xY-Kordinate 0xBegehbar?

ok, Block ist der neue Block, wenn ich den Baum wegmache, nehme ich Rasen als neuen Block. "0xX-Kordinate" Hier schreibt man die X-Kordinate des alten Blockes hin, wo der Block in der Map ersetzt werden soll. "0xY-Kordinate" Das ist der Y-Wert, der den Platz des Blockes angibt. "0xBegehbar?" da gibt es zwei Möglichkeiten. Entweder "0x0" für begehbar oder "0x1" für nicht begehbar.

Source code

1
special 0x8E

Der Befehl aktualisiert die Map im Spiel, sodass der Baum sofort weg ist.

Nun dazu, wie ich den Block und die X- und Y-Kordinate herausfinde. Dies geht auch mit AdvanceMap!
Hier ein Bild davon:


Ja das wars auch dazu, ich hoffe, dass ihr alles verstanden habt, falls nicht Post oder PN, wie immer.

7.2 Tür-Scripts/ Warp:

Dieser Befehl ist eigentlich ganz simpel. Gehen wir das einfach wie immer durch.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#dynamic 0x800000
#org @main
lock
faceplayer
#raw 0xAC 0x09 0x00 0x0D 0x00
#raw AE
applymovement 0x1 @go
waitmovement 0x0
applymovement 0xFF @go2
waitmovement 0x0
#raw 0xAD 0x09 0x00 0x0D 0x00
#raw AE
setflag 0x267
warp 0x0 0x3 0x48
release
end

#org @go
#raw 0x11
#raw 0x60
#raw 0xFE

#org @go2
#raw 0x12
#raw 0x11
#raw 0x60
#raw 0xFE


Gehen wir es einfach mal durch.

Source code

1
#raw 0xAC 0x09 0x00 0x0D 0x00

0xAC bereitet das Öffnen einer Tür vor. 0x09 und 0x00 X-Kordinaten, 0x0D und 0x00 Y-Kordinaten der Map.

Source code

1
#raw 0xAE

Führt das Vorbereitete aus.

Source code

1
#raw 0xAD 0x09 0x00 0x0D 0x00

Bereitet das Schließen einer Tür vor.

Nun noch:

Source code

1
warp 0xWarp-Nummer in Hex 0xMap-Bank in Hex 0xMap in Hex

Der Warp-Befehl bringt den Player in eine andere Map. Hier zum Beispiel in die Warp-Nummer 0 in der Map-Bank 3, in der Map 72 (48 ist Hex). Das ist der normale Warp-Befehl. Wenn man allerdings auf einer bestimmten Stelle in der Map landen soll, nimmt man den sogenannten Warp to Position-Befehl:

Source code

1
warp 0xMapbank 0xMap 0xFF 0xX-Kordinat 0xY-Kordinat

Das erklärt sich glaub ich von selbst.
Das wars auch schon.

7.3 Wildbattle:

Nun kommen wir zu einem recht simplen Befehl, der einen Wild-Pokemon-Kampf enthält, also kämpft man gegen wilde Pokemon xD.

Ich stelle wieder ein Beispiel rein:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#dynamic 0x800000
#org @main
lock
faceplayer
checkflag 0x200
if b_true goto @done
msgbox @text
callstd 0x4
cry 0x1 0x0
wildbattle 0x1 0x1E 0x0 0x0
fadescreen 0x1
fadescreen 0x0
setflag 0x200
release
end

#org @done
lock
faceplayer
msgbox @text
callstd 0x6
release
end

#org @text
= Bisa, Bisasam...


Ok, gehen wir es wieder durch:

Source code

1
cry 0xPokemon 0xPlatzhalter

Ich glaube das erklärt das fast schon. Cry lässt den Pokemon-Schrei eines bestimmten Pokemon ertönen. 0xPokemon, da fügt man einfach das Pokemon ein, das schreien soll ein.

Source code

1
wildbattle 0xPokemon 0xLevel 0xItem 0xArt des Kampfes

Der Befehl startet den Wild-Pokemon-Kampf. 0xLevel, das Level des Pokemon (in Hex), 0xItem, da kann man dem Pokemon ein Item geben.

Hier eine Liste zu Fadescreen:

Spoiler Spoiler

fadescreen:
0x0 - macht den schwarzen Bildschirm wieder normal.
0x1 - macht den Bildschirm schwarz.
0x2 - macht den weißen Bildschirm wieder normal.
0x3 - macht den Bildschirm weiß.


Ich glaube, das ist erklärt!

7.4 Wetter - Scripts:

Dieser Befehl ist einfacher, als man sich ihn vorstellt...
Beginnen wir wieder mit einem Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#dynamic 0x800000
#org @main
checkflag 0x200
if b_true goto @done
setweather 0x3
doweather
setflag 0x200
release
end

#org @done
setweather 0x2
doweather
clearflag 0x200
release
end


Gehen wir das wieder durch:

Source code

1
setweather 0xWetterart

Wie das da steht: Der Befehl bereitet ein Wetter vor.

Source code

1
doweather

Wer ein wenig Englisch kann, müsste hinter diesen Befehl kommen. (Doweather = Machwetter)
Dieser Befehl startet das vorbereitete Wetter.

Hier eine Liste mit Wettern:

Spoiler Spoiler

Sonnig (kein Wetter) = 0x0
Sonniges Wetter mit Wolken = 0x1
Normales Wetter = 0x2
Regen = 0x3
3 Schneepflocken = 0x4
Regen mit Gewitter = 0x5
Nebel = 0x6
Dauerschnee = 0x7
Sandsturm = 0x8
Nebel von oben rechts = 0x9
Dichter, heller Nebel = 0xA
Bevölkt = 0xB
Untergrund blinkt = 0xC
Viel Regen mit Gewitter = 0xD
Sonnig (Kein Wetter) = 0xE


7.5 Pokémart:
Dieser Befehl ist auch ganz simpel. Mit dem Befehl kann man einen Pokémarkt erstellen. In dem Befehl steckt, das "Guten Tag, was möchten sie", die Liste zum Kaufen, "Kaufen, Verkaufen, Tschüssi!". Man muss praktisch nur angeben, was man Kaufen kann.

Ein Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#dynamic 0x800000
#org @main
lock
faceplayer
pokemart @markt
release
end

#org @markt
#raw word 0x1
#raw word 0x2
#raw word 0x3
#raw word 0x4
#raw word 0x5
#raw word 0x6
#raw word 0x7
#raw word 0x8
#raw word 0x9
#raw word 0xA
#raw word 0xB
#raw word 0xC
#raw word 0x13
#raw word 0x14
#raw word 0x0


Gehen wir die Befehle durch:

Source code

1
pokemart @markt

Dieser Befehl startet den Pokémarkt-Script.

Source code

1
#raw word 0xItem

Hier kann man auswählen, was gekauft werden kann.

Hier eine Liste mit ein paar Items:

Spoiler Spoiler

MEISTERBALL 0x1
HYPERBALL 0x2
SUPERBALL 0x3
POKEBALL 0x4
SAFARIBALL 0x5
NETZBALL 0x6
TAUCHBALL 0x7
NESTBALL 0x8
WIEDERBALL 0x9
TIMERBALL 0xA
LUXUSBALL 0xB
PREMIERBALL 0xC
PARA-HEILER 0x13
TOP-GENESUNG 0x14


Ich glaube das wars hierzu.

7.6 Hide-/ Showsprite:
Dieser Befehl ist wieder etwas komplexer, aber trotzdem gut zu verstehen.

Nehmen wir wieder ein Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
#dynamic 0x800000
#org @main
lock
faceplayer
showsprite 0x2
msgbox @text
callstd 0x6
hidesprite 0x2
release
end

#org @text
= Hallo, wie geht's?


Gehen wir das einfach mal durch:

Source code

1
showsprite 0xPers-Nr.

Dieser Befehl lässt eine Pers. erscheinen, die mit hidesprite schonmal versteckt worden war oder man kann clearflag nehmen, falls man die Pers. entfernt hat mit setflag, und sie mit showsprite nach clearflag wieder erscheinen lassen.

Source code

1
hidesprite 0xPers.-Nr.

Dieser Befehl lässt eine Pers. verschwinden.

Andere:

Source code

1
hidesprite 0x800F

Dieser Befehl lässt die Pers. verscheinden, die man gerade angesprochen hatte. Eigentlich auch nützlich...

Das wars auch schon dazu.

7.7 Erdbeben:
Dieser Befehl ist simpel und einfach:

Source code

1
2
3
4
5
6
7
8
9
10
#dynamic 0x800000
#org @main
lock
faceplayer
setvar 0x8004 0xF
setvar 0x8005 0xF
setvar 0x8006 0xF
setvar 0x8007 0xFspecial 0x136
release
end


Gehen wir es einfach durch:

Source code

1
special 0x136

Der Befehl beendet das Erdbeben.

Source code

1
2
3
4
setvar 0x8004 0xF  
setvar 0x8005 0xF  
setvar 0x8006 0xF  
setvar 0x8007 0xF

Die Befehle starten das Erdbeben und bestimmen die Länge (Zeit) und die Stärke des Erdbebens. Dieses Erdbeben ist sehr stark!
Man kann die Stärke und die Zeit ändern, aber genaueres weiß ich darüber nicht, aber eigentlich ist es egal. Erdbeben ist Erdbeben.

Das wars auch schon dazu!

7.8 Countpokemon:
Ein sehr nützlicher Befehl:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#dynamic 0x800000
#org @main
countpokemon
compare 0x800D 0x6
if b_true goto @done
fanfare 0x13E
msgbox @text 0x6
waitfanfare
givepokemon 0x1 0x1 0xD 0x0 0x0 0x0
setflag 0x200
release
end

#org @text
= [player] erhält ein BISASAM!

#org @done
msgbox @text2 0x6
release
end

#org @text2
= Du musst ein Pokemon in \ndie Box bringen!


OK, gehen wir das mal durch!

Source code

1
countpokemon

Überprüft die Anzahl der Pokemon im Team.

Source code

1
compare 0x800D 0xAnzahl der Pokemon

Hier muss man einfach die Anzahl der Pokemon eingeben, die man haben soll, damit ein Script umgeleitet wird. Z.B. Bei 0x6, wenn man ein Pokemon soll, aber 6 im Team hat, kann man keins dazubekommen. Also leiten wir den Script auf @done um.

Das wars hierzu.

7.9 Buffer:
Es gibt verschiedene Buffer-Befehle. Beginnen wir mit:

7.9.1 Bufferpokemon

Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
#dynamic 0x800000
#org @main
faceplayer
bufferpokemon 0x00 0x1
msgbox @text 0x6
release
end

#org @text
= Wie geht's denn dir \nund [buffer1]?


Gehen wir das mal durch:

Source code

1
bufferpokemon 0xVariabel 0xPokemon ID (in Hex)

Dieser Befehl läd das Pokemon bei Pokemon-ID in die Variabel 0x0, also schreibt man in einer Textbox [buffer1], denn dort erscheint der Name des Pokemon, das wir gerade bei bufferpokemon bei der Pers-ID hingeschrieben haben.

Wenn wir mehrere Pokemon in so ein Buffer laden wollen nehmen wir beim nächsten Mal 0x01 und im Text [buffer2].
7.9.2 Bufferfirstpokemon

Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
#dynamic 0x800000
#org @main
faceplayer
bufferfirstpokemon 0x00
msgbox @text 0x6
release
end

#org @text
= Wie geht's denn dir \nund [buffer1]?


Source code

1
bufferfirstpokemon

Der Befehl läd das erste Pokemon im Team in den Buffer.

7.9.3 Bufferitem

Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
#dynamic 0x800000
#org @main
faceplayer
bufferitem 0x00 0x0D
msgbox @text 0x6
release
end

#org @text
= Willst du einen \n[buffer1]?


Source code

1
bufferitem 0x00 0xItem-Nr. (in Hex)

Dasgleiche geht auch mit Items.

7.9.4 Bufferattack

Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
11
#dynamic 0x800000
#org @main
faceplayer
bufferpokemon 0x00 0x01
bufferattack 0x01 0x002
msgbox @text 0x6
release
end

#org @text
= Dein [buffer1] kann kein \n[buffer2] erlernen!


Source code

1
bufferattack 0x00 0xAttack-Nr. 

Dasgleiche geht auch mit Attacken. Eine Liste gibt es bei Punkt 8: Extras und Listen.

7.9.5 Buffernumber

Beispiel:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
#dynamic 0x800000
#org @main
faceplayer
setvar 0x800D 0x64
buffernumber 0x00 0x800D
bufferitem 0x01 0x0D
msgbox @text 0x6
release
end

#org @text
= Das Item [buffer2] \nkostet [buffer1] Pokedollar!


Source code

1
setvar 0x800D 0xZahl (in Hex)

Der Befehl läd die Zahl, die man eingibt, in meinem Beispiel 100, in die Variabel 800D.

Source code

1
buffernumber 0x00 0x800D

Der Befehl läd die vorhin geladene Zahl, die in 800D drinsteckt, in den Buffer.

So schwer war das nicht, aber diese Variabeln und Valuen können eine verwirren, oder? Naja heiter weiter!

8. Extras/ Listen:

Hier eine Liste mit Flags, die im Spiel schon benutzt wurden (Feuerrot/Blattgrün):

flag_fr_bg.txt

Alternativ:
Hier

Falls ihr bestimmte Tuts sucht um Ähnliches zu machen, hat Aeonos ein Inhaltsverzeichnis gemacht:
Hier

Ein Super XSE Tut, leider Englisch:

Hier

Die Attackenliste:

Spoiler Spoiler

001 Pound
002 Karate Chop
003 DoubleSlap
004 Comet Punch
005 Mega Punch
006 Pay Day
007 Fire Punch
008 Ice Punch
009 ThunderPunch
00A Scratch
00B ViceGrip
00C Guillotine
00D Razor Wind
00E Swords Dance
00F Cut
010 Gust
011 Wing Attack
012 Whirlwind
013 Fly
014 Bind
015 Slam
016 Vine Whip
017 Stomp
018 Double Kick
019 Mega Kick
01A Jump Kick
01B Rolling Kick
01C Sand-Attack
01D Headbutt
01E Horn Attack
01F Fury Attack
020 Horn Drill
021 Tackle
022 Body Slam
023 Wrap
024 Take Down
025 Thrash
026 Double-Edge
027 Tail Whip
028 Poison Sting
029 Twineedle
02A Pin Missile
02B Leer
02C Bite
02D Growl
02E Roar
02F Sing
030 Supersonic
031 SonicBoom
032 Disable
033 Acid
034 Ember
035 Flamethrower
036 Mist
037 Water Gun
038 Hydro Pump
039 Surf
03A Ice Beam
03B Blizzard
03C Psybeam
03D BubbleBeam
03E Aurora Beam
03F Hyper Beam
040 Peck
041 Drill Peck
042 Submission
043 Low Kick
044 Counter
045 Seismic Toss
046 Strength
047 Absorb
048 Mega Drain
049 Leech Seed
04A Growth
04B Razor Leaf
04C SolarBeam
04D PoisonPowder
04E Stun Spore
04F Sleep Powder
050 Petal Dance
051 String Shot
052 Dragon Rage
053 Fire Spin
054 ThunderShock
055 Thunderbolt
056 Thunder Wave
057 Thunder
058 Rock Throw
059 Earthquake
05A Fissure
05B Dig
05C Toxic
05D Confusion
05E Psychic
05F Hypnosis
060 Meditate
061 Agility
062 Quick Attack
063 Rage
064 Teleport
065 Night Shade
066 Mimic
067 Screech
068 Double Team
069 Recover
06A Harden
06B Minimize
06C SmokeScreen
06D Confuse Ray
06E Withdraw
06F Defense Curl
070 Barrier
071 Light Screen
072 Haze
073 Reflect
074 Focus Energy
075 Bide
076 Metronome
077 Mirror Move
078 Selfdestruct
079 Egg Bomb
07A Lick
07B Smog
07C Sludge
07D Bone Club
07E Fire Blast
07F Waterfall
080 Clamp
081 Swift
082 Skull Bash
083 Spike Cannon
084 Constrict
085 Amnesia
086 Kinesis
087 Softboiled
088 Hi Jump Kick
089 Glare
08A Dream Eater
08B Poison Gas
08C Barrage
08D Leech Life
08E Lovely Kiss
08F Sky Attack
090 Transform
091 Bubble
092 Dizzy Punch
093 Spore
094 Flash
095 Psywave
096 Splash
097 Acid Armor
098 Crabhammer
099 Explosion
09A Fury Swipes
09B Bonemerang
09C Rest
09D Rock Slide
09E Hyper Fang
09F Sharpen
0A0 Conversion
0A1 Tri Attack
0A2 Super Fang
0A3 Slash
0A4 Substitute
0A5 Struggle
0A6 Sketch
0A7 Triple Kick
0A8 Thief
0A9 Spider Web
0AA Mind Reader
0AB Nightmare
0AC Flame Wheel
0AD Snore
0AE Curse
0AF Flail
0B0 Conversion 2
0B1 Aeroblast
0B2 Cotton Spore
0B3 Reversal
0B4 Spite
0B5 Powder Snow
0B6 Protect
0B7 Mach Punch
0B8 Scary Face
0B9 Faint Attack
0BA Sweet Kiss
0BB Belly Drum
0BC Sludge Bomb
0BD Mud-Slap
0BE Octazooka
0BF Spikes
0C0 Zap Cannon
0C1 Foresight
0C2 Destiny Bond
0C3 Perish Song
0C4 Icy Wind
0C5 Detect
0C6 Bone Rush
0C7 Lock-On
0C8 Outrage
0C9 Sandstorm
0CA Giga Drain
0CB Endure
0CC Charm
0CD Rollout
0CE False Swipe
0CF Swagger
0D0 Milk Drink
0D1 Spark
0D2 Fury Cutter
0D3 Steel Wing
0D4 Mean Look
0D5 Attract
0D6 Sleep Talk
0D7 Heal Bell
0D8 Return
0D9 Present
0DA Frustration
0DB Safeguard
0DC Pain Split
0DD Sacred Fire
0DE Magnitude
0DF DynamicPunch
0E0 Megahorn
0E1 DragonBreath
0E2 Baton Pass
0E3 Encore
0E4 Pursuit
0E5 Rapid Spin
0E6 Sweet Scent
0E7 Iron Tail
0E8 Metal Claw
0E9 Vital Throw
0EA Morning Sun
0EB Synthesis
0EC Moonlight
0ED Hidden Power
0EE Cross Chop
0EF Twister
0F0 Rain Dance
0F1 Sunny Day
0F2 Crunch
0F3 Mirror Coat
0F4 Psych Up
0F5 ExtremeSpeed
0F6 AncientPower
0F7 Shadow Ball
0F8 Future Sight
0F9 Rock Smash
0FA Whirlpool
0FB Beat Up
0FC Fake Out
0FD Uproar
0FE Stockpile
0FF Spit Up
100 Swallow
101 Heat Wave
102 Hail
103 Torment
104 Flatter
105 Will-O-Wisp
106 Memento
107 Facade
108 Focus Punch
109 SmellingSalt
10A Follow Me
10B Nature Power
10C Charge
10D Taunt
10E Helping Hand
10F Trick
110 Role Play
111 Wish
112 Assist
113 Ingrain
114 Superpower
115 Magic Coat
116 Recycle
117 Revenge
118 Brick Break
119 Yawn
11A Knock Off
11B Endeavor
11C Eruption
11D Skill Swap
11E Imprison
11F Refresh
120 Grudge
121 Snatch
122 Secret Power
123 Dive
124 Arm Thrust
125 Camouflage
126 Tail Glow
127 Luster Purge
128 Mist Ball
129 FeatherDance
12A Teeter Dance
12B Blaze Kick
12C Mud Sport
12D Ice Ball
12E Needle Arm
12F Slack Off
130 Hyper Voice
131 Poison Fang
132 Crush Claw
133 Blast Burn
134 Hydro Cannon
135 Meteor Mash
136 Astonish
137 Weather Ball
138 Aromatherapy
139 Fake Tears
13A Air Cutter
13B Overheat
13C Odor Sleuth
13D Rock Tomb
13E Silver Wind
13F Metal Sound
140 GrassWhistle
141 Tickle
142 Cosmic Power
143 Water Spout
144 Signal Beam
145 Shadow Punch
146 Extrasensory
147 Sky Uppercut
148 Sand Tomb
149 Sheer Cold
14A Muddy Water
14B Bullet Seed
14C Aerial Ace
14D Icicle Spear
14E Iron Defense
14F Block
150 Howl
151 Dragon Claw
152 Frenzy Plant
153 Bulk Up
154 Bounce
155 Mud Shot
156 Poison Tail
157 Covet
158 Volt Tackle
159 Magical Leaf
15A Water Sport
15B Calm Mind
15C Leaf Blade
15D Dragon Dance
15E Rock Blast
15F Shock Wave
160 Water Pulse
161 Doom Desire


Das wars zu Extras und Listen, nicht viel, aber etwas.

9. Nachwort:

Ich danke allen in RHW/RR, die mich immer wieder unterstützt haben, Tipps zu diesem Tut usw.
Besonders danke an:
driver
red-ex (Gruß nach Italien)
Agi (Wegen dem Tut, der Anzahl der Zeichen usw.)

10.Credits:
diegoisawesome
HackMew
Lu-Ho

Dieses Tut ist von Pilo11 geschrieben und darf nicht ohne meine Erlaubnis kopiert werden. Es ist erlaubt es zu verlinken, aber mit Credits.

Pilo11 :D

Seit heute dem 03.10.13, 5 Jahre auf RHR!!! :P

This post has been edited 9 times, last edit by "pilo11" (Nov 24th 2009, 7:31am)


driver

~ La Muerte ~

Posts: 3,525

Occupation: Student

Thanks: 478

  • Send private message

2

Monday, October 27th 2008, 6:45pm

Re: XSE Tutorial

Die Musik ist - ehrlich gesagt - scheiße xD
Und: Ich finde Videos nicht wirklich gut für ein TUT, aber sonst ist es eig. janz jut^^

Achja: Ich würde dir raten, guten (Hard-)Rock oder sowas im Hintergrund laufen zu lassen^^


driver

Posts: 1,000

Occupation: Azubi als Fachinformatiker/Anwendungsentwicklung

Thanks: 13

  • Send private message

3

Monday, October 27th 2008, 6:47pm

Re: XSE Tutorial

wegen der musik muss ich driver recht geben, Metal wäre besser^^

lg.
Ich bin nicht vergesslich, in meinem Hirn werden nur Pointer zu den Leuten angelegt, auf die ich dann nur zurück greifen muss um die Information zu erlangen :)

pilo11

Gamer

  • "pilo11" started this thread

Posts: 477

Thanks: 7

  • Send private message

4

Monday, October 27th 2008, 6:54pm

Re: XSE Tutorial

Ok danke, werde daran arbeiten xD

Seit heute dem 03.10.13, 5 Jahre auf RHR!!! :P

Mike

Ex - Moderator

Posts: 927

  • Send private message

5

Saturday, November 1st 2008, 9:28am

Re: XSE Tutorial

@ driver und Freastar:
Ich glaube kaum,dass bei einem Tutorial die Musik wichtig ist. Außerdem wird es wieder das Problem geben, dass es Leute gibt, welche Metal/Hardrock nicht gerade mögen...
Deswegen würde ich die Musik irgendwie raustun oder mich einfach mal auf das wichtige Konzentieren: Den Inhalt...

pilo11

Gamer

  • "pilo11" started this thread

Posts: 477

Thanks: 7

  • Send private message

6

Saturday, November 1st 2008, 10:48am

Re: XSE Tutorial

Hast recht, vielleicht sollte man das noch mit seiner Stimme erklären und dann muss man das nicht immer hinschreiben!

Seit heute dem 03.10.13, 5 Jahre auf RHR!!! :P

s0n1c

Prophet

Posts: 1,802

Thanks: 158

  • Send private message

7

Saturday, November 1st 2008, 11:40am

Re: XSE Tutorial

Eig sehr schönes TUT, nur hast du geschrieben, du gibst einen Trank und man bekommt auf einmal ne Limonade?o.O
Den script, hättest du einfacher schreiben können mit:
checkitem 0xD
#raw 0x01 0x00
und dann.... ;)
Das du durch 5maps gehst am ende, ist auch nicht so schön. Auf den givepokemon script würd ich trotzdem weiter eingehen... wenn du nur schreibst, giveitem durch givepokemon erstzen naja^^ Naja wie gesagt, ein gutes, mit mehr erklärungen und "veranschaulichungen", TUT(für ein "neuling" wie dich) good job;) (wenn du meine hilfe, bzw hilfe brauchst, PN me=) ) Viel kritik ich weiss, aber nur so wirst du besser^^;)

mfg

Posts: 359

Occupation: Student :3

Thanks: 29

  • Send private message

8

Saturday, November 1st 2008, 7:25pm

Re: XSE Tutorial

also folgendes prblem:
ich will ne rom mit XSE öffenen find die aber alle nicht ...
WARUM???


~ Enter the Void! ~

s0n1c

Prophet

Posts: 1,802

Thanks: 158

  • Send private message

9

Saturday, November 1st 2008, 8:07pm

Re: XSE Tutorial

Hast du datei type auf Gameboy Advance ROMs umgestellt...><

mfg

pilo11

Gamer

  • "pilo11" started this thread

Posts: 477

Thanks: 7

  • Send private message

10

Sunday, November 2nd 2008, 3:35am

Re: XSE Tutorial

Also ich werde noch ein Tut machen, aber nicht als Video.

Seit heute dem 03.10.13, 5 Jahre auf RHR!!! :P

pilo11

Gamer

  • "pilo11" started this thread

Posts: 477

Thanks: 7

  • Send private message

11

Saturday, April 18th 2009, 12:56pm

Re: XSE Tutorial

Kann ein Mod oder Admin mein Tut bitte in den Tutorial bereich verschieben, wäre nett

Seit heute dem 03.10.13, 5 Jahre auf RHR!!! :P

Blackvolution

A Long Forgotten Son

Posts: 1,894

Thanks: 743

  • Send private message

12

Saturday, April 18th 2009, 2:56pm

Re: XSE Tutorial

Nettes Tutorial, ich habs zwar jetzt nur schnell überflogen, aber für Anfänger nicht schlecht :wink:
Bie Givepokemon müssen 6 Bytes eingefügt werden, jedoch braucht man im XSE nur 3, daher muss man danach noch 3x "0x00" einfügen, als Filler.
Irgendwie ist das unheimlich, gerade heute befolge ich einen Rat von M_T und möchte Scripten mit dem XSE lernen und dann kommt das :D

Lg
MfG, Alen

When faced with tragedy we come alive or come undone
So don't look back, let it shape you like an ocean
Even the deepest scars in time will fade



pilo11

Gamer

  • "pilo11" started this thread

Posts: 477

Thanks: 7

  • Send private message

13

Monday, April 20th 2009, 11:28pm

Re: XSE Tutorial

Ich arbeite Stückchenweise dran.

Seit heute dem 03.10.13, 5 Jahre auf RHR!!! :P

Son geta1

Prophet

Posts: 1,705

Thanks: 472

  • Send private message

14

Tuesday, April 21st 2009, 4:13pm

Re: XSE Tutorial

Also erstmal: Ich finde das Tutorial super!

Jedoch habe ich ein Problem.

Ich verwende den folgenden Script:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#dynamic 0x800000

#org @main
lock
faceplayer
applymovement 0x3 @go
pause 0x0
msgbox @text
callstd 0x6
release
end

#org @text
= Dort ist es gefährlich!\nIch will dich nur warnen!

#org @go
#raw 13
#raw 13
#raw FE


Nur wenn ich dann auf "Kompilieren" drücke, bekomme ich so eine Meldung:
Zu wenig Parameter in Zeile Acht (das ist die

Source code

1
msgbox @text
). Die korrekte Zahl ist 2.

Ich kenne mich weder mit Scripten noch mit dem XSE besonders gut aus, um zu wissen, was das bedeutet.

Meine Frage: Was muss ich nun tun, damit der Script funktioniert?

driver

~ La Muerte ~

Posts: 3,525

Occupation: Student

Thanks: 478

  • Send private message

15

Tuesday, April 21st 2009, 4:40pm

Re: XSE Tutorial

Man hatte die ach so phantastische Idee den msgbox-Befehl zu erweitern, und zwar wird das callstd direkt mit reingebracht...
Du musst also bei msgbox folgendes schreiben:

Source code

1
msgbox @text 0x6
...

Das callstd 0x6 wird dann weggelassen...


driver

Son geta1

Prophet

Posts: 1,705

Thanks: 472

  • Send private message

16

Tuesday, April 21st 2009, 4:48pm

Re: XSE Tutorial

Ah, gut, jetzt geht der Teil zumindestens.

Nun gibt's aber gleich das nächste Problem...

Nämlic behauptet XSE in Zeile 18

Source code

1
#raw FE


das:

Fehler 13 "Typen unverträglich" in Zeile 18. #define fehlt.

Was tun (sprach Zeus)?

pilo11

Gamer

  • "pilo11" started this thread

Posts: 477

Thanks: 7

  • Send private message

17

Tuesday, April 21st 2009, 4:55pm

Re: XSE Tutorial

Ich weiß nicht, ob das große Wirkungen hat, aber schreib:

Source code

1
2
3
#binary 0x13
#binary 0x13
#binary 0xFE

Seit heute dem 03.10.13, 5 Jahre auf RHR!!! :P

s0n1c

Prophet

Posts: 1,802

Thanks: 158

  • Send private message

18

Tuesday, April 21st 2009, 4:57pm

Re: XSE Tutorial

Hallo,
vlt mal 0xFE und ausserdem kannst du die in eine Zeile schreiben, ob man bei fünf einen leerschritt macht weiss ich nicht, aber es klappt genauso wie bei PS.

mfg s0n1c

Son geta1

Prophet

Posts: 1,705

Thanks: 472

  • Send private message

19

Tuesday, April 21st 2009, 5:19pm

Re: XSE Tutorial

0x6F hat funktioniert, aber wie sage ich ihm nun, das der Script beim grünen Advance Map Script losgehen soll? Also genau dann, wenn ich das Feld betrete. Was muss ich da ins Offset schreiben?

driver

~ La Muerte ~

Posts: 3,525

Occupation: Student

Thanks: 478

  • Send private message

20

Tuesday, April 21st 2009, 5:31pm

Re: XSE Tutorial

Du machst dir halt nen Bodenscript in AM (Grünes S) und gibst dem das Offset von deinem kompilierten Script O_O
Var-Nummer bekommt er 5040 (in AM)
und im Feld eins drüber (Unbekannt) schreibst du 0300 hin =)


driver