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 - NOKAUBURE

61
Preguntas y respuestas / Re: variables que esten siempre
Noviembre 25, 2011, 08:43:01 PM
Global Game settings > treat unitialized variables as 0

La opcion que soluciona la mayoria de errores de variables xD siempre lo estoy diciendo
62
Preguntas y respuestas / Re: Mover emisor
Noviembre 23, 2011, 07:42:59 PM
Primero de todo, con ese codigo funcionando una media hora mas o menos, se te petara el juego, porque estas creando a cada step un emiter.

Lleva esto al evento create (te he creado una variable nueva, emi1)
[gml]
pat1=part_type_create();
sis1=part_system_create();
emi1=part_emitter_create(sis1);
[/gml]

Y esto en el evento step:
[gml]part_type_shape(pat1,12);
part_type_size(pat1,0.40,0.25,-0.01,0);
part_type_direction(pat1,0,0,0,0);
part_type_gravity(pat1,0,0);
part_type_speed(pat1,0,0,0,0);
part_type_life(pat1,32,31);
part_type_blend(pat1,0);
part_type_color1(pat1,c_red);
part_type_alpha1(pat1,1);
part_emitter_region(sis1,emi1,x-2,x+2,y-2,y+2,ps_shape_rectangle, ps_distr_linear);
part_emitter_burst(sis1, emi1, pat1, 3);[/gml]

No lo he probado pero supongo ke ira bien
63
Preguntas y respuestas / Re: Variable cambia en el tiempo
Noviembre 15, 2011, 09:16:19 PM
siempre sugiero activar en todos los juegos lo de "treat uninitialized variables as 0", pa evitar errores y ahorrarte el tedioso trabajo de iniciar variables xP
64
Preguntas y respuestas / Re: encriptado de recursos
Noviembre 13, 2011, 12:03:20 PM
siempre tienes la opcion de quitarles el formato a los archivos, por ej:

"fondodepantalla.png" le cambias el nombre a "FDP"

El gamemaker lo carga como si se tratase de una imagen, y la gente no sabe que diablos es ese archivo.

Otra opcion es marcarlo como oculto
65
Cita de: Texic en Noviembre 12, 2011, 01:13:16 PM
As?p
[gml]if string_count("veneno",argument0)<>0 or string_count("sangrado",argument0)<>0
{
buffdamage[repeat4]=0
}[/gml]

^^ solucionado

el argument0 tenia que ser un string por fuerza, se me olvido especificar eso, pero ya esta arreglado
66
Buenas, estoy mirando de simplificar mis codigos. Primero de todo, soy una persona que hace uso excesivo del or, del and, y de las arrays en 1D xP

Como hago para que en vez de poner tanto or, mire que si las primeras letras de la variable son 'veneno' o 'sangrado', ejecuta el codigo??

[gml]if argument0 = 'veneno1' or argument0 = 'veneno2' or argument0 = 'veneno3' or argument0 = 'sangrado1' or argument0 = 'sangrado2' or argument0 = 'sangrado3'
{
buffdamage[repeat4] = 0
}[/gml]

Ese tipo de cosas las tengo en muchisimos sitios y ocupan un espacio increible... (hasta incluso hay codigos con mas de 10 or)

PD: Eso es un trozo de script, creo que no hace falta que lo enganche todo.
67
Preguntas y respuestas / Re: Problemas con los sonidos
Noviembre 12, 2011, 11:22:07 AM
para el sonido del escenario usa sound_loop(sonido).

Te aconsejo que los sonidos sean .wav y las musicas de fondo .mp3 o .midi (el midi ademas permite cambiarlo de volumen dentro del juego).

Si el problema persiste, fijate en las opciones del sonido. La casilla "normal sound" es para sonidos, y la casilla "background music" para las musicas de fondo. Nunca marques la casilla "use media player", hace el juego bastante lento.
68
Preguntas y respuestas / Re: problemas del game maker
Noviembre 07, 2011, 04:11:26 PM
1? opcion: debug mode, y miras las local variable y las global variable. De alli detectas el error

2? opcion: pones las piezas de codigo de cada edificio

con la explicacion que das, no se entiende nada  :-[
69
Preguntas y respuestas / Re: Movimiento limitado por zona
Noviembre 04, 2011, 04:23:57 PM
Buenas, prueba esto en el evento colision (con los bloques invisibles) de tu objeto amarillo:

if keyboard_check(vk_space) = false
{
x = xprevious
y = yprevious
}


Haz que los bloques NO SEAN SOLIDOS. Con ese code haras que al mantener pulsado SPACE, los puedas atravesar.
70
Preguntas y respuestas / Re: Disparo en ocho direcciones
Noviembre 02, 2011, 04:00:43 PM
Haber, para disparar una bala donde haces click, en el evento create de la bala deberias poner:

[gml]direction = point_direction(x,y,mouse_x,mouse_y)
speed = 20[/gml]

Para que salgan las balas en la punta de la pistola, bueno, supongo que la pistola es una instancia a parte.... si el center point esta en el mango (que es lo normal), solo debes ajustar la bala a una posicion relativa al crearla
71
EDITADO: Ya lo solucione uf  :-[

[gml]if selected = 0
{
if equipo = 0 {skilltarget = jugador}
if equipo = 1 {skilltarget = enemigo}
for( i = 0 ; i < instance_number(skilltarget) ; i += 1 )
{
   obj = instance_find(skilltarget,i);
   if( obj.HP < obj.MAXHP ) and point_distance(x,y,obj.x,obj.y) < 600
   {
       allyid = obj;
       break;
   }
}
}[/gml]

Esta pieza de codigo para el CPU encuentra una unidad de mi mismo bando da?ada, y si no esta a 600 pixeles de distancia, busca otra
72
Pon Run in debug mode (un icono con una flecha roja)

Ahora te saldra la misma barra de carga pero con letras (loading sounds... loading sprites...)
Fijate exactamente en que punto te sale ese mensaje. Por ejemplo, si mientras dice loading sounds, aparece el mensaje de corrupto, borra los ultimos sonidos que pusiste.
Si es en sprites, los ultimos sprites. Asi succesivamente.

El fallo de corrupt suele pasar en el sector de backgrounds, almenos a mi siempre me pasa con los backs
73
Elvis, probe tu opcion, y en el script de habilidades puse esto:

[gml]if skill[argument0] = 'sanar'
{
if instance_exists(allyid) = false
{
if equipo = 0 {allyid = instance_nearest(x,y,jugador)}
if equipo = 1 {allyid = instance_nearest(x,y,enemigo)}
}
if allyid.HP < allyid.MAXHP and point_distance(x,y,allyid.x,allyid.y) < 600
{
// variables del sistema
speed = 0
notkiteable = 0
ataking = 1
usingskill = 1
extradamage = 1
cooldown[argument0] = 60
sprite_index = spriteskill[argument0]
image_index = 0
sound_play(sanar)
// Lo siguiente sirve para crear un texto de 30 steps encima de allyid con la CANTIDAD de HP sanada
if (allyid.MAXHP-allyid.HP)  < 200 {heal = allyid.MAXHP-allyid.HP}
else {heal = 200}
allyid.HP += 200
ID = instance_create(allyid.x,allyid.y-allyid.ytop,substract); with(ID) text = other.heal; with(ID) heal = 1;
faceto(allyid)
}
}[/gml]

Ignorad todas esas variables, forman parte del sistema del juego. Vale, con este codigo, los clerigos curan.... pero SOLO A ELLOS MISMOS ( a no ser que los maneje yo, entonces curo a quien quiero con el click derecho ). Mi teoria esque el juego busca un jugador alrededor, y al que esta mas cerca le pregunta si tiene HP quitada, y si le responde que no, deja de buscar.

Estaba pensando en que cada objeto cree un subobjeto llamado atencion, sea invisible y redirija a la ip del creador. Pero eske si hago esto, realentizare el juego (40 unidades, 20 de cada bando y con un subobjeto, serian 80 instancias!!!)



Maanu, todo y que tu ejemplo no era lo que buscaba, me acabas de dar la solucion a otro problema que tenia xD

Algunas unidades, como el guerrero, hacen atakes terremoto, es decir, da?an a unidades adyacentes. Como no sabia hacerlo, simplemente creaba una instancia que duraba 1 step, y los que colisionaran con esa instancia se quitaban vida. De tu manera me ahorro instancias, esta muy bien ^^
74
Buenas, estoy haciendo un juego tipo age of empires. Hay 4 clases, guerrero, arquero, mago y clerigo. Ya acabe 3, el clerigo me da problemas.

Todas las unidades son controladas por el CPU a no ser que las seleccione yo (y las controle). El clerigo tiene 2 habilidades: martillazo y sanar. Pos weno resulta que la CPU solo hace martillazos, es decir, no detecta unidades aliadas para sanarlas.

Como hago para que:

- Una instancia busca a otra instancia (le devuelve la ID de esa instancia) dentro de una region circular de 600 pixeles y que tenga esta condicion: HP < MAXHP (la variable HP es menor que la variable MAXHP)


Es una pregunta dificil, de GML avanzado, pero lo agradeceria mucho ^^
75
Se pueden hacer animaciones simples, como caminar (rotar los pies y las manos constantemente). Eso de cargar 1 modelo por cada frame es una locura, si un caso coje un dll