ID 0 Problem

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
  • Moin Breadfish, ich habe ein kleines Problem und zwar, egal welchen Adminbefehl ich benutze, immer wird nur ID 0 vom Server gekickt oder sonstiges, ich kann keine Spieler wie zB. ID 4 kicken o.Ä.. Ich benutze zcmd, hätte jemand einen Vorschlag da, wie ich das verhindern könnte?


    MfG


    Azure


    //EDIT


    Vergessen Codes einzufügen, wie gesagt es ist bei allen so, hier 2 Beispiele von Kick & Makeadmin:




    COMMAND:kick(playerid,params[])
    {
    new pID,reason[128],kstring[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,ROT,"Verwendung: /kick [Spielerid] [Grund]");
    if(SpielerInfo[playerid][Adminlevel] < 1)return SendClientMessage(playerid,ROT,"Sie dürfen diesen Befehl nicht verwenden");
    {
    if(IsPlayerConnected(pID))
    {
    format(kstring,sizeof(kstring),"%s wurde von %s vom Server gekickt. (Grund: %s)",GetName(pID),GetName(playerid),reason);
    SendClientMessageToAll(ROT,kstring);
    Kick(pID);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online!");
    }
    }
    return 1;
    }


    /makeadmin



    COMMAND:makeadmin(playerid,params[])
    {
    new pID,newAdmin;
    if(SpielerInfo[playerid][Adminlevel] < 6)return SendClientMessage(playerid, ROT, "Du hast nicht das benötigte Adminlevel.");
    {
    if(aLogin[playerid]==1)
    {
    if(sscanf(params, "ui",pID,newAdmin))return SendClientMessage(playerid,ROT,"Verwendung: /makeadmin [playerid] [Adminlevel]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Kein Spieler mit angegebener ID Online");
    if(newAdmin>6) return SendClientMessage(playerid,ROT,"Das Adminlevel darf nicht höher als 6 sein");
    if(newAdmin<0) return SendClientMessage(playerid,ROT,"Das Adminlevel darf nicht niedriger als 0 sein");
    else
    {
    new string[128],name[20],playername[20];
    GetPlayerName(pID,name,sizeof(name));
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),"%s hat das Adminlevel von %s (ID %i) auf %i geändert.",playername,name,pID,newAdmin);
    for(new i; i<MAX_PLAYERS;i++)
    {
    if(SpielerInfo[i][Adminlevel]>=1)
    {
    SendClientMessage(i,GRAU,string);
    }
    }
    format(string,sizeof(string),"Sie haben das Adminlevel von %s (ID %i) auf %i geändert.",name,pID,newAdmin);
    SendClientMessage(playerid,GRAU,string);
    SpielerInfo[pID][Adminlevel] = newAdmin;
    format(string,sizeof(string),"Admin %s hat dein Adminlevel auf %i gesetzt.",playername,newAdmin);
    SendClientMessage(pID,GRAU,string);
    format(string,sizeof(string),"%s hat das Adminlevel von %s (ID %i) auf %i geändert.",playername,name,pID,newAdmin);
    Adminlog(string);
    }
    }
    else return SendClientMessage(playerid,ROT,"Sie sind nicht als Admin eingeloggt");
    }
    return 1;
    }





    //EDIT²


    Wenn ich es in [pwn] mache ist alles in einer Zeile, deshalb hab ichs so da stehen.

  • erstell doch ein bot der dann id 0 belegt

    Einen Bot habe ich, der ID 0 belegt, jedoch wird doch dann der Bot gekickt, ist dann doch nicht viel anderster, Oder irr ich mich? Und ich habe die Codes eingefügt.

  • welche sscanf Version nutzt Du?

    Ich benutze de Sscanf2 in einer Include.



    //EDIT


    Hat keiner eine Idee? :(

    Einmal editiert, zuletzt von Azure ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich hatte das Plugin drin und den selben Fehler. Versuchs mal mit der neusten Version von sscanf. Nach einem Update hat's geklappt ;)


    E: BlackAce war schneller -.-

    Link vom Plugin? O.o

  • Jetzt ist das Problem, ich gebe den Befehl ein (makeadmin) und dann erscheint Verwendung: /makeadmin [playerid] [Level]


    Egal bei welchem Befehl. Code:



    COMMAND:makeadmin(playerid,params[])
    {
    new pID,newAdmin;
    if(SpielerInfo[playerid][Adminlevel] == 6)
    {
    if(aLogin[playerid]==1)
    {
    if(sscanf(params, "ui",pID,newAdmin))return SendClientMessage(playerid,ROT,"Verwendung: /makeadmin [playerid] [Adminlevel]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Kein Spieler mit angegebener ID Online");
    if(newAdmin>6) return SendClientMessage(playerid,ROT,"Das Adminlevel darf nicht höher als 6 sein");
    if(newAdmin<0) return SendClientMessage(playerid,ROT,"Das Adminlevel darf nicht niedriger als 0 sein");
    else
    {
    new string[128],name[20],playername[20];
    GetPlayerName(pID,name,sizeof(name));
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),"%s hat das Adminlevel von %s (ID %i) auf %i geändert.",playername,name,pID,newAdmin);
    //__________Nachricht___________
    for(new i; i<MAX_PLAYERS;i++)
    {
    if(SpielerInfo[i][Adminlevel]>=1)
    {
    SendClientMessage(i,GRAU,string);
    }
    }
    //__________Ende___________
    format(string,sizeof(string),"Sie haben das Adminlevel von %s (ID %i) auf %i geändert.",name,pID,newAdmin);
    SendClientMessage(playerid,GRAU,string);
    SpielerInfo[pID][Adminlevel] = newAdmin;
    format(string,sizeof(string),"Admin %s hat dein Adminlevel auf %i gesetzt.",playername,newAdmin);
    SendClientMessage(pID,GRAU,string);
    format(string,sizeof(string),"%s hat das Adminlevel von %s (ID %i) auf %i geändert.",playername,name,pID,newAdmin);
    Adminlog(string);
    }
    }
    else return SendClientMessage(playerid,ROT,"Sie sind nicht als Admin eingeloggt");
    }
    else return SendClientMessage(playerid, ROT, "Du hast nicht das benötigte Adminlevel.");
    return 1;
    }

  • COMMAND:makeadmin(playerid,params[])
    {
    new pID,newAdmin;
    if(SpielerInfo[playerid][Adminlevel] == 6)
    {
    if(aLogin[playerid]==1)
    {
    if(sscanf(params, "ui",pID,newAdmin))return SendClientMessage(playerid,ROT,"Verwendung: /makeadmin [playerid] [Adminlevel]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Kein Spieler mit angegebener ID Online");
    if(newAdmin>6) return SendClientMessage(playerid,ROT,"Das Adminlevel darf nicht höher als 6 sein");
    if(newAdmin<0) return SendClientMessage(playerid,ROT,"Das Adminlevel darf nicht niedriger als 0 sein");
    {
    new string[128],name[20],playername[20];
    GetPlayerName(pID,name,sizeof(name));
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),"%s hat das Adminlevel von %s (ID %i) auf %i geändert.",playername,name,pID,newAdmin);
    //__________Nachricht___________
    for(new i; i<MAX_PLAYERS;i++)
    {
    if(SpielerInfo[i][Adminlevel]>=1)
    {
    SendClientMessage(i,GRAU,string);
    }
    }
    //__________Ende___________
    format(string,sizeof(string),"Sie haben das Adminlevel von %s (ID %i) auf %i geändert.",name,pID,newAdmin);
    SendClientMessage(playerid,GRAU,string);
    SpielerInfo[pID][Adminlevel] = newAdmin;
    format(string,sizeof(string),"Admin %s hat dein Adminlevel auf %i gesetzt.",playername,newAdmin);
    SendClientMessage(pID,GRAU,string);
    format(string,sizeof(string),"%s hat das Adminlevel von %s (ID %i) auf %i geändert.",playername,name,pID,newAdmin);
    Adminlog(string);
    }
    }
    else return SendClientMessage(playerid,ROT,"Sie sind nicht als Admin eingeloggt");
    }
    else return SendClientMessage(playerid, ROT, "Du hast nicht das benötigte Adminlevel.");
    return 1;
    }




    SO ist das bei mir lol?!



    Moment. Ich versuche den Stock

  • Hat geklappt, jedoch klappt ein Befehl nicht wirklich, ob es am Code liegt...... Immer wird man nur als Zivilist eingeladen.


    Hier der Code:


    Spoiler anzeigen
    COMMAND:makeleader(playerid,params[])
    {
    new pID,Frak, fraktion[100], string[160];
    if(SpielerInfo[playerid][Adminlevel]<6)return SendClientMessage(playerid,GRAU,"Sie haben nicht das benötigte Adminlevel.");
    if(aLogin[playerid]==0)return SendClientMessage(playerid,GRAU,"Sie sind nicht als Admin im Dienst!");
    if(sscanf(params,"ui",pID, fraktion))return SendClientMessage(playerid,ROT,"Verwendung: /makeleader [playerid] [Fraktion]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Kein Spieler mit der angegebenen ID Online!");
    if(SpielerInfo[pID][Fraktion]!=0 && SpielerInfo[pID][Leader]==0)return SendClientMessage(playerid,ROT,"Der Spieler befindet sich bereits in einer Fraktion. Er muss gekündigt werden!");
    {
    strdel(SpielerInfo[pID][FRangName],0,100);
    strins(SpielerInfo[pID][FRangName],"Leader",0);
    if(Frak >= 0 || Frak < 2)
    {
    switch(Frak)
    {
    case 0: fraktion = "Zivilisten";
    case 1: fraktion = "LSPD";
    }
    }
    format(string, sizeof(string), "%s hat dich zum Leader der %s ernannt.", GetName(pID), fraktion);
    SendClientMessage(playerid,GELB,string);
    SpielerInfo[pID][Fraktion] = Frak;
    SpielerInfo[pID][Leader] = Frak;
    SpielerInfo[pID][FRang] = 7;
    SaveAccount(pID);
    Adminlog(string);
    SendClientMessage(pID,GRAU,"Herzlichen Glückwunsch zum Rang Leader.");
    SendClientMessage(pID,GRAU,"Bitte machen sie sich mit den Befehlen unter (/hilfe) vertraut!");
    }
    return 1;
    }

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