switch und case hilfe

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 zusammen,


    ich habe mir überlegt einen Fraktionspass zu erstellen


    in diesem soll der höchst errungene Rang drinne stehen.


    nun würde ich gerne immer dieses else if mir sparen und das mit switch und case machen


    leider habe ich da keine richtige ahnung von



    hier das was ich gebastelt habe


    switch(isPlayerInFrak(pID,MAX_FRAKS))
    {

    case 1: {frakPass[playerid][LSPD] = rangs;}
    case 2: {frakPass[playerid][SFPD] = rangs;}

    }
    return 1;



    vlt könnt ihr mir ja helfen


    rangs = das was oben vom Leader eingegeben wird wenn jmd befördert wird



    MFG


    ProGamer

  • Naja, generell ist das was du gemacht hast schonmal ok.
    Allerdings würde ich das mit der Funktion im switch nicht so machen, außer es gibt dir die Fraktion die der Spieler hat zurück.
    Außerdem passt das playerid im switch nicht, sonst würde sich der Spieler selbst befördern.


    So ist's besser:
    switch(SpielerInfo[pID][Fraktion])
    {
    case 1: frakPass[pID][LSPD] = rangs;
    case 2: frakPass[pID][SFPD] = rangs;
    }
    return 1;


    Falls du es mit Leader/Member hast bei der Spieler Variable (SpielerInfo, kann bei dir ja anders heißen) schreibe es so:
    switch(GetPlayerFraktion(pID))
    {
    case 1: frakPass[pID][LSPD] = rangs;
    case 2: frakPass[pID][SFPD] = rangs;
    }
    return 1;
    und ganz unten im Gamemode:
    stock GetPlayerFraktion(playerid)
    {
    new frak = SpielerInfo[playerid][Member];
    if(frak == 0) frak = SpielerInfo[playerid][Leader];
    return frak;
    }