pessoal boa noite, eu fiz um sistema igual ao do shox do spawnar carro junto com a textdraw la de alguel de carros no spawn civil, eu fiz ele todo so que tive uma encrenca até ai por que eu fiz ele pra quando o player gerar o primeiro carro ele vai de boa, mais quando ele fosse criar outro carro o pirmeiro carro iria ser deletado possibilitando dele gerar só 1 carro no total e a verificação coloquei se ele tiver criado o carro ele será deletado e irá criar outro por cima mais não tá indo alg sabe o pq?
// Se o veículo não estiver quebrado, continuar com a lógica normal de criação de veículo
// Mensagem para mostrar ao jogador
strcat(string, "{ffffff}Voce pegou um veiculo do spawn civil\n\n");
strcat(string, "{df5454}Lembre-se: ficar fora dela por mais de 6 minutos, ela\n");
strcat(string, "{df5454}sera automaticamente destruida.\n\n");
strcat(string, "{FFFFFF}ALGUMAS DICA PARA INICIANTES:\n");
strcat(string, "{FFFFFF}1.{999999} Consiga um emprego: Va ate a prefeitura.\n");
strcat(string, "{999999}Use o comando ''{ffcc99}/gps{999999}''para localizar.\n\n");
strcat(string, "{FFFFFF}2. Precisa de ajuda?Acesse o menu de ajuda com o comando ''{ffcc99}/ajuda{ffffff}'' ou ''{ffcc99}/faq{ffffff}''\n");
strcat(string, "{ffffff}para ver as perguntas frequentes.");
strcat(string, "{999999}Se ainda tiver duvidas,solicite atendimento com o comando ''{ffcc99}/atendimento{999999}''.");
Estou tentando criar um sistema de presentes, onde a minha ideia era do jogador poder pegar o presente assim que entrasse no servidor, e precisar aguardar 1h para pegar novamente. Até o momento não consegui prosseguir com isso, pois eu precisaria que o timer de 1h ficasse rodando, e que mesmo que o player reconectasse no servidor, fosse feita uma verificação através do nome dele para verificar se existe um timer ou uma variável setada para ele em específico. Eu primeiro tentei fazer utilizando o SetPVarInt, mas creio que ele não aceite o nome do jogador como variável, apenas o ID. Existe alguma forma de fazer através do nome? Caso saibam uma for melhor para fazer isso, aceito sugestões. Desde já, muito obrigado por todos que responderem ao tópico.
Boa noite pessoal, então, não sei oq rolou mas no meu servidor não esta dando mais dano, em nenhuma arma, e não foi modificado nada na parte de danos ao player, a unica coisa que tenho é um sistema de hs porém desativando o bug persiste
#edit
Somente armas não dão nenhum tipo de dano, quedas e explosões estão normais
[BRASIL] AUTENTICOS [RPG] V2.0 VOIP ON COMECE COM R$50000
¦----------------------------
¦? ? Vagas para STAFF
¦? ? PVP imersivo !
¦? ? 100% RolePlayGaming RPG
¦? ? Organizações GRÁTIS DISPONÍVEIS
¦? ? EVENTOS DIARIOS DISPONÍVEIS
¦? ? GOVERNOS DISPONÍVEIS
¦? ? Sistemas de Rotas para facções
¦? ? Servidor 100% PVP/RPG COM FAVELA MAPEADA ESTILO MTA
¦? ? Atendimento Admin 24 horas
¦? ? Vip de 15 dias Inicial Gratis
¦? ? Download Direto no discord
¦? ? Sistema de territorios dominaveis!
¦? ? Sistema de roubo a banco/caixa eletronico
¦? ? Sistema de DJ B.T.S Autentico!
¦? ? Sistema de venda e compra de casas
¦? ? Sistema de Administração Completo
¦----------------------------
¦? ? PARCERIAS ON !!
¦? ? IP: 192.99.32.172:7967
¦----------------------------
¦? ? STATUS: ONLINE 15/50
¦? PING: 120ms
¦? NOSSO DISCORD : https://discord.gg/AMVGdnJuu7
Criei um comando (/handsup) onde o player iria levantar as mãos, e através disso poderia ser feito um assalto ou sequestro por exemplo (apenas se o player tivesse com a determinada ação ativa. Tudo está funcionando ok para jogadores de PC, porém, quando jogadores mobile a utilizam, nada acontece. Tem alguma forma de corrigir isso?
Código PHP:
CMD:handsup(playerid) { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_HANDSUP) return ClearAnimations(playerid);
criei esse sistem pra minha gm o problema e que nao sei como deixo o nome dos lideres funcional teho uma enum chamada pLider
tenho isso aq rInfo[playerid][pLider] bem nao sei oq fazer poi coloqui assim meu codigo e aparece meu nome m todas as orgs obs sou novato em pawno
Olá, boa noite a todos. Notei que sempre ao adentrar em algum veículo, seja entrando em um que já está criado pelo mapa, ou então usando algum criado pelo próprio jogador (/cv, /veh), aparece a seguinte mensagem no terminal: [Error] Array index out of bounds. Até o momento não consegui encontrar o que esteja causando o erro em destaque. Deixarei abaixo o código responsável por verificar se o player entrou em algum veículo, onde para isso estou usando o OnPlayerStateChange, e não o OnPlayerEnterVehicle. Desde já, agradeço a todos os que contribuírem com suas respostas, muito obrigado!
Código PHP:
public OnPlayerStateChange(playerid, PLAYER_STATE:newstate, PLAYER_STATE:oldstate) { static vehicleid;
if(newstate == PLAYER_STATE_DRIVER && IsABike(vehicleid) && !PlayerInfo[playerid][CNHA] && !AcInfo[playerid][ANaAuto]) { GivePlayerWanted(playerid, 1); SendClientMessage(playerid, Laranja, "| INFO | Você não tem habilitação para dirigir este veículo, portanto está sendo %s pela polícia", PlayerInfo[playerid][pSexo] ? "procurado" : "procurada"); } else if(newstate == PLAYER_STATE_DRIVER && IsACar(vehicleid) && !PlayerInfo[playerid][CNHB] && !AcInfo[playerid][ANaAuto]) { GivePlayerWanted(playerid, 1); SendClientMessage(playerid, Laranja, "| INFO | Você não tem habilitação para dirigir este veículo, portanto está sendo %s pela polícia", PlayerInfo[playerid][pSexo] ? "procurado" : "procurada"); } else if(newstate == PLAYER_STATE_DRIVER && IsATruck(vehicleid) && !PlayerInfo[playerid][CNHC] && !AcInfo[playerid][ANaAuto]) { GivePlayerWanted(playerid, 1); SendClientMessage(playerid, Laranja, "| INFO | Você não tem habilitação para dirigir este veículo, portanto está sendo %s pela polícia", PlayerInfo[playerid][pSexo] ? "procurado" : "procurada"); }
if(newstate == PLAYER_STATE_ONFOOT) { if (GetPVarInt(playerid, "InVehicleTrabalho")) { SendClientMessage(playerid, Vermelho, "Você tem 1 minuto para retornar ao seu veículo de trabalho, ou sua tarefa será cancelada!"); TimerOutTrabalho[playerid] = SetTimerEx("OutTrabalho", 60000, false, "i", playerid); DeletePVar(playerid, "InVehicleTrabalho"); }
if (newstate == PLAYER_STATE_DRIVER) { if (vehicleid >= KyoseiCar[0] && vehicleid <= KyoseiCar[7] && GetPlayerClan(playerid) != 0) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, KYOSEI_COR, "Você não faz parte do clan Kyosei-Kai!");
return 1; }
else if (vehicleid >= MedellinCar[0] && vehicleid <= MedellinCar[7] && GetPlayerClan(playerid) != 1) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, MEDELLIN_COR, "Você não faz parte do clan Cartel Medellín!");
return 1; }
else if (vehicleid >= YamaguchiCar[0] && vehicleid <= YamaguchiCar[7] && GetPlayerClan(playerid) != 2) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, YAMAGUCHI_COR, "Você não faz parte do clan Yamaguchi Gumi!");
return 1; }
else if (vehicleid >= SinaloaCar[0] && vehicleid <= SinaloaCar[7] && GetPlayerClan(playerid) != 3) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, SINALOA_COR, "Você não faz parte do clan Cartel de Sinaloa!");
return 1; }
else if (vehicleid >= ZetasCar[0] && vehicleid <= ZetasCar[7] && GetPlayerClan(playerid) != 4) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, ZETAS_COR, "Você não faz parte do clan Los Zetas!");
return 1; }
else if (vehicleid >= BOPECar[0] && vehicleid <= BOPECar[9] && GetPlayerClan(playerid) != 5) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, BOPE_COR, "Você não faz parte do clan BOPE!");
return 1; }
else if (vehicleid >= PMCar[0] && vehicleid <= PMCar[9] && GetPlayerClan(playerid) != 6) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, PM_COR, "Você não faz parte do clan Polícia Militar!");
return 1; }
else if (vehicleid >= ExercitoCar[0] && vehicleid <= ExercitoCar[9] && GetPlayerClan(playerid) != 7) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, EXERCITO_COR, "Você não faz parte do clan Exército!");
return 1; }
// else if (GetVehicleModel(vehicleid) == 510 && GetPVarInt(playerid, "JornalEntregando")) { // SetPVarInt(playerid, "InVehicleTrabalho", 1); // SendClientMessage(playerid, Verde, "Você voltou para o seu veículo de trabalho. Continua seu trajeto!"); // KillTimer(TimerOutTrabalho[playerid]);
// return 1; // }
for (new i = 0; i < sizeof(CaminhoneiroCar); i++) { if (vehicleid == CaminhoneiroCar[i] && GetPlayerJob(playerid) != PROF_CAMINHONEIRO) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, Vermelho, "Você não é um caminhoneiro(a)!");
return 1; } else if (vehicleid == CaminhoneiroCar[i] && CaminhoneiroEntregando[playerid]) { SetPVarInt(playerid, "InVehicleTrabalho", 1); SendClientMessage(playerid, Verde, "Você voltou para o seu veículo de trabalho. Continue seu trajeto!"); KillTimer(TimerOutTrabalho[playerid]);
if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER && AcInfo[playerid][ANaAuto]) { SendClientMessage(playerid, Vermelho, "| INFO | Você saiu do seu veículo, portanto o teste foi cancelado"); EndAC(playerid); }
Bom dia pessoal, não sei se só acontece comigo, mas quando crio algum actor, ele simplesmente as vezes spawna em outra posição(não naquela aonde foi criado), existe alguma correção para isso?
Olá pessoal, boa noite a todos. Estou com um problema, onde sempre que o player mobile (apenas mobile) utiliza o comando /profissao, simplesmente somem os botões da tela dele, e o mesmo precisa reiniciar seu jogo para voltar. O que poderia estar causando isso? Segue abaixo o código do comando em específico. Outra coisa que gostaria de saber também relacionado aos jogadores mobile, é que o checkpoint para eles sempre ficam brancos, enquanto os do PC continuam vermelhos. Existe alguma forma de mudar isso? Desde já, agreço a todos por toda e qualquer ajuda, muito obrigado!
Código PHP:
CMD:profissao(playerid) { new cmd_profissao[500];
switch(GetPlayerJob(playerid)) { case PROF_DESEMPREGADO: SendClientMessage(playerid, Vermelho, "| INFO | Você não possui um emprego. Vá até a agência de empregos para adquirir o seu."); case PROF_GARI: format(cmd_profissao, sizeof(cmd_profissao), "{00FF00}x Recolher o lixo da cidade e a transformar em um local mais limpo\n\n\ {FFFF00}/cp {FFFFFF}- Chat Profissão\n"); case PROF_MECANICO: format(cmd_profissao, sizeof(cmd_profissao), "{00FF00}x Consertar veículos pela cidade sempre que for solicitado\n\n\ {FFFF00}/cp {FFFFFF}- Chat Profissão\n\ {FFFF00}/repararmec {FFFFFF}- Repara veículo quebrado próximo\n"); case PROF_CAMINHONEIRO: format(cmd_profissao, sizeof(cmd_profissao), "{00FF00}x Realizar entrega de mercadorias pela cidade, o mais rapidamente possível\n\n\ {FFFF00}/cp {FFFFFF}- Chat Profissão\n\ {FFFF00}/carregarcaminhao {FFFFFF}- Indica o checkpoint para carregar o caminhão\n\ {FFFF00}/descarregarcaminhao {FFFFFF}- Realiza a entrega no local indicado\n\ {FFFF00}/cancelarentrega {FFFFFF}- Cancela a entrega atual\n"); case PROF_ENTREGADOR_DE_JORNAL: format(cmd_profissao, sizeof(cmd_profissao), "{00FF00}x Levar os jornais até as residências, permitindo que cada morador veja as notícias atuais\n\n\ {FFFF00}/cp {FFFFFF}- Chat Profissão\n\ {FFFF00}/entregarjornais {FFFFFF}- Inicia a rota para entrega de jornais\n\ {FFFF00}/finalizarjornais {FFFFFF}- Finaliza a rota de entrega dos jornais"); default: SendClientMessage(playerid, Laranja, "| ERRO | Essa profissão ainda não foi documentada"); }
ShowPlayerDialog(playerid, 32, DIALOG_STYLE_MSGBOX, "Comandos de sua profissão", cmd_profissao, "Fechar", "");
return 1; }
Eu também não tenho tanta experiência quanto a otimização de strings. Creio que exista uma forma melhor de construir algo com muito texto, ficarei feliz se também conseguirem me ajudar quanto a isso.