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.

Temas - Bangaran

1
Hola amigos

Tengo un problema a la hora de equipar algún ítem ya sea armas o alguna poción de salud.

he probado varias maneras pero no he pidido

Alguna idea que debo hacer para hacerlo??
paso el proyecto por si lo quieren revisar

2
Hola amigos

Tengo una consulta
ya solucionado el tema del inventario quisiera que cuando ya tenga los items en el inventario
en el cuadro de al lado al poner el mouse en el ítem salga la descripción del articulo.

alguien me pude ayudar guiarme

3
Hola amigos

tengo un inventario echo por un tutorial de youtube que pertenece a Woynert:

-Se puede abrir y cerrar el inventario
-Se pueden agregar los items
-Se pueden intercambiar los items
-Se pueden sacar los items del inventario

Pero quisiera que algunos items como por ejemplo las pociones se apilen
pero las espadas o las hachas no se apilen
los items en el create code de la room tiene su ID

no se si alguno me puede ayudar con eso
dejare el codigo

dejo el exportable por si acaso lo necesitan

sirve para GSM1 y para GSM2


ObjInventario

CREATE
[gml]///Variables
open = true;

L = 18; //Distancia entre dos slots
slotT = 16; //Total de slots

for (i = 1; i<=slotT; i++;) {
   slot = 0; //Item que almacena el slot i
}

//variables del mouse
mouse = 0;[/gml]

DRAW
[gml]//Dibujar Inventario

if open {
   var h = 0,
      k = 0,
      vx = view_xport,
      vy = view_yport,
      color = c_ltgray;
      
   for (i=1; i<=slotT; i++;) {
      //coordenadas individuales
      var sx = vx + L*k, sy = vy + L*h;
      
      //interaccion
      if point_in_rectangle(mouse_x, mouse_y, sx, sy, sx+16, sy+16) {
         //click
         if mouse_check_button_pressed(mb_left){
            //mouse vacio y slot lleno
            if mouse = 0 and slot != 0 {
               mouse = slot;
               slot = 0;
            }
            //mouse lleno y slot vacio
            else if mouse != 0 and slot = 0 {
               slot = mouse;
               mouse = 0;
            }
            //mouse lleno y slot lleno
            else if mouse != 0 and slot != 0 {
               //variable de respaldo
               var _item = slot;
               
               slot = mouse;
               mouse = _item;
            }
         }
         color = c_yellow;
      } else {
         color = c_white;
      }
      
      //fondo
      draw_sprite_ext(spr_borde, 1, sx, sy, 1, 1, 0, color, 1);
      
      //borde
      draw_sprite_ext(spr_borde, 0, sx, sy, 1, 1, 0, c_white, 1);
      
      //item
      if slot != 0 {
         draw_sprite(spr_items, slot, sx, sy);
      }
      
      //aumentar coordenadas
      k++;
      if frac(i/4) = 0 {
         h += 1;
         k = 0;
      }
   }
}

//Dibujar item del mouse
if mouse != 0 {
   //Dibujar item
   draw_sprite(spr_items, mouse, mouse_x-8, mouse_y-8);
   
   //Soltar item
   if mouse_check_button_pressed(mb_right) {
      with(instance_create_depth(obj_player.x-8, obj_player.y-8, 0, obj_item)){
         item = other.mouse;
      }
      mouse = 0;
   }
}[/gml]

KEY-PRESS-E
[gml]//Abrir y Cerrar

if open {
   open = false;
} else {
   open = true;
}
[/gml]


ObjItem

DRAW
[gml]//Dibuja inventario

image_index = item;
draw_self();[/gml]

LEFT PRESSED
[gml]//Agarra item

if scr_agregar(item) {
   instance_destroy();
}
[/gml]

SCRIPTS
[gml]
   var _item = argument0;
   
   with obj_inventario {
      for ( i = 1; i <= slotT; i++;) {
         if slot = 0 {
            slot = _item;
            return(1);
            exit;
         }
      }
      return(0);
   }[/gml]


https://www.youtube.com/watch?v=PVKWKjJh3rs Aca esta el link del video
4
Hola amigos tengo una barra de vida para los enemigos

Es el mismo enemigo por ende el mismo objeto
pero cuando ataco a uno de ellos !! la barra se les baja a todos

que podria hacer para que no me suceda eso

coloco el codigo con el que gestiono la parte de la vida y de la barra de vida del enemigo

CREATE
[gml]Create
///Inicializacion
event_inherited();

enum es {
    parado = serpienteParado,
    corriendo = serpienteCorriendo,
    atacando = serpienteAtacando,
    muriendo = serpienteMuriendo
}

dir = "abajo";          //Direccion miramos por defecto
estado = es.parado;     //Estado por defecto
//vida = 10;               //Vida por defecto

radio_ataque = 18;      //Radio para empezar a atacar
crear_ataque = true;    //Crea el ataque
perseguir = false;      //Enemigo nos persige

//Codigo para caminata aleatoria
dx = -1; // Destino X al que se moverá el conejo, -1 = ninguno
dy = -1; // Destino Y al que se moverá el conejo, -1 = ninguno

alarm[0] = room_speed * choose(1,2,3);      //Para generar nueva posicion

