11/05/2024 09:14
(07/05/2024 15:43)Burunu Escreveu:(07/05/2024 14:37)André Santos Escreveu: ola amigos gostaria de saber como posso criar algo para aparecer os nomes dos locais onde se passa por exemplo se eu estou em los santos aparecera uma gametxtforplayer dizendo onde estou , nao sei como cria isso ,pelo mapa todo ppois sei que tem os nomes de cada ocal do mapa no samp so nao sei como faco isso , ja testei alma include a_zone mas nao funciona pois foi removido do samp essa funcao
Segue abaixo uma lógica inicial e simples, basta adicionar as coordenadas e mensagens desejadas. Além de alterar para uma GameTextForPLayer.
É apenas uma base, espero que ajude!
Código:new Float:CityCoordinates[][3] = {
// Definir as coordenadas de cada cidade (x, y, z)
{100.0, 200.0, 15.0}, // Exemplo: coordenadas da cidade 1
{300.0, 400.0, 15.0}, // Exemplo: coordenadas da cidade 2
// Adicione mais coordenadas para mais cidades
};
new string:CityMessages[] = {
// Mensagens para cada cidade
"Bem-vindo a Los Santos!",
"Você entrou em San Fierro!",
// Adicione mais mensagens para mais cidades
};
forward OnPlayerEnterCity(playerid, cityid);
public OnPlayerEnterCity(playerid, cityid)
{
SendClientMessage(playerid, COLOR_WHITE, CityMessages[cityid]); // Exibir mensagem para o jogador ou troque para uma GameTextForPlayer
return 1;
}
public OnPlayerUpdate(playerid)
{
// Verificar se o jogador está próximo a alguma cidade
for (new cityid = 0; cityid < sizeof(CityCoordinates); cityid++)
{
if (IsPlayerInRangeOfPoint(playerid, 100.0, CityCoordinates[cityid][0], CityCoordinates[cityid][1], CityCoordinates[cityid][2]))
{
OnPlayerEnterCity(playerid, cityid); // Chamar função para exibir mensagem
break;
}
}
return 1;
}
De forma alguma use isto em sua gamemode, o OnPlayerUpdate é chamada varias vezes por segundo, fora o loop horrivel que está dentro dela, vai lagar demais o seu servidor;
use CreateDynamicRectangle do Streamer para definir a area e o Streamer_SetArrayData para evitar o uso de loopings
e por fim use a callback OnPlayerEnterDynamicArea e OnPlayerLeaveDynamicArea para verificar a entrada e saida respectivamente do player.