Der punkt der am nähesten dran ist

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • es gibt z.B. zwei coordinaten einmal in Los Santos und einmal in Las venturas und ich möchte abfragen an welcher Coordinate der spieler näher dran ist und dann eine Variable ausgeben.


    //edit: ich möchte mein Bizzsystem mit Tankstellen verbinden möchte aber das man an einer Tür das bizz kaufen kann und nicht immer in das Icon fahren muss.

  • wenn ich /fill eingebe passiert aber nichts
    if(strfind(SBizzInfo[j][sbMessage],"Tankstelle",true))
    {
    if(GetPlayerMoney(i) >= SBizzInfo[j][sbTill])
    {
    Gas[VID] += FillUp;
    FillUp = SBizzInfo[j][sbTill] * FillUp;
    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",FillUp,SBizzInfo[j][sbTill]);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GivePlayerMoney(i, - FillUp);
    SBizzInfo[j][sbTill] += FillUp;
    ExtortionSBiz(j, FillUp);
    Refueling[i] = 0;
    UnFreezePlayer(i);
    return 1;
    }
    else
    {
    format(string,sizeof(string),"* Du hast nicht genug Geld zum Tanken, Kosten: $%d / Liter.",SBizzInfo[j][sbTill]);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    UnFreezePlayer(i);
    return 1;
    }
    }

  • Meinst du, dass egal wo man ist dann den aktuellen Preis der am nächst liegenden Tankstelle angezeigt bekommt?
    Falls ja, dann kannst du das mit einer Funktion lösen, welche in etwa so aussieht:



    stock nearst(playerid)
    {
    new Float: xx,
    Float: xy,
    Float: xz,
    nearst;
    GetPlayerPos(playerid,xx,xy,xz);
    new Float:distance = 9999999.999999999,
    Float:olddistance;
    for(new x = 0;x < MAX_TANKEN;x++)
    {
    = floatsqroot(floatpower(floatabs(floatsub(xx,Tanke[x][x])),2)+floatpower(floatabs(floatsub(xy,Tanke[x][y])),2)+floatpower(floatabs(floatsub(xz,Tanke[x][z])),2));
    if(distance < olddistance)
    {
    olddistance = distance;
    nears = x;
    }
    }
    return nearst;
    }



    Ist aus dem Kopf also obs stimmt ???

  • Keine ahnung wie ich das einsetzen sollte :X


    Function Fillup()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new VID;
    new FillUp;
    new string[256];
    VID = GetPlayerVehicleID(i);
    FillUp = GetGasMax(GetVehicleModel(VID)) - Gas[VID];
    if(Refueling[i] == 1)
    {
    for(new j = 0; j< sizeof(SBizzInfo); j++)
    {
    if(IsPlayerInRangeOfPoint(i,40.0,SBizzInfo[j][sbEntranceX],SBizzInfo[j][sbEntranceY],SBizzInfo[j][sbEntranceZ]))
    {
    if(strfind(SBizzInfo[j][sbMessage],"Tankstelle",true))
    {
    if(GetPlayerMoney(i) >= SBizzInfo[j][sbTill])
    {
    Gas[VID] += FillUp;
    FillUp = SBizzInfo[j][sbTill] * FillUp;
    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",FillUp,SBizzInfo[j][sbTill]);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GivePlayerMoney(i, - FillUp);
    SBizzInfo[j][sbTill] += FillUp;
    ExtortionSBiz(j, FillUp);
    Refueling[i] = 0;
    UnFreezePlayer(i);
    return 1;
    }
    else
    {
    format(string,sizeof(string),"* Du hast nicht genug Geld zum Tanken, Kosten: $%d / Liter.",SBizzInfo[j][sbTill]);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    UnFreezePlayer(i);
    return 1;
    }
    }
    }
    else
    {
    if(GetPlayerMoney(i) >= SPRITPREISPROLITER)
    {
    Gas[VID] += FillUp;
    FillUp = SPRITPREISPROLITER * FillUp;
    format(string,sizeof(string),"* Fahrzeug für $%d aufgetankt. (Preis pro Liter: $%d)",FillUp,SPRITPREISPROLITER);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    GivePlayerMoney(i, - FillUp);
    //SBizzInfo[i][sbTill] += FillUp;
    //ExtortionSBiz(i, FillUp);
    Refueling[i] = 0;
    UnFreezePlayer(i);
    return 1;
    }
    else
    {
    format(string,sizeof(string),"* Du hast nicht genug Geld zum Tanken, Kosten: $%d / Liter.",SPRITPREISPROLITER);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    UnFreezePlayer(i);
    return 1;
    }
    }
    }
    }
    }
    }
    return 1;
    }