Spezial COMMAND erstellen /Autokick/

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
  • Hi,
    ich wollte mal fragen wie man den folgenden CMD machen kann:


    /autokick [SPIELERNAME] [ANZAHL DER KICKS] [GRUND] [ADMIN]


    Also wenn ein Admin (rcon) /autokick macht muss er als erstes den Spielernamen der gekickt werden soll angeben und danach die Anzahl angeben wie oft er gekickt werden soll, das heißt wen bei Anzahl eine 5 hinkommt und er verscuht 5 mal zu connecten wird er 5 mal gekickt beim 6 mal kann er erst wieder rein kommen.
    Dann soll man den Grund des Autokicks angeben und bei [ADMIN] kann man von sich den Spielernamen angeben damit man weiß welcher Admin ihn gekickt hat


    Wer so was kann ist wirklich ein Scriptkünzler ;)


    MfG ~Luka~

    3 Mal editiert, zuletzt von Markus ()

  • Verstehe deine frage net, spezial account erstelllen
    und darunta irgendwas mit autokick???

  • Junge, du regst ein auf.
    Les die Regeln, mit Caps(für dumme: Großbuchstaben) schreiben, wird als schreien empfunden und ist nicht gern gesehen.
    1. Niemand versteht was du mit Spezial Account meinst. Unter Spezial Account versteht man etwas, das der spezielle Rechte hat..o.ä.


    Naja, erklär genauer und man hilft dir vielleicht.

  • Junge, editieren kann ich auch.
    @Admins: Gibt dem Hirnlosen mal ein Warn, immer rumschreien, wird drauf hingewiesen dann abändern und den anderen für dumm verkaufen.
    Das nächste mal mach ich ein Screen, halt dich dran oder dir wird von mir zumindest nichtmehr geholfen.
    Du bist ein sogenanntes Kiddy...auch wenn du älter sein magst als ich. Es ist so.

  • Das sollte funktionieren, aber wenn ich ehrlich bin find ich solche Befehle komplett neben der Spur, richte dir ein Tutorial ein, und setzt ihren Status auf PlayerInfo[playerid][pTut]=1; dabei lernt der Spieler wenigstens was.Die Sperre hier können s0beit Benutzer sowieso leicht umgehen, aber wenn du ihn umbedingt haben möchtest...



    if(strcmp(cmd, "/autokick", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /autokick [playerid/Name] [Grund]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsAAdmin)
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /autokick [playerid/PartOfName] [Grund]");
    return 1;
    }
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s in den Autokickzustand gekickt, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
    KickLog(string);
    Kick(giveplayerid);
    PlayerInfo[playerid][pGekickt] = 5; //Hier die Anzahl wie oft er sich wieder einlogen muss
    format(string, sizeof(string), "AdmCmd: %s wurde von %s in den Autokickzustand gekickt, Grund: %s", giveplayer, sendername, (result));
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    return 1;
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }


    //Unter OnPlayerLogin


    if(PlayerInfo[playerid][pGekickt] == 5)
    {
    SendClientMessage(playerid, COLOR_RED, "Du wurdest gekickt, verbleibende Loginkicks 4");
    PlayerInfo[playerid][pGekickt] = 4;
    }
    if(PlayerInfo[playerid][pGekickt] == 4)
    {
    SendClientMessage(playerid, COLOR_RED, "Du wurdest gekickt, verbleibende Loginkicks 3");
    PlayerInfo[playerid][pGekickt] = 3;
    }
    if(PlayerInfo[playerid][pGekickt] == 3)
    {
    SendClientMessage(playerid, COLOR_RED, "Du wurdest gekickt, verbleibende Loginkicks 2");
    PlayerInfo[playerid][pGekickt] = 2;
    }
    if(PlayerInfo[playerid][pGekickt] == 2)
    {
    SendClientMessage(playerid, COLOR_RED, "Du wurdest gekickt, verbleibende Loginkicks 1");
    PlayerInfo[playerid][pGekickt] = 1;
    }
    if(PlayerInfo[playerid][pGekickt] == 1)
    {
    SendClientMessage(playerid, COLOR_RED, "Du wurdest gekickt, verbleibende Loginkicks 0");
    PlayerInfo[playerid][pGekickt] = 0;
    }


    //Für Godfather unter pInfo, hast ja deinen Gamemode nicht genannt also geh ich stark davon aus
    pGekickt,
    //Unter OnPlayerConnect
    PlayerInfo[playerid][pGekickt] = 0;



    [align=center]
    Mta Script Editor - Work in Progress

  • sag mal, ich mal deinen cmd überflogen da habe ich, soweit ich sah gesehen, das dass jeder kann, weil ich kein IsPlayerAdmin sehe, lol
    naja und zu s0beit: ja es stimmt, die können leider anti kick/ban machen also du loggen sich sozusagen durchs prog. aus und duirekt wieder ein, das prog is also schneller als dieser ban cmd ... manchmal ist der cmd aber auch schneller! :D


    //EDIT: upps ... sry xD if(IsAAdmin)

    MfG:


    Kitarou

  • Hi,
    ich habe 4 kleine Errors:



    .pwn(842) : error 017: undefined symbol "PlayerInfo"
    .pwn(842) : error 001: expected token: ";", but found "]"
    .pwn(842) : error 029: invalid expression, assumed zero
    .pwn(842) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.



    Ich hoffe du weißt woran es liegt hier die Zeile dazu:



    PlayerInfo[playerid][pGekickt] = 0;


    Die Zeile ist bei OnPlayerConnect.


    MfG ~Luka~