Ist eine WBB 4.0 Lizenz. Außerdem, wie dort schon mehrfach erwähnt zu teuer.
Beiträge von Apokrate
-
-
Wieviel soll soll sie denn kosten`?
Je nachdem, was wir angeboten bekommen.
Nicht mehr als 60€. -
IsPlayerInRaceCheckpoint gibt es. glaubt mir
Du hast aber IsPlayerInRangeCheckpoint benutzt. -
IsPlayerInRangeCheckpoint wurde nicht definiert.
Bzw. du musst dir diese Funktion dann selbst schreiben.
Es gibt diese: https://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPointAnsonsten musst du bei "color" einen Farbcode angeben.
z.B. für Orange: 0xFF8000FF
oder Weiß: 0xFFFFFFFF -
Problem 1 gelöst, danke ;=)
Problem 2, weiterhin bestehend.
Die Frage ist nur, was ich da falsch gemacht habe, mit dem Starten. -
[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 -1Bei 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. -
Zeig am besten mal den Code, wo du die Zonen erstellst. Hast wahrscheinlich die Koordinaten falsch eingetragen.
-
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. -
Am besten den Code, wo die Häuser ausgelesen werden und erstellt werden sollen.
-
-
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.amxAuß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.amxHab mir schon alles ausgeben lassen. Klappt eig alles.
-
Du musst rtn definieren.
new Float:x, Float:y, Float:z, Float:rtn; -
Zeig am besten mal die Codeabschnitte.
-
Habs auch versucht nachzumachen. Da es nun aber fertig ist, bedanke ich mich recht herzlich
-
Genau. Danke. Kann geclosed werden.
-
Immer noch nicht gefunden. Wird wohl auch nichts.