CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 26 Ago 2019 06:15

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 8 mensajes ] 
Autor Mensaje
NotaPublicado: 14 Ago 2018 20:53 
Desconectado
Archivero
Archivero

Registrado: 05 Abr 2014 17:40
Mensajes: 277
Saludos aventureros. Espero que todo vaya bien.
Estoy por aquí de nuevo en mis andanzas. Al fin tengo nuevamente red fija en casa.


Si bien he avanzado en mis proyectos, también he estado muy mal físicamente, hasta el grado de permanecer en cama días enteros y utilizando collarín.
Lo que me da gusto, es que estoy casi seguro de que para diciembre a mas tardar, podré enviar algo para que todos puedan jugar, disfrutar y opinar.


En esta oportunidad necesito ayuda acerca de llevar un control de cantidades. Tengo esta entrada que me permite recargar el arma.
Comprueba que tenemos el arma, que el arma esta equipada, que tenemos balas y que el arma esta descargada.


; Tabla de Respuestas
RECARGAR _
NOTEQ fArmaEquipada 255
COPYFF fArmaEquipada fArma
PROCESS 14
DONE


; Proceso 14
_ _
CARRIED objPistola
EQ fArma 2
EQ fArmaEquipada objPistola
NOTZERO fPistolaBalas
ZERO fPistolaCargada
WRITELN "Introduces un cargador con 15 balas en la pistola."
MINUS fPistolaBalas 15
LET fPistolaCargada 15
DONE


Como se puede ver, la entrada permite recargar el arma con un número predefinido de balas, en este caso, 15.
Ahora bien, sería interesante que el jugador pueda recargar el arma independientemente de cuántas balas le quedan al arma.


Es decir, que el jugador va disparando y digamos que le quedan 3 balas en el arma, pues bien, sería genial que al enviar la orden de RECARGAR, el sistema le rellene el arma tomando en cuenta de cuántas balas tiene de espacio el arma.
En este caso, que rellene tan solo 12 balas así quedando MAS + las 3 que quedan, el arma llena con sus 15 balas. Obviamente, habrá que hacer una comprobación para que el arma no se recargue indefinidamente pudiendo tener 20, 48, 79 balas.


De igual manera, si dispara tan solo una vez quedando 14 balas en el arma, al enviar la orden RECARGAR el sistema le recargue solo 1 bala para que se llene de nuevo a 15.
Por otra parte, también se debe hacer eso con la bandera que contiene las balas para dar coherencia. Si el jugador tiene 44 balas, al recargar el arma que recte x unidades sean 3, 15 o 1. Sobre todo cuidar que si apenas se tiene 1 bala en el total, cuando recargue el arma recte esa única bala y no se vea la bandera luego con MENOS -9 balas.


Me despido esperando que tengan un buen día tarde noche


Arriba
 Perfil  
 
NotaPublicado: 15 Ago 2018 12:05 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4645
Hola!

Si he entendido bien el flag fPistolaBalas contiene el número de balas "sueltas" que tienes para recargar, mientras que fPistolaCargada contiene el número de balas en el cargador de la pistola.

en ese caso:

Código:
_ _
CARRIED objPistola
EQ fArma 2
EQ fArmaEquipada objPistola
NOTZERO fPistolaBalas
ZERO fPistolaCargada
WRITELN "Introduces un cargador con 15 balas en la pistola."
MINUS fPistolaBalas 15
PLUS fPistolaBalas @fPistolaCargada
LET fPistolaCargada 15
DONE


Es casi lo mismo que tenías, solo que le restamos 15 a las balas sueltas, pero luego le sumamos el numero de balas que aun quedaban en el cargador.

En cualquier caso esta operación no es correcta en todos los casos, porque tanto antes como ahora, si el total de balas en el cargador mas las sueltas no llega a 15, este sistema no funciona bien.

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
NotaPublicado: 15 Ago 2018 12:19 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4645
Así creo que lo hará bien en todos los casos. Es un poco enrevesado porque Superglús no soporta colon/sharp condacts como ngPAWs, pero creo funciona:

Código:
_ _
COPYFF fPistolaBalas fAux         ; Copio el numero de balas que tengo en flag auxiliar
PLUS fAux @fPistolaCargada  ; le sumo el número de balas en la pistola
GT fAux 15
LET fAux 15                            ; Calculo cuantas balas habrá al final en el cargador, como máximo 15

