Registrarse

[Otros] Tutorial completo de pokescript

Javi4315

Babyface
Miembro de honor
Sé que la mayoría de los hackers usan XSE. Pero hay pocos tutoriales de pokescripts en español, así que lo publicaré yo mismo para ayudar a gente que quiera aprender a utilizarlo y para que, los que sepan lo básico, amplien sus conocimientos. También lo hago con motivo del nuevo programa, advance script (posteado por ~Neon), que según un punto de sus características, soporta el lenguaje de Pokescript y XSE. Sin más preámbulo, aquí está el tutorial.


Introducción a pokescript.

Lo primero que se debe saber es qué programas utilizaremos, pues son estos (clic en el nombre para descargar):


Antes de nada, deben instalar los programas, pero es muy importante que el pokescript y el pokemon advance estén instalados en el mismo directorio (misma carpeta).

Para hacer el script tenemos que abrir el bloc de notas y hacerlo ahí. Por ahora sólo debemos saber el funcionamiento de dos comandos:

#org $(pointer)
Se pondrá al principio y su función es hacer que se ejecute el script. Se debe poner siempre.

Se coloca al final y su función es hacer que el script finalice. También se debe poner siempre.

Para compilar el script es muy fácil, es más, esa facilidad es uno de los atractivos de este programa. Podría explicarlo yo mismo, pero lo que quiero es que lo entendáis bien, para ello, pondré un video-tutorial de cómo compilar scripts con pokescript hecho por derv1205:

[align=center]Video-tutorial[/align]


Pointers.

Los pointers también se pueden utilizar en XSE según tengo entendido, de cualquier manera, lo explicaré para la gente que no sepa qué son los pointers.

Los pointers serán indicados en el tutorial así: $(pointer). Ese (pointer) debemos cambiarlo por una palabra, la que queramos. Es necesario saber que un pointer lo que hará es mandarnos a otro pointer, con lo cual, la palabra que pongamos en sustitución del primer (pointer), también debemos ponerla en el segundo (al que nos envía). Esto puede parecer algo difícil para los que no sepan nada de script, pero cuando apliquemos los pointers, veréis que es muy fácil.

También debemos saber que, como muchas otras cosas, los pointers tienen una excepción. En el primer comando, #org $(pointer), el pointer no se encargará de llevarnos a otro pointer, sólo debemos ponerlo para que se asigne el offset núcleo al script. Yo normalmente lo cambio por la palabra "comienzo", tal que me quedaría así: #org $comienzo. Aviso que para los tutoriales utilizaré ese pointer para comenzar.


Habladuría.

Este script es el más básico. Este tipo de script sirve para que, al hablar con un mini en el juego, nos muestre un mensaje. Utlizaremos estos comandos:

  • lock: su función es bloquear el movimiento del protagonista. Es necesario ponerlo.
  • faceplayer: este comando lo utilizaremos para que el mini nos mire cuando hablamos con él (no es necesario, depende de cómo queramos que sea el script)
  • Release: se encarga de anular el efecto de lock, es decir, le devolverá el movimiento al mini.

Eso son los comandos que utilizaremos para hacer el script de habladuría, pero queda el más importante, el que se encargará de que aparezca el mensaje. Lo añadiremos así:

message $(pointer)
$(pointer) 1 = Aquí el mensaje.
boxset 6
Explico, el boxset 6 lo que hará es crear la caja de texto donde irá el mensaje en el juego. Y el (pointer) lo podéis cambiar por lo que queráis, yo lo cambiaré por "1" tal que me quede así:

message $1
$1 1 = Aquí el mensaje.
boxset 6
Hasta aquí, el script quedaría así (es importante fijarse en la colocación, ya que hasta que lo entendáis, deberéis respetarla o puede que no funcione):

#org $comienzo
lock
faceplayer
message $1
$1 1 = Aquí el mensaje.
boxset 6
release
end
Ese es el script de habladuría, ya sólo nos falta aprender a escribir el mensaje. Para escribirlo, debemos utilizar estos comandos:

\p
\n
\l

El comando \p sirve para añadir un párrafo, el comando \n sirve para añadir una linea que aparecerá auntomaticamente y el comando \l sirve tambíen para añadir una linea que aparecerá cuando pulsemos el botón (por defecto "A").

¿Qué pasa si no utilizo estos comandos? Si estos comandos no se utilizan, el texto se saldrá del box y abrá partes que no se podrán leer. Aquí tenéis un ejemplo completo:

#org $comienzo
lock
faceplayer
message $1
$1 1 = Este es un script de habladuría.\pNo se olviden de poner los comandos\npara los mensajes o no funcionará\lcorrectamente.
boxset 6
release
end

Respuestas sí/no.

Esto consiste en un simple escript de habladuría, pero cundo termine el mensaje, nos aparecerá la caja para responder con sí o no. Lo que suceda después dependerá de la respuesta que demos. Lo primero que debemos hacer es un script de habaduría pero debemos poner una pregunta en el mensaje o algo que se pueda responder con sí o no:

#org $comienzo
lock
faceplayer
message $1
$1 1 = ¿Comprendes el tutorial?
boxset 6
release
end
Lo que haremos ahora es añadir estos comandos:

  • boxset 5: muestra la caja para responder con sí o no.
  • compare LASTRESULT 1: comprobará si has respondido con sí o con no.
  • if b_(true o false) goto $(pointer): nos enviará a (pointer) dependiendo de la respuesta que demos.

Si ponemos b_true, nos enviará al pointer si respondemos "sí" y si ponemos b_false, nos enviará al pointer si respondemos "no". También podemos poner las dos dependiendo de como queramos que sea el script. Pondré un ejemplo con cada uno de los casos:

#org $comienzo
lock
faceplayer
message $1
$1 1 = ¿Comprendes el tutorial?
boxset 5
comapare LASTRESULT 1
if b_true goto $si
boxset 6
message $no
$no 1 = ¿No?\nPues es muy sencillo.
release
end

#org $si
message $si1
$si1 1 = ¡Qué bien!
release
end

org $comienzo
lock
faceplayer
message $1
$1 1 = ¿Comprendes el tutorial?
boxset 5
comapare LASTRESULT 1
if b_false goto $no
boxset 6
message $si
$si 1 = ¡Qué bien!
release
end

#org $no
message $no1
$no1 1 = ¿No?\nPues es muy sencillo.
release
end

org $comienzo
lock
faceplayer
message $1
$1 1 = ¿Comprendes el tutorial?
boxset 5
comapare LASTRESULT 1
if b_true goto $si
if b_false goto $no
boxset 6
release
end

#org $si
message $si1
$si1 1 = ¡Que bien!
release
end

#org $no
message $no1
$no1 1 = ¿No?\nPues es muy sencillo.


Colores en el mensaje.

