Registrarse

[Scripting] Todo lo que debes saber sobre scripts

Hola a todos! Espero que esteis bien :D
Traigo este tutorial ya que he visto mucho novato ultimamente, y como algunos sabrán, los que se creen los muy muy los tratan como el forro xC
Agradezco a @oscar1234 (De nuevo jajaja) por impulsarme a crearlo :D

Pues, ¡Aqui podeis aprender!

Trataré de hacerlo lo mayormente entendible para ustedes, aqui vereis muchos comandos y cosas básicas para aprender y ser un buen scripter, sé que ya hay un chillón de tutoriales sobre scripts pero me da igual, mientras pueda aportar mi granito de arena yo feliz :)

Bueno, sin más charla, empecemos!:
Un error que cometía yo y creo que algunos más era que no sabiamos compilar bien un script, pues bien, lo que debeis hacer es abrir el XSE vacío y Abrir (Archivo, Abrir...) luego de eso, abres tu Rom en la cual compilarás el script, luego que tengas completo tu script, debes clickar el icono de los engranajes azules y te saldrá el multicompilador, que nos dará el offset de nuestro script 'u'
Los comandos fundamentales

Cuando digo los comandos fundamentales, estoy hablando de la estrutura del script. Todas las "claves" escritas en una linea son comandos, debeis recordar que una línea no puede tener más de un comando, ya que por ejemplo, si pones un Wildbattle al lado de un Giveitem,el script se echará a perder.

La estructura más fácil y más común es esta:
#dynamic 0x800000 - Dynamic: Esto da a entender que buscará una dirección dinámica o offset a partir de la dirección 0x800000, no hay más ciencia (Hay otras formas, pero repito que es la más usada)

#org @inicio
Esto es importante, cuando era novato, no tenia ni la más minima idea de para que servia el @msg, pero es un puntero, los punteros son aquellos que te buscan la dirección automaticamente
Lock[
Faceplayer-El comando lock sirve para bloquear al mini (Persona) en el que esté el script, y Faceplayer para que dicho mini mire al jugador.
Msgbox @Mensaje 0x6 -Msgbox es el comando que muestra el mensaje del script, siempre debe ir el puntero al medio, o se bugeará, puede utilizarse más de una vez EN DISTINTAS LÍNEAS.
Release-Indica que el Mini ya puede volver a moverse
End- Indica que el script ha finalizado.
¿Facil no? Pues todo tipo de script debe incluir estos comandos, eso si, si son scrits de gatillo (Que ya explicaré) o simplemente postes o carteles, ahi ustedes decorais a su gusto.
Todo script debe incluir al menos el #Dynamic 0x800000, el #org @inicio y el End
PD: Se puede utilizar cualquier palabra en cualquier puntero :)

Comandos Útiles

Con comandos útiles, me refiero a aquellos que se usan para algo especial, por ejemplo, para cuando te dan un Pokémon (GivePokémon) o un objeto (GiveItem), los explicaré ahora:
"GivePokémon"
Ëste bonito comando sirve para recibir un Pokémon, sólo te lo dan, pero yo os daré los requisitos para que quede bonito y os explicaré obviamente :D

Haber, hagámos que le hablamos a un anciano, y este nos dice cualquier pendejada que nos salga de la mente, y nos dé un Bulbasaur, debeis seguir éste esqema:

#dynamic 0x800000

