Hallo,
ich arbeite gerade an einem Bankautomaten-System und habe ein paar Probleme beim Befehl den man dann vor den Bankautomaten eingeben soll (/bank).
Vorweg:
Ich habe die Koordinaten der Bankautomaten in einem Enum.
enum bankatmEnum{
Float:b_x,
Float:b_y,
Float:b_z,
Float:b_ix,
Float:b_iy,
Float:b_iz,
}
new bInfo[][bankatmEnum] = {
{1497.78687, -1667.63672, 13.63980, 0.00000, 0.00000, 0.00000},
{1498.10352, -1749.91284, 15.08645, 0.00000, 0.00000, 178.37987},
{1102.28088, -1438.31360, 15.38859, 0.00000, 0.00000, -269.75983},
{1154.77148, -1456.05713, 15.42300, 0.00000, 0.00000, 271.08020}
};
Und lasse sie beim Laden des Gamemodes erstellen:
for(new i=0; i<sizeof(bInfo); i++)
{
CreateDynamicObject(2942,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
Create3DTextLabel("Benutze: {FF0000}/bank{FFFF00}\num in das Bankmenü zu kommen",LABEL_COLOR,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],15,0,0);
}
Das klappt auch wunderbar.
Nun möchte ich beim Befehl: /bank erst abfragen ob sich ein Bankautomat in der Nähe befindet.
Ich habe das bisher so gemacht aber es funktioniert nicht ganz:
ocmd:bank(playerid,params[])
{
for(new i=0; i<sizeof(bInfo); i++)
{
if (IsPlayerInRangeOfPoint(playerid,10.00,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))
{
ShowPlayerDialog(playerid,DIALOG_BANK,2,"Bankmenü","Einzahlen\nAuszahlen\nKontostand","OK","Abbrechen");
return 1;
}
else
{
SendClientMessage(playerid, ROT, "Fehler: Es ist kein Bankautomat in der Nähe!");
return 1;
}
}
return 1;
}
Es funktioniert nur beim ersten Bankautomat der in der Liste steht. Bei allen anderen kommt die Fehlermeldung (Fehler: Es ist kein Bankautomat in der Nähe)
Wie kann man erreichen das es bei allen Bankautomaten funktioniert?