Todos hemos visto en algunos hacks textos en verde o en rojo, por ejemplo. Para añadirlos es muy fácil, basta con poner un código antes del mensaje. Aquí les dejo la lista de colores para ruby y fire red:

White - \c\h01\h01
Red - \c\h01\h02
Grey - \c\h01\h03
Blue - \c\h01\h04
Black - \c\h01\h09
Pink - \c\h01\h0C
Brown - \c\h01\h0D

White - \c\h01\h00
Black - \c\h01\h02
Grey - \c\h01\h03
Red - \c\h01\h04
Orange - \c\h01\h05
Dark Green - \c\h01\h06
Cyan - \c\h01\h07
Blue - \c\h01\h08
Light Blue - \c\h01\h09

Esto creo que todos lo sabrán hacer, de todas formas, pondré un ejemplo:

#org $comienzo
lock
faceplayer
message $1
$1 1 = \c\h01\h02Me encanta el color rojo.
boxset 6
release
end
Este ejemplo es para poner el color rojo en un mensaje en ruby, pero se hace de la misma forma para cualquier otro color ya sea en ruby o fire red.

Otra cosa que debo decir es que, el color negro, no es el color por defecto. Si ponemos un color y queremos que vuelva al color por defecto, simplemente creamos otro mensaje. Pondré un ejemplo:

#org $comienzo
lock
faceplayer
message $1
$1 1 = \c\h01\h02Aquí está el mensaje en color rojo.
boxset 6
message $2
$2 1 = Aquí vuelve a su color por defecto.
boxset 6
release
end

Flags 1.

Las flag son muy importantes. Sin las flags, los scripts se repetirian infinitamente y no podríamos hacer un buen hack, por otro lado, hay funciones de las las flags que son demasiado complicadas para los conocimientos de script que tenemos hasta aquí. Por esa razón, enseñaré en este tutorial lo que debemos saber para continuar y, más abajo (flags 2), explicaré lo que nos falta por aprender de las flags.

Las flags se utilizan para que algo sólo ocurra una vez o para que una cosa no ocurra hasta que no haya ocurrido otra. También la utilizaremos para que un personaje desaparezca o para que vuelva a reaparecer. De momento, sólo expicaré cómo hacer que algo pase una sola vez.

Antes de seguir, os diré cuales son las flags libres (las flags están en Hex):

Desde la 0x200 hasta la 0x29F
Desde la 0x500 hasta la [/b]0x79F[/b]
Desde la 1000 hasta la 109F

Imaginemos que queremos que un mini, al hablar con él, nos diga una cosa y las demás veces, nos diga otra. Para que esto suceda, haremos uso de las flags. Lo primero que haré, será poner un script de habladuría sobre el que trabajaremos:

#org $comienzo
lock
faceplayer
message $1
$1 1 = Hola, me llamo maya.\nEncantada de conocerte.
boxset 6
release
end
Lo primero que haremos será colocarle el comando checkflag 0x(flag) al principio para que compruebe si la flag está activada. Justo debajo pondremos if 0x1 goto $(pointer) que podría traducirse como "si está activada ir a (pointer)". Es como if b_(true o fase) goto $(pointer) en el script de sí o no pero aplicado a las flags. Hasta el momento, el script quedaría así:

#org $comienzo
lock
faceplayer
checkflag 0x200 (utilizo la primera flag disponible, si ya se ha utilizado, debemos poner otra)
if 0x1 goto $despues (He llamado "despues" al (pointer))
message $1
$1 1 = Hola, me llamo maya.\nEncantada de conocerte.
boxset 6
release
end
Obviamente, para que nos envíe a $despues, la flag debe activarse. Como queremos que el "Hola, me llamo maya.\nEncantada de conocerte" sólo nos lo diga una vez, activaremos la flag al final del script con el comando setflag 0x(flag). Cómo la flag que estamos comprobando con checkflag es la 200, también es la que debemos activar. Aquí está el ejemplo completo:

#org $comienzo
lock
faceplayer
checkflag 0x200
if 0x1 goto $despues
message $1
$1 1 = Hola, me llamo maya.\nEncantada de conocerte.
boxset 6
setflag 0x200
release
end

#org $despues
lock
faceplayer
message $2
$2 1 = ¿Qué tal?
boxset 6
release
end
En mi opinión, es bastante sencillo usar las flag. Por si no quedó claro, advierto que cada flag sólo se puede utilizar una vez.

0x800 - Pokemon Menu
0x801 - Pokedex Menu
0x802 - Pokenav Menu
0x807 - First Badge
0x808 - Second Badge
0x809 - Third Badge
0x80A - Fourth Badge
0x80B - Fifth Badge
0x80C - Sixth Badge
0x80D - Seventh Badge
0x80E - Eighth Badge
0x860 - Running Shoes

0x820 - First Badge
0x821 - Second Badge
0x822 - Third Badge
0x823 - Fourth Badge
0x824 - Fifth Badge
0x825 - Sixth Badge
0x826 - Seventh Badge
0x827 - Eighth Badge
0x828 - Pokemon Menu
0x829 - Pokedex Menu
0x82F - Running Shoes


Givepokemon.

La función del comando givepokemon es muy simple, hará que recibamos un pokemon. Lo debemos poner así:

givepokemon A B C

La A la sustituiremos por el pokemon que queremos recibir, es decir, pondremos su número en la pokedex. La B es para el nivel que tendrá. Y la C es para el objetó que llevará (si no queremos que lleve un objeto, ponemos 0). Por ejemplo, si queremos recibir un charmander en el nivel 5 y que lleve consigo una poción, pondremos eso:

givepokemon 4 5 13

Para este tipo de script, tenemos que usar una flag especial que se encargará de activar el menú pokemon (0x800 en ruby o 0x828 en fire red). Puesto que ya estamos usando una flag, no tendremos que usar otra para que no se repita. También podemos añadirle el típico sonido de cuando recibes algo poniendo fanfare 0x(sonido), en nuestro caso, el sonido, será el 0x13E. Este comando lo colocaremos después del mensaje que nos informará de que hemos recibido un pokemon. Voy a poner un script de ejemplo para que veáis como queda:

#org $comienzo
lock
faceplayer
checkflag 0x800
if 0x1 goto $despues
message $1
$1 1 = Hola, toma este pokemon.
boxset 6
fanfare 0x13E
message $2
$2 1 = \v\h01 recibió un CHARMANDER.
boxset 6
givepokemon 4 5 13
setflag 0x800
release
end

#org $despues
lock
faceplayer
message $3
$3 1 = ¿Lo estás cuidando bien?
boxset 6
release
end

Giveitem.

El giveitem es muy parecido al givepokemon, con la diferencia de que recibiremos un objeto en vez de un pokemon. Lo pondremos así:

giveitem A B

La A la sustituiremos por el objeto que queremos recibir y la B por la cantidad. También podemos acompañar el script con fanfare 0x13E. Pondré un ejemplo imaginándonos que queremos 5 pociones:

