Hallo,
wenn ich ingame eine Gangzone erstelle, wird noch angezeigt wem die Zone gehört(Fraktion). Nach einem Serverneustart ist die Zone noch da, aber das Textdraw wird nicht mehr angezeigt. Er soll nur angezeigt warden wenn man in der Zone ist.
format(string, sizeof(string), "%i| Besitzer: '%s'", GZ[zoneid][zid], FrakName(GZ[zoneid][owner]));
M_ZoneSetTextDraw(zoneid, string, FrakColor(GZ[zoneid][owner]));
stock M_ZoneSetTextDraw(zoneid,text[]="",textcolor=0xFFFFFFFF)
{
if(M_IsValidZone(zoneid))
{
if(text[0] != '\0')
{
ZoneInfo[zoneid][zTextDraw] = TextDrawCreate(600.0,380.0,text);
TextDrawFont(ZoneInfo[zoneid][zTextDraw],1);
TextDrawAlignment(ZoneInfo[zoneid][zTextDraw],3);
TextDrawLetterSize(ZoneInfo[zoneid][zTextDraw],0.35,1.4);
TextDrawSetShadow(ZoneInfo[zoneid][zTextDraw],0);
TextDrawSetOutline(ZoneInfo[zoneid][zTextDraw],1);
TextDrawColor(ZoneInfo[zoneid][zTextDraw],textcolor);
TextDrawBackgroundColor(ZoneInfo[zoneid][zTextDraw],0x000000FF);
}
strmid(ZoneInfo[zoneid][zText],text,0,strlen(text),255);
return 1;
}
return 0;
}
//edit
public ShowZoneText()
{
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
for(new zoneid=0; zoneid<MAX_ZONES; zoneid++)
{
if(M_IsValidZone(zoneid))
{
if(M_IsPlayerInZone(i,zoneid) && InZone[i][zoneid] == 0)
{
if(ZoneInfo[zoneid][zText][0] != '\0')
{
TextDrawShowForPlayer(i,ZoneInfo[zoneid][zTextDraw]);
}
InZone[i][zoneid] = 1;
M_OnPlayerEnterZone(i,zoneid);
}
if(!M_IsPlayerInZone(i,zoneid) && InZone[i][zoneid] == 1)
{
if(ZoneInfo[zoneid][zText][0] != '\0')
{
TextDrawHideForPlayer(i,ZoneInfo[zoneid][zTextDraw]);
}
InZone[i][zoneid] = 0;
M_OnPlayerLeaveZone(i,zoneid);
}
}
}
}
}
return 1;
}
Und das wird bei OnGameModeInit aufgerufen. Mit der Funktion:
M_Init()
{
SetTimer("ShowZoneText",999,1);
for(new zoneid=0; zoneid<MAX_ZONES; zoneid++)
{
ZoneInfo[zoneid][zGangZoneID] = -1;
ZoneInfo[zoneid][zValid] = 0;
ZoneInfo[zoneid][zMinX] = 0.0;
ZoneInfo[zoneid][zMinY] = 0.0;
ZoneInfo[zoneid][zMaxX] = 0.0;
ZoneInfo[zoneid][zMaxY] = 0.0;
strmid(ZoneInfo[zoneid][zText],"",0,100);
}
return 1;
}
Mit freundlichen Grüßen
Grapefruit