[Mini-Script] Tankstellen
Sehr geehrte Damen und Herren,
Hier eine kleine Nützlichkeit für eure Server: Alle Positionen der Tankstellen in San Andreas mit Abfragefunktion. Dies sollte man nicht als Filterscript oder ähnliches sehen, sondern als kleine Hilfe, damit ihr euch nicht die lästige Arbeit machen müsst, alle Tankstellen auf der Map zusammen zu suchen. Die einzellnen Tankstellen sind nicht beschrieben, also kann ich nur die Positionen aller Tankstellen (insgesamt 19) bieten.
Installation
________________________________________________________________________
Zuerst must du folgendes "Forward" in dein Script einfügen.
Dies ist nötig um später bei dem Befehl "/auftanken" oder ähnlichem, kurz und knapp abzufragen, ob der Spieler sich in der Nähe einer Tankstelle aufhält.
forward IsPlayerAtTankstelle(playerid);
Dann ist das dazugehörige "Public" nötig.
Das ist der dazugehörige Code für das vorherige "Forward". Dies sind nun die Positionen aller Tankstellen die nacheinander abgefragt werden. Wenn das stimmt, also sich der Spieler im Umkreis von 5 Metern um eine Tankstelle aufhält, dann wird per [return 1;] die "Antwort ja" zurückgesendet.
public IsPlayerAtTankstelle(playerid)
{
if(IsPlayerConnected(playerid))
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, 1944.4954,-1772.7089,13.3906))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 1004.2097,-940.1768,42.1797))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 651.8976,-564.9250,16.3359))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -90.8697,-1169.0400,2.4194))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -1605.8799,-2714.1003,48.5335))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -2244.3743,-2561.0940,31.9219))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -2029.6212,156.7755,28.8359))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -1675.8535,413.2264,7.1797))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -2405.9473,976.4783,45.2969))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -1328.2087,2677.4607,50.0625))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -737.0900,2742.5413,47.2266))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 611.6671,1694.5723,6.9922))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 70.5098,1218.7645,18.8123))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, -1470.9233,1864.3240,32.6328))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 2149.5557,2747.8027,10.8203))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 2640.1379,1106.3120,10.8203))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 1596.4186,2199.0229,10.8203))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 2202.3293,2474.0010,10.8203))
{return 1;}
if(IsPlayerInRangeOfPoint(playerid, 5.0, 2114.8806,920.3449,10.8203))
{return 1;}
}
return 0;
}
Funktion
________________________________________________________________________
Also nochmals, hier mit einem Beispiel ist dargelegt, wie das ungefair aussehen sollte. Wichtig ist, dass ich die Funktion für das eigendliche Tanken nicht mitgeliefert hab. Da müst ihr also auf andere Toutorials zugreifen. Dies sind lediglich die Positionen der Tankstellen.
if(strcmp("/auftanken", cmdtext,true) ==0)
{
if(IsPlayerInAnyVehicle(playerid))
{ // Ob der Spieler in einem Fahrzeug ist.
if(IsPlayerAtTankstelle(playerid))
{ // Ob der Spieler an der Tankstelle ist.
// Euer Code zum Auftanken und Bezahlen.
}
else if(!IsPlayerAtTankstelle(playerid))
{
SendClientMessage(playerid,Farbcode,"Du bist an keiner Tankstelle!");
return 1;
}
}
else if(!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,Farbcode,"Du sitzt in keinem Fahrzeug!");
return 1;
}
}
________________________________________________________________________
Falls Fragen offenstehen, bitte im Thread posten.
Wenn ihr Fehler im Script entdeckt habt, bitte bei mir melden.
mit freundlichen Grüßen
Mr.Master