ATM-Enum nur einer wird abgefragt?

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 habe mir ein ATM-Enum erstelllt indem alle coords von den Bankautomaten stehen, aber wenn ich /bankmenu eingebe geht das nur bei einem??


    Codes:
    enum Bankautomaten
    {
    Float:iatmx,
    Float:iatmy,
    Float:iatmz,
    Float:iatmxrot,
    Float:iatmyrot,
    Float:iatmzrot,
    }
    new Atms[13][Bankautomaten] =
    {
    {1189.14832, -917.02618, 42.88810, 0.00000, 0.00000, 8.00000},
    {2233.20, -1161.80, 25.50, 0.0, 0.0, 270.0},
    {2424.10, -1219.0, 25.20, 0.0, 0.0, 0.0},
    {784.70, -1329.80, 13.20, 0.0, 0.0, 178.0},
    {378.60, -2060.70, 7.50, 0.0, 0.0, 92.0},
    {1539.0, -1614.30, 13.20, 0.0, 0.0, 271.9995},
    {1837.30, -1690.70, 13.0, 0.0, 0.0, 270.0},
    {1000.90, -922.70, 42.0, 0.0, 0.0, 278.0},
    {-1980.6, 131.6, 27.3, 0.0, 0.0, 270.0},
    {-1591.2, 716.8, 8.9, 0.0, 0.0, 182.0},
    {-2234.6, 2351.7, 4.6, 0.0, 0.0, 312.0},
    {215.2, 17.0, 2.2, 0.0, 0.0, 90.0},
    {2021.5, 1016.7, 10.3, 0.0, 0.0, 0.0}
    };
    //Bankautomaten
    for(new i=0;i<sizeof(Atms);i++)
    {
    CreateDynamicObject(2942,Atms[i][iatmx],Atms[i][iatmy],Atms[i][iatmz],Atms[i][iatmxrot],Atms[i][iatmyrot],Atms[i][iatmzrot]);
    Create3DTextLabel("{EBFF00}Bankterminal\n{FFFFFF}/bankmenu {EBFF00}oder {FFFFFF}/ueberweisung",Weiß, Atms[i][iatmx],Atms[i][iatmy],Atms[i][iatmz]+0.5,15.0,0,0);
    CreateDynamicMapIcon(Atms[i][iatmx],Atms[i][iatmy],Atms[i][iatmz],52, -1, -1, -1, -1, 500);
    }
    if(strcmp(cmd, "/bankmenu", true) == 0)
    {
    if(sInfo[playerid][friedhof]==1)
    {
    SendClientMessage(playerid,Rot,"Tote können keine Befehle benutzen!");
    return 1;
    }
    for(new i=0;i<sizeof(Atms);i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3, 2316.5691,-7.3099,26.7422))
    {
    new string[128];
    format(string,sizeof(string),"Willkommen bei Bank of San Andreas.\n\nKonto: %s\nKontostand: %d$\n",SpielerName(playerid),sInfo[playerid][bmoney]);
    ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_MSGBOX,"Bankterminal",string,"Einzahlen","Abbuchen");
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid, 3, Atms[i][iatmx],Atms[i][iatmy],Atms[i][iatmz]))
    {
    new string[128];
    format(string,sizeof(string),"Willkommen bei Bank of San Andreas.\n\nKonto: %s\nKontostand: %d$\n",SpielerName(playerid),sInfo[playerid][bmoney]);
    ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_MSGBOX,"Bankterminal",string,"Einzahlen","Abbuchen");
    return 1;
    }
    return SendClientMessage(playerid,Rot,"Du bist nicht in der nähe eines Bankautomaten oder in der Bank!");
    }
    return 1;
    }


    Geladen wird jeder Bankautomat aber /bankmenu geht nur bei einem.. :(
    Ich hoffe ihr könnt mir helfen...



    Mit freundlichen Grüßen,
    DexterA1

  • Dein problem besteht durch das falsch gesetzte return.


    Dadurch wird eine Schleife unmittelbar abgebrochen.


    Daher plaziere dein return außerhalb der For- Schleife.



    for(new i=0;i<sizeof(Atms);i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3, 2316.5691,-7.3099,26.7422))
    {
    ....
    }
    return SendClientMessage(playerid,Rot,"Du bist nicht in der nähe eines Bankautomaten oder in der Bank!");


    //edit Einrückung neu gemacht