Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3821 miembros registrados.
El último usuario registrado es MikeWasauski.

Nuestros miembros han publicado un total de 86306 mensajes en 12303 argumentos.

[XP] Elnard Radar

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Elnard Radar

Mensaje por Wecoc el 2017-11-17, 19:33

Hoy os quiero mostrar el script The 7th Elnard Style Minimap (Elnard Radar)

Autor: Wecoc (no requiere créditos)
Versión: 1.0

Este es un script de radar o minimapa de lo más simple, realmente uno de los más sencillos que se pueden hacer, excepto por el hecho de que a diferencia de la mayoría éste no tiene por qué ser rectangular.

El script en sí lo que hace es crear una bitmap y dibujar ahí el personaje (siempre al centro en este caso) y determinados eventos, todos como puntos. Nada más que eso. Lo interesante es que luego usa una máscara para se muestre de modo circular o en cualquier otra forma.

Aquí el resultado. Lo que se ve más oscuro es una picture de fondo que se puede hacer tan bonita como queráis, he puesto otro ejemplo en la demo.



Nota importante:
La mayoría de scripts de minimapa crean una bitmap del mismo modo, así que en teoría lo de aplicar luego la máscara circular también sería posible en ellos de la misma forma, aunque según el caso podría haber cierto lag. Es cuestión de probarlo.

En el script estan las instrucciones, son fáciles de entender. Sacad los recursos de la demo y editadlos como queráis. Los puntos pueden ser de tantos colores como queráis.

Demo: Elnard Radar.zip

Podéis hacerle las ampliaciones que queráis. Si tenéis dudas ponedlas en este topic.


Última edición por Wecoc el 2017-12-11, 10:05, editado 5 veces
avatar
Wecoc
Administrador
Administrador



Créditos 12105

Gracias : 522

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Elnard Radar

Mensaje por Ledai el 2017-11-17, 19:44

Está lindo!! y el poder poner las mascara que quieras es la mejor idea que he visto.

Solo una nota: He notado que las abejas se muestran en una franja bajo la máscara; como si hubiera unos pixeles bajo el radar que dejan ver a las abejas.

Gracias!!
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 3986

Gracias : 181

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Elnard Radar

Mensaje por xXIsrael0499Xx el 2017-11-17, 20:20

Oh pero que chido, siempre he querido usar este tipo de screen pero recuerdo que tenia que hacer muchas cosas y la final me daba pereza xDD (Que humilde), bueno gracias y luego lo prueba para ver que tal, que se ve bastante interesante.
avatar
xXIsrael0499Xx
Veterano
Veterano

0/3

Créditos 865

Gracias : 61

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Elnard Radar

Mensaje por rigel2 el 2017-11-18, 00:44

maldita sea wecoc esto es genial justo estaba buscando este map de septima saga para agregar eventos de batle como en el game y que no fueran aleatorios es una genialidad thx y esperando la demo para poder probarlo
avatar
rigel2
Principiante
Principiante

0/3

Créditos 1337

Gracias : 33

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Elnard Radar

Mensaje por orochii el 2017-11-18, 03:54

Wecoc me has copiado lo de The 7th Elnard, sólo porque sé tu ubicación como montaña :^DD.



Este juego te va como continente a la montaña (?). Bonito script Wec, y mejor aún, me da gusto ver que haces más cosillas raras con DLLs. :^DDDDD

Quiero el demo para echarle un ojo. why u do dis cherryshare? :'D
avatar
orochii
Reportero

0/3

Créditos 7473

Gracias : 370

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Elnard Radar

Mensaje por Wecoc el 2017-11-18, 11:24

Tal como mencionó Leda había un pequeño bug pero ya está arreglado y resubido.

Spoiler:
Por si os interesa el código de la DLL, en ésta ocasión es bastante simple. Lo pongo a continuación.

Código:
// --------------------------------------------------------------------------------------------------------------------------------------
// ElnardMask DLL (RPG maker XP)
// Version: 1.00
// --------------------------------------------------------------------------------------------------------------------------------------

#include <cstdlib>
#include <ctype.h>
#include <math.h>
#include <windows.h>
#include <time.h>
// --------------------------------------------------------------------------------------------------------------------------------------
#define RGSSApi extern "C" __declspec(dllexport)

// --------------------------------------------------------------------------------------------------------------------------------------

BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved){
   switch (ul_reason_for_call){
      case DLL_PROCESS_ATTACH:
      case DLL_THREAD_ATTACH:
      case DLL_THREAD_DETACH:
      case DLL_PROCESS_DETACH:
      break;
   }
   return true;
}

// --------------------------------------------------------------------------------------------------------------------------------------
// Rect RGSS (rect.__id__ = object)
// RECTSTRUCT * rect = ((RGSSRECT*)(object<<1))->rectvars;
// --------------------------------------------------------------------------------------------------------------------------------------

