Hallo wie kann man es machen das man abfragen kann welchem Punkt man am nächsten ist ?
Der punkt der am nähesten dran ist
- Masterman
- 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
-
-
Erklär mal deutlicher! Welcher Punkt?
-
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.
-
Checkpoints?
IsPlayerInRageOfPoint? -
Ohne checkpoints mann soll /tanken eingeben dann soll der Preis der Tankstelle sein pro liter
-
Dann ne IsPlayerInRangeOfPoint Abfrage:
http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint
Also
If /comand etc
ifisplayerinrageofpoint
was soll pasieren
else
SendClientMesage.... -
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;
} -
breadfish.de
Hat das Thema geschlossen.