[FilterScript] Sistema de bombas
#1

Bem, й um sistema de bombas, onde vc compra sua bomba e planta ela, a bomba pode ser plantada em qualquer lugar.
O sistema salva suas bombas, pode ser comprando, ou saindo do servidor. O sistema й feito em DOF2 e zcmd, enfim, vamos ao que importa.



CRIE A PASTA "Bombas" NA SCRIPTFILES, CASO CONTRБRIO NAO IRБ FUNCIONAR.

pawn Код:
#include a_samp
#include DOF2
#include zcmd

#define bombasd "Bombas\\%s.ini"
#define msgb    "Vocк ainda tem %d bombas."

new qtdb[MAX_PLAYERS];
new bobj[MAX_PLAYERS];
new nome[25];
new Float:cds[3];
new bool:plantando[MAX_PLAYERS];
new bfile[35];
new bindicador[60];


stock salvardados(playerid)
{
    GetPlayerName(playerid,nome,24);
    format(bfile,sizeof bfile,bombasd,nome);
    DOF2_SetInt(bfile,"bombas",GetPVarInt(playerid,"bombas"));
    DOF2_SaveFile();
    return 1;
}



public OnFilterScriptInit()
{
    print("O sistema de bombas de FROSTGF foi carregado");
    return 1;
}

public OnFilterScriptExit()
{
    print("O sistema de bombas de FROSTGF foi descarregado");
    DOF2_Exit();
    return 1;
}

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid,nome,sizeof nome);
    format(bfile,sizeof bfile,bombasd,nome);
    if(!fexist(bfile))
    {
        DOF2_CreateFile(bfile);
        DOF2_SetInt(bfile,"bombas",GetPVarInt(playerid,"bombas"));
        DOF2_SaveFile();
        plantando[playerid] = false;
    }
    else return SetPVarInt(playerid,"bombas",DOF2_GetInt(bfile,"bombas"));
    return 1;
}

public OnPlayerDisconnect(playerid)
{
    salvardados(playerid);
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    GetPlayerName(playerid,nome,24);
    if(dialogid == 1)
    {
        if(response)
        {
            if(listitem == 0)
            {
                if(GetPlayerMoney(playerid) >= 3500)
                {
                    GetPlayerName(playerid,nome,sizeof nome);
                    format(bfile,sizeof bfile,bombasd,nome);
                    SetPVarInt(playerid,"bombas",++qtdb[playerid]);
                    SendClientMessage(playerid,-1,"Bomba adquirida com sucesso.");
                    GivePlayerMoney(playerid,-3500);
                    salvardados(playerid);
                }
                else return SendClientMessage(playerid,-1,"Vocк nгo tem dinheiro suficiente para comprar uma bomba(R$3500,00).");
            }
            if(listitem == 1)
            {
                if(GetPVarInt(playerid,"bombas") >= 1)
                {
                    format(bindicador,sizeof bindicador,msgb,GetPVarInt(playerid,"bombas")-1);
                    GetPlayerName(playerid,nome,sizeof nome);
                    format(bfile,sizeof bfile,bombasd,nome);
                    SetPVarInt(playerid,"bombas",--qtdb[playerid]);
                    GivePlayerMoney(playerid,3100);
                    SendClientMessage(playerid,-1,bindicador);
                    salvardados(playerid);
                }
                else return SendClientMessage(playerid,-1,"Vocк nгo tem bombas para vender.");
            }
            if(listitem == 2)
            {
                if(GetPVarInt(playerid,"bombas") >= 1)
                {
                    format(bindicador,sizeof bindicador,msgb,GetPVarInt(playerid,"bombas"));
                    SendClientMessage(playerid,-1,bindicador);
                }
                else return SendClientMessage(playerid,-1,"Vocк nгo possui bombas, para comprar bombas use: /bombamenu");
            }
            return 1;
        }
        return 1;
    }
    return 1;
}

CMD:bombamenu(playerid,params[]) return ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Menu","Comprar bomba - R$3500,00\nVender bomba - R$3100,00\nVer minhas bombas","Ok","Fechar");


CMD:detonar(playerid,params[])
{
    if(plantando[playerid] == true)
    {
        format(bfile,sizeof bfile,bombasd,nome);
        format(bindicador,sizeof bindicador,msgb,GetPVarInt(playerid,"bombas")-1);
        DestroyObject(bobj[playerid]);
        CreateExplosion(cds[0],cds[1],cds[2],7,100.0);
        plantando[playerid] = false;
        SendClientMessage(playerid,-1,bindicador);
        SetPVarInt(playerid,"bombas",--qtdb[playerid]);
        salvardados(playerid);
    }
    else
    {
        SendClientMessage(playerid,-1,"Algo impediu que a bomba explodisse.");
        SendClientMessage(playerid,-1,"Como sua bomba nгo explodiu, vocк pega ela de volta.");
        DestroyObject(bobj[playerid]);
    }
    return 1;
}