_ _
COPYFF fAux fAux2               ; Copio el dato final de balas en otro flag auxiliar
MINUS fAux2 @fPistolaCargada ; Calculo cuantas balas voy a cargar realmente

_ _
CARRIED objPistola
EQ fArma 2
EQ fArmaEquipada objPistola
NOTZERO fPistolaBalas
ZERO fPistolaCargada
WRITE "Introduces  "
PRINT fAux2
WRITELN " balas en la pistola."
MINUS fPistolaBalas @fAux2
LET fPistolaCargada @fAux
DONE

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
NotaPublicado: 16 Ago 2018 21:05 
Desconectado
Archivero
Archivero

Registrado: 05 Abr 2014 17:40
Mensajes: 277
Saludos amigo Uto. Muchas gracias por las entradas.
En efecto, la bandera "fPistolaBalas" actúa como si fuera una caja o riñonera donde meto todas las balas sueltas que vaya consiguiendo:


REGISTRAR CUERPO
AT locEntrada; En la entrada del complejo
PRESENT objSoldadoMuerto; Comprobar que el soldado ya no representa ninguna amenaza
NOTZERO fBalasSoldado; Vemos que aún no se ha cogido la munición
WRITELN "Registras el cuerpo del soldado consiguiendo 70 balas."
PLUS fPistolaBalas 70; Sumamos +70 balas a la cuenta total que contiene la bandera "fPistolaBalas"
SET fBalasSoldado; Marcamos que ya se ha cogido la munición
DONE


Y la bandera "fPistolaCargada" hace las veces del cargador del arma pudiendo contener un máximo de 15 balas
Al momento de disparar, simplemente se le resta 1 a la bandera que se supone es el cargador del arma:


DISPARAR _
(...); Todas las comprobaciones necesarias de que el arma está cargada, de que está equipada ETC
WRITELN "Disparas la pistola desperdiciando munición."
MINUS fPistolaCargada 1
DONE


Ahora bien, tu código a buenas y primeras sirvió. Al momento de coger el arma y dar RECARGAR, se imprimió el mensaje:
Introduces 15 balas en el cargador de la pistola.

Pero... (Que baile que nunca falta un pero...) cuando disparo el arma restando su cantidad de munición y doy nuevamente RECARGAR, no sucede nada.
Falta alguna línea o algo que compruebe que sin importar que el arma tenga las balas que sea, sean 1 o 14, se pueda recargar las balas necesarias para sumar de nuevo el total de 15 balas en el cargador.


_ _
COPYFF fPistolaBalas fAux; Copio el numero de balas que tengo en flag auxiliar
PLUS fAux @fPistolaCargada; Le sumo el número de balas en la pistola
GT fAux 15
LET fAux 15; Calculo cuantas balas habrá al final en el cargador, como máximo 15

_ _
COPYFF fAux fAux2; Copio el dato final de balas en otro flag auxiliar
MINUS fAux2 @fPistolaCargada; Calculo cuantas balas voy a cargar realmente

_ _
CARRIED objPistola
EQ fArma 2
EQ fArmaEquipada objPistola
NOTZERO fPistolaBalas
ZERO fPistolaCargada
WRITE "Introduces "
PRINT fAux2
WRITELN " balas en el cargador de la pistola."
MINUS fPistolaBalas @fAux2
LET fPistolaCargada @fAux
DONE


Y pues eso, cargo las 15 primeras balas en el arma, disparo las que sea (sin llegar a 0), doy de nuevo RECARGAR pero nada, no sucede nada de nada. Te obliga a que el arma esté vacía.


Arriba
 Perfil  
 
NotaPublicado: 20 Ago 2018 02:17 
Desconectado
Archivero
Archivero

Registrado: 05 Abr 2014 17:40
Mensajes: 277
Saludos espero que estén bien. :)
Solucionado el fallo (que ni fallo era, sino descuido por mi parte). :(


Hasta hoy me pude poner a revisar las entradas y se me cae la cara de vergüenza de ver que el detalle estaba en la línea seis de la tercera entrada. (Ciego tenía que estar para no verla).
La línea que comprueba de que el arma está completamente descargada (0 balas en su interior): ZERO fPistolaCargada


No había caído en cuenta puesto que copié el código entero y lo pegué íntegramente en mi proyecto y pues eso, se coló esa comprobación.
Pero lo dicho, hoy que me pude meter en ello, y viendo que en el juego el arma solo se puede recargar cuando está su carga a 0. Abrí código, eliminé esa línea y bien! todo funciona bien.


Muchísimas gracias amigo Uto por tu ayuda.
Me despido esperando que tengan buen día tarde noche.


Arriba
 Perfil  
 
NotaPublicado: 28 Abr 2019 12:39 
Desconectado
Archivero
Archivero

Registrado: 05 Abr 2014 17:40
Mensajes: 277
******************************
Saludos aventureros. Espero que estén bien :)

