Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - arcangelcaos

136
Gracias
137
Pues eso, como si un path ya se ha iniciado o no. Es que se pueden solapar la orden de iniciar el path desde 2 sitios, y quiero controlar que si ya se ha iniciado, que no se vuelva a iniciar.

Gracias.
138
No se si será esto, pero veo aquí esto

ORIGINAL
if (comp <= 15)             //se repite mientras comp no alcance el valor de 16
   alarm[0]=room_speed*1/3;


MODIFICADO
if (comp <= 15)             //se repite mientras comp no alcance el valor de 16
   {alarm[0]=room_speed*1/3;}
139
Aquí tienes un ejemplo, y funciona perfectamente. Algo tienes que tener mal en el código

Ahh, se me ha olvidado una cosa en el ejemplo, que como lo que quieres es segundo, esto cuenta step, pasos.
Para que te cuente los segundos tienes que hacer lo siguiente, en el step del objeto contador

if contar = true
pasos +=1
segundos = floor(pasos / room_speed)  // Esto lo que hace es pasarte los pasos a segundos. Porque tiene la room a 60, hasta que no pasen 60 pasos no habrá pasado un segundo.
140
No me hagas mucho caso, pero creo que ese evento de presed es mientras que este apretado. Ponlo en mouse left realese. Hay deve ir mejor
141
Muchisimas gracias. Viendo los consejos y enlaces y tal, he conseguido hacer una ia medio decente. Me explico.
No tienen rango de vision, ven a todas las unidades. El campo de batalla es pequeño. Lo que hago primero es cimprobar si hay alguien a quien atakar en rango, dado que eso si tienen. Si no hay nadie, buscan al "amigo" mas cercano. Luego con un script k tengo marcan las casillas a donde pueden ir con los movimientos que tienen. Algunos tienen 1, otros 2, o 3 hasta 4.
Luego con otro script busca el punto mas cercano al "amigo" detectado. Y despues se mueve alli, y luego realiza el script de atake.
Solo me keda por ver los que tiene 2 o mas de rango de atake que no tienen porque ir a la casilla mas cercana, si desde mas lejos llega atacando.
Mas o menos eso es lo que llevo hasta ahora. Por mas que veo los tuto y tal, no termino de cogerlo. Lo del algoritimo A*. Haber lo entiendo por no lo comprendo o como kerais verlo.
142
Tiene que poner obj_tiempo.contar=true.

Porque lo que haces es poner el true al contar del obj_salida.
143
Facil
en STEP
if contar = true
segundos +=1

CREATION
segundos=0
contar=false

Ahora, cuando le des a click donde digas, haces lo siguiente.     Contador.contar=true
suponiendo que el objeto se llame contador.
144
Exacto, gracias. Eso es lo que necesito. Pero estoy un poco perdido con las grids. Los movimientos de mis unidades si se hacerlas, porque soy yo el que elijo a donde ir. Pero con las de la ia, ando un poco perdido. Consigo que se muevan y vayan hacia tus unidades y le ataken, pero segun la posicipn del resto, a veces hacen movimientos ilógicos, y no consigo desarrollar un script aceptable.
Yo he visto muchos script, pero todos para moverlos tu. No la ia, y hay es donde me pierdo un poco. Lo mas seguro es que lo este enfocando mal, pero llevo casi 2 semanas dandole vueltas y no consigo imaginarme uno que funcione bien, o el que me imagino no es nada optimizado. Es con muchisimos if. Si tienes tiempo y ganas haber si me hechas una pequeña mano.
Si puedes o kieres kedamos por teamviewer o algo asi, y te enseño como va la cosa.  Ten en cuents que soy autodidacta, asi que kizas este todo hecho un churro... XD
145
Hola, llevo una semana, y no hay manera de conseguir una ia decente en cuanto al movimiento.
Tengo una room con unas grid en forma de rombos, no cuadradas.
La cosa es que la fila en la que estoy tiene 96pixlees de ancho, pero las filas superior e inferior esta a 72 de alto, es por la forma de rombo.
Tengo suelos que consumen más puntos de movimientos que otros.
Yo tengo lo siguiente es psuocodigo.(no me acuerdo como se escribe)

Detecte "amigo", soy yo.
Si es la misma y, comprueba la x, para mover a derecha o izquierda.
Comprueba si se puede mover al siguiente rombo, si no, comprueba el de arriba, y si no el de abajo.
Si no se puede mover a ninguno, comprueba si tiene mas 2 o mas movimientos y comprueba a 2 rombos de distancia.
Cuando consigue moverse, si le quedan movimiento vuelve a comprobar. Así hasta 0 movimientos.
Igual para todas las posibles y, menos y, mas y, menos x, mas x,......

Lo que pasa es que a veces con este código hace retronó, por ejemplo, delante no puede, mueve arriba, cuando llega arriba, no puede, vuelve abajo. Entonces no hace nada verdaderamente.

Alguno me puede orientar algo, como lo haría, quizás este planteando mal el movimiento, solo tiene ese fallo, que según la cantidad de amigos y la posición de los bosques, pantanos, que cuestan mas movimientos, no se mueve prácticamente, se queda en el mismo sitio, y si tiene por donde ir.

Con los movimientos de mis personajes no hay problema porque yo elijo donde ir.

Gracias al que me eche una mano.
146
draw_text_transformed(x-150,y-20,"Turno:" + string(turno),1,1,90)

En studio esta función, no tengo la 8.1 y no se si existirá
El ultimo número, 90, es para indicar la inclinación en grados.
Espero te sirva
147
if mouse_check_button_pressed(mb_left) && imageNumber <4 {imageNumber+=1}
eso ya lo hace el propio evento. Si es botón izquierdo. Solo siria comprobar la imageNumber


if keyboard_check(vk_right) {image_index=1};   Es para que es?? que si le da con el derecho cambia?? esto no puede ir en el evento left, porque es right.

if imageNumber == 0 {image_index=0}
if imageNumber == 1 {image_index=1}
if imageNumber == 2 {image_index=0}
if imageNumber == 3 {image_index=1}
if imageNumber == 4 {imageNumber=0}

Porque hay tantas imagenNumber, si solo hay 2 image_index. Lo usas para otra cosa??

SERIA ASI MAS O MENOS
EVENTO MOUSE LEFT
if imageNumber < 4 {iamgeNumber +=1}
if imageNumber == 0 {image_index=0}
if imageNumber == 1 {image_index=1}
if imageNumber == 2 {image_index=0}
if imageNumber == 3 {image_index=1}
if imageNumber == 4 {imageNumber=0}

EVENTO MOUSE RIGHT
image_index=1

Aquí no se si tiene sentido poner los if de imageNumber, dado que lo que quieres es que este a 1, dando igual la imageNumber, no??
148
Haber si me explico, donde se ponen el CREATE, STEP, DRAW, etcc,  si buscad, hay uno que pone mouse, y dentro de el esta, mouse left preses, mouse left realice, etcc. Que son al apretar y al soltar. Hay mas, es cuestión que cojas el que más te gusta.
Este evento solo se ejecuta cuando el mouse haga eso que has puesto, y este tocando el objeto, revísate la mascara, que puede que este mal.

http://www.dazlog.com/manual_GM/Eventos.htm
149
Hay una cosa que no entiendo, si ya hay un evento que si aprietas el botón, o lo levantas, porque los usas en el step??
Si hay unos eventos específicos para ello??
150
Cita de: Clamud en Mayo 27, 2015, 08:06:26 PM
Pienso que hacer un objeto por botón donde sólo se cambian unas cuantas variables es demasiado. Yo haría un sólo objeto botón con muchas instancias en la room creadas con un ciclo for.

Estoy de acuerdo, asi hago yo en algunos sitios, pero luego hay que asignarles un código diferente a cada una. Hay es donde esta el problema. Por eso digo si son fijos, usar las coordenadas para usar un código u otro.