#org @inicio
lock
faceplayer
checkflag 0x/Flag\ - Aqui comprueba si una flag está usada (0x1) o no (0x0)'
If 0x1 goto @script - If (Si) 0x1 (Es lenguaje del XSE, si está activada) goto (Irá hacia) @Script (Si está activada, se ejecutan los sucesos del @script, que es donde te dan a tu Pokemon.
Msgbox @msgafter 0x6 (Este es el mensaje ue te dirá cuando le hables luego de recibirlo.
Release
End

#org @inicio2 (en este tipo de scripts, debes crear dos parrafos, ya que estos usan una flag (No es necesario del todo en alguno casos))
l

lock
faceplayer
msgbox @msgscript 0x6
givepokemon 0xPokémon 0xNv del Pokémon 0xItem 0x0 0x0 0x0 (Este es el script usado para que te den el Pokémon)
textcolor 0x2 (Comando nuevo, cambia el color de las letras de la MSGBOX en el caso de 0x2 sería negro
msgbox @obtained 0x6 Mensaje que nos dice \v\h01 (Jugador) obtuvo un POKéMON! (El puntero sigue siendo a elección y el texto igual)
fanfare 0x13E Fanfare es para cuando se ejecuta el sonidito y waitfanfare es para que este se termine de reproducir, o que se espera a que este termine para continuar el script.
waitfanfare
setflag 0x|FlagAnterior| Este comando sirve para que un script no se repita, desactiva o activa una flag, dependiendo de ella.
release
end

#Org @msgafter
= Cualquier cosa

#org @msgscript
= qui va lo que dicen antes de entregartelo, para hacerlo perfecto, usa CTRL + T, que es el ajuste de linea ;)



GiveItem y GiveEgg es lo mismo, sólo que con menos parametros:

GiveItem 0xNº del Item 0xCantidad 0xTipo de Mensaje
GiveEgg 0xNº Del Pokémon

Como sabeis, soy buen samaritano xD Ai que aqui os dejo las direcciones:
#define PKMN_MISSINGNO 0x0
#define PKMN_BULBASAUR 0x1
#define PKMN_IVYSAUR 0x2
#define PKMN_VENUSAUR 0x3
#define PKMN_CHARMANDER 0x4
#define PKMN_CHARMELEON 0x5
#define PKMN_CHARIZARD 0x6
#define PKMN_SQUIRTLE 0x7
#define PKMN_WARTORTLE 0x8
#define PKMN_BLASTOISE 0x9
#define PKMN_CATERPIE 0xA
#define PKMN_METAPOD 0xB
#define PKMN_BUTTERFREE 0xC
#define PKMN_WEEDLE 0xD
#define PKMN_KAKUNA 0xE
#define PKMN_BEEDRILL 0xF
#define PKMN_PIDGEY 0x10
#define PKMN_PIDGEOTTO 0x11
#define PKMN_PIDGEOT 0x12
#define PKMN_RATTATA 0x13
#define PKMN_RATICATE 0x14
#define PKMN_SPEAROW 0x15
#define PKMN_FEAROW 0x16
#define PKMN_EKANS 0x17
#define PKMN_ARBOK 0x18
#define PKMN_PIKACHU 0x19
#define PKMN_RAICHU 0x1A
#define PKMN_SANDSHREW 0x1B
#define PKMN_SANDSLASH 0x1C
#define PKMN_NIDORANF 0x1D
#define PKMN_NIDORINA 0x1E
#define PKMN_NIDOQUEEN 0x1F
#define PKMN_NIDORANM 0x20
#define PKMN_NIDORINO 0x21
#define PKMN_NIDOKING 0x22
#define PKMN_CLEFAIRY 0x23
#define PKMN_CLEFABLE 0x24
#define PKMN_VULPIX 0x25
#define PKMN_NINETALES 0x26
#define PKMN_JIGGLYPUFF 0x27
#define PKMN_WIGGLYTUFF 0x28
#define PKMN_ZUBAT 0x29
#define PKMN_GOLBAT 0x2A
#define PKMN_ODDISH 0x2B
#define PKMN_GLOOM 0x2C
#define PKMN_VILEPLUME 0x2D
#define PKMN_PARAS 0x2E
#define PKMN_PARASECT 0x2F
#define PKMN_VENONAT 0x30
#define PKMN_VENOMOTH 0x31
#define PKMN_DIGLETT 0x32
#define PKMN_DUGTRIO 0x33
#define PKMN_MEOWTH 0x34
#define PKMN_PERSIAN 0x35
#define PKMN_PSYDUCK 0x36
#define PKMN_GOLDUCK 0x37
#define PKMN_MANKEY 0x38
#define PKMN_PRIMEAPE 0x39
#define PKMN_GROWLITHE 0x3A
#define PKMN_ARCANINE 0x3B
#define PKMN_POLIWAG 0x3C
#define PKMN_POLIWHIRL 0x3D
#define PKMN_POLIWRATH 0x3E
#define PKMN_ABRA 0x3F
#define PKMN_KADABRA 0x40
#define PKMN_ALAKAZAM 0x41
#define PKMN_MACHOP 0x42
#define PKMN_MACHOKE 0x43
#define PKMN_MACHAMP 0x44
#define PKMN_BELLSPROUT 0x45
#define PKMN_WEEPINBELL 0x46
#define PKMN_VICTREEBEL 0x47
#define PKMN_TENTACOOL 0x48
#define PKMN_TENTACRUEL 0x49
#define PKMN_GEODUDE 0x4A
#define PKMN_GRAVELER 0x4B
#define PKMN_GOLEM 0x4C
#define PKMN_PONYTA 0x4D
#define PKMN_RAPIDASH 0x4E
#define PKMN_SLOWPOKE 0x4F
#define PKMN_SLOWBRO 0x50
#define PKMN_MAGNEMITE 0x51
#define PKMN_MAGNETON 0x52
#define PKMN_FARFETCHED 0x53
#define PKMN_DODUO 0x54
#define PKMN_DODRIO 0x55
#define PKMN_SEEL 0x56
#define PKMN_DEWGONG 0x57
#define PKMN_GRIMER 0x58
#define PKMN_MUK 0x59
#define PKMN_SHELLDER 0x5A
#define PKMN_CLOYSTER 0x5B
#define PKMN_GASTLY 0x5C
#define PKMN_HAUNTER 0x5D
#define PKMN_GENGAR 0x5E
#define PKMN_ONIX 0x5F
#define PKMN_DROWZEE 0x60
#define PKMN_HYPNO 0x61
#define PKMN_KRABBY 0x62
#define PKMN_KINGLER 0x63
#define PKMN_VOLTORB 0x64
#define PKMN_ELECTRODE 0x65
#define PKMN_EXEGGCUTE 0x66
#define PKMN_EXEGGUTOR 0x67
#define PKMN_CUBONE 0x68
#define PKMN_MAROWAK 0x69
#define PKMN_HITMONLEE 0x6A
#define PKMN_HITMONCHAN 0x6B
#define PKMN_LICKITUNG 0x6C
#define PKMN_KOFFING 0x6D
#define PKMN_WEEZING 0x6E
#define PKMN_RHYHORN 0x6F
#define PKMN_RHYDON 0x70
#define PKMN_CHANSEY 0x71
#define PKMN_TANGELA 0x72
#define PKMN_KANGASKHAN 0x73
#define PKMN_HORSEA 0x74
#define PKMN_SEADRA 0x75
#define PKMN_GOLDEEN 0x76
#define PKMN_SEAKING 0x77
#define PKMN_STARYU 0x78
#define PKMN_STARMIE 0x79
#define PKMN_MRMIME 0x7A
#define PKMN_SCYTHER 0x7B
#define PKMN_JYNX 0x7C
#define PKMN_ELECTABUZZ 0x7D
#define PKMN_MAGMAR 0x7E
#define PKMN_PINSIR 0x7F
#define PKMN_TAUROS 0x80
#define PKMN_MAGIKARP 0x81
#define PKMN_GYARADOS 0x82
#define PKMN_LAPRAS 0x83
#define PKMN_DITTO 0x84
#define PKMN_EEVEE 0x85
#define PKMN_VAPOREON 0x86
#define PKMN_JOLTEON 0x87
#define PKMN_FLAREON 0x88
#define PKMN_PORYGON 0x89
#define PKMN_OMANYTE 0x8A
#define PKMN_OMASTAR 0x8B
#define PKMN_KABUTO 0x8C
#define PKMN_KABUTOPS 0x8D
#define PKMN_AERODACTYL 0x8E
#define PKMN_SNORLAX 0x8F
#define PKMN_ARTICUNO 0x90
#define PKMN_ZAPDOS 0x91
#define PKMN_MOLTRES 0x92
#define PKMN_DRATINI 0x93
#define PKMN_DRAGONAIR 0x94
#define PKMN_DRAGONITE 0x95
#define PKMN_MEWTWO 0x96
#define PKMN_MEW 0x97
#define PKMN_CHIKORITA 0x98
#define PKMN_BAYLEEF 0x99
#define PKMN_MEGANIUM 0x9A
#define PKMN_CYNDAQUIL 0x9B
#define PKMN_QUILAVA 0x9C
#define PKMN_TYPHLOSION 0x9D
#define PKMN_TOTODILE 0x9E
#define PKMN_CROCONAW 0x9F
#define PKMN_FERALIGATR 0xA0
#define PKMN_SENTRET 0xA1
#define PKMN_FURRET 0xA2
#define PKMN_HOOTHOOT 0xA3
#define PKMN_NOCTOWL 0xA4
#define PKMN_LEDYBA 0xA5
#define PKMN_LEDIAN 0xA6
#define PKMN_SPINARAK 0xA7
#define PKMN_ARIADOS 0xA8
#define PKMN_CROBAT 0xA9
#define PKMN_CHINCHOU 0xAA
#define PKMN_LANTURN 0xAB
#define PKMN_PICHU 0xAC
#define PKMN_CLEFFA 0xAD
#define PKMN_IGGLYBUFF 0xAE
#define PKMN_TOGEPI 0xAF
#define PKMN_TOGETIC 0xB0
#define PKMN_NATU 0xB1
#define PKMN_XATU 0xB2
#define PKMN_MAREEP 0xB3
#define PKMN_FLAAFFY 0xB4
#define PKMN_AMPHAROS 0xB5
#define PKMN_BELLOSSOM 0xB6
#define PKMN_MARILL 0xB7
#define PKMN_AZUMARILL 0xB8
#define PKMN_SUDOWOODO 0xB9
#define PKMN_POLITOED 0xBA
#define PKMN_HOPPIP 0xBB
#define PKMN_SKIPLOOM 0xBC
#define PKMN_JUMPLUFF 0xBD
#define PKMN_AIPOM 0xBE
#define PKMN_SUNKERN 0xBF
#define PKMN_SUNFLORA 0xC0
#define PKMN_YANMA 0xC1
#define PKMN_WOOPER 0xC2
#define PKMN_QUAGSIRE 0xC3
#define PKMN_ESPEON 0xC4
#define PKMN_UMBREON 0xC5
#define PKMN_MURKROW 0xC6
#define PKMN_SLOWKING 0xC7
#define PKMN_MISDREAVUS 0xC8
#define PKMN_UNOWN 0xC9
#define PKMN_WOBBUFFET 0xCA
#define PKMN_GIRAFARIG 0xCB
#define PKMN_PINECO 0xCC
#define PKMN_FORRETRESS 0xCD
#define PKMN_DUNSPARCE 0xCE
#define PKMN_GLIGAR 0xCF
#define PKMN_STEELIX 0xD0
#define PKMN_SNUBBULL 0xD1
#define PKMN_GRANBULL 0xD2
#define PKMN_QWILFISH 0xD3
#define PKMN_SCIZOR 0xD4
#define PKMN_SHUCKLE 0xD5
#define PKMN_HERACROSS 0xD6
#define PKMN_SNEASEL 0xD7
#define PKMN_TEDDIURSA 0xD8
#define PKMN_URSARING 0xD9
#define PKMN_SLUGMA 0xDA
#define PKMN_MAGCARGO 0xDB
#define PKMN_SWINUB 0xDC
#define PKMN_PILOSWINE 0xDD
#define PKMN_CORSOLA 0xDE
#define PKMN_REMORAID 0xDF
#define PKMN_OCTILLERY 0xE0
#define PKMN_DELIBIRD 0xE1
#define PKMN_MANTINE 0xE2
#define PKMN_SKARMORY 0xE3
#define PKMN_HOUNDOUR 0xE4
#define PKMN_HOUNDOOM 0xE5
#define PKMN_KINGDRA 0xE6
#define PKMN_PHANPY 0xE7
#define PKMN_DONPHAN 0xE8
#define PKMN_PORYGON2 0xE9
#define PKMN_STANTLER 0xEA
#define PKMN_SMEARGLE 0xEB
#define PKMN_TYROGUE 0xEC
#define PKMN_HITMONTOP 0xED
#define PKMN_SMOOCHUM 0xEE
#define PKMN_ELEKID 0xEF
#define PKMN_MAGBY 0xF0
#define PKMN_MILTANK 0xF1
#define PKMN_BLISSEY 0xF2
#define PKMN_RAIKOU 0xF3
#define PKMN_ENTEI 0xF4
#define PKMN_SUICUNE 0xF5
#define PKMN_LARVITAR 0xF6
#define PKMN_PUPITAR 0xF7
#define PKMN_TYRANITAR 0xF8
#define PKMN_LUGIA 0xF9
#define PKMN_HOOH 0xFA
#define PKMN_CELEBI 0xFB

























#define PKMN_TREECKO 0x115
#define PKMN_GROVYLE 0x116
#define PKMN_SCEPTILE 0x117
#define PKMN_TORCHIC 0x118
#define PKMN_COMBUSKEN 0x119
#define PKMN_BLAZIKEN 0x11A
#define PKMN_MUDKIP 0x11B
#define PKMN_MARSHTOMP 0x11C
#define PKMN_SWAMPERT 0x11D
#define PKMN_POOCHYENA 0x11E
#define PKMN_MIGHTYENA 0x11F
#define PKMN_ZIGZAGOON 0x120
#define PKMN_LINOONE 0x121
#define PKMN_WURMPLE 0x122
#define PKMN_SILCOON 0x123
#define PKMN_BEAUTIFLY 0x124
#define PKMN_CASCOON 0x125
#define PKMN_DUSTOX 0x126
#define PKMN_LOTAD 0x127
#define PKMN_LOMBRE 0x128
#define PKMN_LUDICOLO 0x129
#define PKMN_SEEDOT 0x12A
#define PKMN_NUZLEAF 0x12B
#define PKMN_SHIFTRY 0x12C
#define PKMN_NINCADA 0x12D
#define PKMN_NINJASK 0x12E
#define PKMN_SHEDINJA 0x12F
#define PKMN_TAILLOW 0x130
#define PKMN_SWELLOW 0x131
#define PKMN_SHROOMISH 0x132
#define PKMN_BRELOOM 0x133
#define PKMN_SPINDA 0x134
#define PKMN_WINGULL 0x135
#define PKMN_PELIPPER 0x136
#define PKMN_SURSKIT 0x137
#define PKMN_MASQUERAIN 0x138
#define PKMN_WAILMER 0x139
#define PKMN_WAILORD 0x13A
#define PKMN_SKITTY 0x13B
#define PKMN_DELCATTY 0x13C
#define PKMN_KECLEON 0x13D
#define PKMN_BALTOY 0x13E
#define PKMN_CLAYDOL 0x13F
#define PKMN_NOSEPASS 0x140
#define PKMN_TORKOAL 0x141
#define PKMN_SABLEYE 0x142
#define PKMN_BARBOACH 0x143
#define PKMN_WHISCASH 0x144
#define PKMN_LUVDISC 0x145
#define PKMN_CORPHISH 0x146
#define PKMN_CRAWDAUNT 0x147
#define PKMN_FEEBAS 0x148
#define PKMN_MILOTIC 0x149
#define PKMN_CARVANHA 0x14A
#define PKMN_SHARPEDO 0x14B
#define PKMN_TRAPINCH 0x14C
#define PKMN_VIBRAVA 0x14D
#define PKMN_FLYGON 0x14E
#define PKMN_MAKUHITA 0x14F
#define PKMN_HARIYAMA 0x150
#define PKMN_ELECTRIKE 0x151
#define PKMN_MANECTRIC 0x152
#define PKMN_NUMEL 0x153
#define PKMN_CAMERUPT 0x154
#define PKMN_SPHEAL 0x155
#define PKMN_SEALEO 0x156
#define PKMN_WALREIN 0x157
#define PKMN_CACNEA 0x158
#define PKMN_CACTURNE 0x159
#define PKMN_SNORUNT 0x15A
#define PKMN_GLALIE 0x15B
#define PKMN_LUNATONE 0x15C
#define PKMN_SOLROCK 0x15D
#define PKMN_AZURILL 0x15E
#define PKMN_SPOINK 0x15F
#define PKMN_GRUMPIG 0x160
#define PKMN_PLUSLE 0x161
#define PKMN_MINUN 0x162
#define PKMN_MAWILE 0x163
#define PKMN_MEDITITE 0x164
#define PKMN_MEDICHAM 0x165
#define PKMN_SWABLU 0x166
#define PKMN_ALTARIA 0x167
#define PKMN_WYNAUT 0x168
#define PKMN_DUSKULL 0x169
#define PKMN_DUSCLOPS 0x16A
#define PKMN_ROSELIA 0x16B
#define PKMN_SLAKOTH 0x16C
#define PKMN_VIGOROTH 0x16D
#define PKMN_SLAKING 0x16E
#define PKMN_GULPIN 0x16F
#define PKMN_SWALOT 0x170
#define PKMN_TROPIUS 0x171
#define PKMN_WHISMUR 0x172
#define PKMN_LOUDRED 0x173
#define PKMN_EXPLOUD 0x174
#define PKMN_CLAMPERL 0x175
#define PKMN_HUNTAIL 0x176
#define PKMN_GOREBYSS 0x177
#define PKMN_ABSOL 0x178
#define PKMN_SHUPPET 0x179
#define PKMN_BANETTE 0x17A
#define PKMN_SEVIPER 0x17B
#define PKMN_ZANGOOSE 0x17C
#define PKMN_RELICANTH 0x17D
#define PKMN_ARON 0x17E
#define PKMN_LAIRON 0x17F
#define PKMN_AGGRON 0x180
#define PKMN_CASTFORM 0x181
#define PKMN_VOLBEAT 0x182
#define PKMN_ILLUMISE 0x183
#define PKMN_LILEEP 0x184
#define PKMN_CRADILY 0x185
#define PKMN_ANORITH 0x186
#define PKMN_ARMALDO 0x187
#define PKMN_RALTS 0x188
#define PKMN_KIRLIA 0x189
#define PKMN_GARDEVOIR 0x18A
#define PKMN_BAGON 0x18B
#define PKMN_SHELGON 0x18C
#define PKMN_SALAMENCE 0x18D
#define PKMN_BELDUM 0x18E
#define PKMN_METANG 0x18F
#define PKMN_METAGROSS 0x190
#define PKMN_REGIROCK 0x191
#define PKMN_REGICE 0x192
#define PKMN_REGISTEEL 0x193
#define PKMN_KYOGRE 0x194
#define PKMN_GROUDON 0x195
#define PKMN_RAYQUAZA 0x196
#define PKMN_LATIAS 0x197
#define PKMN_LATIOS 0x198
#define PKMN_JIRACHI 0x199
#define PKMN_DEOXYS 0x19A
#define PKMN_CHIMECHO 0x19B

#define ITEM_NONE 0x0
#define ITEM_MASTERBALL 0x1
#define ITEM_ULTRABALL 0x2
#define ITEM_GREATBALL 0x3
#define ITEM_POKEBALL 0x4
#define ITEM_SAFARIBALL 0x5
#define ITEM_NETBALL 0x6
#define ITEM_DIVEBALL 0x7
#define ITEM_NESTBALL 0x8
#define ITEM_REPEATBALL 0x9
#define ITEM_TIMERBALL 0xA
#define ITEM_LUXURYBALL 0xB
#define ITEM_PREMIERBALL 0xC
#define ITEM_POTION 0xD
#define ITEM_ANTIDOTE 0xE
#define ITEM_BURNHEAL 0xF
#define ITEM_ICEHEAL 0x10
#define ITEM_AWAKENING 0x11
#define ITEM_PARLYZHEAL 0x12
#define ITEM_FULLRESTORE 0x13
#define ITEM_MAXPOTION 0x14
#define ITEM_HYPERPOTION 0x15
#define ITEM_SUPERPOTION 0x16
#define ITEM_FULLHEAL 0x17
#define ITEM_REVIVE 0x18
#define ITEM_MAXREVIVE 0x19
#define ITEM_FRESHWATER 0x1A
#define ITEM_SODAPOP 0x1B
#define ITEM_LEMONADE 0x1C
#define ITEM_MOOMOOMILK 0x1D
#define ITEM_ENERGYPOWDER 0x1E
#define ITEM_ENERGYROOT 0x1F
#define ITEM_HEALPOWDER 0x20
#define ITEM_REVIVALHERB 0x21
#define ITEM_ETHER 0x22
#define ITEM_MAXETHER 0x23
#define ITEM_ELIXIR 0x24
#define ITEM_MAXELIXIR 0x25
#define ITEM_LAVACOOKIE 0x26
#define ITEM_BLUEFLUTE 0x27
#define ITEM_YELLOWFLUTE 0x28
#define ITEM_REDFLUTE 0x29
#define ITEM_BLACKFLUTE 0x2A
#define ITEM_WHITEFLUTE 0x2B
#define ITEM_BERRYJUICE 0x2C
#define ITEM_SACREDASH 0x2D
#define ITEM_SHOALSALT 0x2E
#define ITEM_SHOALSHELL 0x2F
#define ITEM_REDSHARD 0x30
#define ITEM_BLUESHARD 0x31
#define ITEM_YELLOWSHARD 0x32
#define ITEM_GREENSHARD 0x33











#define ITEM_HPUP 0x3F
#define ITEM_PROTEIN 0x40
#define ITEM_IRON 0x41
#define ITEM_CARBOS 0x42
#define ITEM_CALCIUM 0x43
#define ITEM_RARECANDY 0x44
#define ITEM_PPUP 0x45
#define ITEM_ZINC 0x46
#define ITEM_PPMAX 0x47

#define ITEM_GUARDSPEC 0x49
#define ITEM_DIREHIT 0x4A
#define ITEM_XATTACK 0x4B
#define ITEM_XDEFEND 0x4C
#define ITEM_XSPEED 0x4D
#define ITEM_XACCURACY 0x4E
#define ITEM_XSPECIAL 0x4F
#define ITEM_POKEDOLL 0x50
#define ITEM_FLUFFYTAIL 0x51

#define ITEM_SUPERREPEL 0x53
#define ITEM_MAXREPEL 0x54
#define ITEM_ESCAPEROPE 0x55
#define ITEM_REPEL 0x56






#define ITEM_SUNSTONE 0x5D
#define ITEM_MOONSTONE 0x5E
#define ITEM_FIRESTONE 0x5F
#define ITEM_THUNDERSTONE 0x60
#define ITEM_WATERSTONE 0x61
#define ITEM_LEAFSTONE 0x62




#define ITEM_TINYMUSHROOM 0x67
#define ITEM_BIGMUSHROOM 0x68

#define ITEM_PEARL 0x6A
#define ITEM_BIGPEARL 0x6B
#define ITEM_STARDUST 0x6C
#define ITEM_STARPIECE 0x6D
#define ITEM_NUGGET 0x6E
#define ITEM_HEARTSCALE 0x6F









#define ITEM_ORANGEMAIL 0x79
#define ITEM_HARBORMAIL 0x7A
#define ITEM_GLITTERMAIL 0x7B
#define ITEM_MECHMAIL 0x7C
#define ITEM_WOODMAIL 0x7D
#define ITEM_WAVEMAIL 0x7E
#define ITEM_BEADMAIL 0x7F
#define ITEM_SHADOWMAIL 0x80
#define ITEM_TROPICMAIL 0x81
#define ITEM_DREAMMAIL 0x82
#define ITEM_FABMAIL 0x83
#define ITEM_RETROMAIL 0x84
#define ITEM_CHERIBERRY 0x85
#define ITEM_CHESTOBERRY 0x86
#define ITEM_PECHABERRY 0x87
#define ITEM_RAWSTBERRY 0x88
#define ITEM_ASPEARBERRY 0x89
#define ITEM_LEPPABERRY 0x8A
#define ITEM_ORANBERRY 0x8B
#define ITEM_PERSIMBERRY 0x8C
#define ITEM_LUMBERRY 0x8D
#define ITEM_SITRUSBERRY 0x8E
#define ITEM_FIGYBERRY 0x8F
#define ITEM_WIKIBERRY 0x90
#define ITEM_MAGOBERRY 0x91
#define ITEM_AGUAVBERRY 0x92
#define ITEM_IAPAPABERRY 0x93
#define ITEM_RAZZBERRY 0x94
#define ITEM_BLUKBERRY 0x95
#define ITEM_NANABBERRY 0x96
#define ITEM_WEPEARBERRY 0x97
#define ITEM_PINAPBERRY 0x98
#define ITEM_POMEGBERRY 0x99
#define ITEM_KELPSYBERRY 0x9A
#define ITEM_QUALOTBERRY 0x9B
#define ITEM_HONDEWBERRY 0x9C
#define ITEM_GREPABERRY 0x9D
#define ITEM_TAMATOBERRY 0x9E
#define ITEM_CORNNBERRY 0x9F
#define ITEM_MAGOSTBERRY 0xA0
#define ITEM_RABUTABERRY 0xA1
#define ITEM_NOMELBERRY 0xA2
#define ITEM_SPELONBERRY 0xA3
#define ITEM_PAMTREBERRY 0xA4
#define ITEM_WATMELBERRY 0xA5
#define ITEM_DURINBERRY 0xA6
#define ITEM_BELUEBERRY 0xA7
#define ITEM_LIECHIBERRY 0xA8
#define ITEM_GANLONBERRY 0xA9
#define ITEM_SALACBERRY 0xAA
#define ITEM_PETAYABERRY 0xAB
#define ITEM_APICOTBERRY 0xAC
#define ITEM_LANSATBERRY 0xAD
#define ITEM_STARFBERRY 0xAE
#define ITEM_ENIGMABERRY 0xAF



#define ITEM_BRIGHTPOWDER 0xB3
#define ITEM_WHITEHERB 0xB4
#define ITEM_MACHOBRACE 0xB5
#define ITEM_EXPSHARE 0xB6
#define ITEM_QUICKCLAW 0xB7
#define ITEM_SOOTHEBELL 0xB8
#define ITEM_MENTALHERB 0xB9
#define ITEM_CHOICEBAND 0xBA
#define ITEM_KINGSROCK 0xBB
#define ITEM_SILVERPOWDER 0xBC
#define ITEM_AMULETCOIN 0xBD
#define ITEM_CLEANSETAG 0xBE
#define ITEM_SOULDEW 0xBF
#define ITEM_DEEPSEATOOTH 0xC0
#define ITEM_DEEPSEASCALE 0xC1
#define ITEM_SMOKEBALL 0xC2
#define ITEM_EVERSTONE 0xC3
#define ITEM_FOCUSBAND 0xC4
#define ITEM_LUCKYEGG 0xC5
#define ITEM_SCOPELENS 0xC6
#define ITEM_METALCOAT 0xC7
#define ITEM_LEFTOVERS 0xC8
#define ITEM_DRAGONSCALE 0xC9
#define ITEM_LIGHTBALL 0xCA
#define ITEM_SOFTSAND 0xCB
#define ITEM_HARDSTONE 0xCC
#define ITEM_MIRACLESEED 0xCD
#define ITEM_BLACKGLASSES 0xCE
#define ITEM_BLACKBELT 0xCF
#define ITEM_MAGNET 0xD0
#define ITEM_MYSTICWATER 0xD1
#define ITEM_SHARPBEAK 0xD2
#define ITEM_POISONBARB 0xD3
#define ITEM_NEVERMELTICE 0xD4
#define ITEM_SPELLTAG 0xD5
#define ITEM_TWISTEDSPOON 0xD6
#define ITEM_CHARCOAL 0xD7
#define ITEM_DRAGONFANG 0xD8
#define ITEM_SILKSCARF 0xD9
#define ITEM_UPGRADE 0xDA
#define ITEM_SHELLBELL 0xDB
#define ITEM_SEAINCENSE 0xDC
#define ITEM_LAXINCENSE 0xDD
#define ITEM_LUCKYPUNCH 0xDE
#define ITEM_METALPOWDER 0xDF
#define ITEM_THICKCLUB 0xE0
#define ITEM_STICK 0xE1




























#define ITEM_REDSCARF 0xFE
#define ITEM_BLUESCARF 0xFF
#define ITEM_PINKSCARF 0x100
#define ITEM_GREENSCARF 0x101
#define ITEM_YELLOWSCARF 0x102
#define ITEM_MACHBIKE 0x103
#define ITEM_COINCASE 0x104
#define ITEM_ITEMFINDER 0x105
#define ITEM_OLDROD 0x106
#define ITEM_GOODROD 0x107
#define ITEM_SUPERROD 0x108
#define ITEM_SSTICKET 0x109
#define ITEM_CONTESTPASS 0x10A

#define ITEM_WAILMERPAIL 0x10C
#define ITEM_DEVONGOODS 0x10D
#define ITEM_SOOTSACK 0x10E
#define ITEM_BASEMENTKEY 0x10F
#define ITEM_ACROBIKE 0x110
#define ITEM_POKEBLOCKCASE 0x111
#define ITEM_LETTER 0x112
#define ITEM_EONTICKET 0x113
#define ITEM_REDORB 0x114
#define ITEM_BLUEORB 0x115
#define ITEM_SCANNER 0x116
#define ITEM_GOGOGGLES 0x117
#define ITEM_METEORITE 0x118
#define ITEM_RM1KEY 0x119
#define ITEM_RM2KEY 0x11A
#define ITEM_RM4KEY 0x11B
#define ITEM_RM6KEY 0x11C
#define ITEM_STORAGEKEY 0x11D
#define ITEM_ROOTFOSSIL 0x11E
#define ITEM_CLAWFOSSIL 0x11F
#define ITEM_DEVONSCOPE 0x120
#define ITEM_TM01 0x121
#define ITEM_TM02 0x122
#define ITEM_TM03 0x123
#define ITEM_TM04 0x124
#define ITEM_TM05 0x125
#define ITEM_TM06 0x126
#define ITEM_TM07 0x127
#define ITEM_TM08 0x128
#define ITEM_TM09 0x129
#define ITEM_TM10 0x12A
#define ITEM_TM11 0x12B
#define ITEM_TM12 0x12C
#define ITEM_TM13 0x12D
#define ITEM_TM14 0x12E
#define ITEM_TM15 0x12F
#define ITEM_TM16 0x130
#define ITEM_TM17 0x131
#define ITEM_TM18 0x132
#define ITEM_TM19 0x133
#define ITEM_TM20 0x134
#define ITEM_TM21 0x135
#define ITEM_TM22 0x136
#define ITEM_TM23 0x137
#define ITEM_TM24 0x138
#define ITEM_TM25 0x139
#define ITEM_TM26 0x13A
#define ITEM_TM27 0x13B
#define ITEM_TM28 0x13C
#define ITEM_TM29 0x13D
#define ITEM_TM30 0x13E
#define ITEM_TM31 0x13F
#define ITEM_TM32 0x140
#define ITEM_TM33 0x141
#define ITEM_TM34 0x142
#define ITEM_TM35 0x143
#define ITEM_TM36 0x144
#define ITEM_TM37 0x145
#define ITEM_TM38 0x146
#define ITEM_TM39 0x147
#define ITEM_TM40 0x148
#define ITEM_TM41 0x149
#define ITEM_TM42 0x14A
#define ITEM_TM43 0x14B
#define ITEM_TM44 0x14C
#define ITEM_TM45 0x14D
#define ITEM_TM46 0x14E
#define ITEM_TM47 0x14F
#define ITEM_TM48 0x150
#define ITEM_TM49 0x151
#define ITEM_TM50 0x152
#define ITEM_HM01 0x153
#define ITEM_HM02 0x154
#define ITEM_HM03 0x155
#define ITEM_HM04 0x156
#define ITEM_HM05 0x157
#define ITEM_HM06 0x158
#define ITEM_HM07 0x159
#define ITEM_HM08 0x15A


#define ITEM_OAKSPARCEL 0x15D
#define ITEM_POKEFLUTE 0x15E
#define ITEM_SECRETKEY 0x15F
#define ITEM_BIKEVOUCHER 0x160
#define ITEM_GOLDTEETH 0x161
#define ITEM_OLDAMBER 0x162
#define ITEM_CARDKEY 0x163
#define ITEM_LIFTKEY 0x164
#define ITEM_HELIXFOSSIL 0x165
#define ITEM_DOMEFOSSIL 0x166
#define ITEM_SILPHSCOPE 0x167
#define ITEM_BICYCLE 0x168
#define ITEM_TOWNMAP 0x169
#define ITEM_VSSEEKER 0x16A
#define ITEM_FAMECHECKER 0x16B
#define ITEM_TMCASE 0x16C
#define ITEM_BERRYPOUCH 0x16D
#define ITEM_TEACHYTV 0x16E
#define ITEM_TRIPASS 0x16F
#define ITEM_RAINBOWPASS 0x170
#define ITEM_TEA 0x171
#define ITEM_MYSTICTICKET 0x172
#define ITEM_AURORATICKET 0x173
#define ITEM_POWDERJAR 0x174
#define ITEM_RUBY 0x175
#define ITEM_SAPPHIRE 0x176
#define ITEM_MAGMAEMBLEM 0x177
#define ITEM_OLDSEAMAP 0x178

#define DEC_SMALLDESK 0x1
#define DEC_POKEMONDESK 0x2
#define DEC_HEAVYDESK 0x3
#define DEC_RAGGEDDESK 0x4
#define DEC_COMFORTDESK 0x5
#define DEC_PRETTYDESK 0x6
#define DEC_BRICKDESK 0x7
#define DEC_CAMPDESK 0x8
#define DEC_HARDDESK 0x9
#define DEC_SMALLCHAIR 0xA
#define DEC_POKEMONCHAIR 0xB
#define DEC_HEAVYCHAIR 0xC
#define DEC_PRETTYCHAIR 0xD
#define DEC_COMFORTCHAIR 0xE
#define DEC_RAGGEDCHAIR 0xF
#define DEC_BRICKCHAIR 0x10
#define DEC_CAMPCHAIR 0x11
#define DEC_HARDCHAIR 0x12
#define DEC_REDPLANT 0x13
#define DEC_TROPICALPLANT 0x14
#define DEC_PRETTYFLOWERS 0x15
#define DEC_COLORFULPLANT 0x16
#define DEC_BIGPLANT 0x17
#define DEC_GORGEOUSPLANT 0x18
#define DEC_REDBRICK 0x19
#define DEC_YELLOWBRICK 0x1A
#define DEC_REDBALLOON 0x1B
#define DEC_BLUEBALLOON 0x1C
#define DEC_YELLOWBALLOON 0x1D
#define DEC_REDTENT 0x1F
#define DEC_BLUETENT 0x20
#define DEC_SOLIDBOARD 0x21
#define DEC_SLIDE 0x22
#define DEC_FENCELENGTH 0x23
#define DEC_FENCEWIDTH 0x24
#define DEC_TIRE 0x25
#define DEC_STAND 0x26
#define DEC_MUDBALL 0x27
#define DEC_BREAKABLEDOOR 0x28
#define DEC_SANDORNAMENT 0x29
#define DEC_SILVERSHIELD 0x2A
#define DEC_GOLDSHIELD 0x2B
#define DEC_GLASSORNAMENT 0x2C
#define DEC_ROUNDTV 0x2E
#define DEC_CUTETV 0x2F
#define DEC_GLITTERMAT 0x30
#define DEC_JUMPMAT 0x31
#define DEC_SPINMAT 0x32
#define DEC_CLOWNOTEMAT 0x33
#define DEC_DNOTEMAT 0x34
#define DEC_ENOTEMAT 0x35
#define DEC_FNOTEMAT 0x36
#define DEC_GNOTEMAT 0x37
#define DEC_ANOTEMAT 0x38
#define DEC_BNOTEMAT 0x39
#define DEC_CHIGHNOTEMAT 0x3A
#define DEC_SURFMAT 0x3B
#define DEC_THUNDERMAT 0x3C
#define DEC_FIREBLASTMAT 0x3D
#define DEC_POWDERSNOWMAT 0x3E
#define DEC_ATTRACTMAT 0x3F
#define DEC_FISSUREMAT 0x40
#define DEC_SPIKESMAT 0x41
#define DEC_BALLPOSTER 0x42
#define DEC_GREENPOSTER 0x43
#define DEC_REDPOSTER 0x44
#define DEC_BLUEPOSTER 0x45
#define DEC_CUTEPOSTER 0x46
#define DEC_PIKAPOSTER 0x47
#define DEC_LONGPOSTER 0x48
#define DEC_SEAPOSTER 0x49
#define DEC_SKYPOSTER 0x4A
#define DEC_KISSPOSTER 0x4B
#define DEC_PICHUDOLL 0x4C
#define DEC_PIKACHUDOLL 0x4D
#define DEC_MARILLDOLL 0x4E
#define DEC_TOGEPIDOLL 0x4F
#define DEC_CYNDAQUILDOLL 0x50
#define DEC_CHIKORITADOLL 0x51
#define DEC_TOTODILEDOLL 0x52
#define DEC_JIGGLYPUFFDOLL 0x53
#define DEC_MEOWTHDOLL 0x54
#define DEC_CLEFAIRYDOLL 0x55
#define DEC_DITTODOLL 0x56
#define DEC_SMOOCHUMDOLL 0x57
#define DEC_TREECKODOLL 0x58
#define DEC_TORCHICDOLL 0x59
#define DEC_MUDKIPDOLL 0x5A
#define DEC_DUSKULLDOLL 0x5B
#define DEC_WYNAUTDOLL 0x5C
#define DEC_BALTOYDOLL 0x5D
#define DEC_KECLEONDOLL 0x5E
#define DEC_AZURILLDOLL 0x5F
#define DEC_SKITTYDOLL 0x60
#define DEC_SWABLUDOLL 0x61
#define DEC_GULPINDOLL 0x62
#define DEC_LOTADDOLL 0x63
#define DEC_SEEDOTDOLL 0x64
#define DEC_PIKACUSHION 0x65
#define DEC_ROUNDCUSHION 0x66
#define DEC_KISSCUSHION 0x67
#define DEC_ZIGZAGCUSHION 0x68
#define DEC_SPINCUSHION 0x69
#define DEC_DIAMONDCUSHION 0x6A
#define DEC_BALLCUSHION 0x6B
#define DEC_GRASSCUSHION 0x6C
#define DEC_FIRECUSHION 0x6D
#define DEC_WATERCUSHION 0x6E
#define DEC_SNORLAXDOL 0x6F
#define DEC_RHYDONDOLL 0x70
#define DEC_LAPRASDOLL 0x71
#define DEC_VENUSAURDOLL 0x72
#define DEC_CHARIZARDDOLL 0x73
#define DEC_BLASTOISEDOLL 0x74
#define DEC_WAILMERDOLL 0x75
#define DEC_REGIROCKDOLL 0x76
#define DEC_REGICEDOLL 0x77
#define DEC_REGISTEELDOLL 0x78

¿Que son las Flags y las variables?

Muy fácil, empecemos por Flags, son basicamente interruptores, es decir, que se "apagan o se prenden" o más bien se activan y desactivan.
´Las flag tienen una familia or asi decirlo de comandos, está el Checkflag, que se utiliza para comprobar una, el If 0x1/0x0 goto @?, el cual sirve para que nos mande al puntero (@?), el Setflag que sirve para ativar o desactivar una de estas, bastante simple, la mayoria las usa para cosas como los gives, pero tambien sirve para que el texto, accion o lo que sea varie, es decir, que el resultado no siempre sea el mismo, aqui otro ejemplo de giveegg:
'---------------
#org 0x810835
checkflag 0x211
if 0x1 goto 0x8810868
lock
faceplayer
msgbox 0x881089F MSG_NORMAL '"¡Hola, soy ROSA!\p¡Yo cuido de est..."
giveegg 0x183
fanfare 0x13E
textcolor 0x2
msgbox 0x8810A29 MSG_NORMAL '"¡[player] obvtuvo un HUEVO\nMISTER..."
textcolor 0x1
msgbox 0x8810A4C MSG_NORMAL '"ROSA: Pues bien.\pQuizá me taches ..."
setflag 0x211
release
end

'---------------
#org 0x810868
lock
faceplayer
msgbox 0x8810875 MSG_NORMAL '"ROSA: ¿Que tal va el HUEVO que te\..."
release
end


'---------
' Strings
'---------
#org 0x81089F
= ¡Hola, soy ROSA!\p¡Yo cuido de estos POKéMON!.\pHe encontrado un HUEVO POKéMON\ncerca de PUEBLO LAVANDA...\pUna prima me dijo que allí, los\nROCKET hacían cacería de los\lPOKéMON si razón alguna...\pMe apena mucho eso...\pPues... a lo que iba.\nPor las POKé BALLS que tienes,\lpuedo deducir que eres\lENTRENADOR...\p¡He oído que los HUEVOS eclosionan\nmás rápido en oompañía de uno!.\pPor eso, te lo doy.

#org 0x810A29
= ¡[player] obvtuvo un HUEVO\nMISTERIOSO!

#org 0x810A4C
= ROSA: Pues bien.\pQuizá me taches de loca pero...\p¡Por tu mirada sé que el POKéMON\nde aquel huevo crecerá muy bien\ljunto a tí!.

#org 0x810875
= ROSA: ¿Que tal va el HUEVO que te\ndí?.
Variables
Gracias a Moon And Sun. Las variables son como una alcancía, o como un banco, en resumen, puedes agregarle o restarle un valor, este generalmente es predeterminado en 0, aunque obviamente podeis agregar condiciones, ¿Como y que son las condiciones? Muy fácil, las condiciones son requisitos, por ejemplo, que un script no se ejecute hasta despues de tener un objeto, simplemente el valor 0 de la variable (Que es el preeterminado) la cambias a cualquiera, no sé, 1, 2 cualquiera desde el A-Map.
Cuando tengas ese valor, vas al script de lo neesario (Por ejemplo, el objeto) y agregas Setvar 0xVar 0xValor (1, 2, etc) Y eso sería.


Cabe destacar que el script SetFlag/Var se puede usar cuando quieras, es decir, si quiero un script donde haya un paso bloqueado, con la variable 40FF, y yo quiero que luego de la Liga ese paso sea habilitado, solo debo agregar el SetVar 0x40FF 0x1 en algun script final, si no me entendeis pues solo me avisais por MP o perfil ;)

Script Varios
Con esto me refiero a aquellos scripts que adornan nuestro script y lo enriquecen en cuanto a belleza jaja
Por ejemplo, si queremos hacer una pausa para que el script no "corra" or ai decirlo y "camine" para esto ponemos el comando Pause 0x|Segundos| se supone que los segundos de la pausa debeis ponerlo en Hexadecimal, por ejemplo, si quiero que espere 1 segundo, pongo 0x20

Playsong: Se utiliza para reproducir una canción/song, estas se encuentran en A-Map. Lo que la diferencia de Fadesong es que esta va de golpe, por ejemplo, si queremos hacer un silencio suspensivo (Como el que se presencia al hablarle a Rojo (GSC) debemos poner el PlaySong 0x0

Fadesong: Éste comando es como Playsong, pero éste tiene el efecto de transición, asi como cuando entramos a una ciudad, pues la canción de la ruta se va y viene la de la ciudad. Las canciones en a-Map :3

ApplyMovement: Éste maravilloso comando sirve para hacer que un mini haga un movimiento, saltar, caminar, etc, tambien los signos de interrogacion.
El comando se utiliza igual que los msgboxs, deben estar en eta estructura:

Applymovement 0x|persona| @mov1
Como es normal, debeis poner los movimintos al final, donde están los mensajes, debeis hacer lo mismo que si fuera msgbox...Y usar el puntero del movimiento. La herramienta move it! es la que sirve, las otras, al menos a mi no me han convencido del todo, asi que os la paso
Move it! - Télécharger - 4shared - Alexander Taliercio
Cuando lo abrais, ya sabran que no tiene mucha ciencia ;)
Cuando completeis sus movimientos, debeis finalizarlo metiendose en Especiales y darle a Finalizar Movimientos, luego los copias y los pegas al final, donde en vez de ir un msgbox deberia ir un applymovement.

Luego de ese applymovement debeis colocar el comando "Waitmovement 0x|persona|, pronto os enseñaré unos truquitos jejeje

Fanfare: Ya lo hemos visto, reproduce un sonido por algunos segundos determinados, debe usarse antes de waitfanfare

Setdooropened/Setdoorclosed: Setdooropened sirve para abrir una uerta que se encuentre en el mapa. Sirve para que los applymovement y warps (Pronto) estén más currados, porque si no el mini pasaría por encima de la puerta y se ve muy feo, la estructura es esta
Setdooropened 0xX 0xY (X e Y son las coordinadas, debes posicionarte en la puerta que quieres que se abra y anotar/memorizar las coordinadas, el XSE la toma automaticamente y el A-Map hace el resto ;) )
Setdoorclosed hace lo mismo, pero a diferencia, la puerta se cierra.

