[AJUDA] Cor da GZ
#1

Segui esse tutorial do Drakins criando gangzones dominбveis...
https://sampforum.blast.hk/showthread.php?tid=181017

Olhem os cуdigos

Topo:

pawn Код:
/GANGZONES
#define GZS_CRIADAS 4

new GZCriadas[GZS_CRIADAS];
new NomesGZs[GZS_CRIADAS][] =
{
"Aero",//1
"Estacionamento",//2
"Bar",//3
"Parque"//4  OBS: Ъltimo sem vнrgula
};

new Float:CordGZs[GZS_CRIADAS][4] =
{
{1356.766, -2396.403, 1596.345, -2195.068}, // Aero
{1493.668, -1160.76, 1847.332, -912.0523}, // Estacionamento
{337.6059, -1839.771, 520.142, -1666.071}, // Bar
{1828.318, -1287.088, 2094.516, -1113.3871} // Parque
};

forward Terminar(playerid);
//FIM DAS GANGZONES
Em baixo do OnGameModeInit:

pawn Код:
for (new i = 0; i <GZS_CRIADAS; i++) // Loop
        {
                GZCriadas[i] = GangZoneCreate(CordGZs[i][0], CordGZs[i][1], CordGZs[i][2], CordGZs[i][3]);
                printf("Gang Zone %s criada com sucesso!",NomesGZs[i]);
        }
No OnPlayerCommandText:

pawn Код:
//gangzones
if(!strcmp(cmdtext, "/dominar", true))
{
    if(!IsAreaInGangCheck(playerid)) SendClientMessage(playerid, COLOR_RED, "Vocк nгo estб em nenhuma Gang Zone!");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new name[MAX_PLAYER_NAME], string[44];
    GetPlayerName(playerid, name, sizeof(name));
    for (new i=0; i < GZS_CRIADAS; i++)
    {
        if (x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
        format(string, sizeof(string), "Informaзгo: {FFFFFF}%s {FF0000}comeзou a dominar a Gang Zone {FFFFFF}%s{FF0000}!",name,NomesGZs[i]);
        SendClientMessageToAll(COLOR_RED, string);
        GangZoneFlashForAll(GZCriadas[i], GetPlayerColor(playerid));
    }
    SetTimer("Terminar",60000,false);
    return 1;
}
Public do SetTimer:

pawn Код:
public Terminar(playerid)
{
    if(!IsAreaInGangCheck(playerid)) return SendClientMessageToAll(0xFFFF00AA, "Nгo consiguiram dominar a Gang Zone!"),0;
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new name[MAX_PLAYER_NAME], string[44];
    GetPlayerName(playerid, name, sizeof(name));
    for (new i=0; i < GZS_CRIADAS; i++)
    {
        if (x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
        {
        format(string, sizeof(string), "Informaзгo: {FFFFFF}%s {FF0000}conseguiu dominar a Gang Zone {FFFFFF}%s{FF0000}!",name,NomesGZs[i]);
        GangZoneStopFlashForAll(GZCriadas[i]);
        }
    }
    SendClientMessageToAll(0xFFFF00AA, string);
    return true;
}
Stock para checar se o player estб na GangZone:

pawn Код:
stock IsAreaInGangCheck(playerid)
{
     new Float:x, Float:y, Float:z;
     GetPlayerPos(playerid, x, y, z);
     for (new i=0; i < GZS_CRIADAS; i++)
      if (x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500) return true;
     return false;
}
Bom, tudo isso o [iPs]Garfield me ajudou. Agora, como eu mudo a cor dessa gangzone que tб branca pra caramba, quero deixar ela branca mas transparente: 0xFFFFFF41.

E quando digito /dominar, pula umas linhas em branco e nгo aparece o Informaзгo:.
Espero que me ajudem. Obrigado.
Reply
#2

pawn Код:
public Terminar(playerid)
{
    if(!IsAreaInGangCheck(playerid)) return SendClientMessageToAll(0xFFFF00AA, "Nгo consiguiram dominar a Gang Zone!"),0;
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new name[MAX_PLAYER_NAME], string[44];
    GetPlayerName(playerid, name, sizeof(name));
    for (new i=0; i < GZS_CRIADAS; i++)
    {
        if (x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
        {
        format(string, sizeof(string), "Informaзгo: {FFFFFF}%s {FF0000}conseguiu dominar a Gang Zone {FFFFFF}%s{FF0000}!",name,NomesGZs[i]);
        GangZoneStopFlashForAll(GZCriadas[i]);
        }
    }
    SendClientMessageToAll(0xFFFFFF41, string); // Aqui у
    return true;
}
Reply
#3

Aqui estб caro amigo cabeзa de cachorro !


Seu cуdigo estava com vбrios problemas, como falta de return e if dentro de loop sem chaves (o que faz com que o if nгo seja lido), SetTimer quando deveria ser SetTimerEx, entre outros .


Aqui estб, organizei-o em forma de Gamemode new.pwn para melhorar o entendimento do cуdigo, basta checar os locais correspodentes no seu GM/FS para saber onde colocar cada um :


pawn Код:
#include a_samp


#define Cor_Gz_Dominada 0xFFFFFFAA //Troque aqui a cor que a GZ ficarб apуs ser dominada :D



#define GZS_CRIADAS 4




new GZCriadas[GZS_CRIADAS];
new NomesGZs[GZS_CRIADAS][] =
{
"Aero",//1
"Estacionamento",//2
"Bar",//3
"Parque"//4  OBS: Ъltimo sem vнrgula
};





new Float:CordGZs[GZS_CRIADAS][4] =
{
{1356.766, -2396.403, 1596.345, -2195.068}, // Aero
{1493.668, -1160.76, 1847.332, -912.0523}, // Estacionamento
{337.6059, -1839.771, 520.142, -1666.071}, // Bar
{1828.318, -1287.088, 2094.516, -1113.3871} // Parque
};





forward Terminar(playerid);
public Terminar(playerid)
{
    if(!IsAreaInGangCheck(playerid)) return SendClientMessageToAll(0xFFFF00AA, "Nгo consiguiram dominar a Gang Zone!"),0;
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new name[MAX_PLAYER_NAME], string[44];
    GetPlayerName(playerid, name, sizeof(name));
    for (new i=0; i < GZS_CRIADAS; i++)
    {
        if (x >= CordGZs[i][0] && y >= CordGZs[i][1] && x <= CordGZs[i][2] && y <= CordGZs[i][3]&& z < 500)
        {
            format(string, sizeof(string), "Informaзгo: {FFFFFF}%s {FF0000}conseguiu dominar a Gang Zone {FFFFFF}%s{FF0000}!",name,NomesGZs[i]);
            GangZoneStopFlashForAll(GZCriadas[i]);
            GangZoneShowForAll(GZCriadas[i], Cor_Gz_Dominada);//Coloque aqui a cor que a GZ ficarб apуs ser dominada :D
        }
    }
    SendClientMessageToAll(0xFFFF00AA, string);
    return true;
}
//FIM DAS GANGZONES






public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/dominar", true))
    {
        if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid, COLOR_RED, "Vocк nгo estб em nenhuma Gang Zone!");
        new Float:x, Float:y, Float:z;
        GetPlayerPos(playerid, x, y, z);
        new name[MAX_PLAYER_NAME], string[44];
        GetPlayerName(playerid, name, sizeof(name));
        for (new i=0; i < GZS_CRIADAS; i++)
        {
            if (x >= CordGZs[i][0] && y >= CordGZs[i][1] && x <= CordGZs[i][2] && y <= CordGZs[i][3]&& z < 500)
            {
                format(string, sizeof(string), "Informaзгo: {FFFFFF}%s {FF0000}comeзou a dominar a Gang Zone {FFFFFF}%s{FF0000}!",name,NomesGZs[i]);
                SendClientMessageToAll(COLOR_RED, string);
                GangZoneFlashForAll(GZCriadas[i], GetPlayerColor(playerid));
            }
        }
        SetTimerEx("Terminar", 60000, false, "d", playerid);
        return 1;
    }
    return 0;
}





public OnGameModeInit()
{
    for (new i = 0; i <GZS_CRIADAS; i++) // Loop
    {
        GZCriadas[i] = GangZoneCreate(CordGZs[i][0], CordGZs[i][1], CordGZs[i][2], CordGZs[i][3]);
        printf("Gang Zone %s criada com sucesso!",NomesGZs[i]);
    }
    return 1;
}





stock IsAreaInGangCheck(playerid)
{
     new Float:x, Float:y, Float:z;
     GetPlayerPos(playerid, x, y, z);
     for (new i=0; i < GZS_CRIADAS; i++)
     {
        if (x >= CordGZs[i][0] && y >= CordGZs[i][1] && x <= CordGZs[i][2] && y <= CordGZs[i][3]&& z < 500)
        {
            return true;
        }
     }
     return false;
}


Espero ter ajudado .
Reply
#4

oi pessoal como fasso minha perguta aqui no forum me ajuda ai pf
Reply
#5

Clica aqui
Reply
#6

galera alguem me ajuda ai por favor to perdido aqui no forum
Reply
#7

Zina Desculpe mais nao foi nao eu acho
e desculpa esta atrapalhando ai й q eu vi voces online
Reply
#8

Й sу clicar no link e colocar o tнtulo e o contйudo.

Obs.: Nгo й permitido double-post aqui no fуrum caro colega, LEIA AS REGRAS.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)