Guten Tag,
Mein Name lautet MrPawn.
Und zwar Crasht mein Server bei einem bestimmten Befehl.
Und zwar wenn ich einen Teilnehmer zur Runde hinzufüge passiert noch nichts besonderes, auser das ich in den 'Warte auf Anwort von Leader' Modus gesetzt werde.
Sobald ich eine Runde starten lassen und irgenteine Aktion ausführe, sei es Schlagen, schreiben etc. Dann macht der Server erst mal ein Schlummerchen
Genau wenn der Timer gestartet wird:
public Updateuebungskill()
{
new string[256];
if(Uebungscount[3] == 0)
{
TextDrawHideForAll(gTextDraw[0]);
if(Uebungskill[0] > Uebungskill[1])
{
format(string, sizeof(string), "INFO: {FFFFFF}Team 1 hat gegen Team 2 mit %i Kills gewonnen.", Uebungskill[0]);
}
else if(Uebungskill[0] < Uebungskill[1])
{
format(string, sizeof(string), "INFO: {FFFFFF}Team 2 hat gegen Team 1 mit %i Kills gewonnen.", Uebungskill[1]);
}
SendClientMessageToAll(Hellgruen, string);
for(new i; i < MAX_PLAYERS; i++ )
{
if(i == INVALID_PLAYER_ID)continue;
if(PlayerInfo[i][pEingeloggt] == false)continue;
if(PlayerInfo[i][pArena] != 3)continue;
SetPlayerArena(i, 0);
}
return 1;
}
format(string, sizeof(string), "Uebrige Kills: %i", Uebungscount[3]);
TextDrawSetString(gTextDraw[0], string);
return 1;
}
Wieso das ist hier die Frage.
Hier mal ein Video vom Uebungssystem ;):
Mit freundlichen Grüßen,
MrPawn
EDIT:// Aktuell weis ich wo der Fehler liegt, kann diesen aber nicht beheben.
Ich hab den Code mal ein "kleines" "bisschen" printen lassen
public Updateuebungskill()
{
print("print1");
new string[256];
print("print2");
if(Uebungscount[3] == 0)
{
print("print3");
TextDrawHideForAll(gTextDraw[0]);
print("print4");
if(Uebungskill[0] > Uebungskill[1])
{
print("print5");
format(string, sizeof(string), "INFO: {FFFFFF}Team 1 hat gegen Team 2 mit %i Kills gewonnen.", Uebungskill[0]);
print("print6");
}
else if(Uebungskill[0] < Uebungskill[1])
{
print("print7");
format(string, sizeof(string), "INFO: {FFFFFF}Team 2 hat gegen Team 1 mit %i Kills gewonnen.", Uebungskill[1]);
print("print8");
}
SendClientMessageToAll(Hellgruen, string);
print("print9");
for(new i; i < MAX_PLAYERS; i++ )
{
print("print10");
if(i == INVALID_PLAYER_ID)continue;
print("print11");
if(PlayerInfo[i][pEingeloggt] == false)continue;
print("print12");
if(PlayerInfo[i][pArena] != 3)continue;
print("print13");
SetPlayerArena(i, 0);
print("print14");
}
print("print15");
return 1;
}
print("print16");
format(string, sizeof(string), "Uebrige Kills: %i", Uebungscount[3]);
print("print17");
TextDrawSetString(gTextDraw[0], string);
print("print18");
return 1;
}
In log kommt er bis print4
Es liegt also an den Uebungskills abfragen:
if(Uebungskill[0] > Uebungskill[1])