Beiträge von YaBroo

    Servus Leute, ich hoffe mal das ist der richtige Bereich.
    Hat einer von euch bereits eine Map gesehen, die einer realen Fahrschule ähnelt?
    Damit ist gemeint, Fahrschule für die Theorie, TÜV für die Theorie Prüfung,-Praxis Bereich bei der Fahrschule oder TüV samt begehbarem Interior?
    Wenn wer so eine gesehen hat bitte ich um Rückmeldung wenn sich wer daran waagen möchte kann er sich per PM für nähere Informationen & kosten melden. Dies ist keine direkte Aufforderung warum ich den Marktplatz Bereich meiden möchte. Meldet euch einfach bei Interesse oder bei Kentnissen zu solch einer releasten Map , dankeee :thumbup:


    mfg

    if (sscanf(params, "u",id)) SendClientMessage(playerid, COLOR_GREY, "Info: /goto [SpielerID]");
    else if (id == INVALID_PLAYER_ID) SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht zu diesen Spieler teleportieren.");


    Benutz direkt if btw. kannst du auch mit isplayerconnected arbeiten.


    if(IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht zu diesen Spieler teleportieren.");

    Ist ein wenig leer gestaltet.
    Evt. paar Bilder für die Wände, realistische Beleuchtungen in den verschiedenen Zimmern,Billiard Schläger passend zum Tisch etc. da fehlt meiner Meinung nach sehr viel.
    Ich würde da nicht einziehen wollen wenn ich noch alles einkaufen müsste ohne es zu können :)


    Man sollte nicht direkt Abfragen ob die Variable von i auf 1 steht sondern besser ob die von playerid & i(Bei einer normale for Schleife mit definiertem i für MAX_PLAYERS) gleich sind damit es keine Überkreuzung von Chat's stattfindet.

    Wenn du auch eine Maximale Adminlevel Grenze haben möchtest kannst du es auch so machen, fürs bessere verstehen eine neue Variable.
    new Adminrang = PlayerInfo[playerid][pAdmin];
    if(Adminrang <2000||Adminrang>2001) return SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen!");


    Dies bedeutet nun das der Befehl abgebrochen wird wenn der Spieler Adminrang x -> 1999 oder 2002+ hat. 2000&2001 würden funktionieren.

    Ja dann passt das doch oder hast du mehr Ränge als 2001 !? Das "!" Muss aber raus.
    Bei Makeleader schreibste dann einfach das hin:


    if(PlayerInfo[playerid][pAdmin] < 2000) return SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen!");

    Mach es so:


    if(PlayerInfo[playerid][pAdmin] < 1337) return SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen!");


    Das bedeutet nun das für jeden Admin Level Spieler UNTER 1337 die Nachricht returnt wird.


    Ich verstehe nur nicht, warum es bei manchen bzw. bei den meisten wunderbar funktioniert und bei manchen nicht.
    Und nein, sscanf richtig angewandt macht eigentlich keine Schwierigkeiten.

    Zur Not kannste noch eine for Schleife durch laufen lassen und i mit pID vergleichen..Aber dafür ist sscanf doch zuständig.. Verstehe nicht warum es net klappen sollte :D
    Ich schau mal eben bei mir.


    //edit


    Dieser Befehl funktioniert einwandfrei:


    ocmd:pgeld(playerid,params[])
    {
    new pID, nGeld;
    iif(SpielerDaten[playerid][pAdmin] < 3) return SendClientMessage(playerid,-1,"Du hast kein Recht diesen Befehl auszuüben");
    if(sscanf(params,"ui",pID, nGeld)) return SendClientMessage(playerid, -1, "Benutzung: /pGeld [ID] [Anzahl]");
    if(!IsPlayerConnected(pID)) return ShowPlayerDialog(playerid, DIALOG_FALSCHE_ID, DIALOG_STYLE_MSGBOX, "{00BFFF}Falsche ID", "{FFFFFF}Die eingegebene ID ist ungültig.\n\nBitte versuche es erneut mit einer gültigen ID.", "Okay", "");
    GivePlayerMoney(pID,nGeld);
    return 1;
    }


    Ich hatte zu Anfang das Unknown Command Problem was daran lag das pgeld groß geschrieben war, keine Ahnung ob es daran liegt. ?(

    ocmd:pGeld(playerid,params[])
    {
    if(SpielerDaten[playerid][pAdmin] >= 3)
    {
    new pID, nGeld;
    if(sscanf(params,"ui",pID, nGeld)) return SendClientMessage(playerid, Orange, "Benutzung: /pGeld [ID] [Anzahl]");
    if(!IsPlayerConnected(pID)) return ShowPlayerDialog(playerid, DIALOG_FALSCHE_ID, DIALOG_STYLE_MSGBOX, "{00BFFF}Falsche ID", "{FFFFFF}Die eingegebene ID ist ungültig.\n\nBitte versuche es erneut mit einer gültigen ID.", "Okay", "");
    GivePlayerMoney(pID,nGeld);
    SpielerDaten[pID][pGeld] = nGeld;
    }
    return 1;
    }