SpielerInfo playerid?

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 Leute.


    Ich hab da mal gesehen das hier MAX_PLAYERS steht und so wie ich das kenne überprüft das jeden
    spieler aber wenn ich da playerid reinschreiben will dan steht da sowas gibt es nicht.Kann mir da
    einer weiterhelfen? weil wenn ich sonst z.B SpielerInfo[playerid] eingebe wird doch jeder spieler
    überprüft oder?Wenn nicht das schreibt das einfach.


    Im befehl steht:


    new pID;
    if(SpielerInfo[pID][pAdminlevel] >= 1);
    {
    SendClientMessage(playerid,Rot,"Du darfst diese Person nicht kicken");
    }


    Das MAX_PLAYERS gegen playerid tauschen aber wie ? das geht nicht wenn ich playerid hinschreibe da steht dan sowas existiert nicht :(
    new SpielerInfo[MAX_PLAYERS][PlayerDaten];


    Danke fürs lesen.


    Mfg. CaptainHeroLP :)

  • Klick für leichtes Scripten lernen
    Viele Scripter die heute ein gutes Selfmade auf die Beine stellen haben diese
    Videos geguckt.


    Nein!
    Gebt diesen Müll nicht weiter es ist einfach nur dum sowas zu gucken, da man nix lernt


    Am besten ist immernoch die Tutorialsektion hier

    All in all it's just another brick in the wall

  • Ich verstehe nicht wieso dieser befehl nicht geht dan.


    ocmd:kick(playerid,params[])
    {
    new pID,reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,Rot,"/kick [ID] [Grund]");
    if(SpielerInfo[playerid][pAdminlevel] <=1)
    {
    SendClientMessage(playerid,Rot,"Diese Person darfst du nicht kicken");
    }
    if(SpielerInfo[playerid][pAdminlevel] == 0)
    {
    SendClientMessage(playerid,Rot,"Dein Adminlevel ist zu niedrig");
    }
    else
    {
    SetPVarInt(pID,"Kicks",GetPVarInt(pID,"Kicks")+1);
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(Rot,string);
    Kick(pID);
    }
    return 1;
    }


    Wenn ich diesen befehl eingebe steht da dein Adminlevel ist zu niedrig obwohl ich adminlevel 5 bin und eigentlich
    sollte kommen "Du darfst diese Person nicht kicken" Wieso ?


    Ist das hier richtig?


    Das hier ist bei SpielerSpeichern.
    SpielerInfo[playerid][pAdminlevel] = GetPVarInt(playerid,"Adminlevel");


    oder sollte ich das so machen


    Das hier ist bei LoadAccount
    SpielerInfo[playerid][Adminlevel] = dini_Int(Spielerdatei,"Adminlevel");

  • Hier bitte dein command hast etwas falsch gestaltet
    wenn du abfragen willst ob die person die gekickt werden soll admin ist solltest du nicht das adminlevel von einem selbst abfragen



    zu dem bedeutet <= gleich oder kleiner als


    und grundsätzlich kannst ja mal schauen ob das ganze ausgelesen und gespeichert wird . Das siehst zu einem in der account datei und zum anderen beim auslesen
    wenn du das mit printf("Adminlevel: %d",SpielerInfo[playerid][pAdminlevel] ); printen lässt

  • Dann wie schon mitgeteilt schau mal danach ob die daten überhaupt ausgelesen werden und setzt dir mal das adminlevel:


    Code
    ocmd:admin(playerid)
    {
    	 SpielerInfo[playerid][pAdminlevel] = 5;
    	 return 1;
    }


    weil sollte es jetzt gehen und in deiner ini steht was weißt du das die daten nicht ausgelesen werden oder nur das adminlevel , grundlegend jedoch liegts dann an deiner Ladefunktion.


    @Sh12


    siehe seinen geposteten Code


    if(SpielerInfo[playerid][pAdminlevel] <=1)

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