/setrang funktioniert nicht richtig

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 liebe Community.


    ich arbeite zurzeit an einem /setrang befehl und habe einen Hänger


    ich möchte dass der leader die member in die verschiedenen ränge setzt und die member dann einen skin Wechsel haben


    hier mein code



    ocmd:setrang(playerid,params[])
    {
    if(isPlayerInFrak(playerid,0))return SendClientMessage(playerid,RED,"Du bist Zivilist!");
    if(!isPlayerRang(playerid,5)) return SendClientMessage(playerid,RED,"Dein Rang ist zu niedrig um dessen von jemand anderes zu ändern");
    new pID,rangs,Rank[128];
    if(sscanf(params,"ii",pID,rangs))return SendClientMessage(playerid,RED,"INFO: /setrang [playerid] [Fraktionsrang]");
    if(rangs<0||rangs>7)return SendClientMessage(playerid,CL_BLACK,"Bitte gültigen Rang angeben. (0-6) ");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,RED,"Spieler nicht gefunden!");
    if(sInfo[pID][eingeloggt] == 0) return SendClientMessage(playerid,RED,"Spieler ist nicht eingeloggt");
    sInfo[pID][rang]=rangs;
    savePlayer(pID);
    SendClientMessage(pID,RED,"Dein Memberrang wurde geändert.");
    format(Rank,sizeof(Rank),"Du hast den Memberrang von %s geändert",getPlayerName(pID));
    SendClientMessage(playerid,RED,Rank);



    if(isPlayerInFrak(playerid,0))


    if(isPlayerInFrak(pID, 1)) //FRAKTION LSPD
    {
    if(!isPlayerRang(pID,0)) return printf("test");
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Praktikant und hast deinen Skin erhalten");
    SetPlayerSkin(pID,265);
    }
    if(!isPlayerRang(pID,1)) return printf("test");
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Lehrling und hast deinen Skin erhalten");
    SetPlayerSkin(pID,266);
    }
    if(!isPlayerRang(pID,2)) return printf("test");
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun ausgebildeter Azubi und hast deinen Skin erhalten");
    SetPlayerSkin(pID,267);
    }
    if(!isPlayerRang(pID,3)) return printf("test");
    {
    SetPlayerSkin(pID,267);
    }
    if(!isPlayerRang(pID,4)) return printf("test");
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und hast deinen Skin erhalten");
    SetPlayerSkin(pID,280);
    }
    if(!isPlayerRang(pID,5))return printf("test");
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und CO LEADER und hast deinen Skin erhalten");
    SetPlayerSkin(pID,284);
    }
    if(!isPlayerRang(pID,6)) return printf("test");
    {
    SetPlayerSkin(pID,284);
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und LEADER und hast deinen Skin erhalten");

    }
    return 1;
    }
    return 1;
    }



    mfg JojoKiller25

  • ocmd:setrang(playerid,params[])
    {
    if(isPlayerInFrak(playerid,0))return SendClientMessage(playerid,RED,"Du bist Zivilist!");
    if(!isPlayerRang(playerid,5)) return SendClientMessage(playerid,RED,"Dein Rang ist zu niedrig um dessen von jemand anderes zu ändern");
    new pID,rangs,Rank[128];
    if(sscanf(params,"ii",pID,rangs))return SendClientMessage(playerid,RED,"INFO: /setrang [playerid] [Fraktionsrang]");
    if(rangs<0||rangs>6)return SendClientMessage(playerid,CL_BLACK,"Bitte gültigen Rang angeben. (0-6) ");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,RED,"Spieler nicht gefunden!");
    if(sInfo[pID][eingeloggt] == 0) return SendClientMessage(playerid,RED,"Spieler ist nicht eingeloggt");
    sInfo[pID][rang]=rangs;
    savePlayer(pID);
    SendClientMessage(pID,RED,"Dein Memberrang wurde geändert.");
    format(Rank,sizeof(Rank),"Du hast den Memberrang von %s geändert",getPlayerName(pID));
    SendClientMessage(playerid,RED,Rank);
    if(isPlayerInFrak(pID, 1)){
    switch(sInfo[pID][rang]){
    case 1:SendClientMessage(pID,CL_HBLUE,"Du bist nun Praktikant und hast deinen Skin erhalten"),SetPlayerSkin(pID,265);
    case 2:SendClientMessage(pID,CL_HBLUE,"Du bist nun Lehrling und hast deinen Skin erhalten"),SetPlayerSkin(pID,266);
    case 3:SendClientMessage(pID,CL_HBLUE,"Du bist nun ausgebildeter Azubi und hast deinen Skin erhalten"),SetPlayerSkin(pID,267);
    case 4:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und hast deinen Skin erhalten"),SetPlayerSkin(pID,280);
    case 5:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und CO LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    case 6:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    }
    }
    return 1;
    }


    Problem ist Beispielsweise hier if(!isPlayerRang(pID,0)) du frägst ab ob der spieler nicht den rang 0 hat dies zieht sich bei der skinvergabe durch den ganzen code durch if(!isPlayerRang(pID,3)) etc... Dieses ! gehört hier nicht hin


    Problem ist hier

  • ocmd:setrang(playerid,params[])
    {
    if(isPlayerInFrak(playerid,0))return SendClientMessage(playerid,RED,"Du bist Zivilist!");
    if(!isPlayerRang(playerid,5)) return SendClientMessage(playerid,RED,"Dein Rang ist zu niedrig um dessen von jemand anderes zu ändern");
    new pID,rangs,Rank[128];
    if(sscanf(params,"ui",pID,rangs))return SendClientMessage(playerid,RED,"INFO: /setrang [playerid] [Fraktionsrang]");
    if(rangs<0||rangs>7)return SendClientMessage(playerid,CL_BLACK,"Bitte gültigen Rang angeben. (0-6) ");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,RED,"Spieler nicht gefunden!");
    if(sInfo[pID][eingeloggt] == 0) return SendClientMessage(playerid,RED,"Spieler ist nicht eingeloggt");
    sInfo[pID][rang]=rangs;
    savePlayer(pID);
    SendClientMessage(pID,RED,"Dein Memberrang wurde geändert.");
    format(Rank,sizeof(Rank),"Du hast den Memberrang von %s geändert",getPlayerName(pID));
    SendClientMessage(playerid,RED,Rank);


    if(isPlayerInFrak(pID, 1)) //FRAKTION LSPD
    {
    if(rangs == 0)
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Praktikant und hast deinen Skin erhalten");
    SetPlayerSkin(pID,265);
    }
    if(rangs == 1)
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Lehrling und hast deinen Skin erhalten");
    SetPlayerSkin(pID,266);
    }
    if(rangs == 2)
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun ausgebildeter Azubi und hast deinen Skin erhalten");
    SetPlayerSkin(pID,267);
    }
    if(rangs == 3)
    {
    SetPlayerSkin(pID,267);
    }
    if(rangs == 4)
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und hast deinen Skin erhalten");
    SetPlayerSkin(pID,280);
    }
    if(rangs == 5)
    {
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und CO LEADER und hast deinen Skin erhalten");
    SetPlayerSkin(pID,284);
    }
    if(rangs == 6)
    {
    SetPlayerSkin(pID,284);
    SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und LEADER und hast deinen Skin erhalten");

    }
    else return print("test"):
    return 1;
    }
    return 1;
    }

    Wenn du bei sscanf pID als "I"ntegrer angibst kannst du nur die ID des Spielers angeben. Wenn du aber "u" nutzt kannst du den Usernamen ODER die ID des Spielers angeben.

  • Wie sieht dass dan aus wenn ich ne 2. Fraktion haben will


    also in dem Fall soll ja erst die FrakID abgefragt werden und dann wenn nötig der Rang....

    ocmd:setrang(playerid,params[])
    {
    if(isPlayerInFrak(playerid,0))return SendClientMessage(playerid,RED,"Du bist Zivilist!");
    if(!isPlayerRang(playerid,5)) return SendClientMessage(playerid,RED,"Dein Rang ist zu niedrig um dessen von jemand anderes zu ändern");
    new pID,rangs,Rank[128];
    if(sscanf(params,"ui",pID,rangs))return SendClientMessage(playerid,RED,"INFO: /setrang [playerid] [Fraktionsrang]");
    if(rangs<0||rangs>6)return SendClientMessage(playerid,CL_BLACK,"Bitte gültigen Rang angeben. (0-6) ");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,RED,"Spieler nicht gefunden!");
    if(sInfo[pID][eingeloggt] == 0) return SendClientMessage(playerid,RED,"Spieler ist nicht eingeloggt");
    sInfo[pID][rang]=rangs;
    savePlayer(pID);
    SendClientMessage(pID,RED,"Dein Memberrang wurde geändert.");
    format(Rank,sizeof(Rank),"Du hast den Memberrang von %s geändert",getPlayerName(pID));
    SendClientMessage(playerid,RED,Rank);
    if(isPlayerInFrak(pID, 1)){
    switch(sInfo[pID][rang]){
    case 1:SendClientMessage(pID,CL_HBLUE,"Du bist nun Praktikant und hast deinen Skin erhalten"),SetPlayerSkin(pID,265);
    case 2:SendClientMessage(pID,CL_HBLUE,"Du bist nun Lehrling und hast deinen Skin erhalten"),SetPlayerSkin(pID,266);
    case 3:SendClientMessage(pID,CL_HBLUE,"Du bist nun ausgebildeter Azubi und hast deinen Skin erhalten"),SetPlayerSkin(pID,267);
    case 4:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und hast deinen Skin erhalten"),SetPlayerSkin(pID,280);
    case 5:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und CO LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    case 6:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    }
    if(isPlayerInFrak(pID, 2)){
    switch(sInfo[pID][rang]){
    case 1:SendClientMessage(pID,CL_HBLUE,"Du bist nun Praktikant und hast deinen Skin erhalten"),SetPlayerSkin(pID,265);
    case 2:SendClientMessage(pID,CL_HBLUE,"Du bist nun Lehrling und hast deinen Skin erhalten"),SetPlayerSkin(pID,266);
    case 3:SendClientMessage(pID,CL_HBLUE,"Du bist nun ausgebildeter Azubi und hast deinen Skin erhalten"),SetPlayerSkin(pID,267);
    case 4:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und hast deinen Skin erhalten"),SetPlayerSkin(pID,280);
    case 5:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und CO LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    case 6:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    }
    }
    return 1;
    }




    kann ich dass dann problemlos drunter einfügen?

  • kann ich dass dann problemlos drunter einfügen?


    Ja, aber auf die Klammersetzung achten!
    ocmd:setrang(playerid,params[])
    {
    if(isPlayerInFrak(playerid,0))return SendClientMessage(playerid,RED,"Du bist Zivilist!");
    if(!isPlayerRang(playerid,5)) return SendClientMessage(playerid,RED,"Dein Rang ist zu niedrig um dessen von jemand anderes zu ändern");
    new pID,rangs,Rank[128];
    if(sscanf(params,"ui",pID,rangs))return SendClientMessage(playerid,RED,"INFO: /setrang [playerid] [Fraktionsrang]");
    if(rangs<0||rangs>6)return SendClientMessage(playerid,CL_BLACK,"Bitte gültigen Rang angeben. (0-6) ");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,RED,"Spieler nicht gefunden!");
    if(sInfo[pID][eingeloggt] == 0) return SendClientMessage(playerid,RED,"Spieler ist nicht eingeloggt");
    sInfo[pID][rang]=rangs;
    savePlayer(pID);
    SendClientMessage(pID,RED,"Dein Memberrang wurde geändert.");
    format(Rank,sizeof(Rank),"Du hast den Memberrang von %s geändert",getPlayerName(pID));
    SendClientMessage(playerid,RED,Rank);
    if(isPlayerInFrak(pID, 1)){
    switch(sInfo[pID][rang]){
    case 1:SendClientMessage(pID,CL_HBLUE,"Du bist nun Praktikant und hast deinen Skin erhalten"),SetPlayerSkin(pID,265);
    case 2:SendClientMessage(pID,CL_HBLUE,"Du bist nun Lehrling und hast deinen Skin erhalten"),SetPlayerSkin(pID,266);
    case 3:SendClientMessage(pID,CL_HBLUE,"Du bist nun ausgebildeter Azubi und hast deinen Skin erhalten"),SetPlayerSkin(pID,267);
    case 4:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und hast deinen Skin erhalten"),SetPlayerSkin(pID,280);
    case 5:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und CO LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    case 6:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    }
    }
    if(isPlayerInFrak(pID, 2)){
    switch(sInfo[pID][rang]){
    case 1:SendClientMessage(pID,CL_HBLUE,"Du bist nun Praktikant und hast deinen Skin erhalten"),SetPlayerSkin(pID,265);
    case 2:SendClientMessage(pID,CL_HBLUE,"Du bist nun Lehrling und hast deinen Skin erhalten"),SetPlayerSkin(pID,266);
    case 3:SendClientMessage(pID,CL_HBLUE,"Du bist nun ausgebildeter Azubi und hast deinen Skin erhalten"),SetPlayerSkin(pID,267);
    case 4:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und hast deinen Skin erhalten"),SetPlayerSkin(pID,280);
    case 5:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und CO LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    case 6:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    }
    }
    return 1;
    }
    So sind die Klammern richtig gesetzt..