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.

+3
Lυcas_KinG
ipsLuan
BяiиquєDσ รcяiρт
7 participantes

    [FS] Moedas Verdes 2.1

    BяiиquєDσ รcяiρт
    BяiиquєDσ รcяiρт
    --> Postador Iniciante
    --> Postador Iniciante


    Celular : 2194244332
    Mensagens : 37
    Moedas : 3940
    Data de inscrição : 13/10/2013
    Idade : 28
    Localização : 127.0.0.1

    [FS] Moedas Verdes 2.1 Empty [FS] Moedas Verdes 2.1

    Mensagem por BяiиquєDσ รcяiρт Qui 17 Out 2013 - 7:30

    Eae, quando fizeram o pedido desse sistema eu fiz ele rapidinho e nem me prendi muito a resolver bugs que tinham quando eram usados em alguns gms e tal. só que agora vou levar o projeto pra frente, então consertei todos os bugs, adicionei novas coisas e quem tiver dicas, sugestões e ideias peço que comentem abaixo.

    Versão 1.0 - Créditos BrinqueDo
    - Salvamento de moedas para cada usuario em DOF2.
    - Primeiro comando de compra com mv's criados para seguirem o exemplo.
    - Comando /moedasv criado para ver todos os comandos do FS
    - Verifica se o usuario tem ou não mv's suficientes para efetuar a compra.

    Versão 2.0 - Créditos BrinqueDo
    - Consertado bugs e agora funcionando na maioria dos GM'S
    - Adicionada função de ver moedas.
    - No caso de contas novas, não é preciso relogar para ativar as mv's.
    - Adicionada mensagem de retorno em todas as ações. (ex. quando der moedas a um jogador, retorna a mensagem dizendo quantas moedas voce deu e quantas o player tem agora)

    Versão 2.1 - Crédito BrinqueDo
    - Adicionado comando de transferir moedas entre players.

    Créditos: Criação do nome - BPF / Criação do code: BriqueDo

    Requisitos:
    - É necessario ter o plugin sscanf.inc dentro da pasta plugins no diretorio do seu servidor.
    - Ter a linha "plugins sscanf" ao seu server.cfg.
    - Ter a pasta moedas criada dentro da pasta scriptfiles do diretorio do seu servirdor. (SEUSERVIDOR/scriptfiles/moedas).

    Código:
    /* Sistema de Moedas Verdes v2.0 - by BrinqueDo

       Versão 1.0 - Créditos BrinqueDo
       - Salvamento de moedas para cada usuario em DOF2.
       - Primeiro comando de compra com mv's criados para seguirem o exemplo.
       - Comando /moedasv criado para ver todos os comandos do FS
       - Verifica se o usuario tem ou não mv's suficientes para efetuar a compra.
       
       Versão 2.0 - Créditos BrinqueDo
       - Consertado bugs e agora funcionando na maioria dos GM'S
       - Adicionada função de ver moedas.
       - No caso de contas novas, não é preciso relogar para ativar as mv's.
       - Adicionada mensagem de retorno em todas as ações. (ex. quando der moedas a um jogador, retorna a mensagem dizendo quantas moedas voce deu e quantas o player tem agora)

       Versão 2.1 - Créditos BrinqueDo
       - Adicionado comando de transferir moedas entre players.
       
       Créditos: Criação do nome - BPF / Criação do code: BriqueDo

       Requisitos:
       - É necessario ter o plugin sscanf.inc dentro da pasta plugins no diretorio do seu servidor.
       - Ter a linha "plugins sscanf" ao seu server.cfg.
       - Ter a pasta moedas criada dentro da pasta scriptfiles do diretorio do seu servirdor. (SEUSERVIDOR/scriptfiles/moedas).
    */

    #include <a_samp>
    #include <DOF2>
    #include <zcmd>
    #include <sscanf2>

    //Defines
    #define amarelo 0xFFFF00FF
    #define azul 0x058AFFFF
    #define rosa 0xFF05CDFF
    #define verde 0x33AA33AA
    #define vermelho 0xFFFFFFAA
    #define branco 0xFFFFFFFF
    #define preto 0x000000FF
    #define cinza 0x878787FF
    #define azulclaro 0x03F2FFFF
    #define verdeclaro 0x03FF35FF
    #define roxo 0x7D03FFFF
    #define roxoclaro 0x9A03FFFF
    #define laranja 0xFF7403FF

    //enum's
    enum MoedasInfo
    {
       moedas,
    }
    // News
    new PlayerMoedasInfo[MAX_PLAYERS][MoedasInfo];
    new MoedasV[MAX_PLAYERS];
    new Text:Moedas;

    // Forwards
    forward MoedasVerdes(playerid);

    //Publics
    public OnFilterScriptInit()
    {
       print("\n--------------------------------------");
       print("Sistema de Moedas Verdes - by BrinqueDo");
       print("--------------------------------------\n");
       SetTimer("MoedasVerdes",1000, 1); // Fica atualizando o numero de moedas
       return 1;
    }

    main (){}
    public OnPlayerConnect(playerid)
    {
       new nome[MAX_PLAYER_NAME];
        new arquivo[40];
        GetPlayerName(playerid, nome, 32);
        format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
        if(DOF2_FileExists(arquivo))
        {
            CarregarMoedas(playerid);
        }
        else
        {
            CriarMoedas(playerid);
        }
        return 1;
    }

    public OnPlayerSpawn(playerid)
    {
       TextDrawShowForPlayer(playerid, Moedas);
    }

    public MoedasVerdes(playerid)
    {
        TextDrawDestroy(Moedas);
        new str[128];
        format(str, 256, "~g~MV~r~:~w~%d", PlayerMoedasInfo[playerid][moedas]);
        Moedas = TextDrawCreate(496.000000, 122.000000,str);
        TextDrawBackgroundColor(Moedas, 255);
        TextDrawFont(Moedas, 2);
        TextDrawLetterSize(Moedas, 0.509999, 2.100000);
        TextDrawColor(Moedas, -1);
        TextDrawSetOutline(Moedas, 1);
        TextDrawSetProportional(Moedas, 0);

        for(new i; i < MAX_PLAYERS; i ++)
        {
            if(IsPlayerConnected(i))
            {
                TextDrawHideForPlayer(i, Moedas);
                TextDrawShowForPlayer(i, Moedas);
            }
        }
        return 1;
    }

    public OnPlayerDisconnect(playerid, reason)
    {
        SalvarMoedas(playerid);
       return 1;
    }

    public OnFilterScriptExit()
    {
        TextDrawHideForAll(Moedas);
        TextDrawDestroy(Moedas);
       DOF2_Exit();
       return 1;
    }


    CMD:moedasverdes(playerid)
    {
       SendClientMessage(playerid, azul, "Comandos Player: /comprardinheiro /comprarscore /transferirmoedasv");
       SendClientMessage(playerid, azul, "Ajuda: Você ganha moedas verdes em eventos.");
       return 1;
    }

    CMD:moedasvadmin(playerid)
    {
        SendClientMessage(playerid, azul, "Comandos Admin: /darmoedasv - /darmoedasvtodos - /setarmoedasv - /setarmoedasvtodos - /resetarmoedasv - /vermoedas");
        SendClientMessage(playerid, azul, "Ajuda: Você precisa estar logado na rcon. (/rcon login [senha])");
       return 1;
    }
    // Comandos Admin

    CMD:darmoedasv(playerid,params[])
    {
        new ID, MOEDAS;
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
        if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /darmoedasv [ID][QUANTIDADE]");
        if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] ID invalido");
        PlayerMoedasInfo[ID][moedas] = PlayerMoedasInfo[ID][moedas] + MOEDAS;
        new msgadm[200];
        format(msgadm, sizeof(msgadm),"[MOEDAS] Você deu %d moedas para %s.", MOEDAS, GetName(ID));
        SendClientMessage(playerid, verdeclaro, msgadm);
        new msgplayer[200];
        format(msgplayer, sizeof(msgplayer),"[MOEDAS] Você ganhou %d moedas do admin %s.", MOEDAS, GetName(playerid));
        SendClientMessage(playerid, verdeclaro, msgplayer);
       return 1;
    }

    CMD:darmoedasvtodos(playerid,params[])
    {
        new MOEDAS;
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
        if(sscanf(params, "d", MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /darmoedasvtodos [QUANTIDADE]");
        for(new i = 0; i < MAX_PLAYERS; i++)
       {
          if(IsPlayerConnected(i))
          {
             PlayerMoedasInfo[i][moedas] = PlayerMoedasInfo[i][moedas] + MOEDAS;
          }
       }
       new msgadm[200];
        format(msgadm, sizeof(msgadm),"[MOEDAS] Você deu %d moedas para todos.", MOEDAS);
        SendClientMessage(playerid, verdeclaro, msgadm);
        new msgplayer[200];
         format(msgplayer, sizeof(msgplayer),"[MOEDAS] Você ganhou %d moedas do admin %s.", MOEDAS, GetName(playerid));
        SendClientMessage(playerid, verdeclaro, msgplayer);

       return 1;
       
    }

    CMD:setarmoedasvtodos(playerid,params[])
    {
        new MOEDAS;
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
        if(sscanf(params, "d", MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /setarmoedasvtodos [QUANTIDADE]");
        for(new i = 0; i < MAX_PLAYERS; i++)
       {
          if(IsPlayerConnected(i))
          {
             PlayerMoedasInfo[i][moedas] = MOEDAS;
          }
       }
       new msgadm[200];
        format(msgadm, sizeof(msgadm),"[MOEDAS] Você setou as moedas de todos para %d.", MOEDAS);
        SendClientMessageToAll(verdeclaro, msgadm);
        new msgplayer[200];
        format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram setadas para %d pelo admin %s.", MOEDAS, GetName(playerid));
        SendClientMessage(playerid, verdeclaro, msgplayer);

       return 1;
    }

    CMD:setarmoedasv(playerid,params[])
    {
       new ID, MOEDAS;
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
        if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /setarmoedasv [ID][QUANTIDADE]");
        if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Erro: ID invalido");
        PlayerMoedasInfo[ID][moedas] = MOEDAS;
        new msgadm[200];
        format(msgadm, sizeof(msgadm),"[MOEDAS] Você setou as moedas de %s para %d.", GetName(ID), MOEDAS);
        SendClientMessage(playerid, verdeclaro, msgadm);
        new msgplayer[200];
        format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram setadas para %d pelo admin %s.", MOEDAS, GetName(playerid));
        SendClientMessage(playerid, verdeclaro, msgplayer);
        return 1;
    }

    CMD:resetarmoedasv(playerid,params[])
    {
        new ID;
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
        if(sscanf(params, "u", ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /resetarmoedasv [ID]");
        if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Erro: ID invalido");
        PlayerMoedasInfo[ID][moedas] = 0;
        new msgadm[200];
        format(msgadm, sizeof(msgadm),"[MOEDAS] Você resetou as moedas de %s.", GetName(ID));
        SendClientMessage(playerid, verdeclaro, msgadm);
        new msgplayer[200];
        format(msgplayer, sizeof(msgplayer),"[MOEDAS] Suas moedas foram resetadas pelo admin %s.", GetName(playerid));
        SendClientMessage(playerid, verdeclaro, msgplayer);
        return 1;
    }

    CMD:vermoedasv(playerid,params[])
    {
        new ID;
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, cinza, "[MOEDAS] Você não é administrador !");
        if(sscanf(params, "u", ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /vermoedasv [ID]");
        new vermoedasv[200];
        format(vermoedasv, sizeof(vermoedasv),"[MOEDAS] %s tem %d moedas verdes.",GetName(ID), GetPlayerMoedasV(ID));
        SendClientMessage(playerid, verdeclaro, vermoedasv);
        return 1;
    }

    CMD:transferirmoedasv(playerid,params[])
    {
        new ID, MOEDAS;
        if(sscanf(params, "ud", ID, MOEDAS)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /transferirmoedasv [ID][QUANTIDADE]");
        if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, vermelho, "[MOEDAS] ID invalido");
        if(MOEDAS >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
        PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - MOEDAS;
        PlayerMoedasInfo[ID][moedas] = PlayerMoedasInfo[ID][moedas] + MOEDAS;
        new msgadm[200];
        format(msgadm, sizeof(msgadm),"[MOEDAS] Você transferiu %d moedas para %s.", MOEDAS, GetName(ID));
        SendClientMessage(playerid, verdeclaro, msgadm);
        new msgplayer[200];
        format(msgplayer, sizeof(msgplayer),"[MOEDAS] %s transferiu %d moedas para você.", GetName(playerid), MOEDAS);
        SendClientMessage(playerid, verdeclaro, msgplayer);
       return 1;
    }

    // Comandos Player

    CMD:comprardinheiro(playerid,params[])
    {
       new qtd;
        if(sscanf(params, "d", qtd)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /comprardinheiro [QUANTIDADE] - 10000 Reais = 10 MV");
        if(qtd < 10000 || qtd > 500000) return SendClientMessage(playerid, vermelho,"[MOEDAS] Valor mínimo: 10000 Reais - Valor Máximo: 500000 Reais");
        if(qtd/1000 >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
        PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - qtd/1000;
        GivePlayerMoney(playerid, qtd);
        return 1;
    }

    CMD:comprarscore(playerid,params[])
    {
       new qtd;
        if(sscanf(params, "d", qtd)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /comprarscore [QUANTIDADE] - 1000 Score = 10 MV");
        if(qtd < 1000 || qtd > 50000) return SendClientMessage(playerid, vermelho,"[MOEDAS] Valor mínimo: 1000 Score - Valor Máximo: 50000 Score por compra.");
        if(qtd/100 >= PlayerMoedasInfo[playerid][moedas]) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
        PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - qtd/100;
        SetPlayerScore(playerid,GetPlayerScore(playerid) +qtd);
        return 1;
    }


    // Stocks

    stock GetName(playerid)
    {
       new name[24];
       GetPlayerName(playerid,name,24);
       return name;
    }

    stock CriarMoedas(playerid)
    {
        new arquivo[36];
       format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
        DOF2_CreateFile(arquivo);
        DOF2_SetInt(arquivo, "moedas", 0);
        DOF2_SaveFile();
        PlayerMoedasInfo[playerid][moedas] = 0;
    }

    stock CarregarMoedas(playerid)
    {
        new arquivo[36];
       format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
       PlayerMoedasInfo[playerid][moedas] = 0;
       PlayerMoedasInfo[playerid][moedas] = DOF2_GetInt(arquivo, "moedas");


    }

    stock SalvarMoedas(playerid)
    {
       new arquivo[36];
       format(arquivo,sizeof arquivo,"/moedas/%s.txt",GetName(playerid));
        DOF2_SetInt(arquivo, "moedas", PlayerMoedasInfo[playerid][moedas]);
        DOF2_SaveFile();
    }

    stock GetPlayerMoedasV(playerid)
    {
       return MoedasV[playerid];
    }
    Tutorial - Como criar comandos para seu server
    Bom gente, não deixei esses comandos fixos no fs pois as variaveis variam de gm para gm, mas em troca vou ensina-los a fazer isso dentro do fs.
    Vou criar esse tutorial como se fossemos criar um comando de comprarnivel, vamos lá...
    Código:
    CMD:comprarnivel(playerid,params[])
    {
        if(sscanf(params, "d", qtd)) return SendClientMessage(playerid, vermelho, "[MOEDAS] Use /comprarnivel 1 Nivel = 10 MV");
        if(PlayerMoedasInfo[playerid][moedas] >= 10) return SendClientMessage(playerid, vermelho,"[MOEDAS] Você não tem Moedas Verdes suficientes.");
        PlayerMoedasInfo[playerid][moedas] = PlayerMoedasInfo[playerid][moedas] - 10;
        PlayerMoedasInfo[playerid][nivel] = PlayerMoedasInfo[playerid][nivel] + 1;
        return 1;
    }
    PlayerMoedasInfo[playerid][nivel] você substitui pelas informações do seu server rpg e é claro adicione as news e enum's que voce for usar ao fs.


    Última edição por BяiиquєDσ รcяiρт em Sex 18 Out 2013 - 16:30, editado 2 vez(es)



    Servidor de Hard Deathmatch
    IP: px01.carbonhost.com.br:7781
    Venha treinar seu x1 - Sistemas únicos - Vagas abertas



    MINHAS CRIAÇÕES
    ipsLuan
    ipsLuan
    --> Postador Fanático
    --> Postador Fanático


    Steam Steam : luan_argolo
    Mensagens : 484
    Moedas : 5030
    Data de inscrição : 16/02/2013
    Idade : 25
    Localização : Ilhéus

    [FS] Moedas Verdes 2.1 Empty Re: [FS] Moedas Verdes 2.1

    Mensagem por ipsLuan Qui 17 Out 2013 - 8:24

    Ótimo FS!



    [FS] Moedas Verdes 2.1 GitHub-Mark-32px[FS] Moedas Verdes 2.1 Facebook-icon[FS] Moedas Verdes 2.1 3076266[FS] Moedas Verdes 2.1 Instagram[FS] Moedas Verdes 2.1 Skype
    Lυcas_KinG
    Lυcas_KinG
    --> Postador Iniciante
    --> Postador Iniciante


    Mensagens : 142
    Moedas : 4271
    Data de inscrição : 06/07/2013
    Idade : 44
    Localização : Algum Lugar do Espaço

    [FS] Moedas Verdes 2.1 Empty Re: [FS] Moedas Verdes 2.1

    Mensagem por Lυcas_KinG Qui 17 Out 2013 - 15:45

    Ótimo Sistema ;D



    [FS] Moedas Verdes 2.1 S06xjSN

    [FS] Moedas Verdes 2.1 4nYKfO1

    [FS] Moedas Verdes 2.1 AQIAK8y
    ipsLuan
    ipsLuan
    --> Postador Fanático
    --> Postador Fanático


    Steam Steam : luan_argolo
    Mensagens : 484
    Moedas : 5030
    Data de inscrição : 16/02/2013
    Idade : 25
    Localização : Ilhéus

    [FS] Moedas Verdes 2.1 Empty Re: [FS] Moedas Verdes 2.1

    Mensagem por ipsLuan Sex 18 Out 2013 - 8:17

    Muitos servidores usam a enum pInfo
    Então suponho que alguns iam substituir
    Código:
    PlayerMoedasInfo[playerid][nivel]
    para
    Código:
    PlayerInfo[playerid][pLevel]



    [FS] Moedas Verdes 2.1 GitHub-Mark-32px[FS] Moedas Verdes 2.1 Facebook-icon[FS] Moedas Verdes 2.1 3076266[FS] Moedas Verdes 2.1 Instagram[FS] Moedas Verdes 2.1 Skype
    Kong
    Kong
    --> Postador Iniciante
    --> Postador Iniciante


    Celular : 011972363958
    Mensagens : 2
    Moedas : 3851
    Data de inscrição : 16/10/2013

    [FS] Moedas Verdes 2.1 Empty Re: [FS] Moedas Verdes 2.1

    Mensagem por Kong Sex 18 Out 2013 - 12:22

    Ótimo, não farei uso no momento pois estou trabalhando em um sistema próprio, mas obrigado por compartilhar conosco.


    Lucas Kong
    WebDesigner
    Dąяķ รcяiρт
    Dąяķ รcяiρт
    --> Postador Iniciante
    --> Postador Iniciante


    Celular : 2180651173
    Mensagens : 61
    Moedas : 3930
    Data de inscrição : 01/12/2013

    [FS] Moedas Verdes 2.1 Empty Re: [FS] Moedas Verdes 2.1

    Mensagem por Dąяķ รcяiρт Qua 4 Dez 2013 - 11:10

    Ficou top Wink
    AntonioCarlos
    AntonioCarlos
    --> Postador Iniciante
    --> Postador Iniciante


    Celular : 3488772037
    Mensagens : 17
    Moedas : 3946
    Data de inscrição : 11/08/2013

    [FS] Moedas Verdes 2.1 Empty Re: [FS] Moedas Verdes 2.1

    Mensagem por AntonioCarlos Seg 26 maio 2014 - 17:50

    Tem alguns bug's.
    Wandson_GTA
    Wandson_GTA
    --> Postador Iniciante
    --> Postador Iniciante


    Celular : 9991981153
    Mensagens : 17
    Moedas : 3655
    Data de inscrição : 31/05/2014

    [FS] Moedas Verdes 2.1 Empty Re: [FS] Moedas Verdes 2.1

    Mensagem por Wandson_GTA Sex 1 Ago 2014 - 1:14

    Muito bom FS , Parabéns !

    Conteúdo patrocinado


    [FS] Moedas Verdes 2.1 Empty Re: [FS] Moedas Verdes 2.1

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sáb 27 Abr 2024 - 15:17