[Ajuda] Arrumar Script
#1

[RESOLVIDO]
Boa tarde!
Fiz um sistema de ir para o hospital mais prуximo, mas independente da distвncia sу vai para um hospital. Ja revirei o script, mas nгo acho onde estб o problema...
Код:
#define MAX_HOSP    2

new Float:hospitais[MAX_HOSP][3] = {
{2030.9707, -1406.6764, 17.2025}, //hosp1
{1173.1936, -1323.4407, 15.3951}  //hosp2
};


public OnPlayerDeath(playerid, killerid, reason)
{

	SendDeathMessage(killerid,playerid,reason);
	tamorto[playerid] = 1;
	
	return 1;
}

public OnPlayerSpawn(playerid)
{
	
	new Float:mdist, Float:dist, Float:PosX, Float:PosY, Float:PosZ;
	if(tamorto[playerid] == 1)
	{
		mdist = 1000000.000;
	    PosX = hospitais[0][0];
	    PosY = hospitais[0][1];
	    PosZ = hospitais[0][2];
		for(new i=0; i< MAX_HOSP; i++)
		{
		    dist = GetPlayerDistanceToPoint(playerid, hospitais[i][0], hospitais[i][1], hospitais[i][2]);
		    printf("\n\nmdist: %f , dist: %f\n\n",mdist, dist);
		    if(dist<mdist)
			{
				mdist = dist;
				PosX = hospitais[i][0];
				PosY = hospitais[i][1];
				PosZ = hospitais[i][2];
				printf("M DIST:%f PRIMARIO\nPosX: %f\nPosY: %f\nPosZ: %f\n=====\n",mdist,PosX,PosY,PosZ);
		    }
		}
		SetPlayerPos(playerid, PosX, PosY, PosZ);
        SendClientMessage(playerid, COLOR_BLUE,"{FF6600}~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ Hospital ]~~~~~~~~~");
        SendClientMessage(playerid, COLOR_WHITE,"{FFFFFF}*Vocк foi enviado para o hospital mais prуximo");
        SendClientMessage(playerid, COLOR_BLUE,"{FF6600}~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ Hospital ]~~~~~~~~~");
        tamorto[playerid] = 0;
	}
		    
	return 1;
}
Eu compilo e nгo dб nenhum erro.
Coloquei esses printF pra ver se ocorre tudo de boa, e eu percebi que em qualquer lugar que eu estou as distвncias retornadas nunca mudam...
Jб testei outra funзгo GetPlayerDistanceToPoint, mas dб no mesmo.
Jб to hб umas 2hs tentando arrumar isso, se alguem tiver paciкncia para dar uma olhada eu agradeзo.
Reply
#2

https://sampwiki.blast.hk/wiki/GetPlayerDistanceFromPoint

Й sу pegar a distancia dos dois hospitais e verificar qual a menor.

pawn Код:
forward Float:GetPlayerDistanceToPoint(playerid,Float:x,Float:y);
Acho que nгo й necessario essa callback, nem o Float.
Reply
#3

Quote:
Originally Posted by Linow
Посмотреть сообщение
https://sampwiki.blast.hk/wiki/GetPlayerDistanceFromPoint

Й sу pegar a distancia dos dois hospitais e verificar qual a menor.

pawn Код:
forward Float:GetPlayerDistanceToPoint(playerid,Float:x,Float:y);
Acho que nгo й necessario essa callback, nem o Float.
Nгo sabia que existia essa callback. jб alterei.
E continua a mesma coisa.

Esse й o problema, as distancias retornadas no script sгo sempre as mesmas !
Entгo independente de onde eu estiver sempre irб para somente um hospital.
Reply
#4

Olб pessoa,
andei analisando o script, e o problema nгo й com ele. E sim com o local de SPAWN!
o que pude perceber й que logo apos a 'cena' de morrer e sua funзгo OnPlayerDeath, й executada a funзгo OnPlayerSpawn, e nesse funзгo o player spawna e no meu caso depois executa o script. Entгo por isso sempre estб vindo os mesmos valores para distancia.
Alguem tem alguma ideia de como anular esse spawn ?

---

Resolvi gente, coloquei pra pegar a posiзгo do hospital mais prуximo no OnPlayerDeath, e dentro do OnPlayerSpawn seta a posiзгo da pessoa pra esse hospital.
Vlw quem olhou.
Reply
#5

Olб! Poderia me mostrar como fez ?!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)