Ban Grund

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
  • Guten Tag
    Ich hab ein Ban Befehl mit ocmd klappt auch alles oerfekt


    doch ich will das wenn er Connectet das dann da steht "Du bist vom Server Gebannt | Grund: ... "


    Wie mach ich das?


    Ich Arbeite mit PVars


    Ban Befehl:
    ocmd:ban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    new pID, grund[64], string[128];
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,BLAU,"FEHLER: /ban [ID/Name] [Grund]");
    format(string,sizeof(string),"Info: Spieler %s wurde gebannt von Admin %s | Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
    SendClientMessageToAll(ROT,string);
    SetPVarInt("Gebannt",1);
    Kick(pID);
    }

  • Geh unter deinen Login stock
    Frag mit PVar ab ob er gebannt ist
    Dann stell die Funktion so ein, dass er gekickt wird

  • Erklär mir mal was es bringt,denn Bangrund in der PVar zu speichern.
    Du glaubst doch nicht,dass die PVars bestehen, wenn der Spieler den Server verlässt 0o.


    Den Grund musst du irgendwo extern speichern. Sprich, irgendwo in den "scriptfiles" oder ähnliches.

  • Habs mal versucht


    ocmd:tban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Info: Du bist kein Admin.");
    new pID, time, grund[128];
    if(sscanf(params,"uis",pID,time,grund))return SendClientMessage(playerid,BLAU,"FEHLER: /tban [ID/Name] [Zeit] [Grund]");
    if(IsPlayerConnected(pID))
    {
    if(time>0&&time<1000)
    {
    new string[128];
    format(string,sizeof(string),"Info: Spieler %s wurde von Admin %s für %i Stunden gebannt | Grund: %s",SpielerName(pID),SpielerName(playerid),time,grund);
    SendClientMessageToAll(ROT,string);
    new wert;


    wert=gettime()+(60*60*time);


    SetPVarInt(pID,"timeban",wert);
    SetPVarInt(pID,"tbanZeit",time);
    SetPVarInt(pID,"tbanGrund",grund);


    Kick(pID);
    return 1;
    }
    SendClientMessage(playerid,ROT,"Info: Ungültige Zeit Angabe");
    return 1;
    }
    SendClientMessage(playerid,ROT,"Info: Dieser Spieler ist nicht Online.");
    return 1;
    }


    Dann beim Account Laden


    SetPVarInt(playerid,"tbanZeit",dini_Int(Spielerdatei,"tbanZeit"));
    SetPVarInt(playerid,"tbanGrund",dini_Int(Spielerdatei,"tbanGrund"));


    und Speichern der Zeit& Grund


    dini_IntSet(Spielerdatei,"tbanZeit",GetPVarInt(playerid,"tbanZeit"));
    dini_IntSet(Spielerdatei,"tbanGrund",GetPVarInt(playerid,"tbanGrund"));


    Doch er zeigt 1 Error


    (621) : error 035: argument type mismatch (argument 3)


    Zeile 621 = SetPVarInt(pID,"tbanGrund",grund);

  • Du versuchst einen String in eine Int-PVariable zu speichern. Das funktioniert nicht.
    Grund ist ja ein String und keine Zahl :)


    SetPVarString(pID,"tbanGrund",grund);


    So funktioniert es.


    Das hier beim Laden.


    SetPVarString(playerid,"tbanGrund",dini_Get(Spielerdatei,"tbanGrund"));


    Das hier beim Speichern.


    new grund[128];
    GetPVarString(playerid,"tbanGrund", grund, sizeof(grund));
    dini_Set(Spielerdatei,"tbanGrund", grund);

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg