Zum ersten hast du das hier schonmal gefragt
Kennzeichen Hilfe
enum MainZone {
Zone_Name[28],
Float:Zone_Area[6]
};
Die 3 Koordinate ist die höhe damit kannst du einen würfel um die Zone erstellen
stock GetPlayer3DZone(playerid, zone[], len) {
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i != sizeof(SanAndreasZones); i++ ){
if(x >= SanAndreasZones[i][Zone_Area][0] && x <= SanAndreasZones[i][Zone_Area][3] && y >= SanAndreasZones[i][Zone_Area][1] && y <= SanAndreasZones[i][Zone_Area][4] && z >= SanAndreasZones[i][Zone_Area][2] && z <= SanAndreasZones[i][Zone_Area][5]){return format(zone, len, SanAndreasZones[i][Zone_Name], 0); }
}
return false;
}
stock GetPlayer2DZone(playerid, zone[], len) {
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i != sizeof(SanAndreasZones); i++ ){
if(x >= SanAndreasZones[i][Zone_Area][0] && x <= SanAndreasZones[i][Zone_Area][3] && y >= SanAndreasZones[i][Zone_Area][1] && y <= SanAndreasZones[i][Zone_Area][4]){
return format(zone, len, SanAndreasZones[i][Zone_Name], 0);}
}
return false;
}
Was google so alles bewirkt.
//edit
Das ganz ist letztendlich je nach Verwendungszweck mit dem streamer plugin zu kombinieren und darüber die Zonen zu erstellen da es dafür sogar ein callback gibt welches aufgerufen wird wenn du die zone betritst.