Olб pessoal.
Bom, a cada dia que passa adquirimos novos membros no fуrum sa-mp e com a simples intenзгo de criar um servidor RP/G, e bom, para evitarmos que fiquem simplesmente pegando um gamemode postado aqui, faзa uma simples ediзгo e lance o mesmo, eu estou criando alguns tutoriais bem simples porйm que pode ajudar alguns novatos.
O que й
Bom, o sistema de "pagamento" tambйm conhecido como sistema de "payday" й o salбrio que toda a hora exata (11:00, 12:00, 13:00, e assim sucessivamente) ele faz um pagamento do salбrio para o jogador.
O que й necessбrio
Bom, pode ser feito de vбrias maneiras, porйm, nesse tutorial estarei utilizando a include
Foreach e a include
ZCMD, ambas sгo fбceis de serem utilizadas.
Vamos comeзar entгo, primeiramente adicione no
topo de seu gamemode
PHP код:
#include zcmd
#include foreach
Agora vamos comeзar o sistema de verdade.
Na public
OnGameModeInit()
vamos adicionar o timer
PHP код:
SetTimer("Pagamento", 1000, true); // Pagamento й a callback que serб chamada
Agora, em um lugar junto com as suas outras publics vamos criar a public do pagamento.
PHP код:
forward Pagamento(); // Criarmos uma funзгo com public & forward й mais vantajoso, alem de poder ser chamada com CallRemote(Local)Function & SetTimer(Ex), tambйm й rбpida.
public Pagamento()
{
foreach(Player, i) // loop do foreach
{
new string[128]; // Vai formatar o "SendClientMessage"
new salario = 750 + random(1000); // Valor random do salбrio, minimo de 750 e mбximo de 1000
new Hour, Minute, Second; // Cria a variavel das horas
gettime(Hour, Minute, Second); // Pega o tempo
if(IsPlayerConnected(i)) // Verifica se o player estб conectado
{
if(Minute == 0 && Second == 0) // Verifica se o minuto estб em 00 e o segundo tambйm
{
format(string, sizeof(string), "ATENЗГO: AGORA SГO %d:00 HORAS!", Hour); // Diz que horas sгo com a variavel "Hour"
SendClientMessage(i, -1, string); // Formataзгo
SendClientMessage(i,-1, "|_____ PAGAMENTO _____|"); // SCM dizendo que й o pagamento, (caso queira mudar as cores, mude o "-1")
format(string, sizeof(string), "Salario: R$%d Imposto: -R$50", salarionormal); // Diz quanto o jogador ganhou do salбrio e diz o valor do imposto.
SendClientMessage(i, -1, string); // Formataзгo
format(string, sizeof(string), "Plano de saъde: -R$250"); // SCM dizendo valor do plano, sem funзгo, apenas diz o valor, igual ao imposto.
SendClientMessage(i, -1, string); // Formataзгo
GivePlayerMoney(playerid, salarionormal); // Adiciona o salбrio randomico que o jogador ganhou
GivePlayerMoney(playerid, -300); // Retira o valor do imposto + plano de saъde do jogador, 250+50 = 300
}
}
}
return 1; // Retorna ao valor
}
Agora vamos criar um pagamento manual, para os administradores poderem aplicar a hora que quiser. Vamos lб, iremos criar uma nova public agora, porйm, nгo teremos mais a funзгo das horas.
PHP код:
forward PagamentoManual(); // Criarmos uma funзгo com public & forward й mais vantajoso, alem de poder ser chamada com CallRemote(Local)Function & SetTimer(Ex), tambйm й rбpida.
public PagamentoManual()
{
foreach(Player, i) // loop do foreach
{
new string[128]; // Vai formatar o "SendClientMessage"
new salario = 750 + random(1000); // Valor random do salбrio, minimo de 750 e mбximo de 1000
if(IsPlayerConnected(i)) // Verifica se o player estб conectado
{
format(string, sizeof(string), "ATENЗГO: AGORA SГO %d:00 HORAS!", Hour); // Diz que horas sгo com a variavel "Hour"
SendClientMessage(i, -1, string); // Formataзгo
SendClientMessage(i,-1, "|_____ PAGAMENTO _____|"); // SCM dizendo que й o pagamento, (caso queira mudar as cores, mude o "-1")
format(string, sizeof(string), "Salario: R$%d Imposto: -R$50", salarionormal); // Diz quanto o jogador ganhou do salбrio e diz o valor do imposto.
SendClientMessage(i, -1, string); // Formataзгo
format(string, sizeof(string), "Plano de saъde: -R$250"); // SCM dizendo valor do plano, sem funзгo, apenas diz o valor, igual ao imposto.
SendClientMessage(i, -1, string); // Formataзгo
GivePlayerMoney(playerid, salarionormal); // Adiciona o salбrio randomico que o jogador ganhou
GivePlayerMoney(playerid, -300); // Retira o valor do imposto + plano de saъde do jogador, 250+50 = 300
}
}
return 1; // Retorna ao valor
}
Agora o comando
PHP код:
CMD:pagamentomanual(playerid, params[])
{
if (IsPlayerAdmin(playerid)) //Verifica se o jogador й um administrador logado na rcon
{
PagamentoManual(playerid); // Chama a public PagamentoManual(), fazendo com que ela seja ativa de imediato
SendClientMessageToAll(playerid, -1, "Um administrador vez um PaydayManual");
}
else // verifica se o player nгo й administrador
{
SendClientMessage(playerid, -1, "Vocк nгo pode usar este comando!"); // retorna a mensagem para o player se ele nгo estб logado na rcon
}
return true; // retorna ao valor
}
Bom, o tutorial й basicamente isso, eu nгo sei explicar muito bem porйm tentei deixar bem dinвmico e fбcil de entender, entгo й isso, atй a prуxima pessoal.