problem mit den rängen

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
  • hier habe mir ein ocmd erstellt


    der sieht bis jetzt so aus


    ocmd:rang(playerid,params[])
    {
    if(!isPlayerAnLeader(playerid,6)) return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion.");
    new pID,string[128],rangid;
    if(sscanf(params,"ui",pID,rangid)) return SendClientMessage(playerid,GRAU,"/rang [ID/Teil des Namens] [Rang]");
    switch(rangid)
    {
    case 0:{rangid="Knecht";}
    case 1:{rangid="Dealer";}
    case 2:{rangid="Unterboss";}
    case 3:{rangid="Boss";}
    }
    format(string,sizeof(string),"Dein Rang wurde von %s auf %i erhöht.",Spielername(playerid),rangid);
    return 1;
    }


    und bei den case dingern zeigt der mir das hier an was bedeutet das ?


    C:\Users\Admin\Desktop\Neuer Ordner\gamemodes\Sascha.pwn(505) : error 006: must be assigned to an array
    C:\Users\Admin\Desktop\Neuer Ordner\gamemodes\Sascha.pwn(506) : error 006: must be assigned to an array
    C:\Users\Admin\Desktop\Neuer Ordner\gamemodes\Sascha.pwn(507) : error 006: must be assigned to an array
    C:\Users\Admin\Desktop\Neuer Ordner\gamemodes\Sascha.pwn(508) : error 006: must be assigned to an array
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    SUCHE SCRIPT LEHRER :P

  • hier is nochma der bearbeitete rang befehl


    ocmd:rang(playerid,params[])
    {
    if(!isPlayerAnLeader(playerid,4)) return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion.");
    new pID,string[128],rangid[64];
    if(sscanf(params,"ui",pID,rangid)) return SendClientMessage(playerid,GRAU,"/rang [ID/Teil des Namens] [Rang]");
    switch(rangid[4])
    {
    case 0:{rangid="Knecht";}
    case 1:{rangid="Dealer";}
    case 2:{rangid="Unterboss";}
    case 3:{rangid="Boss";}
    }
    format(string,sizeof(string),"Dein Rang wurde von %s auf %s erhöht.",Spielername(playerid),rangid);
    SendClientMessage(playerid,TURKIS,string);
    return 1;
    }


    nur ingame werden die ränge immer auf 75 gesetzt anstatt auf 1 2 oder 3 das geht mit %i genauso wie mit %s
    da steht dann
    Dein Rang wurde von Sascha auf 75 erhöht

    SUCHE SCRIPT LEHRER :P

  • versuchste halt so


    ocmd:rang(playerid,params[])
    {
    if(!isPlayerAnLeader(playerid,4)) return SendClientMessage(playerid,ROT,"Du bist nicht der Leader dieser Fraktion.");
    new pID,string[128],rangid[64];
    if(sscanf(params,"ui",pID,rangid)) return SendClientMessage(playerid,GRAU,"/rang [ID/Teil des Namens] [Rang]");
    if(rangid<0 || rangid > 4) return SendClientMessage(playerid,GRAU,"Bitte Gebe einen Gültigen Rank ein");
    switch(rangid)
    {
    case 0:{rangid="Knecht";}
    case 1:{rangid="Dealer";}
    case 2:{rangid="Unterboss";}
    case 3:{rangid="Boss";}
    }
    format(string,sizeof(string),"Dein Rang wurde von %s auf %i erhöht.",Spielername(playerid),rangid);
    SendClientMessage(playerid,TURKIS,string);
    return 1;
    }


    wenn nicht kannste so machen


    case 0: { SendClientMessage(pID,GRAU,"Du bist jetzt ein Knecht";}
    usw...


    mfg

  • Ich weiß nicht wie es bei ocmd ist, aber musst du nicht erst vorher den namen definieren?


    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    Und dann: Eine Wort wird mit %s wieder gegebene und eine Zahl mit %d,



    format(string,sizeof(string),"Dein Rang wurde von %s auf %d erhöht",name,rangid);

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)