typedef struct{
   DWORD unka;
   DWORD unkb;
   DWORD x; // x rect
   DWORD y; // y rect
   DWORD width; // width rect
   DWORD height; // height rect
}RECTSTRUCT;
typedef struct{
   DWORD flags;
   DWORD klass;
   void (*dmark) (void*);
   void (*dfree) (void*);
   RECTSTRUCT * rectvars;
}RGSSRECT;

// --------------------------------------------------------------------------------------------------------------------------------------
// Color RGSS (method 1) (color.__id__ = object)
// RGSSCOLOR *color = ((RGSSCOLOR*)(object << 1));
// color->data[1] = red, color->data[2] = green, color->data[3] = blue, color->data[4] = alpha
// --------------------------------------------------------------------------------------------------------------------------------------

typedef struct{
   DWORD flags;
   DWORD klass;
   void(*dmark) (void*);
   void(*dfree) (void*);
   double *data; //red is index 1, green is index 2, blue 3, alpha 4
}RGSSCOLOR;

// --------------------------------------------------------------------------------------------------------------------------------------
// Bitmap RGSS (method 1) (bitmap.__id__ = object)
// RGSSBMINFO *bitmap = ((RGSSBITMAP*)(object << 1))->bm->bminfo;
// --------------------------------------------------------------------------------------------------------------------------------------

typedef struct{
   DWORD unk1;
   DWORD unk2;
   BITMAPINFOHEADER *infoheader;
   RGSSCOLOR *firstRow;
   RGBQUAD *lastRow;
}RGSSBMINFO;
typedef struct{
   DWORD unk1;
   DWORD unk2;
   RGSSBMINFO *bminfo;
}BITMAPSTRUCT;
typedef struct{
   DWORD flags;
   DWORD klass;
   void(*dmark) (void*);
   void(*dfree) (void*);
   BITMAPSTRUCT *bm;
}RGSSBITMAP;

// --------------------------------------------------------------------------------------------------------------------------------------
// Mask
// --------------------------------------------------------------------------------------------------------------------------------------

RGSSApi BOOL mask(long object1, long object2){
   RGSSBMINFO *bitmap1 = ((RGSSBITMAP*)(object1 << 1))->bm->bminfo;
   RGSSBMINFO *bitmap2 = ((RGSSBITMAP*)(object2 << 1))->bm->bminfo;
   if (!bitmap1 or !bitmap2) return false;
   DWORD width = bitmap2->infoheader->biWidth;
   DWORD height = bitmap2->infoheader->biHeight;
   if (width < 1 or height < 1) return false;
   int ix, iy;
   LPBYTE row1, row2;
   row1 = (LPBYTE)(bitmap1->firstRow);
   row2 = (LPBYTE)(bitmap2->firstRow);
   int rowsize = width * 4;
   for (iy = 0; iy < height; iy++) {
      LPBYTE thisrow1 = row1;
      LPBYTE thisrow2 = row2;
      for (ix = 0; ix < width; ix++) {
            if (thisrow2[3] == 0) {
                thisrow1[3] = thisrow2[3];
            }
         thisrow1 += 4;
         thisrow2 += 4;
      }
      thisrow1 += (iy * 4);
      thisrow2 += (iy * 4);
      row1 -= rowsize;
      row2 -= rowsize;
   }
   return true;
}
avatar
Wecoc
Administrador
Administrador



Créditos 12105

Gracias : 522

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Elnard Radar

Mensaje por orochii el 2017-11-18, 15:55

Lo mejor de este script es que es posible que alguien lo use :^D.

Está muy interesante el código del DLL, la idea del radar y pues el DLL en sí creo que también se podría usar para varias cosas más.

Buen aporte Wec. :^))
avatar
orochii
Reportero

0/3

Créditos 7473

Gracias : 370

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Elnard Radar

Mensaje por AsFzKakarotto el 2017-12-11, 05:49

Lo siento Wecoc pero en contre un Bug aquí:



Me imagino que sucederá lo mismo con el Menu, la tienda,  y las batallas.

Por cierto muy bueno el Script...
avatar
AsFzKakarotto
Novato
Novato

0/3

Créditos 102

Gracias : 19

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Elnard Radar

Mensaje por Wecoc el 2017-12-11, 10:02



Diría que es por uno de los últimos cambios que hice.
Para quien no le interese volver a descargarlo, es solo añadir esto después del initialize del Spriteset_Map, hacia el final del script.

Código:
  alias minimap_dis dispose unless $@
  def dispose
    minimap_dis
    @minimap_back.dispose
    @minimap.dispose
  end

Ahora resubo el link. Edit: Ya está.

Bonita versión del radar, por cierto.
avatar
Wecoc
Administrador
Administrador



Créditos 12105

Gracias : 522

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Elnard Radar

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.