[FilterScript] PlantBomb v1.0 (BETA)
#1

Buenas acб les dejo este mi primer FS.

їEn quй consiste?

Bueno es un sistema de bombas, con guardado de datos (Djson) a un que reinicien el server los datos de la bomba quedarбn guardados, y cargaran nueva mente al iniciar el server, o cuando un jugador se conecte nueva mente al server.

-Guarda Ubicasiуn de la bomba.
-Guarda si estб plantada.
-Guarda si tienes una bomba para usar.


їComo lo uso?


Facil, solo tienes que crear una carpeta con el nombre "Bombas" en "Scriptfiles", y agregar el FS a tu carpeta de FS.

їComandos?

-/comprar : Sirve para comprar una bomba, no puedes tener ya una bomba comprada.
-/plantar : Sirve para plantear una bomba con un efecto de animaciуn, para mas realismo.
-/chequear : Asigna una cбmara donde se encuentra la bomba, asн puedes vigilarla mientras estбs lejos.
/detonar : Sirve para explotar una bomba ya plantada, si usas /detonar mientras chequeas no te preocupes que no te quйdaras Bug, ya que automatica mente vuelve a la camara normal luego de 4 segundos despuйs de la explosiуn.

TEST

http://*********/pnShXx3gvYw



Saludos, espero que les guste, para la prуxima actualizaciуn del FS vengo con Proximite Mines xD, son minas que al pasarles por el lado o asercate hacia ellas explotan solas.


Descargar


Agradecimientos: The_Chaoz Explicarme una dudita sobre sscanf.
Reply
#2

Para los que son vagos aqui tienen el pawn:

pawn Код:
#include <a_samp>
#include <djson>
#include <zcmd>
#include <sscanf>
#pragma tabsize 0

#define MENSAJE 0xC69E80FF

enum Bomba {
    name[24],
    Float:X,
    Float:Y,
    Float:Z,
    str[24],
    BombaObjecto
    };
new BombaDatos[MAX_PLAYERS][Bomba];

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid, BombaDatos[playerid][name], 24);
    format(BombaDatos[playerid][str], 24, "%s.bomb", BombaDatos[playerid][name]);
    if(!fexist(BombaDatos[playerid][str]))
    {
        djCreateFile(BombaDatos[playerid][str]);
        }
       
    return 1;
    }
public OnFilterScriptInit()
{
    djson_GameModeInit();
   
    CreateObject(18092,2431.39990234,-1679.00000000,13.19999981,0.00000000,0.00000000,0.00000000); //object(ammun3_counter) (1)
    CreateObject(364,2432.10009766,-1678.80004883,13.69999981,0.00000000,0.00000000,0.00000000); //object(1)
    CreateObject(1654,2431.80004883,-1678.69995117,13.89999962,0.00000000,0.00000000,176.98980713); //object(dynamite) (1)
    CreateObject(2968,2430.39990234,-1678.80004883,14.00000000,0.00000000,0.00000000,0.00000000); //object(cm_box) (1)

    Create3DTextLabel("Use: /Comprar bomba [tipo]", 0xA40000FF,2431.4402,-1677.4337,13.7235,40.0,0);

    AddStaticPickup(1239, 0, 2431.4402,-1677.4337,13.7235);
   
    return 1;
}

public OnFilterScriptExit()
{
    djson_GameModeExit();
   
    return 1;
}
CMD:ayuda(playerid, params[])
{
    new b[6];
    if(sscanf(params, "s", b))SendClientMessage(playerid, MENSAJE, "USE: /Ayuda bomba");
    else if(strfind(b, "bomba", true ) != -1)SendClientMessage(playerid, MENSAJE, "BombGraph CMD: /Comprar bomba, /Plantar, /Detonar, /Puntov.");
    else
    {
        SendClientMessage(playerid, MENSAJE, "USE: /Ayuda bomba.");
    }
    return 1;
}
CMD:comprar(playerid, params[])
{
    if(!IsPlayerInRangeOfPoint(playerid, 2.0, 2431.4402,-1677.4337,13.7235))
    {
        SendClientMessage(playerid, MENSAJE, "Debe estar en el punto de venta.");
        SendClientMessage(playerid, MENSAJE, "USE: /Puntov.");
        return 0;
    }
    new b[6];
    if (sscanf(params, "s", b)) SendClientMessage(playerid, MENSAJE, "USE: /Comprar bomba.");
    else if (strfind(b, "bomba", true ) != -1)
    {
        djSet(BombaDatos[playerid][str], "Tiene", "Si");
        GivePlayerMoney(playerid, -1000);
    }
    return 1;
}
CMD:plantar(playerid, params[])
{
    GetPlayerPos(playerid, BombaDatos[playerid][X], BombaDatos[playerid][Y], BombaDatos[playerid][X]);
    djSetFloat(BombaDatos[playerid][str], "BombaX", BombaDatos[playerid][X]);
    djSetFloat(BombaDatos[playerid][str], "BombaY", BombaDatos[playerid][Y]);
    djSetFloat(BombaDatos[playerid][str], "BombaZ", BombaDatos[playerid][Z]);
    BombaDatos[playerid][BombaObjecto] = CreateObject(1654,djFloat(BombaDatos[playerid][str], "BombaX"),djFloat(BombaDatos[playerid][str], "BombaY")+01,djFloat(BombaDatos[playerid][str], "BombaZ")-1+0.0,260.00000000,90.00000000,150.00000000);
    return 1;
}
CMD:detonar(playerid, params[])
{
    DestroyObject(BombaDatos[playerid][BombaObjecto]);
    CreateExplosion(djFloat(BombaDatos[playerid][str], "BombaX"),djFloat(BombaDatos[playerid][str], "BombaY")+01,djFloat(BombaDatos[playerid][str], "BombaZ"), 6, 10.0);
    djUnset(BombaDatos[playerid][str], "BombaX");
    djUnset(BombaDatos[playerid][str], "BombaY");
    djUnset(BombaDatos[playerid][str], "BombaZ");
    djUnset(BombaDatos[playerid][str], "Tiene");
    return 1;
}
/*     NO BORRE O SALDRБ Unknow: Command. */
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
   if(!success)
   {
   }
   return 1;
}

Tengo una duda, yo uso zcmd, y no pongo eso al final y no me aparece unknowcommand,.

Sugerencia: Usar IsPlayerInRangeOfPoint o chequear si el player esta en un interior para comprarlo dentro de un ammu nation, muy bueno. (Y)
Reply
#3

Sobre tu duda de ZCMD si pones un comando strcmp saldra unknow command.
Reply
#4

D: zcmd no me gusta intentarer editarle con strcmp
Reply
#5

Jeje ZCMD es mucho mas facil, solo dedicale 1 hora, o 30 minъtos creando comandos en zcmd y gualah jeje.
Reply
#6

-.- para mi es mas fazil el strcmp sera por q siempre lo uso xd
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)