SA-MP Forums Archive
[Ajuda] Detectar casa а venda mais proxima - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Detectar casa а venda mais proxima (/showthread.php?tid=629028)



Detectar casa а venda mais proxima - gmstrikker - 18.02.2017

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);
	}
}



Re: Detectar casa а venda mais proxima - LockedLucas - 18.02.2017

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


Re: Detectar casa а venda mais proxima - gmstrikker - 18.02.2017

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


Re: Detectar casa а venda mais proxima - pWesley - 18.02.2017

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.


Re: Detectar casa а venda mais proxima - JPedro - 18.02.2017

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


Re: Detectar casa а venda mais proxima - JeffSantos2 - 18.02.2017

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
}



Re: Detectar casa а venda mais proxima - pWesley - 18.02.2017

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.


Re: Detectar casa а venda mais proxima - JPedro - 19.02.2017

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


Re: Detectar casa а venda mais proxima - maikons - 19.02.2017

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...


Re: Detectar casa а venda mais proxima - JPedro - 19.02.2017

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