Doorchange: (Agradeco a @ReoNeky, ya que antes no sabía de la existencia de este comando :D )

Este comando se utiliza seguido de Setdoorclosed/opened, sirve para hacer que la animación se ejecute corretamente, sin bugs ni nada, y es como un waitmsg o waitmovement, pero para las puertas.
Sugiero que luego de este comando o antes del Setdooropened/closed pongas el Sound 0x9(Sound reproduce un sonido)

Cry: Sirve para reproducir el grito de un Pokémon (Muuuy pocos no lo sabrán, pero es el sonido que emiten en una batalla)
La estructura:
Cry 0x|Pokémon| 0x|Efecto|
Quizá pronto actualice con éstos efectos, aunque tendría que probarlos todos u.u

Showpokepic: Este comando muestra una imagen de un Pokémon, en cuestión su sprite, su estructura es esta:
Showpokepic 0x|Especie del Pokémon| 0xX 0xY (Coordinadas de la pantalla) Segun he visto, en Fr el grito del Pokémon suena automaticamente, asi que cuidado si intentais usar mugshots.
Cuando querais que la fotografia desaparezca, usais Hidepokepic.

Trainerbttle y WildBattle
empecemos con trainerbattle, como su nombre indica, este comando ejecuta una batalla con un entrenador, no es muy dificil, debeis usar A-Trainer o PET, pero sólo para ver la ID de los trainers (Segun veo, A-Trainer la mayoria tiene virus, y PET tiene bugs :X)
Pero da igual, la estructura es esta:
Trainerbattle 0x|Tipo de batalla| 0x|trainer| 0x0 @texto de desafio @texto de derrota
Si mal no recuerdo, los tipos de batalla son dos, 0x0, el cual no deja qe el script continue (Ya que esto se utiliza para los trainers de rutas) y el 0x3, el cual si permite que siga el script (Batallas especiales). El resto es cosa de nuestras amigas las flags ;)