Adaptando el código de recargar el arma en mi juego, el mismo funciona a la mar de bien.
Lo malo como explico abajo, es intentar recargar el arma teniendo pocas balas. La prueba la hago con 30 balas pidiendo el arma 15 balas:

*-. Empuñamos el arma:
<empuñar pistola
Empuñas una pistola.

*-. Intentamos empuñarla de nuevo para comprobar que no salte mensaje de que la vuelves a empuñar (OBVIAMENTE, PRUEBAS DEL PROGRAMADOR PARA VER SI EL CÓDIGO FINAL NO DA ERROR AL JUGADOR):
<empuñar pistola
Ya la tienes empuñada.

*-. Recargamos el arma:
<recargar
Introduces 15 balas en el cargador de la pistola.

*-. Intentamos recargarla de nuevo para comprobar que no salte mensaje de que la vuelves a recargar ya estando al tope (OBVIAMENTE, PRUEBAS DEL PROGRAMADOR PARA VER SI EL CÓDIGO FINAL NO DA ERROR AL JUGADOR):
<recargar
La pistola ya está cargada.

*-. Comprobamos que el arma está a su tope:
<@200
15
*-. Comprobamos cuántas balas nos quedan:
<@201
15
*-. Accionamos el arma:
<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

*-. Comprobamos cuántas balas le quedan al arma:
<@200
8
*-. Comprobamos cuántas balas nos quedan:
<@201
15
<recargar
Introduces 7 balas en el cargador de la pistola.

<recargar
La pistola ya está cargada.

*-. Comprobamos que el arma está a su tope:
<@200
15
*-. Comprobamos cuántas balas nos quedan:
<@201
8
<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

*-. Comprobamos cuántas balas le quedan al arma:
<@200
11
*-. Comprobamos cuántas balas nos quedan:
<@201
8
<recargar
Introduces 4 balas en el cargador de la pistola.

<recargar
La pistola ya está cargada.

*-. Comprobamos que el arma está a su tope:
<@200
15
*-. Comprobamos cuántas balas nos quedan:
<@201
4
<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

*-. Comprobamos cuántas balas le quedan al arma:
<@200
10
*-. Comprobamos cuántas balas nos quedan:
<@201
4
<recargar

<recargar

<

Como podemos ver, el código de recargar el arma funciona bien. El problema surge cuando intentamos recargar el arma cuando tenemos pocas balas.
Es decir, el código al comprobar el número de balas totales, y el arma al solicitar 15 balas, sirve si o si siempre que tengamos más balas de las que pide el arma (O las suficientes para que el arma tenga 15 balas).

Si la capacidad del arma es de 15 balas, si está vacía y tenemos justas 15 balas, las recarga.
Ahora, si la capacidad del arma es de 15 balas y solo tenemos 4 balas, no sucede nada.

((RESUMIDO: 'El arma pide 15 balas. Si tienes más de 15, la recarga.' 'Si tienes 14, 10, 7, o 2 balas, no pasa nada puesto que 14, 10, 7 o 2 balas, no cumplen el requerimiento del arma que es de 15 balas.')).

; Recargar el arma
_ _
CARRIED objPistola
EQ fArma 0
ONOTZERO objPistola aWeapon
NOTZERO fBalasDePistola
COPYFF fBalasDePistola fTotalDeBalas
PLUS fTotalDeBalas @fPistolaCargada
GT fTotalDeBalas 15
LET fTotalDeBalas 15
COPYFF fTotalDeBalas fBalasFaltantes
MINUS fBalasFaltantes @fPistolaCargada
WRITE "Introduces "
PRINT fBalasFaltantes
WRITELN " balas en el cargador de la pistola."
MINUS fBalasDePistola @fBalasFaltantes
LET fPistolaCargada @fTotalDeBalas
DONE

