Textdraw wird nach Neustart nicht angezeigt!

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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

    2 Mal editiert, zuletzt von Grapefruit ()

  • public LoadGZ()
    {
    new rows, fields, string[128], Counter = 0;
    cache_get_data(rows, fields);
    for(new i = 0; i < rows; i++)
    {
    GZ[i][zid] = i;
    GZ[i][owner] = cache_get_field_content_int(i, "owner", handle);
    GZ[i][max_x] = cache_get_field_content_float(i, "maxX", handle);
    GZ[i][max_y] = cache_get_field_content_float(i, "maxY", handle);
    GZ[i][min_x] = cache_get_field_content_float(i, "minX", handle);
    GZ[i][min_y] = cache_get_field_content_float(i, "minY", handle);
    GZ[i][flagge_x] = cache_get_field_content_float(i, "flaggeX", handle);
    GZ[i][flagge_y] = cache_get_field_content_float(i, "flaggeY", handle);
    GZ[i][flagge_z] = cache_get_field_content_float(i, "flaggeZ", handle);
    GZ[i][erstellt] = true;
    M_CreateZone(GZ[i][min_x], GZ[i][min_y], GZ[i][max_x], GZ[i][max_y], FrakColor(GZ[i][owner]), string, FrakColor(GZ[i][owner]));
    GZ[i][pickup] = CreatePickup(1314,1,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],0);
    GZ[i][label] = Create3DTextLabel("{0099FF}[Gangfight]{FFFFFF}\nTippe {0099FF}/angriff{FFFFFF} um das Gebiet anzugreifen.\nTippe {0099FF}/flagge{FFFFFF} um die Flagge zu erobern.", COLOR_WHITE, GZ[i][flagge_x], GZ[i][flagge_y], GZ[i][flagge_z], 20, 0);
    Counter++;
    }
    return printf("(%d) Gangzone(n) wurde(n) erfolgreich erstellt und geladen.", Counter);
    }