En Wildbattle ejecuta una batalla con un Pokémon Salvaje, la estructura es esta:
Wildbattle 0x\especie del pokemon\ 0x\nivel\ 0x|item|
Como ya sabeis, los pokemon y los items etán arriba ;) Y sigue siendo trabajo de las flags el resto.

Scripts de Gatillo
¿Que es un script de gatillo?, Es un script que se ejecuta al pisarlo, es también como un botó que al pisarlo ocurre algo, en este caso un script, ¿Como hacerlo? Muy facil.
Primero que nada , tienes que crear un script obviamente en A-Map, abajo donde dice "Organizador de Eventos" le agregas un Script más, luego lo situas donde quieres que ocurra dicho script, luego de eso, clickas el evento del script y te fijas que tenga el "Deconocido" en 0003, también debes agregar una variable en Var Number, una desde la 4000 hasta la 4FFF (Gracias a @Sceptile9 :D )
Luego, creas tu script y el offset que nos dé el multicompilador lo copiamos y pegamos en nuestro evento, recuerda que en el momento que quieras puees usar el comando Setvar 0x|La variable que usaste, para desactivarlo| y también el valor de dicha variable

Scripts de Nivel
¿Que son los scripts de nivel? Muy facil, son aquellos scripts que se ejecutan en un mapa especifico al entrar en ellos, como cuando estamos en la Liga y automaticamente nos dirige hacia el campeon.
(Gracias a @Javi4315♪ por enseñarme a hacer estos scripts :) )
Es bastante sencillo, primero, debeis crear un script de gatillo común (Con el desconocido en 0003, la variable y todo).
Luego de tenerlo completo nos vamos al cabezal del mapa y nos aseguramos de que no haya ningun script de tipo 02, ya que se podria mezclar, si es asi lo borramos. Ya borrado, creamos un script de nivel tipo 02, le asignamos el offset del script de gatillo, y OJO ahi el A-Map tiene un error, la flag es la variable del script y ponen la variable y el valor de esta.
(Gracias a @Sayer D. Hierba)
Luego de guardarlo todo, apretamos CTRL+H para ver el cabezal de forma profesional y copiamos el Map Script Offset, lo pegamos en la barra del XSE donde siempre van a parar nestros offsets (al lado de la calculadora Hex) y lo pegamos alli, cuando estemos ahi, apretamos el icono de la llave inglesa (Script de nivel) y lo descompilamos, luego de eso, veremos muchos comandos raros jaja, pero nos fijaremos en los #raw word 0x? se supone que todos estos comandos de los que terminan un parrafo, deben estar en 0, si hay uno en, no sé FFFF debes cambiarlo a 0.

Agradezco a Buzz Lejía por la información. No es necesario del todo que dicho script de gatillo se encuentre en el mapa, solo debes comprobar que salga bien y usarlo en el cabezal, ya que SIEMPRE pero SIEMPRE la Rom te identificará cualquier offset.

Algunos Trucos
Aqui pondré algunos trucos sobre el scripting, algunos os los podeis ingeniar, el scripting e como la literatura o el lenguaje el resultado lo creas tu o en este caso EL EFECTO lo creas tu. Pues bien :D

¿Como hacer para que dos minis se muevan al mismo tiempo?

Muuy fácil, para esto, necesitamos el famoso waitmovement, bien, primero como es natural, creais vuestros comandos #raws y los applymovments.
Luego simplemente vas primer applymovement (Obviamente, aquellos que se siguen o se mueven, etc, ahi donde está el waitmovement, generalmente el numero del mini que ustedes ponen es el del mini que se mueve, pero aqui es diferente, poneis el numero del mini que le seguira. Por ejemplo:
Applymovement 0xFF
Waitmovement 0x1
Applymovement 0x1
Waitmovement 0x1

Y eso vendria siendo :D

¿Como asignarle una canción o song a un Pokémon Salvaje? (Gracias infinitas a @HollowRoxas jajaj)

Muy fácil, no hay más que añadir, si queremos asignarsela a un Pokémon Legendario o un Pokémon raro debemos agregar esto:

setwildbattle 0x(Pokemon) 0x(Nivel) 0x(Item)
special 0x138
playsong 0x(Música) 0x27
Eso es todo, de momento iré actualizando los trucos que vaya encontrando
Espero que hayais aprendido con lo poco :D
Pues me he esforzado de todos modos en hacerlo, aunque es mi primer tutorial y quizá no me supe explicar en alguna parte xD
Pero cualquier cosa que no entendaís, os doy clase particular por MP o perfil ;)
Nah, pero me dicen cualquier cosa jajaja
Saluuudos!!!
 

