Spieler kann als gebannter connecten

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
  • Hey threadtitel sagt alles.


    Hier aus mein PWN:


    enum SpielerDaten
    {
    pLevel,
    pAdmin,
    pGeld,
    pFraktion,
    pLeader,
    pRank,
    pJob,
    pKills,
    pTode,
    pBan,
    pHaus
    }


    ocmd:ban (playerid,params[])
    {
    new MSG[75],Grund[20],TargetID;
    if(!isPlayerAdmin(playerid,1))return SendClientMessage(playerid, ROT, "Du darfst diesen Befehl nicht nutzen !");
    if(sscanf(params,"us",TargetID,Grund))return SendClientMessage(playerid, GRAU, "Fehler: /ban [Username/ID] [Grund]");
    format(MSG,sizeof(MSG),"%s wurde von %s gebannt ! Grund: %s", SpielerName(TargetID),SpielerName(playerid), Grund);
    SendClientMessageToAll(ROT,MSG);
    Kick(TargetID);
    SetPVarInt(TargetID,SpielerInfo[playerid][pBan],1);
    return 1;
    }


    case DIALOG_LOGIN:
    {
    if(response)
    {
    if(strlen(inputtext) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
    return 1;
    }
    else
    {
    new Name[MAX_PLAYER_NAME],path[64];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    format(path, sizeof(path),"/Spieler/%s.ini", Name);
    if(!strcmp(inputtext, dini_Get(path, "Passwort"), true))
    {
    SetPVarInt(playerid,"Eingeloggt",1);
    LoadPlayer(playerid);
    SpawnPlayer(playerid);
    return 1;
    }
    else
    {

    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
    return 1;
    }
    }
    }

    else if (SpielerInfo[playerid][pBan] == 1)
    {
    Kick(playerid);
    }
    else
    {
    Kick(playerid);
    }

    }
    }


    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    new Name[MAX_PLAYER_NAME],path[64];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    format(path, sizeof(path),"/Spieler/%s.ini", Name);
    SpielerInfo[playerid][pLevel] = dini_Int(path, "Level");
    SpielerInfo[playerid][pAdmin] = dini_Int(path, "Admin");
    SpielerInfo[playerid][pBan] = dini_Int (path, "Ban");
    SpielerInfo[playerid][pGeld] = dini_Int(path, "Geld");
    SpielerInfo[playerid][pKills] = dini_Int(path, "Kills");
    SpielerInfo[playerid][pTode] = dini_Int(path, "Tode");
    SpielerInfo[playerid][pHaus] = dini_Int(path, "Haus");
    }
    return 1;
    }



    stock SavePlayer(playerid)
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new Name[MAX_PLAYER_NAME],path[64];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    format(path, sizeof(path),"/Spieler/%s.ini", Name);
    dini_IntSet(path,"Level", SpielerInfo[playerid][pLevel]);
    dini_IntSet(path,"Admin", SpielerInfo[playerid][pAdmin]);
    dini_IntSet(path,"Ban",SpielerInfo[playerid][pBan]);
    dini_IntSet(path,"Geld", SpielerInfo[playerid][pGeld]);
    dini_IntSet(path,"Kills", SpielerInfo[playerid][pKills]);
    dini_IntSet(path,"Tode", SpielerInfo[playerid][pTode]);
    dini_IntSet(path,"Haus", SpielerInfo[playerid][pHaus]);
    }
    return 1;
    }


    Ich bitte um Hilfe.


    MfG,
    iAIR

  • Ich weis nicht aber ich würde


    SetPVarInt(TargetID,SpielerInfo[playerid][pBan],1);
    vor dem Kick machen da er Ja beim Kick schon die Variablen auf 0 Gesetzt werden ;D
    Aber weis nicht ob das von bedeutung ist

  • Na da sieht man doch gleich, dass da was falsch ist ^^
    Machs mal so



    SpielerInfo[TargetID][pBan] = 1;

    Bei dem
    ocmd: ban(playerid,params[])

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Zitat

    ch weis nicht aber ich würde


    SetPVarInt(TargetID,SpielerInfo[playerid][pBan],1);
    vor dem Kick machen da er Ja beim Kick schon die Variablen auf 0 Gesetzt werden ;D
    Aber weis nicht ob das von bedeutung ist


    ebend versucht, klappt trotzdem nicht


    Zitat

    SpielerInfo[TargetID][pBan] = 1;


    wohin, wo was wieso warum ?

  • Versuchs hiermit...


    ocmd:ban (playerid,params[])
    {
    new MSG[75],Grund[20],TargetID;
    if(!isPlayerAdmin(playerid,1))return SendClientMessage(playerid, ROT, "Du darfst diesen Befehl nicht nutzen !");
    if(sscanf(params,"us",TargetID,Grund))return SendClientMessage(playerid, GRAU, "Fehler: /ban [Username/ID] [Grund]");
    format(MSG,sizeof(MSG),"%s wurde von %s gebannt ! Grund: %s", SpielerName(TargetID),SpielerName(playerid), Grund);
    SendClientMessageToAll(ROT,MSG);
    SetPVarInt(TargetID,SpielerInfo[playerid][pBan]=1);
    Kick(TargetID);
    return 1;
    }

  • statt Kick(TargetID);
    versuch Ban(TargetID);

  • Du lädst den Spieler nicht, da kann er nicht gucken ob er gebannt ist.
    Also das Spielerladen muss irgendwie vor die Banabfrage.

    Nur wenn man das Unmögliche versucht kann man das absolut Mögliche erreichen
    Hermann Hesse


    „Was manche Menschen sich selber vormachen, das macht ihnen so schnell keiner nach.”
    Gerhard Uhlenbruck

  • Klar du hirni, der account is ja dann noch immer gebannt hat ne proxy damit nix zu tun

  • omg
    ihr müsst mal lesen :D
    @Deadmau5: der Einzige der Augepasst hat


    Er hat den Ban mit pVar gemacht , er arbeitet aber mit SpielerInfo
    Denn warum wenn du mit SpielerInfo Arbeitest , plötzlich SetPVarInt nehmen??


    mache es so


    Statt dem

    SetPVarInt(TargetID,SpielerInfo[playerid][pBan]=1);


    Setzt du ein:


    SpielerInfo[TargetID][pBan] = 1;



    Aber bitte vor dem Kick(TargetID);



    -----------------------------------------------


    und bei LoadPlayer: /ganz unter dem haus aber noch in IsPlayerConnected



    if(SpielerInfo[playerid][pBan] == 1)
    {
    SendClientMessage(plaerid,ROT,"Sie sind gebannt");
    Kick(playerid);
    }



    Mit Freundlichen Grüßen
    Myname1997



    //edit1 : Verbesserung
    //edit2: /edit vergessen
    //edit3 : Namen eingefügt & anderes
    //edit4 : Ps


  • Mein Schatz:*

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen