Entidad 3D :: Creación de juegos en 3D sin programar

Foro de Entidad 3D
 
PortalÍndiceBuscarMiembrosGrupos de UsuariosFAQChatAnalisisRegistrarseConectarse
. . . . . . . . . . . . . . . . . . . . . . . .
Visita el sitio oficial de Entidad 3D para descargar la última versión!
Si encuentras un bug en la útlima versión de Entidad 3D, comunícaselo directamente al autor de Entidad 3D, Jordi Perez via correo electronico. Si no estás seguro si es un bug o no, consúltalo con la gente del foro!
Si eres un usuario nuevo preséntate en el subforo de saludos y despedidas para asegurar tu cuenta! (Los usuarios que tengan 0 mensajes pasados los primeros 10 días de creada su cuenta serán eliminados como política de limpieza del foro)

Comparte | 
 

 ACCI BUSCAR_CADENA ¿Bug o mala logica mia?

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Wizard
Experto
Experto
avatar

Último Juego : Murciélago v3.0
Sexo : Masculino
Mensajes : 609
Edad : 31
Localización : Perdido

MensajeTema: ACCI BUSCAR_CADENA ¿Bug o mala logica mia?   Vie Nov 27, 2015 3:34 pm

Muy buenas. Ando intentando hacer un control de barras de energía para múltiples enemigos al mismo tiempo y que no consuma muchas variables.

De momento con unas 14 variables se pueden controlar las barras de todos los enemigos que se quieran al mismo tiempo. Cada uno con su nivel de vida independiente, número de disparos para morir independiente.

Como es lógico entidad solo permite 10 barras diferentes así que los enemigos que compartan una barra se mostrará la vida que le quede al último que haya recibido el disparo. Alternándose según quien reciba el impacto, como en los antiguos juegos recreativos.

El problema viene cuando rellamo al *.ini y el ACCI BUSCAR_CADENA no encuentra la posición de la x en la variable pasada aunque esta si que la contiene. Mejor dicho, la encuentra en el primer disparo pero en los demás no la encuentra.

El problema se detecta en esta parte del código:
Código:
; busca fin del valor
   ACCI OPE+ ce3d_enemigo_num 1
ACCI TEXT BUSCAR_CADENA "%ce3d_enemigos_vida_real%","%ce3d_enemigo_num%","x"
   ACCI BUSCAR_CADENA ce3d_enemigos_vida_real,%ce3d_enemigo_num%,x
ACCI TEXT BUSCAR_CADENA "%ce3d_enemigos_vida_real%","%ce3d_enemigo_num%","x"
   ACCI PONE posMed=%POS_CADENA_ENCONTRADA%
ACCI TEXT %POS_CADENA_ENCONTRADA%

Los ACCI TEXT están para ver los datos que contienen las variables.

Aquí los *.ini:

Este hay que activarlo al comienzo del nivel:
archivo_activar_al_inicio.ini
Código:
;
; Inicia los valores de los enemigos
;
   ACCI PONE ce3d_enemigos_cant=4
   ACCI PONE ce3d_enemigos_vida_inicial=ix163x163x180x163x163x180xf
   ACCI PONE ce3d_enemigos_vida_real=ix163x163x180x163x163x180xf

Y este es el que hay que activa cada vez que se recibe un impacto en un enemigo:
barra_impacto.ini
Código:
;
; Ejecutamos en cada disparo
;
   ;
   ; Establecemos los valores iniciales que necesita cada enemigo
   ;
   ACCI PONE ce3d_enemigo_num=1
   ACCI PONE ce3d_enemigo_impactos=9
   ACCI PONE ce3d_enemigo_barra_num=1
   ACCI PONE ce3d_enemigo_barra_vacia=4
   ACCI PONE ce3d_enemigo_barra_valor_total=163

   ;
   ; Saca el valor de vida real del enemigo
   ;


   ; busca inicio del valor
   ACCI BUSCAR_CADENA ce3d_enemigos_vida_real,%ce3d_enemigo_num%,x
   ACCI PONE posIni=%POS_CADENA_ENCONTRADA%

   ; Extraemos el fragmento inicial
   ACCI COPIAR_SUB_CADENA ce3d_enemigos_vida_real,ce3d_enemigos_fragmento_ini,1,%posIni%

   ; busca fin del valor
   ACCI OPE+ ce3d_enemigo_num 1
ACCI TEXT BUSCAR_CADENA "%ce3d_enemigos_vida_real%","%ce3d_enemigo_num%","x"
   ACCI BUSCAR_CADENA ce3d_enemigos_vida_real,%ce3d_enemigo_num%,x
ACCI TEXT BUSCAR_CADENA "%ce3d_enemigos_vida_real%","%ce3d_enemigo_num%","x"
   ACCI PONE posMed=%POS_CADENA_ENCONTRADA%