//vida enemigo
vida = 10;              //Vida por defecto
vidaMaxE = vida;

//variables del contador
LongitudE = 40;          //longitud del contador
CalibreE = 0;            //valor del contador

//regeneracionVidaPlayer = 0;     //tiempo regenarion vida[/gml]


STEP
[gml]///Gestión de estado de movimiento, dirección y muerte
//Determinamos direccion
if (vv > 0) dir = "abajo";
else if (vv < 0) dir = "arriba";
else if (vh > 0) dir = "derecha";
else if (vh < 0) dir = "izquierda";

//Si no estamos atacando comprovamos estados parado y caminar
if (estado != es.atacando){
    if (dir != "") estado = es.corriendo;
    if (vh == 0 and vv == 0) estado = es.parado;
}
//Y si estamos atacando nos paramos
else {

    vh = 0;
    vv = 0;

    //Arreglar direccion solo si atacamos
    grados = point_direction(x,y,obj_player.x,obj_player.y);
    if (grados < 45 or grados > 315) dir = "derecha";
    else if (grados >= 45 and grados < 135) dir = "arriba";
    else if (grados >= 135 and grados < 225) dir = "izquierda";
    else if (grados >= 225 and grados <= 315) dir = "abajo";
}

//Comprobar vida y muerte (prioridad)
if (vida <= 0) {
    estado = es.muriendo;
    colision = false;
    vh = 0;
    vv = 0;
}
//-----------------------------------------------------------------------------------------------------
///Gestion valor y regeneracion de la vida
if (instance_exists(obj_serpiente)){
   CalibreE = round((obj_serpiente.vida * LongitudE) / obj_serpiente.vidaMaxE);
}[/gml]

DRAW GUI
[gml]///Dibuja barra vida
draw_sprite_stretched(spr_barraVida, 1, x-22, y-32, LongitudE, 7);//fondo del contador
draw_sprite_stretched(spr_barraVida, 0, x-22, y-32, CalibreE, 7);//contador
[/gml]
5
Como lo dice el titulo

Busco quien pueda guiarme en ese tema

he buscado por youtube y por aca tambien ese tema
y todos los tutoriales son de que el enemigo te siga y te ataque cuando estes en su rango o en su radio

Pero lo que busco es que el enemigo me ataque solo si el jugador lo ataque y lo persiga y ataque hasta que muera el player o el enemigo

gracias de antemano
6
Hola compañeros

tengo ya un sistema de maquina de estados para moverme
en cuatro direcciones pero necesito que se mueva el personaje
en cuadricula 32x32 pero no logro hacerlo con los videos de
youtube

alguien podria por favor ayudarme a hacerlo pero con el codigo que ya tengo????

:GMS: :GMS: :GMS: :GMS:
EVENTO CREATE
[gml]///inicializacion
image_speed = 0;

enum ep{
    parado = scr_playerParado,
    caminando = scr_playerCaminando
}

dir = "abajo";          //direccion por defecto
estado = ep.parado;      //estado por defecto[/gml]

:GMS: :GMS: :GMS: :GMS:
EVENTO STEP
[gml]///captura movimiento por pantalla
vh = (-keyboard_check(vk_left) + keyboard_check(vk_right)) * v;
vv = (-keyboard_check(vk_up) + keyboard_check(vk_down)) * v;
//moverse en 4 direcciones
if (abs(vh) > 0)
{
    vv = 0;
}
else if (abs(vv) > 0)
{
    vh = 0;   
}
[/gml]
7
Preguntas y respuestas / Cambio de rooms RPG
Septiembre 28, 2019, 08:59:44 PM
Buenas tardes Amigos

Tengo una duda al cambio de room!! he visto muchos tutoriales y no he podido encontrar la solucion
los tutoriales que he visto para el cambio de room la mayoria son para juegos de plataforma o para
pasar por puertas!! mi juego es un rpg y al hacer cambio de room quisiera que fuera como el video
que coloco mas abajo!! he intentado algunas cosa pero por ejemplo si paso por una de las partes superior o
inferior me hace el cambio de room en el medio y la logica de un rpg es que siga por la misma linea por donde
camina!! ya he descargado tutoriales de la comunidad que son buenos pero son de version mas vieja y no funcionan
GMS1.4

si alguien me podria ayudar se lo agradeceria
8
Cómo podría hacer para que un enemigo al que hemos matado o vuelva a aparecer luego de cierto tiempo en algún lugar aleatorio de la room!??

Alguien podría ayudarme
9
Disculpen vuelvo a hacer la pregunta ya que no pude encontrar la solucion

Tengo la animacion de mi enemigo que se mueve aleatoriamente por toda la room
pero quiero que el me persiga y me ataque cuando el jugador lo ataque

Uso una maquina de estados!! les mostrae el step y el movimiento aleatorio para que tengan una idea
imagino que tendre que usar algunos if!!

adjunto las imagenes


10
Buenas Compañeros!! necesito de su ayuda  con un tema respecto a los enemigos!! uso GMS 1.4
ya tengo el codigo de mi enemigo para que se mueva aleatoria mente en la room
lo que quisiera es que mi enemigo me ataque solo si yo lo ataque a el y luego me persiga hasta que me mate o yo salga de la room

Si me pueden ayudar agradecido de ante mano