#org $comienzo
lock
faceplayer
checkflag 0x200 (si ya la hemos utilizado, ponemos otra)
if 0x1 goto $despues
message $1
$1 1 = Toma esto.
boxset 6
fanfare 0x13E
message $2
$2 1 = \v\h01 recibió 5 pokeballs.
boxset 6
giveitem 13 5
setflag 0x200 (o la que hayamos utilizado)
release
end

#org $despues
lock
faceplayer
message $3
$3 1 = Utilízalas bien
boxset 6
release
end
Ahora que he explicado el givepokemon y el giveitem pondré la lista de pokemon y de items:

BULBASAUR 1
IVYSAUR 2
VENUSAUR 3
CHARMANDER 4
CHARMELEON 5
CHARIZARD 6
SQUIRTLE 7
WARTORTLE 8
BLASTOISE 9
CATERPIE 10
METAPOD 11
BUTTERFREE 12
WEEDLE 13
KAKUNA 14
BEEDRILL 15
PIDGEY 16
PIDGEOTTO 17
PIDGEOT 18
RATTATA 19
RATICATE 20
SPEAROW 21
FEAROW 22
EKANS 23
ARBOK 24
PIKACHU 25
RAICHU 26
SANDSHREW 27
SANDSLASH 28
NIDORAN|w| 29
NIDORINA 30
NIDOQUEEN 31
NIDORAN|m| 32
NIDORINO 33
NIDOKING 34
CLEFAIRY 35
CLEFABLE 36
VULPIX 37
NINETALES 38
JIGGLYPUFF 39
WIGGLYTUFF 40
ZUBAT 41
GOLBAT 42
ODDISH 43
GLOOM 44
VILEPLUME 45
PARAS 46
PARASECT 47
VENONAT 48
VENOMOTH 49
DIGLETT 50
DUGTRIO 51
MEOWTH 52
PERSIAN 53
PSYDUCK 54
GOLDUCK 55
MANKEY 56
PRIMEAPE 57
GROWLITHE 58
ARCANINE 59
POLIWAG 60
POLIWHIRL 61
POLIWRATH 62
ABRA 63
KADABRA 64
ALAKAZAM 65
MACHOP 66
MACHOKE 67
MACHAMP 68
BELLSPROUT 69
WEEPINBELL 70
VICTREEBEL 71
TENTACOOL 72
TENTACRUEL 73
GEODUDE 74
GRAVELER 75
GOLEM 76
PONYTA 77
RAPIDASH 78
SLOWPOKE 79
SLOWBRO 80
MAGNEMITE 81
MAGNETON 82
FARFETCH'D 83
DODUO 84
DODRIO 85
SEEL 86
DEWGONG 87
GRIMER 88
MUK 89
SHELLDER 90
CLOYSTER 91
GASTLY 92
HAUNTER 93
GENGAR 94
ONIX 95
DROWZEE 96
HYPNO 97
KRABBY 98
KINGLER 99
VOLTORB 100
ELECTRODE 101
EXEGGCUTE 102
EXEGGUTOR 103
CUBONE 104
MAROWAK 105
HITMONLEE 106
HITMONCHAN 107
LICKITUNG 108
KOFFING 109
WEEZING 110
RHYHORN 111
RHYDON 112
CHANSEY 113
TANGELA 114
KANGASKHAN 115
HORSEA 116
SEADRA 117
GOLDEEN 118
SEAKING 119
STARYU 120
STARMIE 121
MR. MIME 122
SCYTHER 123
JYNX 124
ELECTABUZZ 125
MAGMAR 126
PINSIR 127
TAUROS 128
MAGIKARP 129
GYARADOS 130
LAPRAS 131
DITTO 132
EEVEE 133
VAPOREON 134
JOLTEON 135
FLAREON 136
PORYGON 137
OMANYTE 138
OMASTAR 139
KABUTO 140
KABUTOPS 141
AERODACTYL 142
SNORLAX 143
ARTICUNO 144
ZAPDOS 145
MOLTRES 146
DRATINI 147
DRAGONAIR 148
DRAGONITE 149
MEWTWO 150
MEW 151
CHIKORITA 152
BAYLEEF 153
MEGANIUM 154
CYNDAQUIL 155
QUILAVA 156
TYPHLOSION 157
TOTODILE 158
CROCONAW 159
FERALIGATR 160
SENTRET 161
FURRET 162
HOOTHOOT 163
NOCTOWL 164
LEDYBA 165
LEDIAN 166
SPINARAK 167
ARIADOS 168
CROBAT 169
CHINCHOU 170
LANTURN 171
PICHU 172
CLEFFA 173
IGGLYBUFF 174
TOGEPI 175
TOGETIC 176
NATU 177
XATU 178
MAREEP 179
FLAAFFY 180
AMPHAROS 181
BELLOSSOM 182
MARILL 183
AZUMARILL 184
SUDOWOODO 185
POLITOED 186
HOPPIP 187
SKIPLOOM 188
JUMPLUFF 189
AIPOM 190
SUNKERN 191
SUNFLORA 192
YANMA 193
WOOPER 194
QUAGSIRE 195
ESPEON 196
UMBREON 197
MURKROW 198
SLOWKING 199
MISDREAVUS 200
UNOWN 201
WOBBUFFET 202
GIRAFARIG 203
PINECO 204
FORRETRESS 205
DUNSPARCE 206
GLIGAR 207
STEELIX 208
SNUBBULL 209
GRANBULL 210
QWILFISH 211
SCIZOR 212
SHUCKLE 213
HERACROSS 214
SNEASEL 215
TEDDIURSA 216
URSARING 217
SLUGMA 218
MAGCARGO 219
SWINUB 220
PILOSWINE 221
CORSOLA 222
REMORAID 223
OCTILLERY 224
DELIBIRD 225
MANTINE 226
SKARMORY 227
HOUNDOUR 228
HOUNDOOM 229
KINGDRA 230
PHANPY 231
DONPHAN 232
PORYGON2 233
STANTLER 234
SMEARGLE 235
TYROGUE 236
HITMONTOP 237
SMOOCHUM 238
ELEKID 239
MAGBY 240
MILTANK 241
BLISSEY 242
RAIKOU 243
ENTEI 244
SUICUNE 245
LARVITAR 246
PUPITAR 247
TYRANITAR 248
LUGIA 249
HO-OH 250
CELEBI 251
TREECKO 277
GROVYLE 278
SCEPTILE 279
TORCHIC 280
COMBUSKEN 281
BLAZIKEN 282
MUDKIP 283
MARSHTOMP 284
SWAMPERT 285
POOCHYENA 286
MIGHTYENA 287
ZIGZAGOON 288
LINOONE 289
WURMPLE 290
SILCOON 291
BEAUTIFLY 292
CASCOON 293
DUSTOX 294
LOTAD 295
LOMBRE 296
LUDICOLO 297
SEEDOT 298
NUZLEAF 299
SHIFTRY 300
NINCADA 301
NINJASK 302
SHEDINJA 303
TAILLOW 304
SWELLOW 305
SHROOMISH 306
BRELOOM 307
SPINDA 308
WINGULL 309
PELIPPER 310
SURSKIT 311
MASQUERAIN 312
WAILMER 313
WAILORD 314
SKITTY 315
DELCATTY 316
KECLEON 317
BALTOY 318
CLAYDOL 319
NOSEPASS 320
TORKOAL 321
SABLEYE 322
BARBOACH 323
WHISCASH 324
LUVDISC 325
CORPHISH 326
CRAWDAUNT 327
FEEBAS 328
MILOTIC 329
CARVANHA 330
SHARPEDO 331
TRAPINCH 332
VIBRAVA 333
FLYGON 334
MAKUHITA 335
HARIYAMA 336
ELECTRIKE 337
MANECTRIC 338
NUMEL 339
CAMERUPT 340
SPHEAL 341
SEALEO 342
WALREIN 343
CACNEA 344
CACTURNE 345
SNORUNT 346
GLALIE 347
LUNATONE 348
SOLROCK 349
AZURILL 350
SPOINK 351
GRUMPIG 352
PLUSLE 353
MINUN 354
MAWILE 355
MEDITITE 356
MEDICHAM 357
SWABLU 358
ALTARIA 359
WYNAUT 360
DUSKULL 361
DUSCLOPS 362
ROSELIA 363
SLAKOTH 364
VIGOROTH 365
SLAKING 366
GULPIN 367
SWALOT 368
TROPIUS 369
WHISMUR 370
LOUDRED 371
EXPLOUD 372
CLAMPERL 373
HUNTAIL 374
GOREBYSS 375
ABSOL 376
SHUPPET 377
BANETTE 378
SEVIPER 379
ZANGOOSE 380
RELICANTH 381
ARON 382
LAIRON 383
AGGRON 384
CASTFORM 385
VOLBEAT 386
ILLUMISE 387
LILEEP 388
CRADILY 389
ANORITH 390
ARMALDO 391
RALTS 392
KIRLIA 393
GARDEVOIR 394
BAGON 395
SHELGON 396
SALAMENCE 397
BELDUM 398
METANG 399
METAGROSS 400
REGIROCK 401
REGICE 402
REGISTEEL 403
KYOGRE 404
GROUDON 405
RAYQUAZA 406
LATIAS 407
LATIOS 408
JIRACHI 409
DEOXYS 410
CHIMECHO 411

