Hallo,
ich stelle euch hier ein System zur Verfügung, welches euch erlaubt Zonen zu erstellen, die dann auf der Karte angezeigt werden. Wenn man diese Zonen oder auch Ganggebiete betritt, wird ein Textdraw angezeigt. Ganz einfach...
FUNKTIONEN:
native M_CreateZone(Float:minx,Float:miny,Float:maxx,Float:maxy,zonecolor,text[]="",textcolor=0xFFFFFFFF);
native M_DestroyZone(zoneid);
native M_ZoneFlashForPlayer(playerid,zoneid,flashcolor);
native M_ZoneFlashForAll(zoneid,flashcolor);
native M_ZoneStopFlashForPlayer(playerid,zoneid);
native M_ZoneStopFlashForAll(zoneid);
native M_ZoneSetTextDraw(zoneid,text[]="",textcolor=0xFFFFFFFF);
native M_ZoneSetZone(zoneid,Float:minx,Float:miny,Float:maxx,Float:maxy,zonecolor);
native M_ZoneGetZoneCoords(zoneid,&Float:minx,&Float:miny,&Float:maxx,&Float:maxy);
native M_IsValidZone(zoneid);
native M_IsPlayerInZone(playerid,zoneid);
native M_IsPlayerInAnyZone(playerid);
native M_GetPlayerCurrentZone(playerid);
native M_IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY);
CHANGELOG:
v1.3:
- M_AddZone heißt nun M_CreateZone
- Neue Funktion: IsPlayerInAnyZone
- Neue Funktion: GetPlayerCurrentZone
- Neues Callback: OnPlayerEnterZone
- Neues Callback: OnPlayerLeaveZone
- Man kann das Textdraw deaktivieren (zB. Falls man überm TextDrawLimit ist). Einfach den Text und die Textfarbe auslassen.
EINBAU:
Der Einbau gestaltet sich recht einfach. Füge ganz oben in deinen Gamemode
#include <M-Zones>
ein. Die Include wird geladen... Nun brauchst du nur noch
M_Init();
in deinem OnGameModeInit() Callback, sodass ein Timer gestartet wird und das System erst funktioniert.
Dann kommt noch
M_Connect(playerid);
in das Callback OnPlayerConnect rein, sodass die Zonen für diesen Spieler angezeigt werden.
Außerdem müssen diese Callbacks im Script enthalten sein:
public M_OnPlayerEnterZone(playerid,zoneid)
{
return 1;
}
public M_OnPlayerLeaveZone(playerid,zoneid)
{
return 1;
}
BUGS:
- Der Bug aus Version 1.1 wurde nun endlich behoben und die Zonen werden angezeigt!
BEISPIEL:
Ich habe das System mit den Zonen getestet und es hat funktioniert
#define GANG_ZONE_GROVE 0x006600C0
#define GANG_ZONE_BALLAS 0x990066C0
#define GANG_ZONE_VAGOS 0xFFFF00C0
#define GANG_ZONE_ZIVIS 0x66FFFFC0
M_CreateZone(2321.9546,-1746.7269,2585.2441,-1546.8424,GANG_ZONE_GROVE,"Ganggebiet der Grove Street",GANG_ZONE_GROVE); // Mit TextDraw
M_CreateZone(1849.7106,-1278.7588,2171.7375,-1103.2615,GANG_ZONE_BALLAS); // Ohne TextDraw
M_CreateZone(1066.9972,-2160.9045,1522.2491,-1882.8773,GANG_ZONE_VAGOS,""); // Auch ohne TextDraw
M_CreateZone(1818.6459,-1548.1340,2112.2666,-1344.7012,GANG_ZONE_ZIVIS,"",0x00000000); // Auch ohne TextDraw
DOWNLOAD:
RAR-Archiv
INC-Datei
Ich denke das wars dann. Hoffe alles funktioniert für euch einwandfrei, wenn nicht, hier sagen und ich behebe es .
MfG, M4rciii