Portal SAMP
[Ajuda] Emprego de entregador - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Emprego de entregador (/showthread.php?tid=3258)



Emprego de entregador - joaoplay - 29/01/2023

Galera eu estou fazendo um emprego de entregador de comida, onde o player pega o emprego, pega o veiculo veiculo do emprego e pega as mercadorias. Porem eu quero adicionar um limite de 10 entregas após ele pegar as mercadorias. Sou iniciante e não tenho ideia do que fazer. Alguém pode me Ajudar?


RE: Emprego de entregador - xbruno1000x - 29/01/2023

Código:
new ContadorEntregas[MAX_PLAYERS]; //variavel para armazenar a quantidade de entregas

//A cada entrega realizada, adicione +1
ContadorEntregas[playerid]++;

//Para impedir o jogador de realizar novas entregas, use uma condicional
if(ContadorEntregas[playerid] >= 10) return SendClientMessage(playerid, -1, "Você já realizou 10 entregas");

//Quando ele pegar a mercadoria, lembre-se de zerar o contador
ContadorEntregas[playerid] = 0;



RE: Emprego de entregador - joaoplay - 29/01/2023

Bruno muito obrigado! só que esta dando um erro que quando o player faz 6 entregas ja conta como 10. Codigo: forward Entregacomidas(playerid);
Código:
public Entregacomidas(playerid)
{
    ContadorEntregas[playerid]++;
    if(ContadorEntregas[playerid] >= 10)
{
    TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Verde, "Voce fez as 10 etregas comsucesso!");
}
    new str[120];
    format(str, 120, "Entrega %d/10 feita com sucesso! Voce recebeu R$ 500,00 por isso, agora va fazer outra!", ContadorEntregas[playerid]++);
SendClientMessage(playerid, Verde, str);
    new rand = random(sizeof(entregasentregador));
    SetPVarInt(playerid, "RANDENTREGA", rand);
SetPlayerCheckpoint(playerid, entregasentregador[rand][0], entregasentregador[rand][1], entregasentregador[rand][2], 3.0);
TogglePlayerControllable(playerid, 1);
GivePlayerMoney(playerid, 500);
return 1;
}

consegui resolver o erro format(str, 120, "Entrega %d/10 feita com sucesso! Voce recebeu R$ 500,00 por isso, agora va fazer outra!", ContadorEntregas[playerid]++);
era por causa desse ++ depois de [playerid]


RE: Emprego de entregador - xbruno1000x - 30/01/2023

É isso mesmo, toda vez que você adiciona ++ após uma variável, é acrescentado 1 unidade ao valor dela. No caso você acrescentou outra unidade na formatação dela no texto. Fico feliz que já tenha corrigido.


RE: Emprego de entregador - White_Blue - 30/01/2023

(29/01/2023 22:25)joaoplay Escreveu: Bruno muito obrigado! só que esta dando um erro que quando o player faz 6 entregas ja conta como 10. Codigo: forward Entregacomidas(playerid);
Código:
public Entregacomidas(playerid)
{
    ContadorEntregas[playerid]++;
    if(ContadorEntregas[playerid] >= 10)
{
    TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Verde, "Voce fez as 10 etregas comsucesso!");
}
    new str[120];
    format(str, 120, "Entrega %d/10 feita com sucesso! Voce recebeu R$ 500,00 por isso, agora va fazer outra!", ContadorEntregas[playerid]++);
SendClientMessage(playerid, Verde, str);
    new rand = random(sizeof(entregasentregador));
    SetPVarInt(playerid, "RANDENTREGA", rand);
SetPlayerCheckpoint(playerid, entregasentregador[rand][0], entregasentregador[rand][1], entregasentregador[rand][2], 3.0);
TogglePlayerControllable(playerid, 1);
GivePlayerMoney(playerid, 500);
return 1;
}

consegui resolver o erro  format(str, 120, "Entrega %d/10 feita com sucesso! Voce recebeu R$ 500,00 por isso, agora va fazer outra!", ContadorEntregas[playerid]++);
era por causa desse ++ depois de [playerid]

Citar:
Código PHP:
format(str120"Entrega %d/10 feita com sucesso! Voce recebeu R$
 500,00 por isso, agora va fazer outra!"
ContadorEntregas[playerid]++); 

Você está executando uma operação matemática na formatação da string.

Código PHP:
format(str120"Entrega %d/10 feita com sucesso! Voce recebeu R$ 500,00 por isso, agora va fazer outra"ContadorEntregas[playerid]); // Mostra o valor da variável na string.
ContadorEntregas[playerid]++; // Adiciona +1 ao valor da variável.