Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: kaliman777 en Agosto 11, 2011, 04:13:27 PM

Título: Por favor, reord?nenme este c?digo
Publicado por: kaliman777 en Agosto 11, 2011, 04:13:27 PM
El problem es que GM8 no me est? respetando el else, me cumple cualquiera de estos c?digos y viola el else. O lo m?s com?n, usa el primero de todos cuando debi? usar el ?ltimo u otro. Espero me ayuden a ordenarlo mejor. Gracias 8)

[gml]
if global.coins=5 and global.ganado>=1 {global.ganancias=global.ganado*5 global.total+=global.ganancias}
else

if global.coins=4 and global.ganado>=1 {global.ganancias=global.ganado*4 global.total+=global.ganancias}
else

if global.coins=3 and global.ganado>=1 {global.ganancias=global.ganado*3 global.total+=global.ganancias}
else

if global.coins=2 and global.ganado>=1 {global.ganancias=global.ganado*2 global.total+=global.ganancias}
else

if global.coins=1 and global.ganado>=1 {global.ganancias=global.ganado*1 global.total+=global.ganancias}
else

if global.coins=5 and tripl=1
{global.ganancias=global.ganado*15 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}
else
if global.coins=4 and tripl=1
{global.ganancias=global.ganado*12 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}
else
if global.coins=3 and tripl=1
{global.ganancias=global.ganado*9 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}
else
if global.coins=2 and tripl=1
{global.ganancias=global.ganado*6 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}
else
if global.coins=1 and tripl=1
{global.ganancias=global.ganado*3 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}


[/gml]
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: Gabriel Moreno en Agosto 11, 2011, 04:20:08 PM
Porque Mejor No Solo Quitas Los "else" ;)
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: Zeit en Agosto 11, 2011, 04:34:15 PM
Hola, utiliza { } para agrupar los else asi como los for, saludos.
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: brunoxzx en Agosto 11, 2011, 08:26:11 PM
Cita de: Zeit en Agosto 11, 2011, 04:34:15 PM
Hola, utiliza { } para agrupar los else asi como los for, saludos.
No hay ningun for XD.

y bueno kaliman777 yo solo te puedo decir que para cosas como esa existe el "switch" si no sabes que es busca en el manual.
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: Zeit en Agosto 11, 2011, 08:41:40 PM
Hola, perdon a los if, else, for, etc... si es que los hay... Saludos.
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: Gabriel Moreno en Agosto 11, 2011, 09:31:48 PM
Creo Qe Seria Mucho Mejor Quitar Los else porque en ese codigo no sirven para nada....

if global.coins=5 and global.ganado>=1 ,{global.ganancias=global.ganado*5 global.total+=global.ganancias};


if global.coins=4 and global.ga,nado>=1 {global.ganancias=global.ganado*4 global.total+=global.ganancias}


if global.coins=3 and global.ganado>=1 {global.ganancias=global.ganado*3 global.total+=global.ganancias};

if global.coins=2 and global.ganado>=1 {global.ganancias=global.ganado*2 global.total+=global.ganancias};


if global.coins=1 and global.ganado>=1 {global.ganancias=global.ganado*1 global.total+=global.ganancias};


if global.coins=5 and tripl=1
{global.ganancias=global.ganado*15 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)};

if global.coins=4 and tripl=1
{global.ganancias=global.ganado*12 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)};

if global.coins=3 and tripl=1
{global.ganancias=global.ganado*9 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)};

if global.coins=2 and tripl=1
{global.ganancias=global.ganado*6 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)};

if global.coins=1 and tripl=1
{global.ganancias=global.ganado*3 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)};


Y Si No Sirve, Poner if "codigo{codigo}else{}"
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: ordo_ab_chao en Agosto 11, 2011, 10:08:56 PM
yo lo har?a as?
[gml]
if global.ganado>=1
{global.ganancias=global.ganado*global.coins
global.total+=global.ganancias}

if global.coins=5 and tripl=1
{global.ganancias=global.ganado*15 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)};[/gml]
espero que te ayude :D
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: kaliman777 en Agosto 12, 2011, 12:09:10 AM
Bueno, gracias a por todas sus respuestas.

Parece que GM se enreda a veces con los c?digos, de hecho he comprobado que obvia algunos y comprobado de verdad, porque al verificar el error, no exist?a. Esto pasa sobretodo cuando colocas decenas de c?digos casi id?nticos (combinacones ganadoras de tragamonedas por ejemplo).

Y comprob? adem?s que si usas m?s de 20 veces en una room instance_activate(object) despu?s de x n?mero ya no se activan. :-\

Reordenar no ayuda mucho si el c?digo est? bien, lo interpreta igual.

Talvez debo crear m?s variables para hacerle al GM8 que tenga m?s condiciones de filtro.

Gracias y estamos en contacto.
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: brunoxzx en Agosto 12, 2011, 04:46:32 AM
@kaliman777: la verdad creo que todo lo que dices es error humano, y como no cometerlos con tantos if y elses, deber?as de usar una operaci?n matem?tica para hacer estas cosas.


revisa si poniendo corchetes funciona.

[gml]if global.coins=5 and global.ganado>=1 {global.ganancias=global.ganado*5 global.total+=global.ganancias}
else{

if global.coins=4 and global.ganado>=1 {global.ganancias=global.ganado*4 global.total+=global.ganancias}
else{

if global.coins=3 and global.ganado>=1 {global.ganancias=global.ganado*3 global.total+=global.ganancias}
else{

if global.coins=2 and global.ganado>=1 {global.ganancias=global.ganado*2 global.total+=global.ganancias}
else{

if global.coins=1 and global.ganado>=1 {global.ganancias=global.ganado*1 global.total+=global.ganancias}
else{

if global.coins=5 and tripl=1
{global.ganancias=global.ganado*15 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}
else{
if global.coins=4 and tripl=1
{global.ganancias=global.ganado*12 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}
else{
if global.coins=3 and tripl=1
{global.ganancias=global.ganado*9 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}
else{
if global.coins=2 and tripl=1
{global.ganancias=global.ganado*6 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}
else{
if global.coins=1 and tripl=1
{global.ganancias=global.ganado*3 global.total+=global.ganancias instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}}}}}}}}}}[/gml]

p.d mejor te dejo una simple operaci?n para reemplazar eso.
[gml]
global.ganancias=global.ganado*global.coins*(1+tripl*2)
global.total+=global.ganancias
if tripl {instance_create(408,316,obj_x3)sound_play(campana)sound_play(campana)}
[/gml]

Edit: ahora que lo veo ordo_ab_chao tambien habia echo una operaci?n mas corta
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: kaliman777 en Agosto 12, 2011, 06:28:08 PM
Gracias, me gusta el ?ltimo c?digo, el del PD  8). Creo que aplicar? un poco de lo de cada uno, as? que gracias a todos.

Pronto colgar? este juego, que aunque no es de plataformas, es muy interesante, es un tipo de BINGO, donde las probabilidades y la suerte te podr?an hacer ganar millones de $ virtuales.

Hasta la vista.
Título: Re: Por favor, reord?nenme este c?digo
Publicado por: brunoxzx en Agosto 13, 2011, 12:44:27 AM
De nada kaliman777, espero haberte ayudado.