Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Mr.Dudas en Julio 03, 2012, 04:17:24 PM

Título: Ayuda con choose
Publicado por: Mr.Dudas en Julio 03, 2012, 04:17:24 PM
en mi juego hay varios enemigos y ellos eligen un nombre a través de choose y me gustaría que no haya nombres repetidos pero no se como hacer he probado varias cosas como

if name = enemigo.name name=choose(nombre1,nombre2,nombre3,nombre4,nombre5,nombre6)

pero no me funciona alguien sabe otro script como este pero que funcione
Título: Re:Ayuda con choose
Publicado por: elviskelley en Julio 03, 2012, 05:08:29 PM
Tienes que usar arrays o una lista de nombres, pero me voy mas por que uses arrays
Título: Re:Ayuda con choose
Publicado por: Texic en Julio 03, 2012, 05:10:04 PM
Creá una lista de nombres y que se vayan borrando valores de la lista cuando cada uno tome su nombre. Así


global.lista=ds_list_create()
ds_list_add(global.lista,"Enemigo 1")
ds_list_add(global.lista,"Enemigo 2")
ds_list_add(global.lista,"Enemigo 3")
ds_list_add(global.lista,"Enemigo 4")
ds_list_add(global.lista,"Enemigo 5")
ds_list_shuffle(global.lista) //esto mezcla la lista

Después en cada enemigo ponés el código

name=ds_list_find_value(global.lista,0)
ds_list_delete(global.lista,0)


Saludos!
Título: Re:Ayuda con choose
Publicado por: ferhand en Julio 03, 2012, 05:22:03 PM
   Saludos Makero Mr.Dudas:


   Para resolver tu problema, puedes crear un "array" de nombres. Cada nombre tendrá un espacio para seleccionar. Si está seleccionado puedes marcarlo con un uno (1) en caso contrario puedes marcarlo con un cero (0).

Ejemplo:










ïndice del "array"nombre utilizado
0Monstruo1
1Hipogrifo0
2Super Héroe0
3Mordor1
4Crafter0
5NadieMejorQueYo1


    Solo tienes que entrar en cada nombre y preguntar si está siendo utilizado uno(1) o está desocupado cero(0).

  Cada vez que ocupes un nombre le cambias el cero por un uno.

  Espero te sirva de algo...  XD

Título: Re:Ayuda con choose
Publicado por: Mr.Dudas en Julio 03, 2012, 06:48:09 PM
Cita de: Texic en Julio 03, 2012, 05:10:04 PM
Creá una lista de nombres y que se vayan borrando valores de la lista cuando cada uno tome su nombre. Así


global.lista=ds_list_create()
ds_list_add(global.lista,"Enemigo 1")
ds_list_add(global.lista,"Enemigo 2")
ds_list_add(global.lista,"Enemigo 3")
ds_list_add(global.lista,"Enemigo 4")
ds_list_add(global.lista,"Enemigo 5")
ds_list_shuffle(global.lista) //esto mezcla la lista

Después en cada enemigo ponés el código

name=ds_list_find_value(global.lista,0)
ds_list_delete(global.lista,0)


Saludos!
utilice el script que me has dado pero salen nombres iguales que hago???
Título: Re:Ayuda con choose
Publicado por: Texic en Julio 03, 2012, 06:50:57 PM
Pues debería funcionar, asignaste bien los nombres y te aseguraste de que ese primer código que te di se ejecute UNA SOLA VEZ en un objeto aparte?
Título: Re:Ayuda con choose
Publicado por: Mr.Dudas en Julio 03, 2012, 07:07:13 PM
Cita de: Texic en Julio 03, 2012, 06:50:57 PM
Pues debería funcionar, asignaste bien los nombres y te aseguraste de que ese primer código que te di se ejecute UNA SOLA VEZ en un objeto aparte?
todo el codigo que me diste lo puse en create del enemigo y después puse varios enemigos y algunos tenian el nombre igual

Te dejo una imagen
Título: Re:Ayuda con choose
Publicado por: Mgbu en Julio 03, 2012, 07:47:34 PM
Creo que estas creando varias veces la lista, ponlo  en un objeto aparte como te dijieron
Título: Re:Ayuda con choose
Publicado por: Mr.Dudas en Julio 03, 2012, 08:14:28 PM
al final lo solucione gracias Texic