Kick Befehl - Bug

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Habe Problem, dass wenn ich mich selber kicke angezeigt wird, "Spieler nicht online !" und "Unknown Command !"

    dcmd_kick(playerid,params[])
    {
    new pID;
    new Grund;
    if(sscanf(params,"us",pID,Grund))
    {
    return SendClientMessage(playerid,Weiss,"Benutzung: /kick [ID] [Grund]");
    }
    if(SpielerInfo[playerid][AdminLevel] >= 2)
    {
    if(IsPlayerConnected(pID))
    {
    new name[MAX_PLAYER_NAME];
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(pID,pname,sizeof(pname));
    new string[128];
    format(string,sizeof(string),"%s wurde von %s gekickt. Grund: %s",pname,name,Grund);
    SendClientMessageToAll(Weiss,string);
    Kick(pID);
    }
    else
    {
    SendClientMessage(playerid,Weiss,"Der Spieler ist nicht online !");
    }
    }
    else
    {
    SendClientMessage(playerid,Weiss,"Du bist kein Administrator !");
    }
    return 1;
    }

    Hoffe ihr könnt mir helfen.
    MFG
    Federal

  • Meintest du das so? Ich habe es dir auch direkt etwas verkürzt.
    dcmd_kick(playerid,params[])
    {
    new pID, Grund;
    if(sscanf(params,"us",pID,Grund)) return SendClientMessage(playerid,Weiss,"Benutzung: /kick [ID] [Grund]");


    if(SpielerInfo[playerid][AdminLevel] <= 2) return SendClientMessage(playerid,Weiss,"Du bist kein Administrator !");


    if(!IsPlayerConnected(pID) || pID == playerid) return SendClientMessage(playerid,Weiss,"Der Spieler ist nicht online !");


    new name[MAX_PLAYER_NAME];
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(pID,pname,sizeof(pname));
    new string[128];
    format(string,sizeof(string),"%s wurde von %s gekickt. Grund: %s",pname,name,Grund);
    SendClientMessageToAll(Weiss,string);
    Kick(pID);


    return 1;
    }


    //E: Denkfehler

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

    Einmal editiert, zuletzt von dead ()

  • Nein ich meine es so, wie ich es geschrieben habe :D Wenn er AdminLevel 2 oder höher ist soll die Funktion ausgeführt werden.^^
    //edit R
    //edit: Mein Problem besteht weiterhin.

    Einmal editiert, zuletzt von Federal ()

  • hier ganz anders:


    ocmd:kick(playerid,params[])
    {
    new pID, str[128];
    if(sscanf(params, "uz",pID,str))return SendClientMessage(playerid,0xB0AFB0FF,"/kick [ID/Name] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xB0AFB0FF,"Dieser Spieler ist nicht online");
    if (pID == playerid)return SendClientMessage(playerid,0xB0AFB0FF,"Du kannst dich nicht selber kicken");
    if(IsPlayerAdmin(playerid) || CallRemoteFunction("PlayerIsAdmin","i",playerid))
    {
    new str2[128];
    format(str2,sizeof(str2),"%s wurde gekickt! Grund: %s",playername[pID],str[0] ? str : "Kein Grund");
    SendClientMessageToAll(0xB0AFB0FF,str2);
    Kick(pID);
    }
    else return SendClientMessage(playerid, 0xB0AFB0FF, "Dein Adminrank reicht nicht aus!");
    return 1;
    }

  • Nein ich meine es so, wie ich es geschrieben habe :D Wenn er AdminLevel 2 oder höher ist soll die Funktion ausgeführt werden.^^
    //edit R
    //edit: Mein Problem besteht weiterhin.


    if(SpielerInfo[playerid][AdminLevel] < 2) return SendClientMessage(playerid,Weiss,"Du bist kein Administrator !");


    Dieser Code fragt ab, ob das Adminlevel des Spielers unter 2 ist.


    Grüße,
    tonyalva

  • ocmd:kick(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/kick [id] [grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(ROT,string);
    Kick(pID);
    return 1;
    }

  • dcmd.inc wäre mal was neues.


    @Federal: Hast du meinen Code überhaupt getestet bzw. versucht zu verstehen? Ich denke weniger, dann braucht man auch keine Hilfe von mir oder anderen mehr erwarten.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Dein Code funktioniert leider nicht, habe ihn schon ausprobiert.

  • Was funktioniert nicht? Verrate uns das lieber, als uns im Dunkeln tappen zu lassen.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Das gleiche, wie ich in meinem Ersten Post geschrieben habe.

  • if(!IsPlayerConnected(pID) || pID == playerid) return SendClientMessage(playerid,Weiss,"Der Spieler ist nicht online !");


    Das lässt sich ja auch daraus schließen, du kannst dich nicht selbst kicken, warum sollte man das auch?..
    Wenn du möchtest, dass du dich selbst kicken kannst, entferne die hintere Abfrage.


    Grüße,
    tonyalva

  • Mal nebenbei:


    new Grund;


    muss ein string sein, ansonsten wird der Grund nicht angezeigt.
    Debuge den Befehl mal, und sag uns, was dabei rausgekommen ist.
    Eine Alternative:


    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid,Weiss,"Der Spieler ist nicht online!");


    Grüße,
    tonyalva

  • Welches Problem?

    Zitat

    Habe Problem, dass wenn ich mich selber kicke angezeigt wird, "Spieler nicht online !"[...]
    Wenn er AdminLevel 2 oder höher ist soll die Funktion ausgeführt werden.


    Das ist beides in meinem Beispiel abgedeckt, also erkläre uns doch bitte erneut dein Problem.


    //E: tonyalva: Tatsächlich, das hatte ich wohl übersehen... Ich denke aber eher weniger, dass das das Problem ist.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Dann fragen wir mal anders:


    -Welches Adminlevel hast du?
    -Welchen Code benutzt du, um das Adminlevel abzufragen
    -Wird der Spieler denn trotzdem gekickt?


    Allerdings kannst du dich wohl auch nicht so recht entscheiden, das Problem mit dem Spieler, der laut ClientMessage "nicht online" ist, ist dann doch laut deiner Aussage behoben.


    @dead: Nein, das wird wohl eher nicht das Problem sein, wollte es allerdings trotzdem mal anmerken, damit Federal sich später nicht über eine verbuggte ClientMessage wundert.


    Grüße,
    tonyalva

  • Ich bin AdminLevel 6, ich frage ab "if(SpielerInfo[playerid][AdminLevel] >= 2)" Ob er Level 2 oder höher ist.
    Nein der Spieler wird nicht trotzdem gekickt.

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