SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] Criando um Sistema de Dominio ( Via Comando )

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031978
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Criando um Sistema de Dominio ( Via Comando ) Empty [Tutorial] Criando um Sistema de Dominio ( Via Comando )

    Mensagem por Weslley_Script Dom 8 Out 2023 - 17:37

    Como nгo venho postando muitos projetos ultimamente .. venho postar este tutorial sobre como criar um sistema dominavel via comandos.

    PS: Nгo sei explicar nada.. essa foi uma tentativa meio fail.. AEHUAEHEHUHEHUAE

    Vamos ao tutorial!

    0- Irei usar a Pista de Skate como Ponto de Dominio.

    1- Iremos adicionar as includes :
    pawn Код:


    Código:
    #include <a_samp>
    #include <zcmd>


    2-Depois de adicionar as includes, Iremos definir As Cores .
    pawn Код:


    Código:
    #define Vermelho            0xFF0000AA
    #define Amarelo             0xFFFF00FF


    3-Iremos Criar as news necessбrias , incluindo a da criaзгo da gangzone e a das variaveis da dominaзгo
    pawn Код:


    Código:
    new Dominando[MAX_PLAYERS], ProvocouSkate[MAX_PLAYERS], TempoGuerraSkate,
        AlguemDominando, GzParque;


    4- Adicione essa stock no final do gamemode / filterscript pois ela irб checar se o player estб na posiзгo da pista de skate ( local escolhido pro tutorial )
    pawn Код:


    Código:
    stock IsPlayerInPSkate(playerid)
    {
        new Float:x,Float:y,Float:z;
        GetPlayerPos(playerid, x, y, z);
        if(x >= 1861.328 && y >= -1455.078 && x <= 1972.656 && y <= -1349.609) return 1;
        else return 0;
    }



    Código:
    /*Exemplo de Uso:
    Positivo:

    if(IsPlayerInPSkate(playerid) return SendClientMessage(playerid, -1, "Vocк estб na pista de skate. legal!");

    Negativo:

    if(!IsPlayerInPSkate(playerid) return SendClientMessage(playerid, -1, "Vocк nгo estб na pista de skate. que pena!");

    */


    5- Adicionando a GangZone
    pawn Код:

    Código:
    [center][left]// Colocar no OnFilterScriptInit / GameModeInit \/
        GzParque = GangZoneCreate(1861.328125, -1455.078125, 1972.65625, -1349.609375);
    // X = 1861.328125,  Y= -1455.078125, Z = 1972.65625, xX = -1349.609375);[/left][/center]
    [center][/center]


    6-Agora deixe o "OnPlayerSpawn" O Seguitne cуdigo:
    pawn Код:


    Código:
    public OnPlayerSpawn(playerid)
    {
        GangZoneShowForAll(GzParque , 0xFF000096); // GangZoneShowForAll = Essa funзгo irб fazer com que todos que spanwarem no servidor irгo ver a gangzone que estб no parque.
        return 1;
    }


    7-Deixe o Seu onPlayerdeath da seguinte forma:
    pawn Код:


    Código:
    public OnPlayerDeath(playerid, killerid, reason)
    {
        if(IsPlayerInPSkate(playerid)) // Isto irб checar se ele estб na pista de skate.
        {
            Dominando[playerid] = 0; // Aqui setarб que ele nгo estб mais dominando.
            AlguemDominando = 0; // Aqui vai setar que nгo tem niguem dominando a pista.
            ProvocouSkate[playerid] = 0; // Aqui jб vai setar que niguem provocou uma dominaзгo
        }
        return 1;
    }


    8-CallBack da Dominaзгo
    pawn Код:

    Código:
    [center][left]forward GuerraSkate(playerid); // Forward
    public GuerraSkate(playerid) // Callback
    {
        if(IsPlayerInPSkate(playerid)) // Irб checar se ele estб na pista
        {
            new string[100];
            GangZoneStopFlashForAll(GzParque); // Aqui irб parar de "Piscar" a gangzone em branco.
            GangZoneShowForAll(GzParque, GetPlayerColor(playerid)); // Aqui vai alterar a cor da gangzone para a cor do player que dominou ela.
            Dominando[playerid] = 0; // Vai setar que nгo O player nгo estб dominando a pista.
            ProvocouSkate[playerid] = 0; // Vai setar que o player nгo provocou nenhuma guerra na pista.
            AlguemDominando = 0; // Vai setar que nгo tem niguem dominando a pista de skate.
            KillTimer(TempoGuerraSkate);// Aqui zera o tempo de dominaзгo
            format(string, sizeof(string), "( GangZones ) %s conseguiu dominar a pista de skate!", GetName(playerid)); // Mensagem
            SendClientMessageToAll(Amarelo, string); // Mensagem
            SendClientMessage(playerid, Amarelo, "( Info - GZ ) Vocк dominou um territуrio e ganhou 200R$."); // Mensagem
            GivePlayerMoney(playerid, 200);// Aqui vai dar 200R$ Ao player por ter dominado a pista de skate..
        }
        else // Caso ele nгo esteja no local da dominaзгo ou seja na pista de skate.. a cor da gangzone vai voltar ao normal , padrгo = vermelho
        {
            GangZoneStopFlashForAll(GzParque);
            GangZoneShowForAll(GzParque, 0xFF000096); // Setando a cor da gangzone = Vermelho
        }
        return 1;
    }[/left][/center]
    [center][/center]


    9- Comando
    pawn Код:


    Código:
    CMD:dominar(playerid) // Comando
    {
        if(IsPlayerInPSkate(playerid)) // vai checar se ele estб na pista de skate
        {
            if(Dominando[playerid] == 1) return SendClientMessage(playerid, Vermelho, "( Info ) Vocк jб estб dominando este territуrio"); // vai checar se o player jб estб dominando o territorio
            if(AlguemDominando == 1) return SendClientMessage(playerid, Vermelho, "( Info ) Alguem jб estб dominando este territуrio! Aguarde"); // vai checar se jб tem alguem dominando o territorio
            new string[100];
            Dominando[playerid] = 1;// setando que alguem comeзou a dominar a dominar a pista
            ProvocouSkate[playerid] = 1; // setando que alguem provocou uma guerra na psita..
            AlguemDominando = 1; // setando que alguem estб dominando a pista.
            format(string, sizeof(string), "( GangZones ) %s estб tentando dominar a pista de skate!", GetName(playerid)); // mensagem
            SendClientMessageToAll(Amarelo, string); // msg
            SendClientMessage(playerid, Amarelo, "( Info - GZ ) Vocк estб Dominando a Pista de Skate.. Aguarde 1 Minuto"); // mensagem
            TempoGuerraSkate = SetTimerEx("GuerraSkate", 60000, 0, "i", playerid); // tempo que irб aguardar atй a dominaзгo total da pista.. ( 1 minuto )
            GangZoneFlashForAll(GzParque, -1);// A GangZone Irб ficar piscando , vermelho & BRANCO
        }
        else
        {
            SendClientMessage(playerid, Vermelho, "Vocк nгo estб em nenhum territуrio!"); // Aqui vai mandar a mensagem caso ele nгo esteja em nenhum territуrio
        }
        return 1;
    }


    10 - GetName
    pawn Код:

    Código:
    [center][left]//Adicione esta stock no fim do seu gamemode / filterscript .. irб getar o nome do jogador com a funзгo = GetName(playerid);
    stock GetName(playerid)
    {
        new Name[24];
        GetPlayerName(playerid,Name,24);
        return Name;
    }[/left][/center]
    [center][/center]

    Cуdigo completo pros preguiзosos que nгo vгo ler Palavrão bloqueado nenhuma.. '-'
    pawn Код:


    Código:
    #include <a_samp>
    #include <zcmd>




    Código:
    #define Vermelho            0xFF0000AA
    #define Amarelo             0xFFFF00FF




    Código:
    new Dominando[MAX_PLAYERS], ProvocouSkate[MAX_PLAYERS], TempoGuerraSkate,
        AlguemDominando, GzParque;

    stock IsPlayerInPSkate(playerid)
    {
        new Float:x,Float:y,Float:z;
        GetPlayerPos(playerid, x, y, z);
        if(x >= 1861.328 && y >= -1455.078 && x <= 1972.656 && y <= -1349.609) return 1;
        else return 0;
    }



    Código:
    public OnFilterScriptInit()
    {
        GzParque = GangZoneCreate(1861.328125, -1455.078125, 1972.65625, -1349.609375);
        return 1;
    }

    public OnPlayerSpawn(playerid)
    {
        GangZoneShowForAll(GzParque , 0xFF000096);
        return 1;
    }

    public OnPlayerDeath(playerid, killerid, reason)
    {
        if(IsPlayerInPSkate(playerid))
        {
            Dominando[playerid] = 0;
            AlguemDominando = 0;
            ProvocouSkate[playerid] = 0;
        }
        return 1;
    }





    Código:
    forward GuerraSkate(playerid);
    public GuerraSkate(playerid)
    {
        if(IsPlayerInPSkate(playerid))
        {
            new string[100];
            GangZoneStopFlashForAll(GzParque);
            GangZoneShowForAll(GzParque, GetPlayerColor(playerid));
            Dominando[playerid] = 0;
            ProvocouSkate[playerid] = 0;
            AlguemDominando = 0;
            KillTimer(TempoGuerraSkate);
            format(string, sizeof(string), "( GangZones ) %s conseguiu dominar a pista de skate!", GetName(playerid));
            SendClientMessageToAll(Amarelo, string);
            SendClientMessage(playerid, Amarelo, "( Info - GZ ) Vocк dominou um territуrio e ganhou 200R$.");
            GivePlayerMoney(playerid, 200);
        }
        else
        {
            GangZoneStopFlashForAll(GzParque);
            GangZoneShowForAll(GzParque, 0xFF000096);
        }
        return 1;
    }

    CMD:dominar(playerid)
    {
        if(IsPlayerInPSkate(playerid))
        {
            if(Dominando[playerid] == 1) return SendClientMessage(playerid, Vermelho, "( Info ) Vocк jб estб dominando este territуrio");
            if(AlguemDominando == 1) return SendClientMessage(playerid, Vermelho, "( Info ) Alguem jб estб dominando este territуrio! Aguarde");
            new string[100];
            Dominando[playerid] = 1;
            ProvocouSkate[playerid] = 1;
            AlguemDominando = 1;
            format(string, sizeof(string), "( GangZones ) %s estб tentando dominar a pista de skate!", GetName(playerid));
            SendClientMessageToAll(Amarelo, string);
            SendClientMessage(playerid, Amarelo, "( Info - GZ ) Vocк estб Dominando a Pista de Skate.. Aguarde 1 Minuto");
            TempoGuerraSkate = SetTimerEx("GuerraSkate", 60000, 0, "i", playerid);
            GangZoneFlashForAll(GzParque, -1);
        }
        else
        {
            SendClientMessage(playerid, Vermelho, "Vocк nгo estб em nenhum territуrio!");
        }
        return 1;
    }



    Código:
    stock GetName(playerid)
    {
        new Name[24];
        GetPlayerName(playerid,Name,24);
        return Name;
    }

    CrйditosdPlaYer_ ( Yo Miesmo )

    - Obrigado por ler



    [Tutorial] Criando um Sistema de Dominio ( Via Comando ) D07Xwqb
    [Tutorial] Criando um Sistema de Dominio ( Via Comando ) Yjab9HN

      Data/hora atual: Qui 9 maio 2024 - 6:40