samp.directory
← Scripts e bibliotecas

CarlinCV/findsamp

Include for FindSAMP, SA:MP server list and votes.

Biblioteca★ 7atualizado abr. de 2024Sem licençaPawn
Abrir no GitHub

Este repositório não tem arquivo de licença. Ele é público para leitura, mas isso sozinho não dá permissão para reutilizar.

README.md

FindSAMP

Esse include verifica e retorna o status de voto de um servidor e nome específico. Você pode utilizar isso para dar recompensa aos seus jogadores em troca de votos em FindSAMP.

Esse include foi feito para ser fácil e prático, você precisa definir apenas o endereço do seu servidor, manipular a callback de retorno. Será anexado um arquivo de exemplo no repositório, você pode ver como funciona.

Dependências

Funções

Envia uma verificação a API sobre o voto do jogador, retorna as informações em OnPlayerVote.

CheckPlayerVote(playerid); // 1 = Verificando, 0 = Aguarde 10 segundos

Retornos

Retornar informações sobre o voto de um jogador.

public OnPlayerVote(playerid, status, bool:voted) {
    return 1;
}

Exemplo

#include <a_samp>
#include <requests>

#define FINDSAMP_SERVER_IP ("IP:PORT") // Ex: 127.0.0.1:7777
#include <findsamp>

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/votar", true) == 0) {
        if(CheckPlayerVote(playerid) == 1) {
            SendClientMessage(playerid, -1, "Verificando seu voto...");
        }
        else {
            SendClientMessage(playerid, -1, "Você deve aguardar 10 segundos para executar o comando novamente.");
        }
    }
    return 1;
}

public OnPlayerVote(playerid, status, bool:voted)
{
    static 
        string[148];

    if(status == 200)
    {
        if(voted) {
            new
                payment = random(1000) + 500;

            GivePlayerMoney(playerid, payment);

            format(string, sizeof(string), "Você votou hoje e recebeu $%d por isso! Vote novamente amanhã.", payment);
            SendClientMessage(playerid, -1, string);
        }
        else {
            format(string, sizeof(string), "Você não votou hoje! Vote em: http://servers.portalsamp.com/pt/server/%s#vote", FINDSAMP_SERVER_IP);
            SendClientMessage(playerid, -1, string);
        }
    }
    else if(status == 1) {
        SendClientMessage(playerid, -1, "Você deve aguardar um pouco! Muitas consultas estão sendo feitas nesse momento.");
    }
    else {
        format(string, sizeof(string), "Não foi possível verificar seu voto! (Erro: %d)", status);
        SendClientMessage(playerid, -1, string);
    }
    return 1;
}

[!CAUTION] Você precisa salvar se o jogador votou no dia, caso contrário ele poderá receber diversas recompensas caso não haja essa verificação básica.

[!TIP] Você pode dar recompensas aos jogadores que votaram em seu servidor, pode ser itens comuns, dinheiro ou VIP's temporários.

Créditos

  • pushline - melhorias no código findsamp.inc.
  • CarlinCV - correção e reforma do findsamp.inc.
  • domingues93 - pela base do findsamp.inc.

Esta página é montada com o que o GitHub publica sobre o repositório. O samp.directory não hospeda o código. Avisar de um problema com esta página