ACCI TEXT %POS_CADENA_ENCONTRADA%
   ; Extraemos el valor de vida del enemigo
   ACCI OPE- posMed 1
   ACCI OPE+ posIni 1
   ACCI COPIAR_SUB_CADENA ce3d_enemigos_vida_real,ce3d_enemigo_barra_valor,%posIni%,%posMed%

   ; busca fin del fragmento
   ACCI BUSCAR_CADENA ce3d_enemigos_vida_real,1,f
   ACCI PONE posFin=%POS_CADENA_ENCONTRADA%

   ; Extraemos el fragmento final
   ACCI OPE+ posMed 1
   ACCI COPIAR_SUB_CADENA ce3d_enemigos_vida_real,ce3d_enemigos_fragmento_fin,%posMed%,%posFin%

   ; Calcular valor de resto por impacto
   ACCI PONE ce3d_enemigo_resta=%ce3d_enemigo_barra_valor_total%
   ACCI OPE/ ce3d_enemigo_resta %ce3d_enemigo_impactos%

   ; Calculamos el valor relativo al tamaño de la barra
   ACCI OPE- ce3d_enemigo_barra_valor %ce3d_enemigo_resta%

   ; Modificamos el valor mostrado
   ACCI BARRAVALOR %ce3d_enemigo_barra_num% %ce3d_enemigo_barra_valor%

   ; Ponemos la barra
   ACCI BARRAVISIBLE %ce3d_enemigo_barra_num%

   ;Matamos al enemigo si ha llegado al minimo y eliminamos la barra de la vista
   IF COND ce3d_enemigo_barra_valor<ce3d_enemigo_barra_vacia
      ; Asignamos el valor de la vida real
      ACCI PONE ce3d_enemigo_barra_valor=%ce3d_enemigo_barra_valor_total%
      ; Hacemos invisible la barra al morir
      ACCI BARRAINVISIBLE %ce3d_enemigo_barra_num%
      ; Pon aqui lo que quieras que se ejecute cuando muera el enemigo
      ACCI TEXT Enemigo muerto
   ENDIF

   ; Actualizamos el valor de vida real
   ACCI PONE ce3d_enemigos_vida_real=%ce3d_enemigos_fragmento_ini%%ce3d_enemigo_barra_valor%%ce3d_enemigos_fragmento_fin%

A ver si alguien ve si hay un problema de lógica o es un bug al andar reasignado el valor de las variables todo el rato.

________________________________________
[Tienes que estar registrado y conectado para ver este vínculo]
| [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] |
Volver arriba Ir abajo
Ver perfil de usuario http://www.comunidad-e3d.com
croviman
Moderador
Moderador
avatar

Último Juego : Aporía2
Sexo : Masculino
Mensajes : 1963
Edad : 37
Localización : Canelones

MensajeTema: Re: ACCI BUSCAR_CADENA ¿Bug o mala logica mia?   Vie Nov 27, 2015 4:10 pm

Tus lineas de comandos me parecen correctas... Puede deberse a un bug... Tendría que pensarlo desde cero para estar seguros viendo si se presenta dicho "bug" desde otra lógica diferente.

________________________________________
[Tienes que estar registrado y conectado para ver este vínculo]
Volver arriba Ir abajo
Ver perfil de usuario http://http.//atmosferismos.blogia.com
estantaya
Avanzado
Avanzado
avatar

Último Juego : Sur Survival
Sexo : Masculino
Mensajes : 273
Edad : 30
Localización : Mi casa

MensajeTema: Re: ACCI BUSCAR_CADENA ¿Bug o mala logica mia?   Sáb Nov 28, 2015 7:24 am

no lo vi completo pero el unico problema que tube cuando utilizaba valores de una variable era comparar texto en vez de numeros
ce3d_enemigo_barra_valorantes de comparar multiplica las variables *1 por las dudas
Volver arriba Ir abajo
Ver perfil de usuario http://33.media.tumblr.com/04ce0ed37cbf34da18782f49a8b3765d/tumb
Wizard
Experto
Experto
avatar

Último Juego : Murciélago v3.0
Sexo : Masculino
Mensajes : 609
Edad : 31
Localización : Perdido

MensajeTema: Re: ACCI BUSCAR_CADENA ¿Bug o mala logica mia?   Sáb Nov 28, 2015 5:31 pm

El 'fallo' no me lo da en una comparación sino en una búsqueda de texto en texto

________________________________________
[Tienes que estar registrado y conectado para ver este vínculo]
| [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] | [Tienes que estar registrado y conectado para ver este vínculo] |
Volver arriba Ir abajo
Ver perfil de usuario http://www.comunidad-e3d.com
Contenido patrocinado




MensajeTema: Re: ACCI BUSCAR_CADENA ¿Bug o mala logica mia?   

Volver arriba Ir abajo
 

ACCI BUSCAR_CADENA ¿Bug o mala logica mia?

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» Queja sobre mala moderación sobre los títulos en FDF
» Mala actitud de staff
» Tabla mala
» Mala alineación de mini menú
» Mala recepción del WiFi

Permisos de este foro:No puedes responder a temas en este foro.
Entidad 3D :: Creación de juegos en 3D sin programar :: Entidad 3D :: Comandos-