problem mit join nachricht.

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
  • Guten Tag


    jedesmal wenn sich jemand connected kommt die nachricht: "NAME (ID) hat sich eingeloggt.
    jedesmall wenn sich jemand disconnected kommt die nachricht "NAME(ID) Hat sich ausgeloggt/hat die verbinung verloren/wurde gekickt.


    ich wollte die nun mit einem cmd an und ausschalten. das frage ich im script ab. ich bekomme keine errors oder warnings und weiß net was da fslch ist, denn die nachricht kommt, egal ob an oder aus


    new join[MAX_PLAYERS];


    public OnPlayerConnect(playerid)
    {
    join[playerid] = 1;
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    SpielerInfo[playerid][Banned] = dini_Int(Spielerdatei,"Banned");

    if(SpielerInfo[playerid][Banned] == 1)
    {
    new Gesperrt[256], Grund[256];
    format(Gesperrt,sizeof(Gesperrt),"Der Account %s ist hier gesperrt!", SpielerName);
    format(Grund,sizeof(Grund),"Grund: %s!", SpielerInfo[playerid][Reason]);
    SendClientMessageToAll(Rot, Gesperrt);
    SendClientMessageToAll(Rot, Grund);
    Ban(playerid);
    }
    else
    {
    if(slock == 1)
    {
    SendClientMessage(playerid, COLOR_RED, "Der Server ist abgeschlossen, probiere es später nochmal!");
    Kick(playerid);
    }
    else
    {
    if(dini_Exists(Spielerdatei))
    {
    new plrIP[16];
    GetPlayerIp(playerid, plrIP, sizeof(plrIP));
    if(strcmp(dini_Get(Spielerdatei,"IP"),plrIP,false) == 0)
    {
    Anmelden(playerid);
    SendClientMessage(playerid,0xFFFFFFFF, "Deine IP wurde wiedererkannt, du wurdest erfolgreich eingeloggt!");
    }
    else
    {
    ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich mit deinem Passwort ein!", " ", "Login!", "Abbrechen!");
    }
    }
    else if(!dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, "Registriere dich mit einem Passwort!", " ", "Registrieren!", "Abbrechen!");
    }
    if(join[playerid] == 0)
    {
    }
    else
    {
    new Connect[256];
    format(Connect,sizeof(Connect),"%s (%d) hat sich eingeloggt!",SpielerName,playerid);
    SendClientMessageToAll(0xFFFFFFFF, Connect);
    }
    }
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerUpdate(playerid);
    Eingeloggt[playerid] = 0;
    SaveX[playerid] = 0;
    SaveY[playerid] = 0;
    SaveZ[playerid] = 0;
    SaveInt[playerid] = 0;
    KillTimer(cagetimer[playerid]);


    if(join[playerid] == 0)
    {
    }
    else
    {
    if(reason == 0)
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    new DisConnect[256];
    format(DisConnect,sizeof(DisConnect),"%s (%d) hat die Verbindung verloren!",SpielerName,playerid);
    SendClientMessageToAll(0xFFFFFFFF, DisConnect);
    KillTimer(godtimer[playerid]);
    }
    if(reason == 1)
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    new DisConnect[256];
    format(DisConnect,sizeof(DisConnect),"%s (%d) hat sich ausgeloggt!",SpielerName,playerid);
    SendClientMessageToAll(0xFFFFFFFF, DisConnect);
    KillTimer(godtimer[playerid]);
    }
    if(reason == 2)
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    new DisConnect[256];
    format(DisConnect,sizeof(DisConnect),"%s (%d) wurde gekickt!",SpielerName,playerid);
    SendClientMessageToAll(0xFFFFFFFF, DisConnect);
    KillTimer(godtimer[playerid]);
    }
    }
    return 1;
    }
    public OnPlayerCommandText(playerid, cmdtext[]) //Admin Level
    {
    if(strcmp("/join", cmdtext, true, 10) == 0)
    {
    if(join[playerid] == 0)
    {
    join[playerid] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Join-Message wurde eingeschaltet");
    }
    else
    {
    join[playerid] = 0;
    SendClientMessage(playerid,0xFFFFFFFF,"Join-Message wurde ausgeschaltet");
    }
    }
    return 1;
    }

  • join[playerid] = 1;

    Damit werden die Join-Messages direkt angeschaltet ?(

  • dein Code macht irgendwie kein sinn.


    Bein OnPlayerConnect steht es ja sowieso immer auf 1.


    Und es macht überhaupt keinen Sinn, dass du folgendes Abfragst.


    Du fragst sogesehen ab, ob der Spieler eine Join/Leave Nachricht abschicken will und nicht, ob er eine erhalten will.


    Weil du benutzt playerid(für den spieler selbst) und keine for schleife(für alle).


    Des weiteren benutzt du SendClientMessageToAll, sprich selbst wenn einer keine nachrichten erhalten will ein anderer aber schon, würden beide dann die Nachricht bekommen, nachdem Motto: XOR