Jump to content

IsPlayerInArea of IsPlayerInRangeOfPoint


Recommended Posts

Geplaatst:

Hoi, ik dacht laat ik mijn vraag hier maar eens stelen dat is wat makkelijk

om het duidelijk te maken heb ik een screen gemaakt!

ssssssssssss.jpg

Ik heb een gangzone, en op hetzelfde punt IsPlayerInArea gemaakt, maar hij werkt niet goed.

als hij in de Area is krijg hij een andere naam kleur en kan hij geen commands gebruiken want het is de DMzone

dus niet echt handig als dit ook in half SF is!

hier is mijn IsPlayerInArea Script:

forward IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy);
public IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return 1;
return 0;
}

public OnPlayerSpawn(playerid)
{

if(IsPlayerInArea(playerid,-93.423, 1623.225, 443.7593, 2148.729) == 1)
{
SetPlayerColor(playerid,0x80400096);
GivePlayerWeapon(playerid,4,0);
  	GivePlayerWeapon(playerid,16,3);
GivePlayerWeapon(playerid,27,50);
  	GivePlayerWeapon(playerid,31,100);
  	GivePlayerWeapon(playerid,34,10);
  	SetPlayerColor(playerid,0x80400096);
  	SetPlayerRandomSpawn(playerid);
return 1;
}
return 1;
}

Als ik beter IsPlayerInRangeOfPoint kan bebruiken vertel me dan hoe ik de radius van area51 kan berekenen?

het moet ook in de hoogte zijn.

Geplaatst:

IsPlayerToPoint is een grote bol, geen vierkant. Maar IsPlayerToPoint is wel een stuk sneller. Met San Andreas Teleport (SAT) kun je het middelste punt van de zone aanklikken om te zien wat het midden is. Stel een goede Radius in, maak een timer, en check dan of de speler zich al in de buurt bevind.

forward timer()
public timer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
	if(IsPlayerToPoint(i, Bladiebla);
	{
		//Banaan met chocola jum
	}
}
}

Als je IsPlayerInArea (vierkant) wilt gebruiken, met de hoogte:

stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy, Float:minz, Float:maxz)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy && z > miny && z < maxz) return 1;
return 0;
}

Heb er een stock functie van gemaakt, deze hoef je niet te forwarden.

Geplaatst:

if(IsPlayerInArea(playerid,-93.423, 1623.225, 443.7593, 2148.729) == 1)

Ik twijfel er sterk aan of je coördinaten wel kloppen. Tussen minx en maxx zitten 1700 'eenheden' wat overeenkomt met ongeveer 1/3 de breedte van SA (6000), hetzelfde geldt voor de y-waarden.

Geplaatst:
if(IsPlayerInArea(playerid,-93.423, 1623.225, 443.7593, 2148.729) == 1)

Ik twijfel er sterk aan of je coördinaten wel kloppen. Tussen minx en maxx zitten 1700 'eenheden' wat overeenkomt met ongeveer 1/3 de breedte van SA (6000), hetzelfde geldt voor de y-waarden.

ik heb de coordinaten gemaakt met een gangzone in Xtreme Vehicle Plotter en heb gewoon de Coords van die gangzone in IsPlayerInArea gepakt, zou niet weten hoe ik het anders moet maken

Geplaatst:

*Ik weet zelf niks van MP Scripting, maar ik denk dat ik de oplossing weet*

Draai eens wat coordinaten om.

Je moet de volgorde minx,maxx,miny,maxy aanhouden.

Aan jouw coordinaten te zien heb jij minx,miny,maxx,maxy.

Draai de tweede en de derde coordinaat om. Als ik je coordinaten importeer in San Andreas Teleporter in volgorde minx,miny,maxx,maxy krijg ik alleen Area 69, geen andere vlakken.

Geplaatst: (bewerkt)

Aha, daar zit de fout! GangZoneCreate gebruikt namelijk deze syntaxis:

GangZoneCreate(Float:minx, Float:miny, Float:maxx, Float:maxy);

en IsPlayerInArea deze:

IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy);

Dus in principe moet je het 2de en 3de getal van plaats verwisselen.

Edit: Darn, ingehaald.

Bewerkt: door Big Boss
Geplaatst:
*Ik weet zelf niks van MP Scripting, maar ik denk dat ik de oplossing weet*

ik vindt het knap dat je ut probeerd, respect voor jou

Geplaatst:

Respect voor jullie allemaal het werkt! bedankt, dit was een van de laatste bugs die ik moest oplossen :D

Geplaatst:
Respect voor jullie

na-aper :puh:

>>> Door Sandra: Spammer.... Ontopic aub!<<<

jah bijna :puh:

maaruh weet iemand toevallig hoe ik bij een teleport de auto waarin een speler zit kan laten verdwijnen, want met auto's teleporten veroorzaakt alleen maar bugs volgens mij!

Geplaatst:
De auto niet mee teleporten omg :7

whaha xD,

en btw:

RemovePlayerFromVehicle(playerid);

doe je aant einde van je cmd. als aller laatste

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...