Master Ball 1
Ultra Ball 2
Great Ball 3
Poké Ball 4
Safari Ball 5
Net Ball 6
Dive Ball 7
Nest Ball 8
Repeat Ball 9
Timer Ball 10
Luxury Ball 11
Premier Ball 12
Potion 13
Antidote 14
Burn Heal 15
Ice Heal 16
Awakening 17
Parlyz Heal 18
Full Restore 19
Max Potion 20
Hyper Potion 21
Super Potion 22
Full Heal 23
Revive 24
Max Revive 25
Fresh Water 26
Soda Pop 27
Lemonade 28
Moomoo Milk 29
Energypowder 30
Energy Root 31
Heal Powder 32
Revival Herb 33
Ether 34
Max Ether 35
Elixir 36
Max Elixir 37
Lava Cookie 38
Blue Flute 39
Yellow Flute 40
Red Flute 41
Black Flute 42
White Flute 43
Berry Juice 44
Sacred Ash 45
Shoal Salt 46
Shoal Shell 47
Red Shard 48
Blue Shard 49
Yellow Shard 50
Green Shard 51
HP Up 63
Protein 64
Iron 65
Carbos 66
Calcium 67
Rare Candy 68
PP Up 69
Zinc 70
PP Max 71
Guard Spec. 73
Dire Hit 74
X Attack 75
X Defend 76
X Speed 77
X Accuracy 78
X Special 79
Poké Doll 80
Fluffy Tail 81
Super Repel 83
Max Repel 84
Escape Rope 85
Repel 86
Sun Stone 93
Moon Stone 94
Fire Stone 95
Thunderstone 96
Water Stone 97
Leaf Stone 98
Tinymushroom 103
Big Mushroom 104
Pearl 106
Big Pearl 107
Stardust 108
Star Piece 109
Nugget 110
Heart Scale 111
Orange Mail 121
Harbor Mail 122
Glitter Mail 123
Mech Mail 124
Wood Mail 125
Wave Mail 126
Bead Mail 127
Shadow Mail 128
Tropic Mail 129
Dream Mail 130
Fab Mail 131
Retro Mail 132
Cheri Berry 133
Chesto Berry 134
Pecha Berry 135
Rawst Berry 136
Aspear Berry 137
Leppa Berry 138
Oran Berry 139
Persim Berry 140
Lum Berry 141
Sitrus Berry 142
Figy Berry 143
Wiki Berry 144
Mago Berry 145
Aguav Berry 146
Iapapa Berry 147
Razz Berry 148
Bluk Berry 149
Nanab Berry 150
Wepear Berry 151
Pinap Berry 152
Pomeg Berry 153
Kelpsy Berry 154
Qualot Berry 155
Hondew Berry 156
Grepa Berry 157
Tamato Berry 158
Cornn Berry 159
Magost Berry 160
Rabuta Berry 161
Nomel Berry 162
Spelon Berry 163
Pamtre Berry 164
Watmel Berry 165
Durin Berry 166
Belue Berry 167
Liechi Berry 168
Ganlon Berry 169
Salac Berry 170
Petaya Berry 171
Apicot Berry 172
Lansat Berry 173
Starf Berry 174
Enigma Berry 175
Brightpowder 179
White Herb 180
Macho Brace 181
Exp. Share 182
Quick Claw 183
Soothe Bell 184
Mental Herb 185
Choice Band 186
King's Rock 187
Silverpowder 188
Amulet Coin 189
Cleanse Tag 190
Soul Dew 191
Deepseatooth 192
Deepseascale 193
Smoke Ball 194
Everstone 195
Focus Band 196
Lucky Egg 197
Scope Lens 198
Metal Coat 199
Leftovers 200
Dragon Scale 201
Light Ball 202
Soft Sand 203
Hard Stone 204
Miracle Seed 205
Blackglasses 206
Black Belt 207
Magnet 208
Mystic Water 209
Sharp Beak 210
Poison Barb 211
Nevermeltice 212
Spell Tag 213
Twistedspoon 214
Charcoal 215
Dragon Fang 216
Silk Scarf 217
Up-grade 218
Shell Bell 219
Sea Incense 220
Lax Incense 221
Lucky Punch 222
Metal Powder 223
Thick Club 224
Stick 225
Red Scarf 254
Blue Scarf 255
Pink Scarf 256
Green Scarf 257
Yellow Scarf 258
Mach Bike 259
Coin Case 260
Itemfinder 261
Old Rod 262
Good Rod 263
Super Rod 264
S.S. Ticket 265
Contest Pass 266
Wailmer Pail 268
Devon Goods 269
Soot Sack 270
Basement Key 271
Acro Bike 272
PokéBlock Case 273
Letter 274
Eon Ticket 275
Red Orb 276
Blue Orb 277
Scanner 278
Go-goggles 279
Meteorite 280
Rm. 1 Key 281
Rm. 2 Key 282
Rm. 4 Key 283
Rm. 6 Key 284
Storage Key 285
Root Fossil 286
Claw Fossil 287
Devon Scope 288
TM01 289
TM02 290
TM03 291
TM04 292
TM05 293
TM06 294
TM07 295
TM08 296
TM09 297
TM10 298
TM11 299
TM12 300
TM13 301
TM14 302
TM15 303
TM16 304
TM17 305
TM18 306
TM19 307
TM20 308
TM21 309
TM22 310
TM23 311
TM24 312
TM25 313
TM26 314
TM27 315
TM28 316
TM29 317
TM30 318
TM31 319
TM32 320
TM33 321
TM34 322
TM35 323
TM36 324
TM37 325
TM38 326
TM39 327
TM40 328
TM41 329
TM42 330
TM43 331
TM44 332
TM45 333
TM46 334
TM47 335
TM48 336
TM49 337
TM50 338
HM01 339
HM02 340
HM03 341
HM04 342
HM05 343
HM06 344
HM07 345
HM08 346
Oak's Parcel 349
Poké Flute 350
Secret Key 351
Bike Voucher 352
Gold Teeth 353
Old Amber 354
Card Key 355
Lift Key 356
Helix Fossil 357
Dome Fossil 358
Silph Scope 359
Bicycle 360
Town Map 361
VS Seeker 362
Fame Checker 363
TM Case 364
Berry Pouch 365
Teachy TV 366
Tri-pass 367
Rainbow Pass 368
Tea 369
Mysticticket 370
Auroraticket 371
Powder Jar 372
Ruby 373
Sapphire 374


