[Ajuda] Exibir mensagem quando player chega em um ponto
#1

Estou com um problema pois tenho tentando fazer com que quando o jogador chegue em uma posiзгo й exibida uma mensagem para ele.. Nгo queria usar um timer pra isso entгo fiz isso aqui:

Код:
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid,16.0,434.39999,595.29999,13.3) || IsPlayerInRangeOfPoint(playerid,16.0,-140.89999,469.5,6.3) || IsPlayerInRangeOfPoint(playerid,13.0,-1016.09998,939.29999,28.4)
    || IsPlayerInRangeOfPoint(playerid,39.0,-2681.30005,2141.3999,30.1) || IsPlayerInRangeOfPoint(playerid,39.0,-1144.19995,1095.40002,16) || IsPlayerInRangeOfPoint(playerid,39.0,1785,689.20001,-18.4)
    || IsPlayerInRangeOfPoint(playerid,12.0,2766.69995,587.59998,7.3))
	    {
             SendClientMessage(playerid,-1,"{E75E39}[Servidor] {D9D9D9}Vocк estб saindo da cidade. Vocк nгo pode sair.");
	    }
}
Nгo deu nenhum tipo de erro ou aviso, porйm, quando vocк chega no local especificado ele simplesmente comeзa a floodar a mensagem atй vocк sair de lб...
Alguйm tem alguma maneira de fazer com que isso nгo aconteзa?
Reply
#2

Coloque uma pickup lб.

Ou entгo coloque uma variбvel, pra verificar se ele jб viu.
Reply
#3

Quote:
Originally Posted by FixSkuL
Посмотреть сообщение
Coloque uma pickup lб.

Ou entгo coloque uma variбvel, pra verificar se ele jб viu.
O Pickup nгo seria bom... Obrigado pela resposta.

Mas saberia me dizer como eu faзo essa variбvel?
Reply
#4

pawn Код:
new bool: _alado;
Antes de mostrar a mensagem, usa um if para verificar se a variбvel estб como false.
Se estiver como false, ele envia a mensagem e vocк seta ela como true..
Reply
#5

pawn Код:
new bool:Algo[50];

public OnPlayerUpdate(playerid)
{
    if(Algo[playerid] == true)
    {      
        Algo[playerid] = false;
    }
    else
    {
        Algo[playerid] = true;
    }
}
Mais ou menos isso agora o resto vocк jб fez.

Pode estar errado pelo fato de eu ter ficado uns 5 meses sem mecher com isso
Reply
#6

Nгo achas que vai floodar?
OnPlayerUpdate atualiza em milissegundos e ele irб floodar seu server e dar crash

Vocк quer exatamente o player chegar em certa бrea? Use um IsPlayerInPlace, veja a seguir o cуdigo do Garfield, tenha uma base:
pawn Код:
// OnGameModeInit
SetTimer("OnPlayerInGangZone",1000*2, true);

//qualquer lugar do seugm

public OnPlayerInGangZone(playerid)
{
       if(IsPlayerInPlace(playerid,X,Y,X,Y)) --> Verifica se o player estб na GangZone
       return 1;
}

stock IsPlayerInPlace(playerid,Float:XMin,Float:YMin,Float:XMax,Float:YMax )
{
new RetValue = 0;
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z );

if( X >= XMin && Y >= YMin && X < XMax && Y < YMax )
{
    RetValue = 1;
}
return RetValue;
}
Abraзo.
Reply
#7

Vocк tambйm pode usar um timer, quando ele sair da бrea, KillTimer.
Reply
#8

Obrigado a todos pela Ajuda.. Levem meu +Rep.
Uma Print do resultado:


*rs, jб corrigi os erros de portuguкs da img
Reply
#9

fico legal nao sabia isso kkk
Reply
#10

Ficou legal
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)