Allgemeine Frage

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
  • Hey.


    Ich habe folgendes Problem. Ich habe dem Befehl /fill zum Fahrzeug auftanken. Meine Tankstellen sind in einer MySQL Datenbank hinterlegt mit ID und Cords.
    Ich habe natürlich mehrere Tankstellen, muss dazu nun aber folgenden Codeschnipsel darauf anpassen, da er mir sonst nur die erste Tankstelle in der Reihenfolge nimmt und bei den anderen dann sagt " Du bist an keiner offenen Tankstelle". Weis jemand wie ich dies nun am besten realisiere?


    Codeschnipsel:


    ocmd:fill(playerid, params[])
    {
    new Float:cord_x, Float:cord_y, Float:cord_z;
    cord_x = mysql_GetFloat("biz","PosX","Tankstelle","1");
    cord_y = mysql_GetFloat("biz","PosY","Tankstelle","1");
    cord_z = mysql_GetFloat("biz","PosZ","Tankstelle","1");
    if(IsPlayerInRangeOfPoint(playerid, 5.0, cord_x, cord_y, cord_z))
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
    return SendClientMessage(playerid, COLOR_GREY, "Fehler: Du bist in keinem Fahrzeug!");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_FILL, DIALOG_STYLE_INPUT, "Tankstelle","Wieviele Liter möchten Sie tanken?","Bestätigen","Abbrechen");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Fehler: Du bist an keiner offenen Tankstelle!");
    }
    return 1;
    }

  • #define TANKSTELLEN 20


    new Float:TankStellen[TANKSTELLEN][3];


    if(strcmp(cmdtext,"/fill",true)==0)
    {
    for(new i=0;i<TANKSTELLEN;i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5.0,TankStellen[i][0],TankStellen[i][1],TankStellen[i][2])) continue;
    Tanken(playerid);
    break;
    }
    }


    Hoffe du kommst damit zurecht :)