~> Bangrund

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
  • Ich arbeite zurzeit die ganze Zeit daran, das bei dem /ban Befehl der Bangrund abgespeichert wird.




    Ich habe einen Stock gemacht, der das eigentlich eintragen sollte, aber es kommen Fehler (nicht im stock)



    stock BanPlayer(id,Reason)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(id,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    dini_IntSet(Spieler,"Bangrund",Reason);
    }
    return 1;
    }



    Jetzt habe ich bei /ban das hier reingemacht:


    BanPlayer(id,gMessage);




    Aber es kommt der Fehler:
    error 035: argument type mismatch (argument 2)



    Wäre um jede Hilfe dankbar.

  • Dann zeig mal den Befehl.
    Stock:
    stock BanPlayer(id,Reason[])
    {
    new str[126],IDName[MAX_PLAYER_NAME];
    GetPlayerName(id,IDName,sizeof(IDName));
    format(str,sizeof(str),"/Spieler/%s.txt",IDName);
    if(dini_Exists(str))
    {
    dini_Set(str,"Bangrund",Reason);
    }
    return 1;
    }


    Verwendung:
    BanPlayer(spielerid,string);

    KleineHilfe 2.0

  • Yeah, danke das funzt :) , aber wie habe ich die Möglichkeit es bei einem Spieler der gebannt ist wenn der Verbindet anzuzeigen?

  • Das machst du dann ganz einfach mit dini_Get(Spielerdatei,"Bangrund");
    zB


    SendClientMessage(playerid,-1,dini_Get(Spielerdatei,"Bangrund"));
    oder
    new str[126];
    format(str,sizeof(str),"Du wurdest mit dem Grund: %s von XYZ verwiesen",dini_Get(Spielerdatei,"Bangrund"));
    SendClientMessage(playerid,-1,str);

    KleineHilfe 2.0

  • Du meinst so?
    SetTimerEx("reban",100,0,"i",playerid); new IDName[MAX_PLAYER_NAME]; GetPlayerName(playerid,IDName,sizeof(IDName)); new str[126]; format(str,sizeof(str),"Du wurdest mit dem Grund: %s von XYZ verwiesen",dini_Get(IDName,"Bangrund")); SendClientMessage(playerid,-1,str);


    /edit Keine Ahnung wieso das in einer Reihe steht.


    Nochmal so:



    SetTimerEx("reban",100,0,"i",playerid);
    new IDName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,IDName,sizeof(IDName));
    new str[126];
    format(str,sizeof(str),"Du wurdest mit dem Grund: %s von XYZ verwiesen",dini_Get(IDName,"Bangrund"));
    SendClientMessage(playerid,-1,str);


    Dann kommt immer da wo der Bangrund steht nichts. ;(

  • Wofür der Timer und nein, bei dini gibt man den Pfad an und nicht den Spielernamen welchen man im String wiedergibt.


    new Pfad[60];
    format(Pfad,60,"/Spieler/%s.txt",IDName);
    dini_Get(Pfad,"Bangrund"));

    KleineHilfe 2.0

  • Wofür der Timer und nein, bei dini gibt man den Pfad an und nicht den Spielernamen welchen man im String wiedergibt.


    new Pfad[60];
    format(Pfad,60,"/Spieler/%s.txt",IDName);
    dini_Get(Pfad,"Bangrund"));


    Wofür der Timer und nein, bei dini gibt man den Pfad an und nicht den Spielernamen welchen man im String wiedergibt.


    new Pfad[60];
    format(Pfad,60,"/Spieler/%s.txt",IDName);
    dini_Get(Pfad,"Bangrund"));

    Danke, hat funktioniert. :)


    Kann man in diesen Befehl auch noch einen Bangrund einbauen? Mit dcmd habe ich eingentlich keine Ahnung...


    dcmd_offban(playerid, params[])
    {
    new banFormat[128], name[MAX_PLAYER_NAME],aname[MAX_PLAYER_NAME],
    string[128],string2[128];
    if(!IstSpielerAdmin(playerid, 1)) {
    return SendClientMessage(playerid,COLOR_RED,"Zugriff verweigert! Du benötigst mindestens den Adminrang: {FF0000}Head-Admin ");
    }
    if(sscanf(params, "s",name)) {
    return SendClientMessage(playerid,COLOR_GREY,"Benutze: /offban [Korrekter Spielername]");
    }
    format(banFormat,sizeof(banFormat),"Spieler/%s.txt",name);
    if(fexist(banFormat))
    {
    //dini_Remove(banFormat);
    dini_IntSet(banFormat,"Banned",1);
    new str[126],person[MAX_PLAYER_NAME];
    //GetPlayerName(name,person,sizeof(person));
    GetPlayerName(playerid,aname,sizeof(aname));
    format(str,sizeof(str),"/Spieler/%s.txt",name);
    if(dini_Exists(str))
    {
    dini_Set(str,"Gebanntvon",aname);
    }
    //GetPlayerName(playerid,aname,sizeof(aname));
    format(string,sizeof(string),"[BAN]: Du hast %s offline gebannt!",name);
    format(string2,sizeof(string2),"[BAN]: Admin %s hat %s offline gebannt!", aname, name);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IstSpielerAdmin(playerid, 1))
    {
    SendClientMessage(i, ADMINFS_MESSAGE_COLOR, string2);
    }
    }
    }
    SendClientMessage(playerid, NGR, string);
    //SendClientMessageToAll(ADMINFS_MESSAGE_COLOR,string2);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Fehler! Account existiert nicht!");
    }
    return 1;
    }





  • dcmd_offban(playerid, params[])
    {
    new banFormat[128], name[MAX_PLAYER_NAME],aname[MAX_PLAYER_NAME],
    string[128],string2[128],Grund[126];
    if(!IstSpielerAdmin(playerid, 1))
    {
    return SendClientMessage(playerid,COLOR_RED,"Zugriff verweigert! Du benötigst mindestens den Adminrang: {FF0000}Head-Admin ");
    }
    if(sscanf(params, "ss",name,Grund))
    {
    return SendClientMessage(playerid,COLOR_GREY,"Benutze: /offban [Korrekter Spielername][Grund]");
    }
    format(banFormat,sizeof(banFormat),"Spieler/%s.txt",name);
    if(fexist(banFormat))
    {
    dini_Set(banFormat,"Bangrund",Grund);
    dini_IntSet(banFormat,"Banned",1);
    new str[126],person[MAX_PLAYER_NAME];
    GetPlayerName(playerid,aname,sizeof(aname));
    format(str,sizeof(str),"/Spieler/%s.txt",name);
    if(dini_Exists(str))
    {
    dini_Set(str,"Gebanntvon",aname);
    }
    format(string,sizeof(string),"[BAN]: Du hast %s offline gebannt!",name);
    format(string2,sizeof(string2),"[BAN]: Admin %s hat %s offline gebannt!", aname, name);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IstSpielerAdmin(playerid, 1))
    {
    SendClientMessage(i, ADMINFS_MESSAGE_COLOR, string2);
    }
    }
    }
    SendClientMessage(playerid, NGR, string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Fehler! Account existiert nicht!");
    }
    return 1;
    }

    KleineHilfe 2.0

  • dcmd_offban(playerid, params[]) { new banFormat[128], name[MAX_PLAYER_NAME],aname[MAX_PLAYER_NAME], string[128],string2[128],Grund[126]; if(!IstSpielerAdmin(playerid, 1)) { return SendClientMessage(playerid,COLOR_RED,"Zugriff verweigert! Du benötigst mindestens den Adminrang: {FF0000}Head-Admin "); } if(sscanf(params, "ss",name)) { return SendClientMessage(playerid,COLOR_GREY,"Benutze: /offban [Korrekter Spielername][Grund]"); } format(banFormat,sizeof(banFormat),"Spieler/%s.txt",name,Grund); if(fexist(banFormat)) { dini_Set(banFormat,"Bangrund",Grund); dini_IntSet(banFormat,"Banned",1); new str[126],person[MAX_PLAYER_NAME]; GetPlayerName(playerid,aname,sizeof(aname)); format(str,sizeof(str),"/Spieler/%s.txt",name); if(dini_Exists(str)) { dini_Set(str,"Gebanntvon",aname); } format(string,sizeof(string),"[BAN]: Du hast %s offline gebannt!",name); format(string2,sizeof(string2),"[BAN]: Admin %s hat %s offline gebannt!", aname, name); for(new i=0;i


    Geht nicht, da kommt immer:
    Benutze: /offban [Korrekter Spielername][Grund] :(

  • Ja, du wolltest es doch mit Grund oder kommt das auch wenn es richtig ausgefüllt hast.


    Hast du die Zeile so im Script?


    if(sscanf(params, "ss",name,Grund))
    {
    return SendClientMessage(playerid,COLOR_GREY,"Benutze: /offban [Korrekter Spielername][Grund]");
    }


    Hab da eben nämlich noch was editiert.

    KleineHilfe 2.0