[Include] [INC] Carol's Dominate GangZone (Beta)
#1

Carol's Dominate GangZone
Introduзгo:
Olб!.
depois de muito tempo sem postar algum projeto, resolvi postar sistema de GZ que eu fiz para um amico meu (XD),
ele й bem simples. eu testei por algum tempo e nгo me apareceu nenhum bug.



Funзхes:
Esta minha include tem poucas funзхes, porque й versгo beta,
vou falar de algumas:

Funзгo Oque ela faz
GetGangZoneIDFromName Pega a o id de uma gangzone pelo nome.
CreateGangZone Cria uma GangZone(colocar no OnGameModeInit/OnFilterScriptInit)
LoadGangZones Exibe todas as gangzones para o player( Colocar no OnPlayerSpawn )
PlayerGangZone Returna o id da gangzone que o player estб ( esta funзгo returna -1 caso nгo estiver em nenhuma gangzone).
DominateGangZone Faz o player dominar a gangzona.

Configuraзгo:
Esta parte й muito crнtica, aqui sгo as configuraзхes do sistema,
caso vocк nгo entenda do assunto, poste no tуpico que eu terei o prazer de ajudar =).
Definiзгo Oque ela Faz
MAX_GANGZONES Limite de GangZonas(quando ultrapassado o sistema para automaticamente)
MAX_GZNAME Define o mбximo de nome para gangzone
MAX_TIMEDOMINATE O tempo que o player fica para terminar de dominar(contagem)
LIGHTER_COLOR Pequena definiзгo da cor transparente(usada para nгo ficar cor forte xD)

Instruзхes:
- Copie todo o cуdigo que estб para download;
- aperte WINDOWS+R e digite notepad, cole e depois em salvar como, selecione a pasta Includes que fica localizada na pasta Pawno. salve com a extensгo CDG.INC, e bote "Salvar como todos os arquivos".
- Bote no topo do GM/FS:
pawn Код:
#include <CDG>
Pronto, agora vocк pode desfrutar das funзхes =)


Crйditos:
- [O.z]Caroline
- SA-MP Team

Download:

Vrsгo 1.0 (Beta)
pawn Код:
#define MAX_GANGZONES                   (20)
#define MAX_GZNAME                      (50)
#define MAX_TIMEDOMINATE                (30)
#define LIGHTER_COLOR                   (204)


#define GetGangZoneName(%0)             GangZone[%0][Name]
#define ShowGangZone(%0)                GangZoneShowForAll(GangZoneID[%0],GangZone[%0][Cor])

forward DominateGangZone(pid, gzid);

enum gangg
{
    Float:gangzoneY2,       Name[MAX_GZNAME],       Dono[MAX_PLAYER_NAME],
    Float:gangzoneX,        Float:gangzoneY,        Float:gangzoneX2,
    Ganha,                  Cor
};


new
    GangZone[MAX_GANGZONES][gangg],
    GangZoneID[MAX_GANGZONES]   = -1,
    MyTIME[32],
    gID = 0
;



stock GetGangZoneIDFromName(gangname[])
{
    for(new i; i < MAX_GANGZONES; ++i)
    {
        if(!strcmp(gangname, GangZone[i][Name], true)) return i;
    }
    return -1;
}

stock CreateGangZone(gangzonename[], Float:x, Float:y,      Float:x2, Float:y2, color, lucro)
{
    if(gID == MAX_GANGZONES)
    {
        print("\n\n Limite de GangZones Estourados!\n\n");
        return 0;
    }
    format(GangZone[gID][Name], MAX_GZNAME, gangzonename);
    GangZone[gID][gangzoneX]                = x;
    GangZone[gID][gangzoneY]                = y;
    GangZone[gID][gangzoneX2]               = x2;
    GangZone[gID][gangzoneY2]               = y2;
    GangZone[gID][Cor]              = color;
    GangZone[gID][Ganha]            = lucro;
    GangZoneID[gID]                 = GangZoneCreate(GangZone[gID][gangzoneX], GangZone[gID][gangzoneY], GangZone[gID][gangzoneX2], GangZone[gID][gangzoneY2]);
    return gID++;
}