Aclaración: \v\h01 se utiliza para mostrar el nombre del jugador en un mensaje.


Checkgender.

El comando checkgender se utiliza para comprobar si el personaje es chico o chica. Dependiendo de lo que seamos, el script será de una forma o de otra. Para hacerlo, debemos añadir esto a nuestro script:

checkgender
compare LASTRESULT (0x0 para comprobar si es chico. 0x1 para comprobar si es chica)
if b_(true o false) goto $(pointer)

Este tipo de script es muy parecido al de sí o no. Sólo se diferencia en que, en el script de sí o no, teníamos tres formas de hacerlo y en este, tenemos muchas. Yo sólo pondré tres ejemplo pero, si lo entendemos, sabremos hacerlo de las demás formas, sólo es cuestión de estudiar el funcionamiento del script.

#org $comienzo
lock
faceplayer
checkgender
compare LASTRESULT 0x0
if b_true goto $chico
message $chica
$chica 1 = Eres una gran amiga.
boxset 6
release
end

#org $chico
lock
faceplayer
message $chico1
$chico1 1 = Eres un gran amigo
boxset 6
release
end

#org $comienzo
lock
faceplayer
checkgender
compare LASTRESULT 0x1
if b_true goto $chica
message $chico
$chico 1 = Eres un gran amigo.
boxset 6
release
end

#org $chica
lock
faceplayer
message $chica1
$chica1 1 = Eres un gran amigo
boxset 6
release
end

#org $comienzo
lock
faceplayer
checkgender
compare LASTRESULT 0x0
if b_true goto $chico
if b_false goto $chica
boxset 6
release
end

#org $chico
lock
faceplayer
message $chico1
$chico1 1 = Eres un gran amigo
boxset 6
release
end

#org $chica
lock
faceplayer
message $chica1
$chica1 1 = Eres una gran amiga
boxset 6
release
end


Applymovement.

Sirve para que un mini se mueva en el juego. Utilizaremos el comando applymovement 0x(número del mini) $pointer y al final del script pondremos:

#org $pointer
#raw (movimientos) 0xFE

(movimientos) lo debemos sutituir por los movimientos que queremos que se produzcan y 0xFE siempre lo debemos poner, ya que su función es terminar el movimiento. Aquí está la lista de movimientos:

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

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

Ahora pondré un ejemplo (es importante saber que el número del mini debe estar en Hex). Imaginemos que queremos hablar con un mini y que despues se mueva a la izquierda. Lo haríamos así:

#org $comienzo
lock
faceplayer
message $1
$1 1 = No tengo tiempo para hablar.
boxset 6
applymovement 0x(el número del mini) $mov
pausemove 0
release
end

#org $mov
#raw 0x0A 0x0A 0x0A 0x0A 0x0A 0xFE
Este sería un ejemplo de applymovement. No he puesto flag porque no se suele hacer un applymovement para asignarle el script a un mini, se suele hacer con scripts de gatillo (lo veremos más adelante). También es necesario poner pausemove 0 debajo del applymovement, de lo contrario, no funcionará.

Respecto a los movimientos, el número que hay detrás del movimiento quiere decir la velocidad con la que se efectuará, por ejemplo, left1 será más lento que left2, el espacio que recorren es el mismo.

Para saber el número del mini debemos ir a la pestaña de eventos en advance map y seleccionar el mini al que le queremos aplicar el movimiento. Una vez lo tengamos seleccionado, miramos dónde pone No. de gente (justo debajo del botón "delete event"). El número que parezca ahí es el que debemos poner en el applymovement. En caso de que queramos que se mueva el protagonista, pondremos FF (en el número de mini del applymovement).


Countpokemon.

Se utiliza para que algo no pase hasta que no tengas un número específico de pokemon. Este es el comando que utilizaremos:

countpokemon
compare LASTRESULT 0x(número de pokemon entre 1 y 6)
if b_A goto $(pointer)

La A la tenemos que sustituir por uno de estos comandos:

B_<< (menor)
B_== (igual)
B_>> (mayor)
B_<= (menor o igual)
B_>= (mayor o igual)
B_!= (desigual)

Imáginemos que queremos que alguien nos de una poción cuando tengamos dos o más pokemon, sería así:

#org $comienzo
lock
faceplayer
checkflag 0x200 (si ya la hemos utilizamos, ponemos otra)
if 0x1 goto $despues
countpokemon
compare LASTRESULT 0x2
if b_>= goto $continuar
message $1
$1 1 = Cuando tengas más pokemon te daré\nalgo.
boxset 6
release
end

#org $continuar
lock
faceplayer
message $2
$2 1 = Veo que eres un gran entrenador.\nToma esto.
boxset 6
fanfare 0x13E
message $3
$3 1 = \v\h01 recibió poción.
boxset 6
giveitem 13 1
setflag 0x200
release
end