Sería de agradecer una solución que permita introducir en el arma las balas que te quedan.
Si el arma te pide quince balas y solamente te quedan 4, 7, o 2 balas, poder recargar el arma con esas 4, 7, o 2 balas.

Me despido pidiendo disculpas por lo extenso del mensaje y esperando que tengan un buen día tarde noche.
******************************


Arriba
 Perfil  
 
NotaPublicado: 07 Jul 2019 06:29 
Desconectado
Aventurero
Aventurero

Registrado: 29 Jun 2019 05:40
Mensajes: 2
El testigo escribió:
******************************
Saludos aventureros. Espero que estén bien :)

Adaptando el código de recargar el arma en mi juego, el mismo funciona a la mar de bien.
Lo malo como explico abajo, es intentar recargar el arma teniendo pocas balas. La prueba la hago con 30 balas pidiendo el arma 15 balas:

*-. Empuñamos el arma:
<empuñar pistola
Empuñas una pistola.

*-. Intentamos empuñarla de nuevo para comprobar que no salte mensaje de que la vuelves a empuñar (OBVIAMENTE, PRUEBAS DEL PROGRAMADOR PARA VER SI EL CÓDIGO FINAL NO DA ERROR AL JUGADOR):
<empuñar pistola
Ya la tienes empuñada.

*-. Recargamos el arma:
<recargar
Introduces 15 balas en el cargador de la pistola.

*-. Intentamos recargarla de nuevo para comprobar que no salte mensaje de que la vuelves a recargar ya estando al tope (OBVIAMENTE, PRUEBAS DEL PROGRAMADOR PARA VER SI EL CÓDIGO FINAL NO DA ERROR AL JUGADOR):
<recargar
La pistola ya está cargada.

*-. Comprobamos que el arma está a su tope:
<@200
15
*-. Comprobamos cuántas balas nos quedan:
<@201
15
*-. Accionamos el arma:
<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

*-. Comprobamos cuántas balas le quedan al arma:
<@200
8
*-. Comprobamos cuántas balas nos quedan:
<@201
15
<recargar
Introduces 7 balas en el cargador de la pistola.

<recargar
La pistola ya está cargada.

*-. Comprobamos que el arma está a su tope:
<@200
15
*-. Comprobamos cuántas balas nos quedan:
<@201
8
<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

*-. Comprobamos cuántas balas le quedan al arma:
<@200
11
*-. Comprobamos cuántas balas nos quedan:
<@201
8
<recargar
Introduces 4 balas en el cargador de la pistola.

<recargar
La pistola ya está cargada.

*-. Comprobamos que el arma está a su tope:
<@200
15
*-. Comprobamos cuántas balas nos quedan:
<@201
4
<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

<disparar
Disparas la pistola desperdiciando munición.

*-. Comprobamos cuántas balas le quedan al arma:
<@200
10
*-. Comprobamos cuántas balas nos quedan:
<@201
4
<recargar

<recargar

<

Como podemos ver, el código de recargar el arma funciona bien. El problema surge cuando intentamos recargar el arma cuando tenemos pocas balas.
Es decir, el código al comprobar el número de balas totales, y el arma al solicitar 15 balas, sirve si o si siempre que tengamos más balas de las que pide el arma (O las suficientes para que el arma tenga 15 balas).

Si la capacidad del arma es de 15 balas, si está vacía y tenemos justas 15 balas, las recarga.
Ahora, si la capacidad del arma es de 15 balas y solo tenemos 4 balas, no sucede nada.

((RESUMIDO: 'El arma pide 15 balas. Si tienes más de 15, la recarga.' 'Si tienes 14, 10, 7, o 2 balas, no pasa nada puesto que 14, 10, 7 o 2 balas, no cumplen el requerimiento del arma que es de 15 balas.')).

; Recargar el arma
_ _
CARRIED objPistola
EQ fArma 0
ONOTZERO objPistola aWeapon
NOTZERO fBalasDePistola
COPYFF fBalasDePistola fTotalDeBalas
PLUS fTotalDeBalas @fPistolaCargada
GT fTotalDeBalas 15
LET fTotalDeBalas 15
COPYFF fTotalDeBalas fBalasFaltantes
MINUS fBalasFaltantes @fPistolaCargada
WRITE "Introduces "
PRINT fBalasFaltantes
WRITELN " balas en el cargador de la pistola."
MINUS fBalasDePistola @fBalasFaltantes
LET fPistolaCargada @fTotalDeBalas
DONE

