Registrarse

[RH - Scripting] [ESCUELA DE SCRIPTS] Otros comandos de interés

Estado
Cerrado para nuevas respuestas.

Xabier2012

Usuario mítico



Call y return

El comando call tiene la misma función que el comando goto, nos lleva a la dirección offset que le indicamos para que se ejecute otra parte del script, pero a diferencia de goto, si utilizamos call, nos permitirá que en el script que ejecutaremos con ese call, poner al final el comando return, el cual hará que continúe el script justo después del call.


writebytetooffset

Como indica su nombre, escribe un byte en un offset, concretamente en la "General Internal Memory". Lo utilizamos para modificar ciertos valores y que nos den temporalmente una función, como un cambio de aspecto. Como cuando hacemos el efecto blanco/negro.

Si queréis saber más funciones os dejo unos enlaces:

Cambiar minisprite temporalmente

Pantallas de colores



callasm

Llama a una rutina asm para que se ejecute. Si sabéis de asm e insertáis una rutina, para que se ejecute tenéis que poner este comando seguido del offset donde se guardó la rutina.

ASM, conceptos básicos

ASM, tutorial

Tutoriales ASM de pokeco


special2

La función es exactamente igual que la de un special normal, sólo que éste tipo de especial devuelve un valor.

Código:
special2 0x(variable donde se almacena un valor) 0x(nº de special)
Por ejemplo, el special 0x130 mira si tienes un hueco en el pc para un pokemon, y en caso de que lo tengas, devolverá 1 a la variable que hemos puesto.


pause

Este pause el script durando un tiempo determinado.

Código:
pause 0x(tiempo a pausar)
Según tengo entendido, pause 0x25 es aproximadamente 1 segundo. Se suele utilizar por ejemplo para animación de la exclamación y quieres que primero se oiga el sonido antes de continuar con el script, pues después de sound ponemos un pause y arreglado.


fadedefault

Hace que la música del mapa vuelva a la canción de por defecto.


warpwalk

Mismo efecto que un warp, solo que player hace animación de estar moviéndose. Se suele utilizar para simular que entras en una casa.


warphole

Mismo efecto que un warp solo que player hará una animación de estar cayéndose por un hueco.


warpteleport

Mismo efecto que un warp solo que player hace la animación de estar teletransportandose (dando vueltas sobre sí mismo).


getplayerpos

Nos indicará en que coordenadas está player en ese momento.

Código:
getplayerpos 0x(variable 1) 0x(variable 2)
En var 1 se almacenará la posición X y en la var 2 la posición Y.


additem

Es como un giveitem sólo que no tendremos ningún mensaje que nos lo diga, es decir, que nadie se dará de cuenta.

Código:
additem 0x(nº de objeto) 0x(cantidad)

removeitem

Quita una cantidad específica de items al player, al estructura es la misma que con additem.


addpcitem y checkpcitem

Como el additem solo que te lo añade al pc. El checkpcitem es cómo un checkitem normal solo que mira si está en el pc.


movesprite2

La diferencia entre movesprite y movesprite2, es que movesprite2 hará que
la posición a donde movamos dicho sprite, sea permanente, ya que con movesprite sólo cambiamos de posición a un sprite hasta que se refresque la pantalla. Útil para no tener que poner más persons events en el mapa y ahorrarnos flags. La estructura es igual que un movesprite.


multichoice

Muestra una lista dónde podemos elegir varias opciones. Podría hacer una explicación breve, pero por el bien de vuestro conocimiento, no hay mejor tuto sobre multichoice que el de Javi:

Vamos a hacer un ejercicio de memoria y vamos a recordar el Yes/No. En aquel script, nos aparecía una caja donde podíamos escoger entre dos opciones: Sí o No. Y dependiendo de lo que escogiéramos, pasaría una cosa u otra. En este caso es lo mismo, la diferencia es que la caja contendrá hasta 6 opciones. Un ejemplo de esto es cuando vamos al PC en un Centro Pokémon y nos aparecen las opciones (pokémons, objetos…). Eso sería un multichoice. La lista de multichoices se puede encontrar en la guía de XSE para cada una de las ediciones. Los diferentes multichoices se pueden editar, existen herramientas para ello como Multichoice Editor (desarrollada por mí) o Multichoice Manager (desarrollada por Gut_Bro).

En esta ocasión tenemos 3 comandos que hacen lo mismo, es decir, muestran una caja con diferentes opciones entre las que elegir, pero nos brindan ciertas variaciones. Estos son los tres comandos:

Multichoice 0x(coordenada x) 0x(coordenada y) 0x(multichoice) 0x(B)

Multichoice2 0x(coordenada x) 0x(coordenada y) 0x(multichoice) 0x(opción seleccionada) 0x(B)

Multichoice3 0x(coordenada x) 0x(coordenada y) 0x(multichoice) 0x(opciones por columna) 0x(B)

• Coordenada x: Coordenadas en el eje x donde aparecerá la caja.
• Coordenada y: Coordenadas en el eje y donde aparecerá la caja.
• Multichoice: Número del multichoice que se mostrará.
• B: Determina si se puede pulsar el botón B para salir. 0x0 determina que se puede usar, 0x1 determina que no.
• Opción seleccionada: En el caso del multichoice2, se puede determinar qué opción saldrá marcada por defecto. Es decir, si ponemos 0x1, por ejemplo, el multichoice aparecerá con la opción número 2 seleccionada por defecto. Ojo, seleccionada no quiere decir elegida, sino que es la opción desde la que se parte.
• Opciones por columna: Por defecto, aparecen todas las opciones en una misma columna, pero se puede hacer en el caso del multichoice3, que aparezca un determinado número de opciones por cada columna. Por ejemplo, si ponemos un multichoice con 4 opciones y en este parámetro ponemos que haya 0x2 opciones por columna, aparecerán dos opciones en la primera columna y las otras dos en la segunda columna.

Recuerdo que los multichoices se pueden editar, pero en este caso, vamos a hacer el ejemplo con uno original. En Fire Red, el multichoice 0x12 tiene las opciones Yes, No e Info. Si queremos que pase una cosa u otra dependiendo de la opción elegida, pondríamos algo así:

(…)
Multichoice 0x0 0x0 0x12 0x1 ‘Muestra el multichoice
Compare LASTRESULT 0x0 ‘Comprueba si elegimos la opción 1
If 0x1 goto @yes ‘Si lo hicimos, va a @yes
Compare LASTRESULT 0x1 ‘Comprueba si elegimos la opción 2
If 0x1 goto @no ‘Si lo hicimos, va a @no
Compare LASTRESULT 0x2 ‘Comprueba si elegimos la opción 3
If 0x1 goto @info ‘Si lo hicimos, va a @info
(…)

La opción seleccionada se guarda en la variable LASTRESULT. Es importante tener en cuenta que la primera opción es representada por 0x0, no por 0x1. La 0x0 es la primera, la 0x1 es la segunda, la 0x2 es la tercera… Y así sucesivamente.


showpokepic y hidepokepic

Muestra y esconde respectivamente, un sprite de un pokemon.

Código:
showpokepic 0x(nº pokemon de pokedex) 0x(X) 0x(Y)
X e Y son las coordenadas donde se mostrará el box con el sprite del pokemon. Hidepokepic tiene la misma estructura y se usa después del showpokepic.


checkattack

Comprueba si alguno de nuestros pokemon tiene algún ataque en específico.

Código:
checkattack 0x(número del atque)
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

Luego de utilizar el comando, se guardará en la variable 0x800D, del 0 al 5, que pokemon de nuestro equipo tiene ese ataque, siendo 0 el primer pokemon y 5 el último. Y si ninguno lo tiene se almacenará un 6.

Ejemplo:

Código:
checkattack 0xF
compare LASTRESULT 0x6
if 0x1 goto @nolotiene

random

Comando que almacenará un número aleatoria en hexadeciaml en la variable 0x800D.

Código:
random 0x(Nº)
El número random que nos puede dar irá desde 0 hasta Nº que le hayamos puesto menos 1.


cry

Hace el sonido de un grito pokemon especificado.

Código:
cry 0x(nº pokemon) 0x0
Cabe destacar que en Fire Red al usar showpokepic se oirá el cry del pokemon en concreto.


setmapfooter

Substituye un mapa por otro, manteniendo eventos. Se usa no tener que hacer setmaptiles a gran escala. Tutorial de juanjo.


giveitem2

Igual que giveitem, solo que además reproduce el sonido de obtención. Ideal para vagos que no quieren escribir después el comando sound.


sethealingplace

Utilizada en script de nivel 03. Indica que el mapa es punto de curación y hace mandar a player a dicho mapa en caso de derrota (centros pokemon).

Código:
sethealingplace 0x0 o 0x1
0x0 para la primera vez, ya que será el cuarto de tu madre y no se mostrará animaciones de pokeballs curandose, y 0x1 para el resto de sitios que suelen ser centros pokemon.
 
Estado
Cerrado para nuevas respuestas.
Arriba