Master Brock

Miembro insignia
Miembro insignia
Usuario de Platino
Respuesta: GBA | Scripts | Todo lo que debes saber sobre scripts

Gran tuto, voy a empezar a jugetear con scrits colega :)
gracias por subirlo
es muy bueno, nos vemos
 

Cheve

MoonLover~
Miembro de honor
Respuesta: GBA | Scripts | Todo lo que debes saber sobre scripts

Variables
Las variables son lo mismo, pero se utiliza en un Script de Gatillo.
Por lo que sé, las variables tienen dos comandos, el Compare, que tiene el mismo fin del Checkflag, sirve para saber si la Var está activada, también le sigue el If si no me equivoco....
También se usa el Setvar 0xValor, tiene el mismo fin del Setflag, el cual desactiva o activa una flag, lo unico diferente es que aqui se cambia un valor.

Cabe destacar que el script SetFlag/Var se puede usar cuando quieras, es decir, si quiero un script donde haya un paso bloqueado, con la variable 40FF, y yo quiero que luego de la Liga ese paso sea habilitado, solo debo agregar el SetVar 0x40FF 0x1

En ésto te equivocas colega... Es más complejo que eso, puedes leerte mi tutorial para entenderlo mejor. Las variable pueden contener valores son como "alcancías", y puedes sumar y restar con sus valores para hacer distintas cosas... :)
 

