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
Agora vamos comeзar o sistema de verdade.
Na public OnGameModeInit()
vamos adicionar o timer
Agora, em um lugar junto com as suas outras publics vamos criar a public do pagamento.
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.
Agora o comando
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.
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
- Código:
#include zcmd
#include foreach
Agora vamos comeзar o sistema de verdade.
Na public OnGameModeInit()
vamos adicionar o timer
- Código:
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.
- Código:
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(i, salarionormal); // Adiciona o salбrio randomico que o jogador ganhou
GivePlayerMoney(i, -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.
- Código:
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 1750
if(IsPlayerConnected(i)) // Verifica se o player estб conectado
{
format(string, sizeof(string), "ATENЗГO: OCORREU UM PAGAMENTO ESPECIAL!");
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(i, salarionormal); // Adiciona o salбrio randomico que o jogador ganhou
GivePlayerMoney(i, -300); // Retira o valor do imposto + plano de saъde do jogador, 250+50 = 300
}
}
return 1; // Retorna ao valor
}
Agora o comando
- Código:
CMD:pagamentomanual(playerid, params[])
{
if (IsPlayerAdmin(playerid)) //Verifica se o jogador й um administrador logado na rcon
{
PagamentoManual(); // Chama a public PagamentoManual(), fazendo com que ela seja ativa de imediato
SendClientMessageToAll( -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.
Creditos: Raayzeck