FR | [En progreso] Getspritepos

Avisos

Like Tree6Gracias
  • 3 Post By Invert
  • 3 Post By Invert

Respuesta
 
Herramientas Desplegado
  #1  
10/05/2016
Predeterminado FR | [En progreso] Getspritepos
Hace poco hablando con @FEL!X por Skype surgio una gran idea, hacer un Getspritepos.
Como muchos ya saben, el comando Getplayerpos almacena en un par de variables la posición del player, ahora, imagino lo que se podría hacer si se pudiera almacenar la posición de otro sprite.

He estado investigando algunas cosas, y comparto lo que llevo ya que no tengo ni idea de muchas cosas xD

Código:
PUSH    {R4,R6,LR}
LDR     R4, var_8004
ldr r0, saveblock1_mapdata
ldr r0, [r0]	
ldrb r0, [r4]		@ person/local ID from var 0x8000
ldrb r1, [r0, #5] 	@ current map
ldrb r2, [r0, #4]       @ current bank
ldr r5, npc_id_by_local_id_and_map_ret_success
bl call_via_r5

@@ Get npc_States
ldrb r1, [r0]
lsl r0, r1, #3		@ npc_states + 0x24 * npc_id
add r0, r1
lsl r0, #2
ldr r1, npc_states
add r6, r0, r1
mov r0, r6

@@ Get ncp_pos_x
mov r1, r0
ldr r4, var_8005
ldrh r4, [r4]
LDRH    R4, [R0,#0x10] @ npc_to
SUB    R4, #7
STRH    R4, [R1,#4]

@@ Get ncp_pos_y

ldr r4, var_8006
ldrh r4, [r4]
LDRH    R4, [R0,#0x12] @ npc_to
SUB    R4, #7
STRH    R4, [R1,#6]
MOVS    R0, #0
POP     {R4,R6}
POP     {R0}

var_8004: .word 0x020370C0
var_8005: .word 0x020370C2
var_8006: .word 0x020370C4
saveblock1_mapdata: .word 0x03005008
npc_states: .word 0x02036E38
npc_id_by_local_id_and_map_ret_success:	.word 0x0805DF84 + 1
No sé si lo estoy haciendo bien o mal.
Pero la estructura de los "npc_state" dice que:

0000000C stay_around: coords16 ?
00000010 to: coords16 ?
00000014 from: coords16 ?

Dan las coordenadas x_y de los sprites.
Esto de las estructuras se me da mal, así que, espero su ayuda.
Gracias: Foxz., Naren Jr. y FEL!X
  #2  
11/05/2016
Predeterminado Respuesta: FR | [En progreso] Getspritepos
Dicho por Invert Ver mensaje
Hace poco hablando con @FEL!X por Skype surgio una gran idea, hacer un Getspritepos.
Como muchos ya saben, el comando Getplayerpos almacena en un par de variables la posición del player, ahora, imagino lo que se podría hacer si se pudiera almacenar la posición de otro sprite.

He estado investigando algunas cosas, y comparto lo que llevo ya que no tengo ni idea de muchas cosas xD
Yeeeah. Me encanta y más aún ver que lo empiezas a investigar. Puto Invert, que grande. Últimamente estás satisfaciendo mis necesidades scripteras xD.

Un comando getspritepos, en caso de facilitarlo mediante un call podría dar mucha más jugabilidad de lo que parece. El getspritepos lo que haría sería guardar en dos variables la posición X e Y de un NPC del juego. Nos puede ser útil para definir dos situaciones:

- NPCs estáticos que varían su posición por efecto del jugador. (Por ejemplo, rocas: con este comando podríamos facilitar ciertos puzles sin usar el sistema de variables de la calle victoria)

- NPCs con un hábito de movimiento. Éste es más interesante aún, ver qué sucede dependiendo de la posición de un mini en movimiento. Se pueden hacer scripts interesantes con ello, scripts semi-temporales por así decirlo.

Ejemplo 2: Script "semi-temporal"

Imaginaos un sprite con comportamiento caminar en sentido del reloj ( 4 pasos) y un script de gatillo con un getspritepos que analice la posición del mini la cual variará temporalmente debido a cada paso.

El mini lo dejamos oculto y hacemos un paso con llamas que salen y se ocultan (tiles animados acorde a la velocidad de los pasos del mini, con 2 frames de fuego y 2 de sin fuego). Podemos hacer un compare para determinar la situación (Pos del mini=Situación del tile) para que cuando pise, si hay fuego se queme y tire un paso atrás y si no pues que tire u paso para adelante. Es decir hacer varios resultados dependiendo de la posición in-game del mini.


Son ejemplos de posibles scripts que se pueden hacer mediante el comando. Tienen sus pros y sus contras pero son bastante interesantes.

Bueno, un abrazo Invert. Te deseo que tengas suerte. Me mola mucho como puede tomar forma el asunto. ¡A tope bro!

Click para ver la firma




FEL!X









Premios




Galería (Link directo)



Aportaciones y participaciones



Algunas respuestas a posts y más posts





Respuesta: Cuantos años teneis? Que año Conocisteis Wah?

Respuesta: Con qué Pokémon te has encariñado y porqué?

Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

[Vídeo] Cuando Pokemon GO se vuelve violento
Respuesta: Rap de los Hackrom - Sage [A capella]
Respuesta: GBA | ASM | Clase Número 3: Instrucciones Básicas
Respuesta: ¿Cómo olvido a una chica? No puedo.
Respuesta: [Encuesta]¿Que encuentras mas divertido/entretenido al Rom Hackear/Makear?
* * *
Respuesta: [Cosas De WaH Ep2]¡¡5 Cosas Paranormal Que Nos Han Sucedido!!
Respuesta: FR| ASM| Salto en cualquier dirección.
Respuesta: [Cosas De WaH Ep1]¡¡10 Cosas Sobre Nosotros!!
¡fel!xidades! (Gracias a todos)

¡Ya están aquí!: Resultados PWaH 2015

Respuesta: ¿Qué estás escuchando ahora? (2)
* * *

Respuesta: [Relato de invierno] Chicago.
Respuesta: ¡TIPOS DE HACKERS! ¡Dime qué clase eres tú!
[TAG del MangaAnime]
Respuesta: [FR][DUDA]Comandos de dinero
[Por Una Wah Unida]
Respuesta: Mis motivos de estar aqui
* * *

Respuesta: Psicólogo para el psicólogo, filósofo para el filósofo~
Respuesta: ¿Qué estás escuchando ahora?
Respuesta: [Historia] Hijos del bosque, hijos del viento
Respuesta: [IDEA] Jugador se pueda liar
Respuesta: ¿Cuál es vuestro arquetipo de personaje favorito?
Respuesta: [Encuesta] ¿Cuál fue tu primer juego de pokemon?
* * *


Respuesta: [Test] ¿Qué tipo de personalidad eres?(Viva el comandante FEL!X)

Tu TOP 5 de animes (Mi propio top)
Respuesta:Pregunta a todos los spriters (Mi punto de vista)
Respuesta: IDEA | Nuevos Tipos Elementales 8El tipo experto)
Respuesta: IDEA | Nuevos Tipos de Evolucion (El caso de Machamp )

¡Un abrazo!

  #3  
13/05/2016
Predeterminado Respuesta: FR | [En progreso] Getspritepos
Holis
Hoy he terminado el código y todo gracias a @jiangzhengwenjz por explicarme absolutamente todo sobre las estructuras.
Aquí está:

Código:
.code 16
push {lr}
ldr r0, =0x20370c0 @var_8004
ldrh r0, [r0] @localid
ldr r1, =0x3005008 @saveblock1
ldr r1, [r1]
ldrb r2, [r1, #4] @bank
ldrb r1, [r1, #5] @map
ldr r3, =0x805DF61 NPC_id_by_local_id
bl bx_r3
ldr r1, =0x2036E38 NPC_state
mov r2, #0x24
mul r2, r0
add r0, r1, r2
ldrh r1, [r0, #0x12] @y
ldrh r0, [r0, #0x10] @x
sub r0, #0x7
sub r1, #0x7
ldr r2, =0x20370c0 @var_8004
strh r0, [r2, #2] @var_8005
strh r1, [r2, #4] @var_8006
pop {pc}
.ltorg
bx_r3: bx r3
Su modo de uso es:
setvar 0x8004 0xID NCP (Es el numero de la persona)
callasm 0x

El codigo almacenará las posiciones x(var 8005) y (var 8006) en las variables.
Como dijo @FEL!X antes, puede ser de mucha ayuda para hacer eventos grandes.
Gracias: Jo7a, Foxz. y FEL!X
  #4  
13/05/2016
Predeterminado Re: Respuesta: FR | [En progreso] Getspritepos
Dicho por Invert Ver mensaje
Aquí está:
Nice done, but you haven't added the comment marks for some of the comments.
  #5  
14/05/2016
Predeterminado Respuesta: FR | [En progreso] Getspritepos
Me renta muy, muy, muy mucho esto, es algo que siempre he echado en falta la verdad.

¿Funciona si el personaje esta fuera de pantalla o invisible?
¡¡VIVA EL STAFFMIGUISMO!!

"Aunque algunos se empeñen en que pierda.
Sé que mis fans me harán grande,
mis haters me harán LEYENDA."



Premios






Dicho por Sayer301!
Tener que asumir que el alumno supera al maestro, puto Dani_SR_17 como controla de scripts.

Mis Tutoriales, Aportes e Investigaciones

-Recopilación de Scripts de Dani_SR_17-
-Colores del menú de info de los Pokémon-
-Pasar scripts usando la Refactorización-
-Pasar mapas de una Rom a otra y copias de seguridad-
-Pack de TextBox de Dani_SR_17-
-Daani Translate, por una Rom totalmente en Español-
-[Parche FR] No más Flashback-



Cheve, no he podido resistirme xD


_____Sexy?Sex
____?Sexy?Sexy
___y?Sexy?Sexy?
___?Sexy?Sexy?S
___?Sexy?Sexy?S
__?Sexy?Sexy?Se
_?Sexy?Sexy?Se
_?Sexy?Sexy?Se
_?Sexy?Sexy?Sexy?
?Sexy?Sexy?Sexy?Sexy
?Sexy?Sexy?Sexy?Sexy?Se
?Sexy?Sexy?Sexy?Sexy?Sex
_?Sexy?__?Sexy?Sexy?Sex
___?Sex____?Sexy?Sexy?
___?Sex_____?Sexy?Sexy
___?Sex_____?Sexy?Sexy
____?Sex____?Sexy?Sexy
_____?Se____?Sexy?Sex
______?Se__?Sexy?Sexy
_______?Sexy?Sexy?Sex
________?Sexy?Sexy?sex
_______?Sexy?Sexy?Sexy?Se
_______?Sexy?Sexy?Sexy?Sexy?
_______?Sexy?Sexy?Sexy?Sexy?Sexy
_______?Sexy?Sexy?Sexy?Sexy?Sexy?S
________?Sexy?Sexy____?Sexy?Sexy?se
_________?Sexy?Se_______?Sexy?Sexy?
_________?Sexy?Se_____?Sexy?Sexy?
_________?Sexy?S____?Sexy?Sexy
_________?Sexy?S_?Sexy?Sexy
________?Sexy?Sexy?Sexy
________?Sexy?Sexy?S
________?Sexy?Sexy
_______?Sexy?Se
_______?Sexy?
______?Sexy?
______?Sexy?
______?Sexy?
______?Sexy
______?Sexy
_______?Sex
_______?Sex
_______?Sex
______?Sexy
______?Sexy
_______Sexy
_______ Sexy?
________SexY

  #6  
14/05/2016
Predeterminado Respuesta: FR | [En progreso] Getspritepos
Gran investigación, no voy a usarlo porque no se me ocurre como podría servirme, pero me parece genial que hagan rutinas molonas como estas, sigue así tio c:
Mis Premios

  #7  
15/05/2016
Predeterminado Respuesta: FR | [En progreso] Getspritepos
Dicho por Dani_SR_17 Ver mensaje
Me renta muy, muy, muy mucho esto, es algo que siempre he echado en falta la verdad.

¿Funciona si el personaje esta fuera de pantalla o invisible?
A decir verdad, no tengo idea.
Respuesta

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 02:43.