#org $despues
lock
faceplayer
message $4
$4 1 = Espero que te vaya bien.
boxset 6
release
end
Con este script haremos que nos de el objeto cuando tengamos dos o más pokemon. He utilizado flags porque si no, siempre que hablaramos con el mini llevando dos o más pokemon, nos daría el objeto.


Wildbattle.

Wildbattle se utiliza para combatir con un pokemon salvaje. Se puede hacer de dos formas, o bien poniendo el mini del pokemon y al hablar con él luches o hablando con una persona y creando una situación para luchar con un pokemon salvaje. De momento, la de hablar con él mini del pokemon no lo explicaré, ya que hay que hay que hacer que el mini desaparezca si ganamos, cosa que aun no sabemos hacer. Así que explicaré la otra.

Para hacer luchar con un pokemon salvaje sólo es necesario poner esto:

wildbattle A B C

La A la sustituimos por el pokemon. La B por el nivel. Y la C por el objetó que llevará (todo igual que en el givepokemon). Ese simplemente el comando que utilizaremos. Pero para hacerlo más original, también le aplicaremos un sonido ponindo esto (lo explicaré más adelante):

cry 0xA1 6
nop
nop

Eso hará que se reproduzca el sonido del pokemon. Y no hay más que explicar, sólo queda poner un ejemplo:

#org $comienzo
lock
faceplayer
checkfalg 0x200 (Si ya la hemos utilizado, utilizamos otra)
if 0x1 goto $despues
message $1
$1 1 = Oye, está muy ocscuro.\pCreo que algo se está moviendo detrás\nde nosotros.
boxset 6
cry 0xA1 6
nop
nop
wildbattle 6 30 0
setflag 0x200
release
end

#org $despues
lock
faceplayer
message $2
$2 1 = Ese pokemon era muy grande...
boxset 6
release
end

Trainebattle 0.

Este comando sirve para hacer una batalla con un entrenador. Para saber el número de entrenador, podemos verlo en A-trainer o en PET.

El trainerbattle de tipo 0 lo utilizaremos para una batalla con un entrenador normal (de los que te encuentras en las rutas). Para hacerlo, utilizaremos este comando:

trainerbattle 0 0xA $(pointer1) $(pointer2)

La A la debemos reemplazar por el númerot del entrenador. Respecto a los pointers, el primero te llevará a lo que te dice antes de combatir y el segundo te llevará a lo que te dice justo después de perder. Pongo el ejemplo con el que se entendará fácilmente:

#org $comienzo
lock
faceplayer
trainerbattle 0 0x001 $antes $derrota
message $despues
$despues 1 = Debo reconocer que eres mucho más\nfuerte que yo.
boxset 6
release
end

#org $antes
$antes 1 = Prepárate para perder.

#org $derrota
$derrota 1 = ¡oh no, he perdido!

Trainebattle 1.

El trainerbattle de tipo uno es exactamente igual que el de tipo 0 con la excepción de que, al acabar el combate, el script continuará. También debemos añadirle flag. Este es el comando que utilizaremos:

trainerbattle 1 0xA $(pointer1) $(pointer2) $(pointer3)

Como en el anterior, la A la tenemos que sustituir por el número del entrenador (lo podemos ver en A-trainer o en PET). Y se añadirá un nuevo pointer para que continue el script. Este tipo de trainerbattle se suele utilizar para líderes de los gimnasios, encuentros con el/la rivall o similares. Pondré un ejemplo para que veáis cómo queda:

#org $comienzo
lock
faceplayer
checkflag 0x200 (si ya la hemos utilizado, ponemos otra)
if 0x1 goto $despues2
trainerbattle 1 0x001 $antes $derrota $despues
end

#org $antes
$antes 1 = ¡Hola!\n¿Qué te parece si luchamos?

#org $derrota
$derrota 1 = Creo que nunca te gararé...

#org $despues
message $2
$2 1 = Toma esto, te lo mereces.
boxset 6
fanfare 0x13E
message $3
$3 1 = \v\h01 recibió poción.
boxset 6
giveitem 13 1
setflag 0x200
release
end

#org $despues2
lock
faceplayer
message $4
$4 1 = Seguiré entrenando.\nAlgún día seré el campeón de la\lliga pokemon.
boxset 6
release
end

Flags 2.

Ha llegado el momento de explicar lo resta de las flags. En primer lugar os mostraré un nuevo comando:

clearflag 0x(flag)

Este comando sirve para desactivar una flag. A simple vista, os puede parecer un comando "inservible" de cierta forma, pero os digo que da muchísimo juego. En realidad no tiene nada que explicar, si estudiáis un poco su funcionamiento, podréis hacer buenos scripts.

Otra función de las flags es hacer que un mini desaparezca. Para hacerlo, vamos a advance map y seleccionamos el mini que queremos que desaparezca. Después, ponemos una flag en el ID del mini. Cuando la flag que pusimos ahí, sea activada en cualquier script, el mini desaparecerá. Ojo, si la flag se activa teniendo al mini en la pantalla, este no desaparecerá hasta que no nos alejemos. Si queremos que desaparezca instantaneamente, simplemente tenemos que poner un comando que veremos más aabajo.

Y la última función que explicaré es muy sencilla. Si se ha entendido bien el funcionamiento de las flag, con un poco de razonamiento habremos poidido deducir esto. Me refiero a que, por ejemplo, queremos que un mini nos de un objeto pero después de que hablemos con otro mini. Simplemente tenemos que hacer dos script distintos. En el primero, debemos comprobar la flag que activaremos en el segundo. Pongo un ejemplo para que lo entendáis:

#org $comienzo
lock
faceplayer
checkflag 0x201
if 0x1 goto $despues2
checkflag 0x200 (si ya la hemos utilizado, ponemos otra)
if 0x1 goto $despues
message $1
$1 1 = Antes vivía aquí con mi hermano,\npero se fue a la ciudad.
boxset 6
release
end

#org $despues
lock
faceplayer
message $2
$2 1 = ¿Has conocido a mi hermano?\pMe alegro mucho,\ntoma esto.
boxset 6
fanfare 0x13E
message $3
$3 1 = \v\h01 recibió poción.
boxset 6
giveitem 13 1
setflag 0x201
release
end

#org $despues2
lock
faceplayer
message $4
$4 1 = Espero que te vaya bien.
boxset 6
release
end

#org $comienzo
lock
faceplayer
message $1
$1 1 = No conozco a mucha gente\npor aquí.\pAntes vivía con mi hermano en el pueblo.
boxset 6
setflag 0x200
release
end

Es bastante sencillo. Como dije antes, basta con estudiar el comportamiento de las flag para exprimir al máximo todas sus funciones.


Warp.

Es un comando muy simple, su función es enviarnos a un warp. No tiene mucho que explicar así que aquí está el comando que utilizaremos:

warp 0xA 0xB 0xC

Ahora sólo tenemos que sustituir. La A la cambiaremos por el banco de mapa. La B la cambiaremos por el mapa. Y la C la cabiaremos por el número de warp. Cómo podéis ver, es cómo comfigurar un warp en advance map, pero en un script. Pondré un ejemplo:

#org $comienzo
lock
faceplayer
checkflag 0x200 (como siempre, si ya la hemos utilizado, ponemos otra)
if 0x1 goto $despues
message $1
$1 1 = Profesor: deberías ir a casa.
boxset 6
setflag 0x200
warp 0x1 0x0 0x0
release
end

#org $despues
lock
faceplayer
message $2
$2 1 = ¿Fuistes a casa?
boxset 6
release
end
No es más que eso. Si queremos que el script continue cuando nos lleve a casa, tendremos que hacer un script de nivel (se explica más adelante).

Aviso: el warp siempre se pone al final, ya que, lo que pongamos después del warp, no se activará. Por ejemplo, si ponemos esto:

warp 0x1 0x0 0x0
setflag 0x200

La flag no se activará, ya que, al llevarnos a otro mapa, el script finalizará y no leerá el setflag.


Warp to position.

Su función es igual que la de un warp pero la diferencia es que, con este comando, no iremos a otro warp, si no a una posición. Es algo más complicado que el warp, pero se entiende fácilmente. Esto será lo que utilicemos:

warp 0xA 0xB 0xFF
#raw 0xC 0xD 0xE 0xF

En primer lugar, el 0xFF no hay que modificarlo, lo dejamos como está. Dicho esto, explico. La A la sustituimos por el banco de mapa y la B por el mapa. Hasta aquí no hay problema, pero ahora hay que fijar las coordenadas. Para ello nos vamos al #raw.

Lo que haremos será ir a advance map para mirar las coordenadas. Imaginemos que son estas:

X: 6
Y: 3

Cada coordenada debe tener cuatro números. Para ello, le añadimos 0 a la izquierda hasta tener dicha cantidad. Quedaría así:

X: 0006
Y: 0003

Ahora lo que debemos hacer es separarlos de dos en dos y darles la vuelta a los grupos spero sin alterar el orden dentro de estos. Sería así:

X: 0006 > 00 06 > 06 00
Y: 0003 > 00 03 > 03 00

Ya lo tenemos, ahora sólo hay que sustituirlos en el #raw:

#raw 0x06 0x00 0x03 0x00

Ya tendríamos la posición. Sólo resta poner un ejemplo completo para que lo entendáis. Por ejemplo, si queremos aparecer en villa raiz en la posición (x = 6, y = 3) sería así:

#org $comienzo
lock
faceplayer
checkflag 0x200
if 0x1 goto $despues
message $1
$1 1 = Deberías ir a villa raiz.
boxset 6
setflag 0x200
warp 0x0 0x9 0xFF
#raw 0x06 0x00 0x03 0x00
release
end

#org $despues
lock
faceplayer
message $2
$2 1 = ¿Ya has estado en villa raiz?
boxset 6
release
end
Eso es todo, por si alguien no a entendido lo de poner las coordenadas dejo otro ejemplo.

veamos, imaginemos que esta vez las coordenadas son las siguientes:

X: B
Y: 12

Simplemente le ponemos los 0 necesarios para que tenga cuatro cifras, los separamos en grupos de dos y le damos la vuelta sin alterar el orden dentro de los grupos:

X: 000B > 00 0B > 0B 00
Y: 0012 > 00 12 > 12 00

Ya sólo sustituimos:

warp 0x0 0x9 0xFF
#raw 0x12 0x00 0x0B 0x00


Pokemart.

Este comando sirve para crear una tienda en la que se venderá lo que nosotros queramos. Antes de continuar, no se puede poner un precio personalizado en los script. Bien, el comando que utilizaremos será este:

pokemart $(pointer)

Eso es fácil, lo más importante es el pointer al que nos enviará:

#org $(pointer)
#binary int (productos a vender) 0x0

Dependiendo de la cantidad de objetos que queramos vender, más #binary int tendremos que poner. Por cada linea se deben poner ocho objetos (excepto en la última, que puede haber menos) incluido el 0x0 (para salir). Los objetos debemos ponerlos en Hex, por ejemplo, si queremos vender pociones (número 13), tendrémos que poner 0xD (si ponemos 0x13 estaríamos vendiendo restau. todo).

Si queremos vender pociones, restau. todo y ultraballs, lo pondríamos así:

#binary int 0xD 0x13 0x2 0x0

Para que entiendan bien su funcionamiento, pondré tres ejemplo:

#org $comienzo
lock
faceplayer
pokemart $tienda
release
end

#org $tienda
#binary int 0x2 0x13 0xD 0x0

#org $comienzo
lock
faceplayer
pokemart $tienda
release
end

#org $tienda
#binary int 0x2 0x4 0x7 0xA 0x17 0x13 0x1 0xB
#binary int 0x3 0x20 0xC 0x0

#org $comienzo
lock
faceplayer
pokemart $tienda
release
end

#org $tienda
#binary int 0x2 0x5 0xA 0xB 0x13 0x14 0x15 0x20
#binary int 0x0

Espero que con esos tres ejemplos lo entiendad. Sólo tienen que saber que tienen que poner 8 objetos por cada #binary int.


Hidesprite y showsprite.

Estos dos comandos los utilizaremos para hacer que un mini aparezca o desaparezca. Eso sí, si no le asignamos una flag al mini, este desaparecerá pero volverá a aparecer en cuanto hagamos algún movimiento. Para hacerlo bien, debemos activar la flag que le hayamos asignado al mini (en el ID) en el mismo script een que lo hagamos desaparecer. Estos son los comandos que usaremos:

#raw 0x53 0xA 0xB
#raw 0x55 0xA 0xB

El primero corresponde a un hidesprite y el segundo a un showsprite. ¿Recordáis el tutorial de warp to position? ¿Y lo que había que hacer para poner las coordenadas? Pues aquí se hace igual. Antes de poner un ejemplo, debo decir que el número de persona lo tenemos que poner en Hex. Ahora sí pondré un ejemplo. Imaginemos que queremos que el mini número 1 deaparezca, pues lo hacemos igual que en warp to position:

1 > 0001 > 00 01 > 01 00 > #raw 0x(53 o 55) 0x01 0x00

Esto lo deberéis probar vosotros mismo, con un ejemplo escrito no se entenderá. Y recuerden asiganarle una flag al mini para que desaparezca totalmente.

Aclaración: Para hacer aparecer un mini correstamente, utilizar el comando "clearflag"
Consejo: para que desaparezca la persona con la que estamos hablando podemos utilizar el comando "#raw 0x53 0x0F 0x80"

Giveegg.

Este comando sirve para que recibamos un huevo. Hay que configurarlo igual que warp to position. Este es el comando que utilizaremos:

#raw 0x7A 0xA 0xB

Vamos a sustituir la A y la B. Imaginemos que queremos un huevo de pikachu, lo haríamos así:

25 (lo debemos pasar a hex) > 19 > 0019 > 00 19 > 19 00

Ya tenemos el número, así que este sería el resultado:

#raw 0x7A 0x19 0x00

Pondré un ejemplo para que lo veáis mejor:

#org $comienzo
lock
faceplayer
checkflag 0x200
if 0x1 goto $despues
message $1
$1 1 = Toma esto.
boxset 6
fanfare 0x13E
message $2
$2 1 = \v\h01 recibió huevo.
boxset 6
#raw 0x7A 0x19 0x00
setflag 0x200
release
end

#org $comienzo
lock
faceplayer
message $3
$3 1 = ¿Ha eclosionado ya?
boxset 6
release
end

~CONTINUARÁ...

He estado trabajando mucho en este tutorial (llevo tres días redactándolo, no he hecho otra cosa nada más que esta xD). Espero que haya gente a la que le pueda servir y que sepan reconocer mi esfuerzo (me refiero a que penséis antes de comentar jeje)


Tutorial integramente redactado por javi4315 (no es copy&paste ni nada de eso)
Si se postea dar créditos (que me ha costado trabajo xD)
Estado del tutorial: 40%
Próxima actualización: Espero que mañana o el martes (entre el 60 y el 80%)

Si tienen alguna duda o pregunta pueden postear, mandarme un mp o comentar en mi perfil.
Si ven algún fallo en el tutorial (soy persona) por favor avisenme.
Si me van a insultar o amenazar también pueden hacerlo, pero cuiden el vocavulario (?) xD

Espero que el tutorial sea de vuestro agrado.
Saludos!
 
RE: Tutorial completo de pokescript (40%)

Son como varios Tuto en 1 ^^, que bueno porque asi no tengo que estar viendo temas diferentes xD
Espero que lo puedas terminar ^^
Gracias por el aporte!!!
 

.Neon

Usuario
RE: Tutorial completo de pokescript (40%)

El tutorial esta bien.
Veo que tiene muchas cosas explicando. Te felicito.
Recuerdo que también puede usar eses mismos comandos en Advance Script, ya que muchos no gustan del PokeScript porque da errores.
Suerte con las demas cosas.

Saludos
 
RE: Tutorial completo de pokescript (40%)

Es un Buen tutorial El pokescripts Me recuerda a derv
ya que el fue mi maestro en el scripts , pero haora nolo veo desde hace tiempo

en fin .. el tuto esta muy bien explicado creo que le ayudara alos user que
se le hace mas facil manejar el pokescripts que el xse

espero las otras actualizaciones no olvides poner el Cry , que lo dejastes a media xD :awesome:

edit : jeje tambien vi que tienes una escuela en EMD ;)
 
RE: Tutorial completo de pokescript (40%)

Oye, primero gran tuto :D

Segundo, mencionaste el script de gatillo, y te pregunto si ese es el que se usa con los comandos S en el AM?? y si es asi, como se le hace?

Gracias :D
 

Javi4315

Babyface
Miembro de honor
RE: Tutorial completo de pokescript (40%)

lanixe dijo:
Oye, primero gran tuto :D

Segundo, mencionaste el script de gatillo, y te pregunto si ese es el que se usa con los comandos S en el AM?? y si es asi, como se le hace?

Gracias :D
Ya te puse el link de un tutorial que hice yo sobre scripts de gatillo en tu tema de dudas. Está explicado tanto para hacerlo con XSE como con pokescript. Espero que te sirva :p
 
RE: Tutorial completo de pokescript (40%)

Hola, investigando en scripts de xse me encontre con un comando que tal vez devas saber (si es que no lo sabes) es:

removeitem 0xA 0xB

Es para quitar un objeto que ya tienes. El A es por el numero del objeto en hex, y B es la cantidad. Espero te sirva.

Una duda. Al igual que con este comando existe uno para los pkmns como:

removepokemon 0xA 0xB

Gracias
 

Mustaine

Experto
RE: Tutorial completo de pokescript (40%)

muy buenooo se ve que con este programa es mas facil... me facilitaste en los scripts!! Muchas gracias!! Veré si me salen :D salu2:awesome: Edit:
me faltó una cosa... como son los scripts que te muestran los sprites? como los que hay en ciudad fucsia que te muestran el sprite de voltorb, etc.. salu2!
 

Javi4315

Babyface
Miembro de honor
RE: Tutorial completo de pokescript (40%)

lanixe dijo:
Hola, investigando en scripts de xse me encontre con un comando que tal vez devas saber (si es que no lo sabes) es:

removeitem 0xA 0xB

Es para quitar un objeto que ya tienes. El A es por el numero del objeto en hex, y B es la cantidad. Espero te sirva.

Una duda. Al igual que con este comando existe uno para los pkmns como:

removepokemon 0xA 0xB

Gracias
Pues sí, ya lo conocía xD. Lo iba a explicar en la siguiente actualización junto con el checkitem (y muchas más cosas xD). Y el comando removepokemon cómo tal no existe (creo xD), pero debe de haber alguna forma de hacerlo, aunque yo no la conozca :p

@ki_98 dijo:
muy buenooo se ve que con este programa es mas facil... me facilitaste en los scripts!! Muchas gracias!! Veré si me salen :D salu2:awesome: Edit:
me faltó una cosa... como son los scripts que te muestran los sprites? como los que hay en ciudad fucsia que te muestran el sprite de voltorb, etc.. salu2!
mm, con que te muestren el sprite de voltorb a qué te refieres, ¿a que salga una imágen de voltorb? Si es eso lo explicaré en la próxima actualización (esta vez si que es próxima xD), que espero que sea para este fin de semana.
 

Javi4315

Babyface
Miembro de honor
RE: Tutorial completo de pokescript (40%)

tuco12 dijo:
Xq no lo continuas???
Bueno, llamadme loco pero me sigue pareciendo que pokescript es genial para hacer scripts xDD, de hecho lo sigo utilizando (según el día, lo mismo los hago con pokescript que con XSE, depende xD), pero este tutorial lo hice hace tiempo, creo que no llegaría ni a los 40 mensajes xD. En todo lo que llevo aquí he comprobado que, aunque algunos siguen con pokescript, la mayoría utiliza XSE, así que veo una tontería actualizarlo. Además de que estoy trabajando en un manual de scripting, pero para XSE (por esa misma razón).
 

Starman

bruh
RE: Tutorial completo de pokescript (40%)

Muy buen tutorial,pero esta un poco larguito.
¿Puedes intentar acortarlo un poco para hacer que sea mas...¿entendible?
Igualmente muy buen tuto
 
Arriba