Sería de agradecer una solución que permita introducir en el arma las balas que te quedan.
Si el arma te pide quince balas y solamente te quedan 4, 7, o 2 balas, poder recargar el arma con esas 4, 7, o 2 balas.

Me despido pidiendo disculpas por lo extenso del mensaje y esperando que tengan un buen día tarde noche.
******************************

----------------------------


Saludos aventureros. Espero se encuentren bien.
Analizando el código de el compañero eltestigo vengo a resolver la duda.
Nota: Esto está desarrollado en "ngPaws" con mis propias variables/flags. Espero quede muy bien detallado, explicado y bien comprendido!
Cualquier duda me mandan algun mensaje o dejen comentario.

Buscamos meter balas en la pistola, solo hasta 15 balas admite la pistola, así como también buscamos mirar el número de balas que estamos recargando en la pistola X número de balas sin pasar el límite de las 15.
Se busca evitar meter mas balas de las deseadas 15.
queremos ebitar meter balas cuando tenemos 0 en inventario.
Queremos evitar se descontrole el recargar las balas como arriba en los demás comentarios se ha explicado.


Codigo:
En solapa Definiciones:
; mis flags.
#define flg fBalasPistola 100 ;serán las balas introducidas en la pistola (en la recámara o cargador.)
#define flg fBalasInventario 101 ;las balas que vamos recogiendo al recorrer la aventura.
#define flg fBalasPistolaSumadas 102 ; el resultado de una suma. (fBalasPistola+fBalasInventario)
#define flg fQuince 103 ; flag definido a 15, siempre será 15.
#define flg fBalasRecargadas 104 ;flag Auxiliar para hacer truco de cuantas balas metemos en pistola al recargar. Nos ayudará con una operación matemática...

En vocabulário:
PISTOLA 50 noun
ARMA50 noun
BALAS 51 noun
BALA 51 noun

RECARGAR 115 verb
DISPARAR 116 verb
DISPARA 116 verb


En datos de Objetos:
/0 CARRIED 1 PISTOLA _ ATTR aFemale

Vamos a lo bueno!
en pro0 o tabla de respuestas:

; ********************* [[[ Coloca aqui tus propias respuestas ]]] *********************
; MIS RESPUESTAS:

;veremos cuantas balas me quedan en mi inventario. (son las que he ido recogiendo a lo largo de la aventura...)
_ BALAS
WRITE "Tienes "
PRINT fBalasInventario
WRITELN " balas disponibles."
DONE

; recargamos la pistola.

; no hay balas en riñonera/Inventario.
RECARGAR PISTOLA
CARRIED oPistola ;comprobar el que nuestra pistola está en el inventario.
LT fBalasPistola 15 ;Comprobación para validar que nuestra pistola tenga menos de 15 balas.
ZERO fBalasInventario ;Comprobamos el que ya no hay balas en inventario.
WRITELN "No te quedan mas balas."
DONE

; intento de recargar al ya estar con las 15 balas en recámara.
RECARGAR PISTOLA
CARRIED oPistola ;comprobar pistola en el inventario.
SAME fBalasPistola fQuince ;comprobamos que la pistola tenga quince balas.
WRITELN "La pistola ya está cargada."
DONE

; recargar cuando hay balas en riñonera/inventario.
;Nota: este bloque nos ayuda para cuando las valas del Inventario/riñonera sean < o = 15.
RECARGAR PISTOLA
CARRIED oPistola ;comprobamos la pistola en el inventario.
LT fBalasPistola 15 ;hay menos de 15 balas en la pistola.
NOTZERO fBalasInventario ;todavía tenemos balas en el inventario.
COPYFF fBalasPistola fBalasPistolaSumadas ;copiamos el valor de las balas en la pistola para realizar operación matemática.
ADD fBalasInventario fBalasPistolaSumadas ;sumamos las balas del inventario mas las balas que tenemos en pistola.
LT fBalasPistolaSumadas @fQuince ;comprobamos que el resultado de las balas sumadas sea menor a 15.
LET fBalasPistola @fBalasPistolaSumadas ;metemos todas las balas obtenidas de la suma de la pistola y el inventario. (ver más arriba)
SUB fQuince fBalasPistolaSumadas ; restamos a 15 las balas que metimos en la suma de las balas de la pistola mas las del inventario.
COPYFF fBalasInventario fBalasRecargadas ; copiamos el lo que exista en el inventario al otro flag. (fBalasRecargadas)
COPYFF fBalasPistolaSumadas fBalasInventario ;copiamos el valor el valor de la suma en el inventario.
WRITE "Recargas la pistola ingresando "
PRINT fBalasRecargadas ;imprimimos el número de balas que ingresamos (aquí es el producto final del truco de todas las operaciones matemáticas realizadas arriba)
WRITELN " balas en la recámara."
DONE

;Este bloque recargará balas cuando tengamos mas de 15 en el Inventario/riñonera.
RECARGAR PISTOLA
CARRIED oPistola ;comprobamos que la pistola esté llevada en inventario.
LT fBalasPistola 15 ;balas de la pistola menor que quince.
NOTZERO fBalasInventario ;tenemos balas en inventario/riñonera.
COPYFF fBalasPistola fBalasPistolaSumadas ;copiamos las balas que tenga la pistola en la recámara. Valor que usaremos más abajo para operación matemática.
ADD fBalasInventario fBalasPistolaSumadas ; sumamos las balas del inventario/riñonera a las balas que tubiésemos en la pistola.
GE fBalasPistolaSumadas @fQuince ;balas sumadas mayor o igual a quince.
COPYFF fQuince fBalasRecargadas ;copiamos 15 en el flg fBalasRecargadas, para más abajo realizar operación matemática.
MINUS fBalasRecargadas @fBalasPistola restamos de 15 las balas que hubiese en la pistola cargada.
LET fBalasPistola @fQuince ;truco, ponemos el flag con valor a 15, simulando que el cargador de la pistola tenga 15 balas en la recámara.
SUB fQuince fBalasPistolaSumadas ;restamos el valor del segundo flag al primero guardando el resultado en el segundo flag.
COPYFF fBalasPistolaSumadas fBalasInventario ;copiamos las balas quedantes al inventario.
WRITE "Recargas la pistola ingresando "
PRINT fBalasRecargadas ; resultado del truco de todas las operaciones matemáticas más arriba.
WRITELN " balas en la recámara."
DONE

; veremos cuantas balas hay en la pistola para usar el comando "disparar"
EXAMINAR PISTOLA
PRESENT oPistola
WRITE "La pistola tiene "
PRINT fBalasPistola
WRITELN " balas en la recámara."
DONE


; validamos si la pistola tiene 0 balas en la recámara cargadas.
DISPARAR _
CARRIED oPistola
ZERO fBalasPistola
WRITELN "No tienes balas en la pistola."
DONE

; vamos a usar las balas que tiene la pistola en la recámara, decrementamos.
DISPARAR _
CARRIED oPistola
NOTZERO fBalasPistola
MINUS fBalasPistola 1 ;aquí es donde hacemos el decremento de las balas que tenga la pistola en la recámara.
WRITELN "Disparas al aire gastando munición."
DONE



pro1:
bajo el AT 0 colocamos lo siguiente:
LET fQuince 15 ;para realizar los trucos matemáticos.
LET fBalasPistola 15 ;iniciamos la aventura con 15 balas en la pistola.
LET fBalasInventario 30 ;Iniciaremos la aventura con solo 30 balas en el inventario/riñonera.
Hasta otra! :)


Arriba
 Perfil  
 
NotaPublicado: 09 Jul 2019 12:43 
Desconectado
Archivero
Archivero

Registrado: 05 Abr 2014 17:40
Mensajes: 277
------------------------------
Saludos aventureros. Espero que todo vaya bien.

Muchas gracias por tu respuesta Guillermo. (Algo un poco... pero supongo se pueda optimizar).
Las entradas hacen lo que deben tanto en ngPaws como en Superglús. Pero lamentablemente en Superglús, ataca de nuevo el bug que se me ha presentado ya en varias ocaciones con distintos contadores como SALUD, TIEMPO, y otros donde se deban restar números.

<recargar
Recargas la pistola ingresando -12 balas en la recámara.

Sería de agradecer y mucho, que el amigo Uto cuando pueda le echara un ojo a ese detalle y espero que el mismo sea sencillo de solucionar.
Me despido esperando que tengan buen día tarde noche.
------------------------------


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 8 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM