05/09/2023 21:44
(04/09/2023 15:45)LOS_SANTOS Escreveu:(04/09/2023 15:07)zBreno Escreveu: se você quer bloquear comando bote no começo do comando
if(trabalhando[playerid] == true) return SendClientMessage(playerid,-1, "Você já esta trabalho!");
já existe um fs muito bom com esse trabalho de lixeiro se quiser usar ele como base ta aqui os arquivos https://drive.google.com/drive/folders/1...sp=sharing
agradeço sua ajuda mas o q realmente eu queria e entender como faco oq pedi la em cima pois eu quero aprender para criar novos empregos mas meso assim obg
caso eu pegue o fs e coloque eu nunca irei saber a logica pois criei outros empregos e se o player iniciar o comando e nao terminar a missao e for para outra quando ele cegar no checkkpoint de outra missao por exe plo diz que ele nao e lixeiro tende por isso queria o comando para saber a logica ai eu fazendo isso para cada emprego nao corre o risco de buga pois cada profsssao so poderar pegar outra se caso o player terminar tendeu
vouc tentar ser mis simples , criei essa profisssao lixeiro blz ai eu uso /lixeiro para iniciar ela comeco na missao caso eu nao queira mais jogar nela e escolher outra missao por eemplo /taxista , eu inicio a misssao taxiata mas quando chego no checkpoint diz que nao sou lixeiro porq eu nao finalizei a missao anterior por isso biga ,eu aprendendo a fazer o comando que coloquei la eu iria saber e corrigir esse bugzinho nas missoes
certo olhe o que fez lixeiro1[playerid] = 1; dentro do comando e depois você usou como a variável que define o checkpoint? lixeiro1[playerid] = 0;
O que aconteceu ai foi que quando você entrou dentro do checkpoint você removeu a profissão de lixeiro e depois você fez isso lixeiro2[playerid] = 1; true / verdadeiro sendo que você entregou o lixo no primeiro checkpoint e não no segundo se ele finalizou a rota 1 a rota 1 é = a 1 e não a 2 as outras rotas sempre são false 0 você tem que definir todas como false pro id dele antes da primeira entrega
if(rota1[playerid] == 0)
{
rota1[playerid] = 1; marca essa rota como entrege
você entregou o lixo na rota 1
}
if(rota1[playerid] == 1)
{
você já entregou o lixo na rota, 1 vá para rota 2!
}
já que você não tá salvando nada por arquivo então você só precisa setar uma variável pra definir a profissão dele em um comando ou em uma caixa de dialogo que ele vai usar pra se tornar lixeiro
lixeiro[playerid] = 1;
nunca no comando onde o cara vai iniciar o trabalho como lixeiro isso não tem lógica alguma ou você cria um menu de profissões ou lá no lixão de los santos que fica perto do emmet bota um npc lá dentro do contêiner pro cara interagir com dialogbox msg e essa variável vai ser setada nele por você
se quando ele inicia um trabalho você quer impedir que ele procure outro trabalho e termine o trabalho atual é só deixar o comando que inicia todos os trabalhos de todas as profissões travados, você bota trabalhando = 0 no on player connect e em todos os comandos que inicia o trabalho
if(trabalhando[playerid] == 0)
{
trabalhando[playerid] = 1;
você iniciou seu trabalho como lixeiro vá para rota x no local x
}
if(trabalhando[playerid] == 1)
{
você já esta trabalhando como lixeiro! termine o serviço atual se quiser procurar outro trabalho
}
como você tá usando checkpoint se ele sair do caminhão o trabalho tem que ser cancelado
na public on player exit vehicle pega o id do caminhão de lixo e
lixeiro[playerid] = 0;
trabalhando[playerid] = 0;
use o plugin streamer pra criar os checkpoints
no caso do cara tentar atropelar as rotas pra terminar o trabalho rápido depois da primeira rota você verifica se ele terminou a rota anterior
if(rota1[playerid] == 0) return send client message termine a primeira rota antes de terminar a segunda