Event System | Fragen & Probleme

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
  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Füge das mal bei OnPlayerConnect ein:

    C
    SetTimerEx("ResetEvent", 2000, false, "d", playerid);


    Und das ganz unten im Filterscript:

    C
    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?

  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • OnPlayerDisconnect

    C
    new str[145];
    	if(inEvent[playerid] != false)
    	{
    	    format(str, sizeof(str), "Spieler %s hat das Event verlassen. ( Offline gegangen )", /* GetName Abfrage von Playerid */);
    		for(new i=0; i < MAX_PLAYER; ++)
    		{
    			if(inEvent[i] != true)continue;
    			SendClientMessage(i, COLOR_GREY, str);
    		}
    	}
  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Nicht ganz. So:

    C
    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;
    }
  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Was steht so im Server Log?

    C
    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;
    }
  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • 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.

  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • 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?

  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().