stock LoadGangZones()
{
    for(new i; i < gID; ++i)
    {
        ShowGangZone(i);
    }
}
stock PlayerGangZone(pid)
{
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(pid, X, Y, Z);
    for(new i; i < MAX_GANGZONES; ++i)
    {
        if (X > GangZone[i][gangzoneX] && X < GangZone[i][gangzoneX2] && Y > GangZone[i][gangzoneY] && Y < GangZone[i][gangzoneY2])
        {
            return i;
        }
    }
    return -1;
}


public DominateGangZone(pid, gzid)
{
    if(PlayerGangZone(pid) == -1)
        return GangZoneStopFlashForAll(gzid);
       
    if(MyTIME[pid] == MAX_TIMEDOMINATE)
    {
        GameTextForPlayer(pid, "~y~Dominado]", 3000, 3);
        MyTIME[pid] = 0;
        GangZoneStopFlashForAll(gzid);
        GangZone[gzid][Cor] = GetPlayerColor(pid)   + LIGHTER_COLOR;
        GangZoneShowForAll(gzid,GetPlayerColor(pid) + LIGHTER_COLOR);
        format(GangZone[gzid][Dono], strlen(GetNick(pid)), GetNick(pid));
        return false;
    }
    new _st[100];
    format(_st, sizeof(_st),"Dominando a gangzone %s~n~(%d/%d)",GetGangZoneName(gzid), MyTIME[pid], MAX_TIMEDOMINATE);
    GameTextForPlayer(pid, _st, 1200, 3);
    GangZoneFlashForAll(gzid, GetPlayerColor(pid)   + LIGHTER_COLOR);
    SetTimerEx("DominateGangZone", 1000, false, "id", pid, gzid);
    return MyTIME[pid]++;
}



Exemplo de uso:
Como terб muitas dъvidas e coisas do tipo, deixarei um FilterScript como exemplo:
pawn Код:
#include <a_samp>
#include <CDG>

public OnFilterScriptInit()
{
    CreateGangZone("Carol",     2079.743,978.1417, 2329.653,1171.545,   0x00000055, 1000);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    LoadGangZones();
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext,"/dominar", true))
    {
        if(PlayerGangZone(playerid) == -1) return SendClientMessage(playerid, -1,"VocК nгo estб em uma GangZone!");

        if(strcmp(GangZone[PlayerGangZone(playerid)][Dono], GetNick(playerid), true))
            return SendClientMessage(playerid, -1,"Esta GangZona jб й sua!");

        DominateGangZone(playerid, PlayerGangZone(playerid));
        return 1;
    }
    return false;
}



stock GetNick(playerid)
{
    new x[24]; GetPlayerName(playerid, x, 24);
    return x;
}

Nгo permito publicar este Projeto em qualquer lugar, mande-me Mensagem Privada(PM).
Reply
#2

acho que vou usar esta include...
Reply
#3

Parece interessante.
Reply
#4

Muito Legal Gostei
Reply
#5

Muito bom [iPs]Garfield. Continue assim.
Reply
#6

Quote:
Originally Posted by Infernal_J
Посмотреть сообщение
Muito bom [iPs]Garfield. Continue assim.
[iPs]Garfield num entendi essa
Reply
#7

Parabйns уtima include!
Reply
#8

Bela Include
Reply
#9

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Parece interessante.
Obrigada.

Quote:
Originally Posted by rugal
Посмотреть сообщение
Muito Legal Gostei
Obrigada.

Quote:
Originally Posted by Infernal_J
Посмотреть сообщение
Muito bom [iPs]Garfield. Continue assim.
nгo sou [iPs]Garfield. sou [O.z]Caroline.

Quote:
Originally Posted by Cristhian
Посмотреть сообщение
[iPs]Garfield num entendi essa
nem eu

Quote:
Originally Posted by [NWD]Jim._.Carrey
Посмотреть сообщение
Parabйns уtima include!
Obrigada.

Quote:
Originally Posted by BrunoBSF
Посмотреть сообщение
Bela Include
Obrigada.
Reply
#10

Legal '-'
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)