[HILFE] Ban - System funktioniert nicht?

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
  • Mein Ban- System funktioniert irgendwie nicht? Aber warum?


    ocmd:ban(playerid,params[])
    {
    new Namei[MAX_PLAYER_NAME];
    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,Namei,sizeof(Namei));
    if(mysql_GetInt("accounts", "Banned", "Name", Namei)==1)
    Kick(playerid);
    return 1;
    }


    Mit freundlichen Grüßen,

  • ich nehme mal an du hast bereits eine funktion die den spielernamen returnt..
    pSpielerName(pID)
    warum machst du dann noch diese ganze axion hier:
    new Namei[MAX_PLAYER_NAME];
    GetPlayerName(pID,Namei,sizeof(Namei));


    was genau klappt den nicht?

  • ich nehme mal an du hast bereits eine funktion die den spielernamen returnt..
    pSpielerName(pID)
    warum machst du dann noch diese ganze axion hier:
    new Namei[MAX_PLAYER_NAME];
    GetPlayerName(pID,Namei,sizeof(Namei));


    was genau klappt den nicht?


    Weil ich ihm das über tV gemacht habe und nicht wusste das er so einen stocks chon hat

  • Habe jetzt nur noch einen Error:


    C:\Users\Kadri\Desktop\Streets of San\gamemodes\SoS.pwn(2764) : error 076: syntax error in the expression, or invalid function call
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.



    die error zeile:


    if(mysql_GetInt("accounts", "Banned", "Name",pSpielerName)==1)

  • Was habe ich nur falsch, keine Errors nichts! Aber er bannt ihn nicht.. oder sonst was!!!?? Er kickt ihn nicht mal.:


    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));
    if(mysql_GetInt("accounts", "Banned", "Name",pSpielerName(pID))==1)
    Kick(playerid);
    return 1;
    }

  • 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));
    if(mysql_GetInt("accounts", "Banned", "Name",pSpielerName(pID))==1)
    {
    Kick(playerid);
    }


    return 1;
    }


    So?

  • Ja essei denn der Administrator soll gekickt werden der den Befehl ausfuehrt.ausserdem brauchst du vor mysql_getint ein mysql_setint. Sonst returnt die if abfrage immer 0 und somit wird er nicht gekickt.

  • Du fragst ab ob er gebannt ist und wenn ja kickst du ihn? Du musst die Variable auf 1 setzten und dann bannen



    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));
    mysql_SetInt("accounts", "Banned",1, "Name",pSpielerName(pID));
    Kick(pID);
    return 1;
    }

  • Es kickt jetzt... aber irgendwie wird er nicht gebannt, in der Mysql datenbank- steht auch keine "1" mehr...


    Hier 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));
    mysql_SetInt("accounts", "Banned",1, "Name",pSpielerName(pID));
    SetTimerEx("BanTimer",500,false,"i",pID);
    return 1;
    }
    forward BanTimer(playerid);
    public BanTimer(playerid)
    {
    Kick(playerid);
    }