Problem beim Kickbfehl

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
  • Hallo,
    ich bin derzeit dabei ein Kickbefehl zu erstellen(Noch kein Adminsystem oderso), leider bekomme ich es nicht hin.
    ocmd:kick(playerid, params[]) {
    new:kickid, kickgrund
    if(sscanf(params, "d", kickid, kickgrund) return SendClientMessage(playerid, Red, "Verwendung: /kick [ID] [Grund]");
    kick(playerid, kickid);
    new str[146];
    format(str, sizeof(str), "%d wurde gekickt. Grund:(( Kommt noch ))"));
    SendClientMessageToAll(Red, str);
    return 1;
    }


    Hier die errorcodes:

    Code
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(126) : error 001: expected token: "-identifier-", but found ":"
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(127) : error 017: undefined symbol "kickid"
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(127) : error 001: expected token: ")", but found "return"
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(127) : error 037: invalid string (possibly non-terminated string)
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(127) : fatal error 107: too many error messages on one line


    Wäre nett wenn mir jemand helfen könnte :)


    //e
    Habe nochmal selber Klammerfehler behoben:
    ocmd:kick(playerid, params[]) {
    new:kickid, kickgrund
    if(sscanf(params, "d", kickid, kickgrund)) return SendClientMessage(playerid, Red, "Verwendung: /kick [ID] [Grund]");
    kick(playerid, kickid);
    new str[146];
    format(str, sizeof(str), "%d wurde gekickt. Grund:(( Kommt noch ))"));
    SendClientMessageToAll(Red, str);
    return 1;
    }

  • Versuchs mal so




    ocmd:kick(playerid, params[]) {
    new:kickid, kickgrund[128];
    if(sscanf(params, "d", kickid, kickgrund) return SendClientMessage(playerid, Red, "Verwendung: /kick [ID] [Grund]");
    kick(playerid, kickid);
    new str[146];
    format(str, sizeof(str), "%d wurde gekickt. Grund:(( Kommt noch ))"));
    SendClientMessageToAll(Red, str);
    return 1;
    }

  • Bei deinem Code bekomme ich diese Errorcodes

    Code
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(126) : error 001: expected token: "-identifier-", but found ":"
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(127) : error 017: undefined symbol "kickid"
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(127) : error 001: expected token: ")", but found "return"
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(128) : error 017: undefined symbol "kick"
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(130) : error 001: expected token: ";", but found ")"
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(130) : error 029: invalid expression, assumed zero
    C:\Users\Admin\Desktop\Dateien\GTA Server\gamemodes\Deathmatch.pwn(130) : warning 215: expression has no effect
  • So sollte es gehen


    ocmd:kick(playerid, params[]) {
    new kickid, kickgrund[128],kname[MAX_PLAYER_NAME];
    GetPlayerName(kickid,kname,sizeof(kname));
    if(sscanf(params,"uS",kickid,kickgrund))return SendClientMessage(playerid,Red,"INFO: /kick [playerid] [Grund]");
    Kick(kickid);
    format(kickgrund, sizeof(kickgrund), "%d wurde gekickt. Grund:(( Kommt noch ))",kname);
    SendClientMessageToAll(Red, kickgrund);
    return 1;
    }

  • ocmd:kick(playerid, params[]) {
    new kickid, kickgrund[100], playername[MAX_PLAYER_NAME];
    if(sscanf(params, "ds[100]", kickid, kickgrund)) return SendClientMessage(playerid, Red, "Verwendung: /kick [ID] [Grund]");
    GetPlayerName(kickid, playername, sizeof(playername));
    Kick(kickid);
    new str[146];
    format(str, sizeof(str), "%s wurde gekickt. Grund: %s",playername,kickgrund);
    SendClientMessageToAll(Red, str);
    return 1;
    }

  • ocmd:kick(playerid, params[]) {
    new kickid, kickgrund[128];
    if(sscanf(params, "ds[128]", kickid, kickgrund) return SendClientMessage(playerid, Red, "Verwendung: /kick [ID] [Grund]");
    kick(playerid, kickid);
    new str[146];
    format(str, sizeof(str), "%d wurde gekickt. Grund: %s",kickgrund);
    SendClientMessageToAll(Red, str);
    return 1;
    }


    new ohne : + ; vergessen.
    Grund habe ich dir richtig hinzugefügt, wenn du bei der sscanf Funktion 1 Parameter und 2 Variablen angibst geht es nicht
    Das heißt grund ist ein string ^^
    Naja so sollte es klappen :)

  • ocmd:kick
    new grund[64],pID; // Kein ":"
    //..
    if(sscanf(params,"us[64]",pID,grund))return ...// u = spieler, s = Grund
    //...
    new kickstr[128];
    format(kickstr,sizeof(kickstr)," ...wurde gekickt. Grund: %s", grund);
    SendClientMessageToAll(...,kickstr);



    Spielername ist KEIN double(d), sondern ein string (s).

  • Das ist leider falsch.


    Integer = Ganze zahl zwischen -2,147,483,648 und2,147,483,647
    Double = Ganze zahl oder Dezimalzahl zwischen -(9.223×10¹⁸×10¹⁹) und+(9.223×10¹⁸ -1).


    In SAMP ist das jedoch irrelevant.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen