Gangfight Gebiete laden nicht

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,


    ich arbeite derzeit an einem eigenen Gangfight System, jedoch werden die Gebiete nicht geladen.
    Hier mal die Ladefunktion.
    public LoadGangfight()
    {
    new rows,fields,count;
    cache_get_data(rows,fields);
    for(new i=0;i<rows;i++)
    {
    new gangfightID = cache_get_field_content_int(i,"ID");
    if(gangfightID < MAX_GANGFIGHT)
    {
    Gangfight[gangfightID][gID] = cache_get_field_content_int(i, "ID");
    Gangfight[gangfightID][gType] = cache_get_field_content_int(i, "Type");
    Gangfight[gangfightID][gMinX] = cache_get_field_content_float(i, "MinX");
    Gangfight[gangfightID][gMinY] = cache_get_field_content_float(i, "MinY");
    Gangfight[gangfightID][gMaxX] = cache_get_field_content_float(i, "MaxX");
    Gangfight[gangfightID][gMaxY] = cache_get_field_content_float(i, "MaxY");
    Gangfight[gangfightID][gBesitzer] = cache_get_field_content_int(i, "Besitzer");
    Gangfight[gangfightID][gGesperrt] = cache_get_field_content_int(i, "Gesperrt");
    Gangfight[gangfightID][gAngriff] = cache_get_field_content_int(i, "Angriff");
    Gangfight[gangfightID][gAngreifer1] = cache_get_field_content_int(i, "Angreifer1");
    Gangfight[gangfightID][gAngreifer2] = cache_get_field_content_int(i, "Angreifer2");
    Gangfight[gangfightID][gPunkte1] = cache_get_field_content_int(i, "Punkte1");
    Gangfight[gangfightID][gPunkte2] = cache_get_field_content_int(i, "Punkte2");
    Gangfight[gangfightID][gFlagAX] = cache_get_field_content_float(i, "FlagAX");
    Gangfight[gangfightID][gFlagAY] = cache_get_field_content_float(i, "FlagAY");
    Gangfight[gangfightID][gFlagAZ] = cache_get_field_content_float(i, "FlagAZ");
    Gangfight[gangfightID][gFlagBX] = cache_get_field_content_float(i, "FlagBX");
    Gangfight[gangfightID][gFlagBY] = cache_get_field_content_float(i, "FlagBY");
    Gangfight[gangfightID][gFlagBZ] = cache_get_field_content_float(i, "FlagBZ");
    Gangfight[gangfightID][gFlagCX] = cache_get_field_content_float(i, "FlagCY");
    Gangfight[gangfightID][gFlagCY] = cache_get_field_content_float(i, "FlagCY");
    Gangfight[gangfightID][gFlagCZ] = cache_get_field_content_float(i, "FlagCZ");
    cache_get_field_content(i, "Name", Gangfight[gangfightID][gGangfightName], myCon, 64);
    }
    }
    printf("[LOAD] Gangfight Gebiete geladen: %d/%d",count,MAX_GANGFIGHT);
    }


    Die Server Log gibt aus, dass 0 Gangfight Gebiete geladen sind, jedoch in der Tabelle eine Spalte eines Gebietes existiert.
    Tabellen Struktur:

    DROP TABLE IF EXISTS `script_gangfight`;
    CREATE TABLE `script_gangfight` (
    `ID` int(11) NOT NULL AUTO_INCREMENT,
    `Type` int(11) NOT NULL,
    `MinX` float NOT NULL,
    `MinY` float NOT NULL,
    `MaxX` float NOT NULL,
    `MaxY` float NOT NULL,
    `Besitzer` int(11) NOT NULL,
    `Gesperrt` int(11) NOT NULL,
    `Angriff` int(11) NOT NULL,
    `Angreifer1` int(11) NOT NULL,
    `Angreifer2` int(11) NOT NULL,
    `Punkte1` int(11) NOT NULL,
    `Punkte2` int(11) NOT NULL,
    `FlagAX` float NOT NULL,
    `FlagAY` float NOT NULL,
    `FlagAZ` float NOT NULL,
    `FlagBX` float NOT NULL,
    `FlagBY` float NOT NULL,
    `FlagBZ` float NOT NULL,
    `FlagCX` float NOT NULL,
    `FlagCY` float NOT NULL,
    `FlagCZ` float NOT NULL,
    `Name` varchar(64) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;


    Ich würde mich freuen, wenn mir jemand helfen kann. Jeffry:

  • Die Koordinaten sind falsch herum. Das jeweilige Minimum muss das jeweilige Maximum sein und andersherum.
    -1756 ist größer als -1880 und 1328 ist größer als 1255.


    In deinem LoadGangfight fehlt nach:
    cache_get_field_content(i, "Name", Gangfight[gangfightID][gGangfightName], myCon, 64);
    das:
    count++;

  • Folgender Code wird nicht aufgerufen, zumindest die prints nicht.
    for(new i;i<MAX_GANGFIGHT;i++)
    {
    if(GangfightZone[i] == -1) continue;
    printf("Zone: %d | Besitzer: %d | Farbe: %d", GangfightZone[i], Gangfight[i][gBesitzer], GetZoneColor(Gangfight[i][gBesitzer]));
    GangZoneShowForPlayer(playerid, GangfightZone[i], GetZoneColor(Gangfight[i][gBesitzer]));
    }
    Das ganze befindet sich unter OnPlayerSpawn.

  • Ja.