Beitrag von JustMe.77 ()
Dieser Beitrag wurde vom Autor gelöscht ().
Ich meine das, was du als Fehler beschreibst, wenn man eine ID bekommt, die zuvor ein anderer Spieler hatte.
Was genau machst du?
Füge das mal bei OnPlayerConnect ein:
Und das ganz unten im Filterscript:
forward ResetEvent(playerid);
public ResetEvent(playerid)
{
printf("Event: %d", inEvent[playerid]);
inEvent[playerid] = false;
printf("Event: %d", inEvent[playerid]);
return 1;
}
Klappt es dann, wenn nein, was wird geprintet, wenn du den Server erneut betrittst?
Ok, dann haben wir so das Problem, was auch immer es war, umgangen.
Zwecks der Nachricht:
Frage einfach bevor du es auf false setzt, bei OnPlayerDisconnect, ab, ob es true ist, wenn ja, sendest du die Nachricht.
Nicht ganz. So:
public OnPlayerDisconnect(playerid)
{
new name[MAX_PLAYER_NAME], string[100];
if(inEvent[playerid] != true)return 1;
format(string, sizeof(string), "{FF1717}[EVENT]:{FFFFFF}{%06x} %s{FFFFFF} is out of the Event.", GetPlayerColor(playerid) >>> 8,name);
SendClientMessageToAll(0xC4C4C4FF, string);
inEvent[playerid] =false;
return 1;
}
Was steht so im Server Log?
public OnPlayerDisconnect(playerid)
{
printf("Disconnect:Event: %d", inEvent[playerid]);
new name[MAX_PLAYER_NAME], string[100];
if(inEvent[playerid] != true)return 1;
format(string, sizeof(string), "{FF1717}[EVENT]:{FFFFFF}{%06x} %s{FFFFFF} is out of the Event.", GetPlayerColor(playerid) >>> 8,name);
SendClientMessageToAll(0xC4C4C4FF, string);
inEvent[playerid] =false;
return 1;
}
Wo hast du den Timer eingefügt? Der wird genau 2 Sekunden nachdem der Filterscript geladen wurde ausgeführt. Ist der Etwa bei OnFilterScriptInit drin?
Denn er wird nicht ausgeführt, wenn jemand auf den Server kommt.
Dein Server Log und das was ich dir gesagt habe stimmen nicht überein.
Ok, das erklärt warum der Print dort kommt.
Da keiner der beiden Prints (OnPlayerConnect->Timer bzw. OnPlayerDisconnect) kommt, ist es so, dass keines der beiden Callbacks aufgerufen wird.
Kannst du es mal mit einem leeren Gamemode versuchen (grandlarc + dein Event), ob es dann geht?
Zeigt es die prints an, wenn nur ein Spieler online ist?
Ja, es liegt dann an deinem Gamemode. Das verhindert die Ausführung der beiden Callbacks.
Zwecks dem Name:
Im OnPlayerDisconnect fehlt noch GetPlayerName sehe ich gerade.