CMD:plantarbomba(playerid,params[])
{
    if(GetPVarInt(playerid,"bombas") >= 1)
    {
        if(plantando[playerid] == false)
        {
            new strp[75];
            GetPlayerPos(playerid,cds[0],cds[1],cds[2]);
            format(strp,sizeof strp,"Vocк tem %d bombas, caso aborte a explosгo, vocк nгo perderб a bomba.",GetPVarInt(playerid,"bombas")-1);
            SendClientMessage(playerid,-1,strp);
            bobj[playerid] = CreateObject(1252,cds[0],cds[1],cds[2],-1,0.0,1.0);
            ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
            SendClientMessage(playerid,-1,"use /detonar para explodir a bomba!!!");
            plantando[playerid] = true;
            return 1;
        }
    }
    else return SendClientMessage(playerid,-1,"Vocк nгo plantou uma bomba para poder explodir!!");
    return 1;
}

CMD:desarmar(playerid,params[])
{
    if(plantando[playerid] == true)
    {
        if(IsPlayerInRangeOfPoint(playerid,5.0,cds[0],cds[1],cds[2]))
        {
            format(bindicador,sizeof bindicador,"Vocк desativou sua bomba,e a pegou de volta(%d bombas)",GetPVarInt(playerid,"bombas"));
            SendClientMessage(playerid,-1,bindicador);
            DestroyObject(bobj[playerid]);
            plantando[playerid] = false;
        }
        else return SendClientMessage(playerid,-1,"Vocк nгo estб perto de sua bomba para desarma-la.");
    }
    else return SendClientMessage(playerid,-1,"Vocк nгo plantou uma bomba.");
    return 1;
}

CMD:comandosfs(playerid,params[]) return ShowPlayerDialog(playerid,13,DIALOG_STYLE_MSGBOX,"Menu","use:\n\n\t/plantarbomba\n\t/desarmar\n\t/bombamenu","Ok","");
Comandos:

Код:
/plantarbomba - ele planta a bomba:picard:
/desarmar - esse comando desarma sua bomba, evitando que ela acabe explodindo(mas vc nao perde a bomba)
/bombamenu - tem algumas funзoes como: comprar, vender, e ver quantas bombas vocк tem
/comandosfs
Crйditos
Код:
Zeex - zcmd
Double-O-Seven - DOF2
Por favor, se encontrar algo de errado no cуdigo, me mostre, assim eu posso corrigir. O cуdigo foi testado, e muito, mas atй agora nao achei nada.
Reply
#2

Legal Manolo

euoeuoeu Define Locas xD
Reply
#3

Legal, esta simples mas otimo para seu primeiro FS =)
Reply
#4

Уtima organizaзгo !
Reply
#5

Legal, parabйns pelo FS, curti.
Reply
#6

Simples e direto, gostei.
Reply
#7

Poderia organizar o tуpico nй nigga ?

@TOPIC

Legal .

Porem acho que ja vi um FS deste tipo ...
Reply
#8

Quote:
Originally Posted by WaGnerLiima
Посмотреть сообщение
Legal Manolo

euoeuoeu Define Locas xD
que nada ^^, valeu!

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
Legal, esta simples mas otimo para seu primeiro FS =)
obrigado kuddy

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Уtima organizaзгo !
Й, eu tento deixar o mais organizado o possivel para que sirva de estudo para outros programadores. Obrigado

Quote:
Originally Posted by Truck
Посмотреть сообщение
Legal, parabйns pelo FS, curti.
obrigado Truck!

Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
Simples e direto, gostei.
Esse й o meu objetivo! Obrigado leonardo

Quote:
Originally Posted by Ades
Посмотреть сообщение
Poderia organizar o tуpico nй nigga ?

@TOPIC

Legal .

Porem acho que ja vi um FS deste tipo ...
Nгo estou vendo desorganizaзгo alguma aqui, e mesmo que tenha, й minima. O foco deste forum й a organizaзгo do script, e o foco DESTE tуpico й o meu cуdigo, nгo se vc viu ou nгo outro parecido.
Reply
#9

Legal e direto, gostei, pelo visto, um dos poucos cуdigos que ficou identado ainda '-', se bem que nгo estб no pastebin

Код:
This forum requires that you wait 120 seconds between posts. Please try again in 18 seconds.
Reply
#10

Muito bom parabens.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)