Registrarse

FR | [En proceso] [ASM] Behavior NPC

Invert

why so serious?


Behavior NPC


Explicación

Behavior NCP está hecha para cambiar los comportamientos de los minis dentro del juego en tiempo real.

¿Qué comportamientos?
Mirar alrededor, caminar sin rumbo, correr en sentido del reloj, trotar de derecha a izquierda etc...

¿Recibe Parámetros?: Sí.
  • var 8001: Con esta variable asignas el mini.
  • var 8002: Con esta variable eliges el comportamiento.

¿Devuelve Parámetros?: No.

Instalación

Debes instalar la siguiente rutina en un espacio libre de tu ROM.

Código:
.thumb
.global be
.thumb_func 

PUSH    {R4-R6,LR}
ldr r0, =0x020370ba @var 8001
ldrh r0, [r0]		@ person/local ID from var 0x8001
ldr r1, =0x03005008 @saveblock1_mapdata
ldr r1, [r1]	
ldrb r2, [r1, #4]       @ current bank
ldrb r1, [r1, #5] 	@ current map
ldr r3, =0x805DF61 @NPC_id_by_local_id
bl bx_r3
ldr r1, =0x02036E38 @ncp_states
mov r2, #0x24
mul r2, r0
add r4, r1, r2
mov r0, r4
ldr r1, =0x20370BC @var 8002
ldrh r1, [r1] @ Behavior
ldr r3, =0x8063611 @npc_set_running_behaviour_etc
bl bx_r3
mov r0, r4
ldr r3, =0x8063D7D @npc_half_reset_when_bit7_is_set
bl bx_r3
POP     {r4-r6,PC}
.ltorg

bx_r3:
bx r3
Instruciones de uso


EJEMPLO DE USO
Código:
#dynamic 0x800000
//---------------
#org @inicio
setvar 0x8001 0x0 @Es el ID del mini.
setvar 0x8002 0x0 @Es el numero del comportamiento.
callasm 0x900000 @Aqui va el offset de tu rutina.
end
Nota:
Tanto el ID del mini como el comportamiento serán leídos en formato hex.
La mayoría de comportamientos serán leídos, digo la mayoría porque la última vez que la probé no me funcionaron 2 o 3.

Nota 2:
No me he puesto a probarla a fondo pero supongo que cuando te alejes demasiado del mini al que le has cambiado el comportamiento se actualizará el comportamiento que tiene por defecto, por ello esta rutina solo está hecha para eventos secundarios :p.

El tema está en proceso aunque esté terminada la rutina ya que estoy desarrollando otra que permite saber que comportamiento tiene cada mini para aumentar las posibilidades de eventos.

 
Última edición:

Nacho

Nadando hasta la otra orilla
genial investigación de Pabel, lástima que nadie la comente, tiene un buen uso en eventos, con un poco de ingenio puedes lograr cosas geniales!
 
Arriba