[Ajuda] Detectar casa а venda mais proxima
#1

Queria fazer um comando pra detectar a casa a venda mais proxima e setar um checkpoint...
Como seria a melhor forma de fazer isso?

Код:
enum houseinfos
{
    hID,
    Float:hOutPosX,
    Float:hOutPosY,
    Float:hOutPosZ,
	hOwner
}
new HouseInfo[MAX_HOUSES][houseinfos];
Код:
for(new houseid = 1; houseid < MAX_HOUSES; houseid++) {

	???HOUSE MAIS PROIXIMA??

	if(HouseInfo[houseid][hOwner] == 0) {
		SetPlayerCheckpoint(playerid,HouseInfo[houseid][hOutPosX], HouseInfo[houseid][hOutPosY], HouseInfo[houseid][hOutPosZ], 5.0);
	}
}
Reply
#2

https://sampwiki.blast.hk/wiki/IsPlayerInRangeOfPoint
Reply
#3

Quote:
Originally Posted by LockedLucas
Посмотреть сообщение
O problema й como pegar a casa mais proxima de todas...
Nгo a que ta num range...
Reply
#4

Quote:
Originally Posted by gmstrikker
Посмотреть сообщение
O problema й como pegar a casa mais proxima de todas...
Nгo a que ta num range...
Entгo cara ... vocк pode optar criar um range e verificar se a hOwned estб 0 ou 1.
Reply
#5

Seria algo assim:

Код:
stock GetAvaliableHouseID()
{
	for(new houseid = 1; houseid < MAX_HOUSES; houseid++)
	{
		if(IsPlayerInRangeOfPoint(playerid, 10.0, HouseInfo[houseid][hOutPosX], HouseInfo[houseid][hOutPosY], HouseInfo[houseid][hOutPosZ]))
		{
		    if(HouseInfo[houseid][hOwner] == 0)
		    {
		    	return houseid;
		    }
		}
	}
	return 0;
}
Checa se o jogador estб proximo da coordenada do pickup, no caso eu coloquei pra checar num raio de 10.0, se caso ele estiver proximo de uma casa ele checa novamente se ela tem dono, se nгo tiver vai retornar o ID dessa casa
Reply
#6

Creio que seja isto...

Код:
stock GetPlayerClosestHouseID()
{
	new CasaID;

	for(new casa = 0, distancia = 9999999.0, tempdist; casa < MAX_CASAS; casa++)
	{
	    if(HouseInfo[casa][hOwner] == 0)
	    {
	        tempdist = GetPlayerDistanceToPoint(playerid, HouseInfo[casa][hOutPosX], HouseInfo[casa][hOutPosY], HouseInfo[casa][hOutPosZ]);
	        if(tempdist < distancia) distancia = tempdist, CasaID = casa;
	    }
	}
	return CasaID
}
Reply
#7

Quote:
Originally Posted by JeffSantos2
Посмотреть сообщение
Creio que seja isto...

Код:
stock GetPlayerClosestHouseID()
{
	new CasaID;

	for(new casa = 0, distancia = 9999999.0, tempdist; casa < MAX_CASAS; casa++)
	{
	    if(HouseInfo[casa][hOwner] == 0)
	    {
	        tempdist = GetPlayerDistanceToPoint(playerid, HouseInfo[casa][hOutPosX], HouseInfo[casa][hOutPosY], HouseInfo[casa][hOutPosZ]);
	        if(tempdist < distancia) distancia = tempdist, CasaID = casa;
	    }
	}
	return CasaID
}
Tenho quase certeza de que se trata disso.
Reply
#8

Quote:
Originally Posted by JeffSantos2
Посмотреть сообщение
Creio que seja isto...

Код:
stock GetPlayerClosestHouseID()
{
	new CasaID;

	for(new casa = 0, distancia = 9999999.0, tempdist; casa < MAX_CASAS; casa++)
	{
	    if(HouseInfo[casa][hOwner] == 0)
	    {
	        tempdist = GetPlayerDistanceToPoint(playerid, HouseInfo[casa][hOutPosX], HouseInfo[casa][hOutPosY], HouseInfo[casa][hOutPosZ]);
	        if(tempdist < distancia) distancia = tempdist, CasaID = casa;
	    }
	}
	return CasaID
}
Recomendo checar primeiro qual й a casa mais proxima, pra dps checar se tem dono, senгo vc vai checar todas as casas
Reply
#9

Quote:
Originally Posted by JPedro
Посмотреть сообщение
Recomendo checar primeiro qual й a casa mais proxima, pra dps checar se tem dono, senгo vc vai checar todas as casas
Tem certeza que recomenda isso?
Код:
if(HouseInfo[casa][hOwner] == 0)
Nгo seria bem leve?

Fora que se detectar primeiro a casa mais proxima e ela tiver dono, vai ter que verificar tudo de novo depois pra achar outra e verificar se tem dono de novo...
Reply
#10

Quote:
Originally Posted by maikons
Посмотреть сообщение
Tem certeza que recomenda isso?
Код:
if(HouseInfo[casa][hOwner] == 0)
Nгo seria bem leve?

Fora que se detectar primeiro a casa mais proxima e ela tiver dono, vai ter que verificar tudo de novo depois pra achar outra e verificar se tem dono de novo...
Й eu me enganei, parando aqui pra pensar, fica mais leve checar primeiro as casas que nгo tem dono
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)