Ban Befehl buggt MYSQL

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
  • Moin,


    ich würde gerne einen


    ocmd:ban


    verwenden. Allerdings verbietet mir SAMP sogesagt den Befehl zu verwenden bzw wenn ich diesen InGame eingebe heißt es You are not a Admin.


    Das ganze ist nicht von meinem Code woher ich mich also Frage wo das herstammt. Einer eine Idee ?

  • War tatsächlich noch ein filterscript geladen wurden der das verursacht hat.


    Danke


    // edit


    Habe nun ein Problem bei meinem Ban System was mir unerklärlich ist. Er schreibt Werte in die Datenbank die ich garnicht bestimme



    ocmd:ban(playerid,params[])
    {
    new string[128],reason,pID;
    if(sscanf(params,"s[128]s[128]",pName(pID),reason)) return SendClientMessage(playerid,COLOR_RED,"Use /ban PLAYERID REASON");
    format(string,sizeof(string),"%s wurde von %s gebannt. Grund: %s",pName(pID),pName(playerid),reason);

    new time[248],day,month,year,hour,minute;
    gettime(hour,minute);
    getdate(year, month, day);
    format(time,sizeof(time),"%02d.%02d.%02d %02d:%02d",day,month,year,hour,minute);
    SendClientMessage(playerid,COLOR_RED,time);
    SendClientMessageToAll(COLOR_RED,string);

    new query[2056];
    mysql_format(handle, query, sizeof(query), "INSERT INTO `banned` (`name`,`banner`,`bantime`,`grund`) VALUES ('%e','%e','%e','%e')",pName(pID),pName(playerid),time,reason);
    mysql_pquery(handle, query, "", "d", playerid);
    return 1;
    }


    Als reason habe ich "Ich will" angegeben

    • Offizieller Beitrag

    Versuche es mal so: (Das ganze denn du willst ja entweder den Namen oder die playerid auslesen)

    Code
    if(sscanf(params,"us[128]",pID,reason)) return SendClientMessage(playerid,COLOR_RED,"Use /ban PLAYERID REASON");


    // Edit


    Grade gesehen, dass du reason als Variable und nicht als String erstellst, also müsstest du die Variable string[128] erhöhen und statt reason reason[128] verwenden.


    PS: Nur als Tipp: Es tut nicht Not, immer einen neuen String zu erstellen, du kann in jene immer etwas neues reinschreiben. Und die länge kannst du auch kleiner gestaltet, 2048 für die Query bzw. 248 für einen Timestamp sind viel zu hoch.

  • Beitrag von BreadScript ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: edit nicht beachtet ().