if(pickupid == X) to switch case

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,


    wie schreibe ich folgenden Code in switch case um? Habe schon versucht "case BF_WEAPON[0]: ..." etc. zu kompilieren, das funktioniert aber nicht.


    forward PickupRespawn(pickupid);
    public PickupRespawn(pickupid)
    {
    if(pickupid == BF_WEAPON[0]) return CreateDynamicPickup(342, 1, 120.5242, 1934.8777, 22.7578, 7, -1, -1, 100.0); //Grenade
    if(pickupid == BF_WEAPON[1]) return CreateDynamicPickup(342, 1, 279.4142, 1829.5718, 21.4766, 7, -1, -1, 100.0); //Grenade
    if(pickupid == BF_WEAPON[2]) return CreateDynamicPickup(342, 1, 116.2530, 1875.0065, 22.4375, 7, -1, -1, 100.0); //Grenade
    if(pickupid == BF_WEAPON[3]) return CreateDynamicPickup(342, 1, 136.4600, 1874.9723, 22.4375, 7, -1, -1, 100.0); //Grenade
    if(pickupid == BF_WEAPON[4]) return CreateDynamicPickup(359, 1, 189.9938, 1940.4785, 17.6406, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[5]) return CreateDynamicPickup(359, 1, 206.2279, 1932.8312, 23.2422, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[6]) return CreateDynamicPickup(360, 1, 144.0044, 1850.1791, 25.2610, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[7]) return CreateDynamicPickup(360, 1, 211.4619, 1809.8109, 25.1172, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[8]) return CreateDynamicPickup(360, 1, 146.3869, 1907.3638, 26.3924, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[9]) return CreateDynamicPickup(360, 1, 197.3199, 1835.0059, 23.2422, 7, -1, -1, 100.0); //Heat Seeker
    return 1;
    }

  • @Mr.Reese: Das ist falsch was du da machst. Mit strings geht weder ein switch, noch kannst du strings über "==" vergleichen. Außerdem fehlen bei den case's die geschwungenen Klammern, einen break darfst du in PAWN nicht verwenden, das machst du in Java.



    Manyula: Die case's in einem switch können nur Konstanten beinhalten, keine Variablen. Daher geht das hier nicht. So wie du es hast ist es gut.


    switch(wert)
    {
    case 0: //...
    case 1: //...
    case 2: //...
    default: //...
    }


    0 / 1 / 2 / ... / default sind Konstanten, damit geht es. BF_WEAPON[0] ist eine Variable, damit geht es nicht.