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
Tienes que usar arrays o una lista de nombres, pero me voy mas por que uses arrays
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!
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 |
0 | Monstruo | 1 |
1 | Hipogrifo | 0 |
2 | Super Héroe | 0 |
3 | Mordor | 1 |
4 | Crafter | 0 |
5 | NadieMejorQueYo | 1 |
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
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???
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?
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
Creo que estas creando varias veces la lista, ponlo en un objeto aparte como te dijieron
al final lo solucione gracias Texic