Beiträge von Apokrate

    [15:04:43] playerid: 1 // Fraktion 9 == GFOwnerID 11 || == GFGegnerID 9
    [15:04:43] i: 0
    [15:04:43] OwnerText: Medellin Kartell
    [15:04:43] GegnerText: Grove Street
    [15:04:43] GZName: ~y~Golfplatz LV
    [15:04:43] GZFZeit: ~r~Verbl. Zeit 60 Minuten
    [15:04:43] a: ~b~A: ~w~Medellin Kartell
    [15:04:43] c: ~b~B: ~w~Medellin Kartell
    [15:04:43] a: ~b~C: ~w~Medellin Kartell
    [15:04:43] OwnerPoints: 000/100
    [15:04:43] GegnerPoints: 000/100
    [15:04:43] playerid: 1 // Fraktion 9 == GFOwnerID 10 || == GFGegnerID -1
    [15:04:43] playerid: 1 // Fraktion 9 == GFOwnerID 11 || == GFGegnerID -1
    [15:04:43] playerid: 1 // Fraktion 9 == GFOwnerID 15 || == GFGegnerID -1
    [15:04:43] playerid: 1 // Fraktion 9 == GFOwnerID 10 || == GFGegnerID -1
    [15:04:43] playerid: 1 // Fraktion 9 == GFOwnerID 11 || == GFGegnerID -1
    [15:04:43] playerid: 1 // Fraktion 9 == GFOwnerID 9 || == GFGegnerID -1
    [15:04:43] i: 6
    [15:04:43] OwnerText: Grove Street
    [15:04:43] GegnerText: Niemand
    [15:04:43] GZName: ~y~Dillimore
    [15:04:43] GZFZeit: ~r~Verbl. Zeit 61 Minuten
    [15:04:43] a: ~b~A: ~w~Grove Street
    [15:04:43] c: ~b~B: ~w~Grove Street
    [15:04:43] a: ~b~C: ~w~Grove Street
    [15:04:43] OwnerPoints: 000/100
    [15:04:43] GegnerPoints: 000/100
    [15:04:43] playerid: 1 // Fraktion 9 == GFOwnerID 9 || == GFGegnerID -1
    [15:04:43] i: 7
    [15:04:43] OwnerText: Grove Street
    [15:04:43] GegnerText: Niemand
    [15:04:43] GZName: ~y~Las Barrancas
    [15:04:43] GZFZeit: ~r~Verbl. Zeit 61 Minuten
    [15:04:43] a: ~b~A: ~w~Grove Street
    [15:04:43] c: ~b~B: ~w~Grove Street
    [15:04:43] a: ~b~C: ~w~Grove Street
    [15:04:43] OwnerPoints: 000/100
    [15:04:43] GegnerPoints: 000/100
    [15:04:43] playerid: 1 // Fraktion 9 == GFOwnerID 15 || == GFGegnerID -1
    [15:04:53] playerid: 1 // Fraktion 9 == GFOwnerID 11 || == GFGegnerID 9
    [15:04:53] i: 0
    [15:04:53] OwnerText: Medellin Kartell
    [15:04:53] GegnerText: Grove Street
    [15:04:53] GZName: ~y~Golfplatz LV
    [15:04:53] GZFZeit: ~r~Verbl. Zeit 60 Minuten
    [15:04:53] a: ~b~A: ~w~Medellin Kartell
    [15:04:53] c: ~b~B: ~w~Medellin Kartell
    [15:04:53] a: ~b~C: ~w~Medellin Kartell
    [15:04:53] OwnerPoints: 000/100
    [15:04:53] GegnerPoints: 000/100
    [15:04:53] playerid: 1 // Fraktion 9 == GFOwnerID 10 || == GFGegnerID -1
    [15:04:53] playerid: 1 // Fraktion 9 == GFOwnerID 11 || == GFGegnerID -1
    [15:04:53] playerid: 1 // Fraktion 9 == GFOwnerID 15 || == GFGegnerID -1
    [15:04:53] playerid: 1 // Fraktion 9 == GFOwnerID 10 || == GFGegnerID -1
    [15:04:53] playerid: 1 // Fraktion 9 == GFOwnerID 11 || == GFGegnerID -1
    [15:04:53] playerid: 1 // Fraktion 9 == GFOwnerID 9 || == GFGegnerID -1
    [15:04:53] i: 6
    [15:04:53] OwnerText: Grove Street
    [15:04:53] GegnerText: Niemand
    [15:04:53] GZName: ~y~Dillimore
    [15:04:53] GZFZeit: ~r~Verbl. Zeit 61 Minuten
    [15:04:53] a: ~b~A: ~w~Grove Street
    [15:04:53] c: ~b~B: ~w~Grove Street
    [15:04:53] a: ~b~C: ~w~Grove Street
    [15:04:53] OwnerPoints: 000/100
    [15:04:53] GegnerPoints: 000/100
    [15:04:53] playerid: 1 // Fraktion 9 == GFOwnerID 9 || == GFGegnerID -1
    [15:04:53] i: 7
    [15:04:53] OwnerText: Grove Street
    [15:04:53] GegnerText: Niemand
    [15:04:53] GZName: ~y~Las Barrancas
    [15:04:53] GZFZeit: ~r~Verbl. Zeit 61 Minuten
    [15:04:53] a: ~b~A: ~w~Grove Street
    [15:04:53] c: ~b~B: ~w~Grove Street
    [15:04:53] a: ~b~C: ~w~Grove Street
    [15:04:53] OwnerPoints: 000/100
    [15:04:53] GegnerPoints: 000/100
    [15:04:53] playerid: 1 // Fraktion 9 == GFOwnerID 15 || == GFGegnerID -1


    Bei ID 1 (hat gestartet beim Golfplatz | Besitzer: Medellin Kartell) geht die Box weg. Bei ID 2 (in der Fraktion Medellin Kartell) wird nur das Textdraw erstellt, aber nichts geupdated.


    Der Code:
    forward GangfightUpdate(playerid);
    public GangfightUpdate(playerid)
    {
    new OwnerText[128], GegnerText[128], GZName[128], GZFZeit[128], Af[128], Bf[128], Cf[128], OwnerPoints[128], GegnerPoints[128];
    for(new i = 0; i < sizeof Gangzonen; i++)
    {
    //printf("Fraktion %d == GFOwnerID %d || == GFGegnerID %d", Spieler[playerid][Fraktion], Gangzonen[i][GFOwnerID], Gangzonen[i][GFGegnerID]);


    printf("playerid: %d // Fraktion %d == GFOwnerID %d || == GFGegnerID %d", playerid, Spieler[playerid][Fraktion], Gangzonen[i][GFOwnerID], Gangzonen[i][GFGegnerID]);


    if(Spieler[playerid][Fraktion] == Gangzonen[i][GFOwnerID] || Spieler[playerid][Fraktion] == Gangzonen[i][GFGegnerID])
    {
    printf("i: %d", i);
    if(Gangzonen[i][GFOwnerID] != -1) format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    else format(OwnerText,sizeof(OwnerText),"Niemand");
    printf("OwnerText: %s", OwnerText);
    if(Gangzonen[i][GFGegnerID] != -1) format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    else format(GegnerText,sizeof(GegnerText),"Niemand");
    printf("GegnerText: %s", GegnerText);
    format(GZName,sizeof(GZName),"~y~%s",Gangzonen[i][GangZoneName]);
    printf("GZName: %s", GZName);
    format(GZFZeit,sizeof(GZFZeit),"~r~Verbl. Zeit %d Minuten",60-Gangzonen[i][GFRunningTime]);
    printf("GZFZeit: %s", GZFZeit);
    format(Af,sizeof(Af),"~b~A: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerA]][Frakname]);
    format(Bf,sizeof(Bf),"~b~B: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerB]][Frakname]);
    format(Cf,sizeof(Cf),"~b~C: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerC]][Frakname]);
    printf("a: %s", Af);
    printf("c: %s", Bf);
    printf("a: %s", Cf);
    format(OwnerPoints, sizeof(OwnerPoints),"%s%d/100",(Gangzonen[i][GFOwnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFOwnerPoints]);
    format(GegnerPoints, sizeof(GegnerPoints),"%s%d/100",(Gangzonen[i][GFGegnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFGegnerPoints]);
    printf("OwnerPoints: %s", OwnerPoints);
    printf("GegnerPoints: %s", GegnerPoints);
    UpdateGangfightBox(playerid, OwnerText, GegnerText, GZName, GZFZeit, Af, Bf, Cf, OwnerPoints, GegnerPoints);
    }
    else//if(!(Spieler[playerid][Fraktion] == Gangzonen[i][GFOwnerID]) || !(Spieler[playerid][Fraktion] == Gangzonen[i][GFGegnerID]))
    {
    DestroyGangfightBox(playerid);
    KillTimer(GFBoxTimer[playerid]);
    }
    }
    return 1;
    }

    for(new ppl = 0; ppl < MAX_PLAYERS; ppl++)
    {
    if(Spieler[ppl][Fraktion] == Spieler[playerid][Fraktion] || Spieler[ppl][Fraktion] == Gangzonen[i][GFOwnerID])
    {
    if(IsPlayerConnected(ppl) && LoggedIn[ppl] && !IsPlayerNPC(ppl))
    {
    SendClientMessage(ppl,COLOR_LIGHTGREEN,string);
    CreateGangfightBox(ppl);
    GFBoxTimer[ppl] = SetTimerEx("GangfightUpdate", 331, true, "i", playerid);
    //break;
    }
    }
    }


    forward GangfightUpdate(playerid);
    public GangfightUpdate(playerid)
    {
    new OwnerText[128], GegnerText[128], GZName[128], GZFZeit[128], Af[128], Bf[128], Cf[128], OwnerPoints[128], GegnerPoints[128];
    for(new i = 0; i < sizeof Gangzonen; i++)
    {
    printf("Fraktion %d == GFOwnerID %d || == GFGegnerID %d", Spieler[playerid][Fraktion], Gangzonen[i][GFOwnerID], Gangzonen[i][GFGegnerID]);
    if(Spieler[playerid][Fraktion] == Gangzonen[i][GFOwnerID] || Spieler[playerid][Fraktion] == Gangzonen[i][GFGegnerID])
    {
    printf("i: %d", i);
    if(Gangzonen[i][GFOwnerID] != -1) format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    else format(OwnerText,sizeof(OwnerText),"Niemand");
    printf("OwnerText: %s", OwnerText);
    if(Gangzonen[i][GFGegnerID] != -1) format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    else format(GegnerText,sizeof(GegnerText),"Niemand");
    printf("GegnerText: %s", GegnerText);
    format(GZName,sizeof(GZName),"~y~%s",Gangzonen[i][GangZoneName]);
    printf("GZName: %s", GZName);
    format(GZFZeit,sizeof(GZFZeit),"~r~Verbl. Zeit %d Minuten",60-Gangzonen[i][GFRunningTime]);
    printf("GZFZeit: %s", GZFZeit);
    format(Af,sizeof(Af),"~b~A: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerA]][Frakname]);
    format(Bf,sizeof(Bf),"~b~B: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerB]][Frakname]);
    format(Cf,sizeof(Cf),"~b~C: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerC]][Frakname]);
    printf("a: %s", Af);
    printf("c: %s", Bf);
    printf("a: %s", Cf);
    format(OwnerPoints, sizeof(OwnerPoints),"%s%d/100",(Gangzonen[i][GFOwnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFOwnerPoints]);
    format(GegnerPoints, sizeof(GegnerPoints),"%s%d/100",(Gangzonen[i][GFGegnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFGegnerPoints]);
    printf("OwnerPoints: %s", OwnerPoints);
    printf("GegnerPoints: %s", GegnerPoints);
    UpdateGangfightBox(playerid, OwnerText, GegnerText, GZName, GZFZeit, Af, Bf, Cf, OwnerPoints, GegnerPoints);
    }
    else//if(!(Spieler[playerid][Fraktion] == Gangzonen[i][GFOwnerID]) || !(Spieler[playerid][Fraktion] == Gangzonen[i][GFGegnerID]))
    {
    DestroyGangfightBox(playerid);
    KillTimer(GFBoxTimer[playerid]);
    }
    }
    return 1;
    }

    Und was ist jetzt der Fehler? ;)


    Hab vergessen den Text zu schreiben :<


    Ich würde mal sagen: Vorfüreffekt!
    Ging letztens nicht. Ich führe aber weitere Tests aus.


    /e
    Wenn ich einen Gangfight starte, klappt bei mir alles. alles wird richtig angezeigt. Bei meinem Partner in der anderen Fraktion wird das textdraw aber nicht geupdated, sondern zeigt nur das an, was ich erstellt habe.

    forward GangfightUpdate(playerid);
    public GangfightUpdate(playerid)
    {
    new OwnerText[128], GegnerText[128], GZName[128], GZFZeit[128], Af[128], Bf[128], Cf[128], OwnerPoints[128], GegnerPoints[128];
    for(new i = 0; i < sizeof Gangzonen; i++)
    {
    if(Spieler[playerid][Fraktion] == Gangzonen[i][GFOwnerID] || Spieler[playerid][Fraktion] == Gangzonen[i][GFGegnerID])
    {
    //format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    if(Gangzonen[i][GFOwnerID] != -1) format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    else format(OwnerText,sizeof(OwnerText),"Niemand");
    printf("GangfightUpdate: %s (OwnerText: %s | ID: %d)", Fraktionen[Gangzonen[i][GFOwnerID]][Frakname], OwnerText, Gangzonen[i][GFOwnerID]);
    if(Gangzonen[i][GFGegnerID] != -1) format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    else format(GegnerText,sizeof(GegnerText),"Niemand");
    printf("GangfightUpdate: %s (GegnerText: %s | ID: %d)", Fraktionen[Gangzonen[i][GFGegnerID]][Frakname], GegnerText, Gangzonen[i][GFGegnerID]);
    //format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    format(GZName,sizeof(GZName),"~y~%s",Gangzonen[i][GangZoneName]);
    printf("GangfightUpdate: %s (ID: %d)", Gangzonen[i][GangZoneName], Gangzonen[i][GangzoneID]);
    format(GZFZeit,sizeof(GZFZeit),"~r~Verbl. Zeit %d Minuten",60-Gangzonen[i][GFRunningTime]);
    printf("GangfightUpdate: Restl. Zeit: %d", 60-Gangzonen[i][GFRunningTime]);
    format(Af,sizeof(Af),"~b~A: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerA]][Frakname]);
    printf("GangfightUpdate: Flagge A - %s", Fraktionen[Gangzonen[i][GFFlaggenOwnerA]][Frakname]);
    format(Bf,sizeof(Bf),"~b~B: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerB]][Frakname]);
    printf("GangfightUpdate: Flagge B - %s", Fraktionen[Gangzonen[i][GFFlaggenOwnerB]][Frakname]);
    format(Cf,sizeof(Cf),"~b~C: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerC]][Frakname]);
    printf("GangfightUpdate: Flagge C - %s", Fraktionen[Gangzonen[i][GFFlaggenOwnerC]][Frakname]);
    format(OwnerPoints, sizeof(OwnerPoints),"%s%d/100",(Gangzonen[i][GFOwnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFOwnerPoints]);
    printf("GangfightUpdate: Punkte Owner - %d", Gangzonen[i][GFOwnerPoints]);
    format(GegnerPoints, sizeof(GegnerPoints),"%s%d/100",(Gangzonen[i][GFGegnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFGegnerPoints]);
    printf("GangfightUpdate: Punkte Gegner - %d", Gangzonen[i][GFGegnerPoints]);
    UpdateGangfightBox(playerid, OwnerText, GegnerText, GZName, GZFZeit, Af, Bf, Cf, OwnerPoints, GegnerPoints);
    }
    }
    return 1;
    }


    Ausgabe:
    [17:53:03] GangfightUpdate: Yakuza (OwnerText: Yakuza | ID: 12)
    [17:53:03] GangfightUpdate: Grove Street (GegnerText: Grove Street | ID: 9)
    [17:53:03] GangfightUpdate: Golfplatz LV (ID: 0)
    [17:53:03] GangfightUpdate: Restl. Zeit: 59
    [17:53:03] GangfightUpdate: Flagge A -
    [17:53:03] GangfightUpdate: Flagge B -
    [17:53:03] GangfightUpdate: Flagge C -
    [17:53:03] GangfightUpdate: Punkte Owner - 3
    [17:53:03] GangfightUpdate: Punkte Gegner - 0
    [17:53:03] GangfightUpdate: Grove Street (OwnerText: Grove Street | ID: 9)
    [17:53:03] [debug] Run time error 4: "Array index out of bounds"
    [17:53:03] [debug] Accessing element at negative index -1
    [17:53:03] [debug] AMX backtrace:
    [17:53:03] [debug] #0 00233a8c in public GangfightUpdate (0x00000001) from Server.amx
    Es gibt wohl den Fehler, dass OwnerText doppelt generiert wird.

    Habe das Problem, dass wenn ich einen Gangfight starte, mir in der Gangfightbox die falschen "Daten" angezeigt werden.
    Also Ort, und die Fraktionen.

    forward GangfightUpdate(playerid);
    public GangfightUpdate(playerid)
    {
    new OwnerText[128], GegnerText[128], GZName[128], GZFZeit[128], Af[128], Bf[128], Cf[128], OwnerPoints[128], GegnerPoints[128];
    for(new i = 0; i < sizeof Gangzonen; i++)
    {
    if(Spieler[playerid][Fraktion] == Gangzonen[i][GFOwnerID] || Spieler[playerid][Fraktion] == Gangzonen[i][GFGegnerID])
    {
    //format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    if(Gangzonen[i][GFOwnerID] != -1) format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    else format(OwnerText,sizeof(OwnerText),"Niemand");
    if(Gangzonen[i][GFGegnerID] != -1) format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    else format(GegnerText,sizeof(GegnerText),"Niemand");
    //format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    format(GZName,sizeof(GZName),"~y~%s",Gangzonen[i][GangZoneName]);
    format(GZFZeit,sizeof(GZFZeit),"~r~Verbl. Zeit %d Minuten",60-Gangzonen[i][GFRunningTime]);
    format(Af,sizeof(Af),"~b~A: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerA]][Frakname]);
    format(Bf,sizeof(Bf),"~b~B: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerB]][Frakname]);
    format(Cf,sizeof(Cf),"~b~C: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerC]][Frakname]);
    format(OwnerPoints, sizeof(OwnerPoints),"%s%d/100",(Gangzonen[i][GFOwnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFOwnerPoints]);
    format(GegnerPoints, sizeof(GegnerPoints),"%s%d/100",(Gangzonen[i][GFGegnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFGegnerPoints]);
    UpdateGangfightBox(playerid, OwnerText, GegnerText, GZName, GZFZeit, Af, Bf, Cf, OwnerPoints, GegnerPoints);
    }
    }
    return 1;
    }


    enum GFInfo //Gangzonen
    {
    GangZoneName[64],
    GangzoneID,
    Float:koord1,
    Float:koord2,
    Float:koord3,
    Float:koord4,
    //Flaggen
    Float:AFlaggeX,
    Float:AFlaggeY,
    Float:AFlaggeZ,
    Float:BFlaggeX,
    Float:BFlaggeY,
    Float:BFlaggeZ,
    Float:CFlaggeX,
    Float:CFlaggeY,
    Float:CFlaggeZ,
    GFOwnerID,
    GFGegnerID,
    GFOwnerPoints,
    GFGegnerPoints,
    GFRunningTime,
    GFPauseTime,
    GFFlaggenOwnerA,
    GFFlaggenOwnerB,
    GFFlaggenOwnerC
    }


    Gangfight usw startet. Mein /zone Befehl funktioniert auch:
    for(new i = 0; i < sizeof(Gangzonen); i++)
    {
    if(IsPlayerInArea(playerid, Gangzonen[i][koord1],Gangzonen[i][koord2],Gangzonen[i][koord3],Gangzonen[i][koord4]))
    {
    if(Gangzonen[i][GFGegnerID] != -1)
    {
    format(string, sizeof(string), "|__________ Gebietinfo (%s) __________|", Gangzonen[i][GangZoneName]);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    format(string, sizeof(string), "%s (%d)/ %s (%d)", Fraktionen[Gangzonen[i][GFOwnerID]][Frakname], Gangzonen[i][GFOwnerPoints], Fraktionen[Gangzonen[i][GFGegnerID]][Frakname], Gangzonen[i][GFGegnerPoints]);
    SendClientMessage(playerid, COLOR_GREY, string);
    {
    format(string, sizeof(string), "Der Kampf läuft noch %d Stunde(n) und %d Minute(n).", (60-Gangzonen[i][GFRunningTime])/60,(60-Gangzonen[i][GFRunningTime])%60);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    }
    else
    {
    format(string, sizeof(string), "|__________ Gebietinfo (%s) __________|", Gangzonen[i][GangZoneName]);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    format(string, sizeof(string), "Besitzer: %s", Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    SendClientMessage(playerid, COLOR_GREY, string);
    SendClientMessage(playerid, COLOR_GREY, "Stündlicher Ertrag: 500$");
    if(Gangzonen[i][GFPauseTime] != -1)
    {
    format(string, sizeof(string), "Das Gebiet ist noch für %d Stunde(n) und %d Minute(n) gesperrt.", (480-Gangzonen[i][GFPauseTime])/60,(480-Gangzonen[i][GFPauseTime])%60);
    SendClientMessage(playerid, COLOR_GREY, string);
    return 1;
    }else{
    SendClientMessage(playerid, COLOR_GREY, "Das Gebiet ist nicht gesperrt und kann {009800}angegriffen{AFAFAF} werden.");
    }
    }
    }
    }
    Falls ihr etwas bestimmtes, weiteres braucht, sagt bescheid.

    format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    zu:
    if(Gangzonen[i][GFGegnerID] != -1) format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    else format(GegnerText,sizeof(GegnerText),"Niemand");


    Wenn ich's richtig verstanden habe, dann sollte ich dies auch für den Owner Text machen.
    Hab ich jedenfalls.


    forward GangfightUpdate(playerid);
    public GangfightUpdate(playerid)
    {
    new OwnerText[128], GegnerText[128], GZName[128], GZFZeit[128], Af[128], Bf[128], Cf[128], OwnerPoints[128], GegnerPoints[128];
    for(new i = 0; i < sizeof Gangzonen; i++)
    {
    if(Spieler[playerid][Fraktion] == Gangzonen[i][GFOwnerID] || Spieler[playerid][Fraktion] == Gangzonen[i][GFGegnerID])
    {
    //format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    if(Gangzonen[i][GFOwnerID] != -1) format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    else format(OwnerText,sizeof(OwnerText),"Niemand");
    if(Gangzonen[i][GFGegnerID] != -1) format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    else format(GegnerText,sizeof(GegnerText),"Niemand");
    //format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    format(GZName,sizeof(GZName),"~y~%s",Gangzonen[i][GangZoneName]);
    format(GZFZeit,sizeof(GZFZeit),"~r~Verbl. Zeit %d Minuten",60-Gangzonen[i][GFRunningTime]);
    format(Af,sizeof(Af),"~b~A: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerA]][Frakname]);
    format(Bf,sizeof(Bf),"~b~B: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerB]][Frakname]);
    format(Cf,sizeof(Cf),"~b~C: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerC]][Frakname]);
    format(OwnerPoints, sizeof(OwnerPoints),"%s%d/100",(Gangzonen[i][GFOwnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFOwnerPoints]);
    format(GegnerPoints, sizeof(GegnerPoints),"%s%d/100",(Gangzonen[i][GFGegnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFGegnerPoints]);
    UpdateGangfightBox(playerid, OwnerText, GegnerText, GZName, GZFZeit, Af, Bf, Cf, OwnerPoints, GegnerPoints);
    }
    }
    return 1;
    }
    Neues Problem:


    [20:17:40] [debug] Run time error 4: "Array index out of bounds"
    [20:17:40] [debug] Accessing element at index 9 past array upper bound 8
    [20:17:40] [debug] AMX backtrace:
    [20:17:40] [debug] #0 00239654 in public GangfightUpdate (0x00000001) from Server.amx


    Außerdem, wenn ich ein anderes Gebiet angreife, dann werden falsche Daten angezeigt.

    Bin gerade irgendwie dumm unterwegs.


    Wollte meine Gangfightbox updaten und habe dafür einen Timer erstellt.


    forward GangfightUpdate(playerid);
    public GangfightUpdate(playerid)
    {
    new OwnerText[128], GegnerText[128], GZName[128], GZFZeit[128], Af[128], Bf[128], Cf[128], OwnerPoints[128], GegnerPoints[128];
    for(new ppl = 0; ppl < MAX_PLAYERS; ppl++)
    {
    if(Spieler[playerid][Fraktion] == Gangzonen[ppl][GFOwnerID] || Spieler[playerid][Fraktion] == Gangzonen[ppl][GFGegnerID])
    {
    for(new i = 0; i < sizeof Gangzonen; i++)
    {
    format(OwnerText,sizeof(OwnerText),"%s",Fraktionen[Gangzonen[i][GFOwnerID]][Frakname]);
    format(GegnerText,sizeof(GegnerText),"%s",Fraktionen[Gangzonen[i][GFGegnerID]][Frakname]);
    format(GZName,sizeof(GZName),"~y~%s",Gangzonen[i][GangZoneName]);
    format(GZFZeit,sizeof(GZFZeit),"~r~Verbl. Zeit %d Minuten",60-Gangzonen[i][GFRunningTime]);
    format(Af,sizeof(Af),"~b~A: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerA]][Frakname]);
    format(Bf,sizeof(Bf),"~b~B: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerB]][Frakname]);
    format(Cf,sizeof(Cf),"~b~C: ~w~%s",Fraktionen[Gangzonen[i][GFFlaggenOwnerC]][Frakname]);
    format(OwnerPoints, sizeof(OwnerPoints),"%s%d/100",(Gangzonen[i][GFOwnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFOwnerPoints]);
    format(GegnerPoints, sizeof(GegnerPoints),"%s%d/100",(Gangzonen[i][GFGegnerPoints] < 10) ? ("00") : (""), Gangzonen[i][GFGegnerPoints]);
    UpdateGangfightBox(playerid, OwnerText, GegnerText, GZName, GZFZeit, Af, Bf, Cf, OwnerPoints, GegnerPoints);
    }
    }
    }
    return 1;
    }


    Bekomme aber diese Fehlermeldung:


    [19:58:58] [debug] Run time error 4: "Array index out of bounds"
    [19:58:58] [debug] Accessing element at negative index -1
    [19:58:58] [debug] AMX backtrace:
    [19:58:58] [debug] #0 0023982c in public GangfightUpdate (0x00000001) from Server.amx


    Hab mir schon alles ausgeben lassen. Klappt eig alles.