Banngrund + Admin in DB speichern

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
  • Wie bekomme ich es hin, den Banngrund + den Admin der den Spieler gebannt hat in eine Spalte zu speichern und wenn sich dann der gebannte Spieler einloggt, das da eine Nachricht kommt: Du wurdest gebannt von: Admin, Grund: Test z.b


    Benutze das R5 Plugin von BlueG und das Maddin Mysql Login/Register Tutorial


    mfg

  • Zum Grund:
    du erstellst einen stock wo z.b. "Banspieler" ausgegeben wird, dieses soll dann in der Tabelle welche in der Datenbank
    erstellt wird, abgespeichert werden.
    Bei beispiel /ban den Grund mit "result" ausgeben, welches dann in der Datenbank abgespeichert werden soll.
    Beispiel:
    format(string,128,"INSERT INTO banlog (Name_vom_Spieler,Name_vom_admin,Grund_des_bans) VALUES ('%s','%s','%s')",NAME_vom_spieler,Name_vom_admin,Grund_des_bans);


    Jetzt wenn er sich einloggt, fragst du eben beim Laden des Spielers ab,
    ob er gebannt ist, mach eine Abfrage z.b.
    if(Spieler[playerid][Gebannt] ==1) {
    //Text der kommen soll wenn er gebannt ist
    }


    Hoffe konnte dir ein wenig helfen ;)

  • @ ReborN:
    hab es auch mal ausprobiert, bei mir kommt aber nichts in die tabelle.
    habe eine tabelle mit den namen banlog erstellt.


    hier der befehl

    ocmd:ban(playerid,params[])
    {
    if(SpielerInfo[playerid][Adminlevel]>=5)
    {
    new string[128],reason[128],pID;
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, grau, "Benutze: /ban [ID] [Grund]");
    format(reason,sizeof(reason),"Spieler %s wurde von Admin %s vom Server gebannt, Grund %d",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(rot,string);
    printf("***[%s] %s hat %s vom server Gebannt***",adminrang(playerid),SpielerName(playerid),SpielerName(pID));
    SpielerInfo[playerid][ban]=1;
    format(string,128,"INSERT INTO banlog (Name,Bann_Admin,Grund) VALUES ('%s','%s','%s')",SpielerName(pID),SpielerName(playerid),reason);
    Kick(pID);
    }
    else
    {
    falschadmin(playerid);
    }
    return 1;
    }

  • @ ReborN:
    hab es auch mal ausprobiert, bei mir kommt aber nichts in die tabelle.
    habe eine tabelle mit den namen banlog erstellt.

    stock erstellt?
    Es muss auch bei "/ban" folgendes eingetragen sein:
    BanSpieler(giveplayerid,playerid,(result));



    hierzu einen stock BanSpieler erstellen,
    welcher das ganze in der Datenbank abspeichert mit INSERT INTO banlog

  • Mach folgendes:


    stock BanSpieler(giveplayerid,playerid,grund[])
    {
    new string[128];
    format(string,128,"INSERT INTO banlog (NAME_vom_Spieler,NAME_vom_Admin,Grund) VALUES ('%s','%s','%s')",NAME_vom_Spieler,NAME_vom_Admin,Grund);
    //Die Version von query deines MySQL Plugins
    format(string,sizeof(string)," %s wurde von %s gebannt, Grund: %s",NAME_vom_Spieler,NAME_vom_Admin,Grund);
    SendClientMessageToAll(FARBE,string);
    Ban(giveplayerid);
    }


    Bei /ban Befehl einfügen:
    BanSpieler(giveplayerid,playerid,(result));


    Sollte so funktionieren, bin mir jetzt aber nicht sicher xD
    Der Aufbau passt aufjedenfall ^^

  • nu´n bekomme ich folgende errors


    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(1255) : error 017: undefined symbol "giveplayerid"
    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(3100) : error 017: undefined symbol "NAME_vom_Spieler"
    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(3102) : error 017: undefined symbol "NAME_vom_Spieler"
    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(3097) : warning 203: symbol is never used: "grund"
    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(3097) : warning 203: symbol is never used: "playerid"
    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(3097) : warning 203: symbol is never used: "giveplayerid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

  • ich hatte es so, es wurde aber nix eingetragen, da dachte ich mir ich mach es nochmal so


    Dennoch sollte man sich ein wenig auskennen, anstatt Copy & Paste zu machen.


    ocmd:ban(playerid,params[])
    {
    if(SpielerInfo[playerid][Adminlevel]>=5)
    {
    new string[128],reason[128],pID;
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, grau, "Benutze: /ban [ID] [Grund]");
    format(reason,sizeof(reason),"Spieler %s wurde von Admin %s vom Server gebannt, Grund %d",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(rot,string);
    BanSpieler(SpielerName(pID),SpielerName(playerid),(reason));
    }
    else
    {
    falschadmin(playerid);
    }
    return 1;
    }


    stock BanSpieler(SpielerName(pID),SpielerName(playerid),reason[])
    {
    new string[128];
    format(string,128,"INSERT INTO banlog(name,admin,grund) VALUES ('%s','%s','%s')",SpielerName(pID),SpielerName(playerid),reason);
    //MySQL Query Funktion ...
    format(string,sizeof(string),"%s wrude von %s gebannt, Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(rot,string);
    SpielerInfo[playerid][ban]=1;
    Kick(pID);
    return 1;
    }


    Probier es mal so, sollte funktionieren, wenn ich nichts vergessen habe :S

  • C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(1253) : error 035: argument type mismatch (argument 1)
    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(3094) : error 001: expected token: ")", but found "("
    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(3094) : error 017: undefined symbol "pID"
    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(3094) : error 021: symbol already defined: "format"
    C:\Users\Arbeits-PC\Desktop\dorf rl by landwirt R5 mysql\gamemodes\dorf.pwn(3094 -- 3097) : fatal error 107: too many error messages on one line


    zeile 1253,

    BanSpieler(SpielerName(pID),SpielerName(playerid),(reason));

    zeile 3094 3097

    stock BanSpieler(SpielerName(pID),SpielerName(playerid),reason[])
    {
    //new string[128];
    format(string,128,"INSERT INTO banlog(name,admin,grund) VALUES ('%s','%s','%s')",SpielerName(pID),SpielerName(playerid),reason);

  • Sag mal,
    kannst das nicht alleine? xD


    new pID; hinzufügen beim Stock


    anstatt
    BanSpieler(SpielerName(pID),SpielerName(playerid),(reason));
    machst du:
    BanSpieler(pID,playerid,(reason));


    Jetzt machst aber mal alleine weiter -.-"