H.B.P

Emperador Kaktiácero
Miembro de honor
Respuesta: GBA | Scripts | Todo lo que debes saber sobre scripts

Vale, varias cosas:

  • Se te ha olvidado completar la información sobre el comando setvar, concretamente uno de los parámetros fundamentales, aquel que define el valor: setvar 0x(variable) 0x(valor a asignar).
  • Deberías haberte centrado más en explicar el resto de comandos que hacen juego de las variables, tales como el comando compare y, si quieres, explicar que existen dos comandos que suman o restan al valor actual de una variable, estos son los comandos subvar y addvar.
  • Para crear scripts de nivel NO ES NECESARIO crear un script de gatillo previo, tan sólo compilar el script a emplear y asegurarse, posteriormente, que funciona correctamente.
  • Sé que estos son conceptos básicos, pero podrías haber concretado que para que un script de nivel se ejecute, se debe de cumplir una condición clave: que la variable a comprobar tenga el valor que se solicita. Por ejemplo, si eliges 40F2 como variable y 3 como valor, para que el script de nivel se ejecute, la variable 40F2 deberá tener el valor 3 y de otra forma no se ejecutaría dicho script de nivel.

Y por lo demás pues decir que aunque eres lo que se puede decir un iniciado en la materia pues te lo has currado bastante, sigues las estructuras de forma limpia y lógica (uso correcto de waitmovement, tuviste en cuenta los efectos de lock al usar redirecciones, etc.) y explicas cosas esenciales, seguro que si tomas en cuenta lo que te dije anteriormente, conseguirás hacer que tu tutorial sea aún más completo.

Gracias por tu redacción.
 
Respuesta: GBA | Scripts | Todo lo que debes saber sobre scripts Actualizado 14/03

He actualizado ;)

Gracias por la información Moon y Gudi xD
También he agragado unos trucos, iré actualizando más trucos, @Boozz Lejía♪ Puedo ir actualizando un tuto? Gracias de antemano :D
Y gracias a todos por comentar y sus +gracias, cuando pueda veré si puedo ayudaros en algo más :D

D: si, me como muchas letras jajaj
 

H.B.P

Emperador Kaktiácero
Miembro de honor
Respuesta: GBA | Scripts | Todo lo que debes saber sobre scripts Actualizado 14/03

Yo soy de esos que dice que se puede mejorar con el tiempo, y esto aplica también a los tutoriales, así que mientras no hagas burradas lo puedes actualizar tantas veces como se te antoje. Y bueno, está bastante más completo que antes, aunque sigue sin estar del todo claro el apartado de las variables (puedo echarte una mano si lo deseas, contacta conmigo por Mensajería Privada), pero por lo demás está todo bien. Y ahora te dejaré otro pequeño consejo:

  • No es necesario poner dos waitmovement si quieres hacer que dos minis se muevan al mismo tiempo, basta con poner un único waitmovement tras los dos applymovement, y deberás especificar en el comando waitmovement el número del mini que realiza el mayor números de movimientos (si lo haces al revés, harás que uno de los minis no termine de moverse).

Buen trabajo ;)

PD: Edito, y dicho sea de paso @Alexander---, sé que el "truquito" del waitmovement lo colocaste en plan "resumen", es decir, a estas alturas el rom hacker que lee debe sobreentender cuáles son los parámetros que se colocan; pero yo te aconsejaría que, aunque fuese un ejemplo, coloques todos los parámetros de los applymovement con el fin de evitar malinterpretaciones y confusiones varias (en otras palabras, "no te comas los offsets").
 

Gold

Porrero a tiempo parcial
Miembro insignia
Respuesta: GBA | Scripts | Todo lo que debes saber sobre scripts Actualizado 14/03

Increible, muy bien explicado, a pesar que aun eres novato tu tutorial esta muy bien estructurado, veo que tienes futuro en el scripteo, sigue asi, y ves lo que siempre digo, cuando aprendes a scriptear ya no quieres parar, con tu tuto aprendi como se usan las variables (en el de Ciro no le entendi a eso) y veo que no es nada del otro mundo (ni muy diferente a como se hace en GBC)

Saludos!!! (scripter profesional under construccion)
 

Laquin

Usuario mítico
Respuesta: GBA | Scripts | Todo lo que debes saber sobre scripts Actualizado 14/03

Me encanta :D
Muy buen tutorial! Mis felicitaciones :)
No he entendido muy bien lo de:
Alexander--- dijo:
¿Como hacer para que dos minis se muevan al mismo tiempo?

Muuy fácil, para esto, necesitamos el famoso waitmovement, bien, primero como es natural, creais vuestros comandos #raws y los applymovments.
Luego simplemente vas primer applymovement (Obviamente, aquellos que se siguen o se mueven, etc, ahi donde está el waitmovement, generalmente el numero del mini que ustedes ponen es el del mini que se mueve, pero aqui es diferente, poneis el numero del mini que le seguira. Por ejemplo:(yo digo, ¿Y dónde acaba la paréntesis? Aún eso no entiendo xD)
Applymovement 0xFF
Waitmovement 0x1
Applymovement 0x1
Waitmovement 0x1
Y eso vendria siendo :D
Pero bueno, sigue así!
Salu2
 

Master Brock

Miembro insignia
Miembro insignia
Usuario de Platino
Respuesta: GBA | Scripts | Todo lo que debes saber sobre scripts Actualizado 14/03

Yo lo dije en su momento y lo sigo diciendo, este chaval llegara lejos con los scripts,

el tuto esta mejor explicado ahora, con las recoemndaciones y consejos de los otros user, asi que cada vez que se vaya actualizando, ire comentando mas (si, soy pesado ,)

y eso, e estado leyendo por encima el tuto y como dije antes, voy a empezar poco a poco a ir avanzando en este mundillo

gracias de nuevo :)
 
Arriba