Hey wieso Funktioniert mein Drivein System immer nur bei dem ersten Eintrag ?
Bei den anderen kommt immer das ich an keinem Drivein bin
Drivein System
- reaL.
- Geschlossen
- Erledigt
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
-
-
ocmd:drivein(playerid)
{
for(new i = 0; i < sizeof(bsn); i++)
{
printf("%f %f %f",bsn[i][bsn_x], bsn[i][bsn_y], bsn[i][bsn_z]);
if(IsPlayerInRangeOfPoint(playerid,2.5,bsn[i][bsn_x], bsn[i][bsn_y], bsn[i][bsn_z]))
{
new string [128];
format(string,sizeof(string),"Menü\tPreis\tLeben\n\%s\t%d\t%d\n\%s\t%d\t%d",bsn[i][Menu1],bsn[i][Geldmenu1],bsn[i][Lebenmenu1],bsn[i][Menu2],bsn[i][Geldmenu2],bsn[i][Lebenmenu2]);
ShowPlayerDialog(playerid,DIALOG_DRIVEIN,DIALOG_STYLE_TABLIST_HEADERS,"Drivein Menü",string,"Bestellen","Abbrechen");
return 1;
}
}
return SendClientMessage(playerid,ROT,"Du bist an Keinem Drivein!");
} -
-
switch(listitem)
{
case 0:
{
//Zeile 1
//Mach was hier
}
case 1:
{
//Zeile 2
//Mach was hier
}
} -
Ja das weiß ich aber du siehst ja das ich an dem 1 bsn das verkaufen will und beim 2 das aber für mehr/weniger Geld wie lese ich das aus dem Enum so das er auch weiß an welchen Bsn ich bin
-
Mit der gleichen Schleife:
for(new i = 0; i < sizeof(bsn); i++)
{
printf("%f %f %f",bsn[i][bsn_x], bsn[i][bsn_y], bsn[i][bsn_z]);
if(IsPlayerInRangeOfPoint(playerid,2.5,bsn[i][bsn_x], bsn[i][bsn_y], bsn[i][bsn_z]))
{
switch(listitem)
{
case 0:
{
//Zeile 1
//Mach was hier
}
case 1:
{
//Zeile 2
//Mach was hier
}
}
return 1;
}
}Oder du speicherst die BSN ID beim Befehl in einer Spielervariable, das kommt aufs gleiche raus.
-
OK danke funktioniert
Aber eine Frage wieso musste ich beim Befehl das mit dem Du bist an Keinem Drivein dort hin machen ? -
Weil er erst durch alle Drive-Ins gehen muss, und prüfen muss, ob du an einem der Drive-Ins bist.
Erst wenn du an keinem bist, kann die Meldung ausgegeben werden.=> Es kann erst gesagt werden, dass du an keinem Drive-In bist, wenn alle geprüft sind, und das ist nach der Schleife.
-
breadfish.de
Hat das Thema geschlossen.