[HILFE] ocmd: ban <= Ich brauche drigend Hilfe

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
  • Schönen Abend Community,


    ich habe eine " Ocmd: ban " erstellt, ich habe sehr viele Leute nach Hilfe gefragt, keiner hat mein Problem gelöst. Es bant den Spieler.. aber nach einem "gmx" kann er sich wieder neu einlogen "ABER WARUM?!"


    Der Befehl:
    ocmd:ban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"[ERROR] Du bist kein Admin Rang 2!");
    new pID, reason[128], string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"[ERROR] Eingeben: /ban [ID] [Grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",pSpielerName(pID),pSpielerName(playerid),reason);
    SendClientMessageToAll(ROT,string);
    GetPlayerName(pID,string,sizeof(string));
    SpielerInfo[pID][pBanned]=1;
    SavePlayer(pID);
    //mysql_SetInt("accounts", "Banned",1, "Name",pSpielerName(pID));
    SetTimerEx("BanTimer",500,false,"i",pID);
    return 1;
    }


    Und hier, wenn er sich eigentlich einloggen sollte, und dieser Text kommen sollte, aber es irgendwie nicht kommt.


    case DIALOG_LOGIN:
    {
    if(response)
    {
    if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
    {
    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 SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
    if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true)) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
    {
    if(SpielerInfo[playerid][pBanned]==0)
    {
    SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin auswahl benutzen können.
    LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
    SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
    return 1;
    }
    else
    {
    LoadPlayer(playerid); //Der Spieler wird "geladen", sprich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden
    SendClientMessage(playerid,ROT,"Du bist gebannt!");//
    SendClientMessage(playerid,ROT,"Bei vermutlicher Unschuld kannst Du im Forum einen Entbannantrag stellen.");
    Kick(playerid);
    }
    }
    else
    {
    //Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der Spieler das Richtige Passwort eingibt.
    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
    {
    Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
    }
    }
    }
    return 1;
    }


    Was ist nur falsch, bitte ignoriert diesen Thread nicht, und helft mir ... Danke zu mindestens der mir hilft. Schönen Abend noch!


    Mit freundlichen Grüßen,

  • wieso hast du beim else das hier stehn?

    LoadPlayer(playerid); //Der Spieler wird "geladen", sprich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden


    mach mal dein LoadPlayer(playerid);
    beim else weg weil er soll den spieler ja nicht laden sondern kicken


    Hoffe ich rede jetzt kein blödsin :S

  • @Omege, ich mach das dann heute Mittag!
    Hoffentlich klappt es -.-'


    @Showtek, ich versteh nicht was du meinst, und diesen SavePlayer hat ein Typ gemacht, der mir helfen wollte, aber nach dem "gmx" kann er sich wieder einloggen aber warum?

  • Es sieht gut aus. Es kickt den Spieler zeigt auch den Ban Grund, aber wenn er sich ohne dem gmx einloggt, dann steht nicht der "TEXT da, das er gebannt ist" und nach dem gmx kann er sich wieder einloggen ? O.o

  • Habe paar Probleme gelöst..:


    case DIALOG_LOGIN:
    {
    if(response)
    {
    if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
    {
    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 SpielerName[MAX_PLAYER_NAME];
    new pID;
    GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
    if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true)) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
    {
    if(SpielerInfo[playerid][pBanned]==0)
    {
    SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin auswahl benutzen können.
    LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
    SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
    return 1;
    }
    else
    {
    SetTimerEx("BanTimer",500,false,"i",pID);
    SendClientMessage(playerid,ROT,"Du bist gebannt!");//
    SendClientMessage(playerid,ROT,"Bei vermutlicher Unschuld kannst Du im Forum einen Entbannantrag stellen.");
    SetTimerEx("BanTimer",500,false,"i",pID);
    }
    forward BanTimer(playerid);
    public BanTimer(playerid)
    {
    Kick(playerid);
    }
    }
    else
    {
    //Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der Spieler das Richtige Passwort eingibt.
    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
    {
    Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
    }
    }
    }
    return 1;
    }


    Errors:
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(3378) : error 029: invalid expression, assumed zero
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(3379) : error 029: invalid expression, assumed zero
    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(3380) : error 001: expected token: ";", but found "{"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.