CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 14 Dic 2017 07:30

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: 31 Ene 2017 20:40 
Desconectado
Archivero
Archivero

Registrado: 05 Abr 2014 17:40
Mensajes: 264
Saludos. Espero que todo vaya bien.
En el juego de Adán y Eva hay un momento que necesito vaciar el inventario independientemente de lo que el jugador haya cogido.

- Es decir, el jugador irá agarrando X objetos.
- Llegará a X pregunta que al contestarla será puesto en X sitio del mapa.
- Al ser un punto en el mapa completamente distinto a donde estaba, requiero que todos los objetos que tenga en su inventario (solo llevados 254) le sean removidos.

El problema es cómo saber qué y cuántos objetos puede estar cargando en ese justo momento para poder quitárselos.
Me despido agradeciendo de antemanos la ayuda.


Arriba
 Perfil  
 
NotaPublicado: 01 Feb 2017 09:56 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
El testigo escribió:
Saludos. Espero que todo vaya bien.
En el juego de Adán y Eva hay un momento que necesito vaciar el inventario independientemente de lo que el jugador haya cogido.

- Es decir, el jugador irá agarrando X objetos.
- Llegará a X pregunta que al contestarla será puesto en X sitio del mapa.
- Al ser un punto en el mapa completamente distinto a donde estaba, requiero que todos los objetos que tenga en su inventario (solo llevados 254) le sean removidos.

El problema es cómo saber qué y cuántos objetos puede estar cargando en ese justo momento para poder quitárselos.
Me despido agradeciendo de antemanos la ayuda.


Esto es algo que normalmente se hace con DOALL:

Código:
CONTESTAR PREGUNTA
  WRITELN "Eres transportado a..."
  DOALL 254
  DESTROY @54
  DONE


No estoy 100% seguro de ese código, pero debe ser algo parecido.

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


Arriba
 Perfil  
 
NotaPublicado: 02 Feb 2017 15:41 
Desconectado
Aventurero
Aventurero

Registrado: 22 Ene 2017 10:32
Mensajes: 3
Quizás lo comentado en este hilo te pueda ayudar.

viewtopic.php?f=6&t=6026


Arriba
 Perfil  
 
NotaPublicado: 02 Feb 2017 18:23 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
erlope escribió:
Quizás lo comentado en este hilo te pueda ayudar.

viewtopic.php?f=6&t=6026



Hmm... creo que no, las soluciones aportadas en ese hilo utilizan funcionlidades de ngPAWS que Superglús al ser más antiguo no tiene.

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


Arriba
 Perfil  
 
NotaPublicado: 03 Feb 2017 01:00 
Desconectado
Archivero
Archivero

Registrado: 05 Abr 2014 17:40
Mensajes: 264
Saludos.

Gracias amigo erlope por la intención.
Amigo Uto, gracias por el dato. Lo he probado pero no hay manera.

Lo añadí tal cual al código de la última pregunta para cuando el jugador la responda, el personaje sea transferido a otro sitio con el GOTO
La intención hace lo que se espera. Es decir, al responder la última pregunta, el personaje es movido del mapa. Pero, al tomar el control del personaje y verificar el inventario, el mismo todavía conserva todos los objetos que tiene cogidos con anterioridad.

Por otra parte, siendo la última pregunta bastante apartada del inicio, para ahorrar tiempo y no tener que realizar el cuestionario una y otra vez para probar, he hecho un proyecto aparte con la siguiente entrada en la Tabla de Respuestas.
Código:
SALTAR _
AT 2
GOTO 10
DOALL 254; Como ves, esta línea y la de abajo son exactas las que me has dado
DESTROY @54
DESC

Así tal cual, sale raro puesto que lanza respuesta del salto tantas veces objetos posea en inventario en ese momento.
Si el personaje tiene 2 objetos, repite el mensaje de saltas 2 veces. Si tiene 5 objetos, pues repite el mensaje 5 veces ETC.
Ejemplo:
SALTAR

Saltas en el sitio sin conseguir nada.
Saltas en el sitio sin conseguir nada.
Saltas en el sitio sin conseguir nada.

Ahí se ve que en ese momento el personaje tiene 3 objetos en su poder.
Luego de repetir el mensaje tantas veces sean objetos, sí hace la transferencia de localidad con el fallo de que aún conserva los 3 objetos en el inventario.

¿Qué estaré haciendo mal?
¿Habrá alguna manera de usar un flag que copie los objetos y al momento de hacer la transferencia se destruya (DESTROY) el contenido de ese flag? O eso ya sería imposible.

¿No será que falta un no sé qué antes del DOALL?
Digo ya que vemos que el DOALL se utiliza anteponiendo la orden DEJAR TODO, COGER TODO. Tal cual, pareciera que se le estuviera diciendo: SALTAR TODO


Arriba
 Perfil  
 
NotaPublicado: 03 Feb 2017 10:26 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
El problema de tu rutina es el DESC, yo había puesto un DONE.

DOALL lo que hace es colocar en el flag 54 uno por uno todos los objetos que hay en la localidad indicada (254 en este caso) y después ejecuta los condactos o entradas que hay detrás de el DOALL. Cuando la tabla se termina con un DONE o un NOTDONE, vuelve otra vez al DOALL y pasa al siguiente objeto. Con mi ejemplo al salir con un DONE se van recorriendo y destruyendo todos los objetos, en el tuyo el DESC produce una salida del proceso con resultados difíciles de calcular (podría pasar cualquier cosa realmente).

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


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 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