[Ajuda] Verificar Se o player esta no chao
#1

Como eu faзo para verificar se o player esta no chao ?
Reply
#2

Vocк teria que instalar o plugin MapAndreas e verificar a equivalкncia aproximada entre a coordenada Z do jogador e a coordenada Z da superfнcie do local em que ele estivesse :



https://sampforum.blast.hk/showthread.php?tid=275492



Espero ter ajudado .
Reply
#3

Quote:
Originally Posted by rjjj
Посмотреть сообщение
Vocк teria que instalar o plugin MapAndreas e verificar a equivalкncia aproximada entre a coordenada Z do jogador e a coordenada Z da superfнcie do local em que ele estivesse :



https://sampforum.blast.hk/showthread.php?tid=275492



Espero ter ajudado .
Ja deu o caminho das pedras, mais poderia me fazer uma base para que eu possa entender melhor, os tuto esta tudo ingles...
Reply
#4

Por que quer verificar se ele estб no chгo?
Reply
#5

Quote:
Originally Posted by Delete_
Посмотреть сообщение
Por que quer verificar se ele estб no chгo?
Talvez ele esta fazendo um sistema de ъltima salvaзгo de pos.
Reply
#6

Quote:
Originally Posted by Petrick™
Посмотреть сообщение
Talvez ele esta fazendo um sistema de ъltima salvaзгo de pos.
Se for o caso use essa include: https://sampforum.blast.hk/showthread.php?tid=400049
Salva a pos do player se o player nгo estiver na бgua!
Reply
#7

Vocк pode usar o MapAndreas.inc й uma opзгo baseada no que o Rjj propфs porйm sem o uso do plugin ...

Modelo de uso:
PHP код:

printf
("Coordenada z: %f"GetPointZPos(xy)); 
ou vocк pode usa-la por meio de retorno como utilizei acima,

ou funзгo adiciona o valor aproximado/exato do chгo nas coordenadas respectivas (x,y),

PHP код:
new Float:cordZ;
GetPointZPos(xycordZ); 
й necessбrio o SaFull.map nas 'scriptfiles' ..



Atenciosamente !
Reply
#8

Vai ficar complicado pra vocк detectar se o cara estб mesmo no chгo usando mapandreas, parem de usar isso, tб ultrapassado. Use ColAndreas, pegue o ponto do jogador e calcule um ponto abstrato de altura fazendo um raycast pra cima, caso o raycast nгo atinja nenhum ponto de colisгo vocк estarб trabalhando com uma superfнcie aberta (cйu), dai й sу calcular um outro raycast do cйu ao chгo e verificar se o ponto de colisгo coincide com a coordenada do player. Caso um player esteja dentro de um tъnel por exemplo, o raycast vai retornar a colisгo no teto deste tъnel, dai vocк pega esse ponto de colisгo, subtrai -0.5 (sу por seguranзa mesmo) e faz um raycast deste ponto de colisгo subtraнdo atй o chгo, e verifica se coincide com a posiзгo do player. Falando parece bem complexo, mas em cуdigo vocк faz em 3 minutinhos se souber fazer.
Reply
#9

O motivo de eu querer verificar, e que estou desenvolvendo um ant speed hack, que ele funfa de boas, porem quando recebe supertapa, ou esta caindo de algum prйdio o ant xiter detecta como se fosse speed hack, veja so.
Funзгo do xiter: correr a pй em alta velocidade.

Код:
 	if(GetPlayerSpeed(playerid) > 100)
 	{
	 	printf("%s foi kickado do servidor. | Motivo: Speed Hack.", GetandoNome(playerid));
 		Kick(playerid);
	}
Код:
stock GetPlayerSpeed(playerid)
{
    new Float:xPos[3];
    GetPlayerVelocity(playerid, xPos[0], xPos[1], xPos[2]);
    return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00);
}
Reply
#10

Quote:
Originally Posted by Caiton
Посмотреть сообщение
O motivo de eu querer verificar, e que estou desenvolvendo um ant speed hack, que ele funfa de boas, porem quando recebe supertapa, ou esta caindo de algum prйdio o ant xiter detecta como se fosse speed hack, veja so.
Funзгo do xiter: correr a pй em alta velocidade.

Код:
 	if(GetPlayerSpeed(playerid) > 100)
 	{
	 	printf("%s foi kickado do servidor. | Motivo: Speed Hack.", GetandoNome(playerid));
 		Kick(playerid);
	}
Код:
stock GetPlayerSpeed(playerid)
{
    new Float:xPos[3];
    GetPlayerVelocity(playerid, xPos[0], xPos[1], xPos[2]);
    return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00);
}
Basta ignorar a velocidade Z:

PHP код:
stock GetPlayerSpeed(playerid)
{
    new 
Float:xPos[3];
    
GetPlayerVelocity(playeridxPos[0], xPos[1], xPos[2]);
    return 
floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1]) * 170.00);

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)