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
Nota: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
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 .
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: