Hallo leute, ich habe mal ein paar Fragen übrig.
Da ich nicht nur so ein normales langweiliges Tanksystem möchte, dachte ich mir dass ich mehrere Tankarten zur verfügung stelle.
Meine Frage ist es jetzt, wie weise ich die verschiedenen Fahrzeuge den verschiedenen Tankarten zu?
Es soll:
Benzin, Diesel, Kerosin und Gas vorhanden sein.
Das nächste wäre, wie ich die Zeit für die jeweiligen Tankart bestimme, indem sie ihre Literzahl verlieren.
Bsp: Diesel brauch 20 Sekunden bis ein Liter weg geht oder 20 Meter je nachdem,
Benzin 15 Sekunden/Meter
Versteht ihr? Logischerweise sollen sie dann auch unterschiedlich viel kosten.
Und jedes Auto hat seine vorgegebene Tankmenge also bsp. Sultan 50liter Tank und Infernus nur 43 Liter.
Bis jetzt habe ich mein Tanksystem so:
Defines:
#define BENZINPREIS 3
forward Auftanken(playerid);
#define MAX_GAS 17
new Tank[MAX_VEHICLES], bool:TanktGerade[MAX_VEHICLES]=false, tanktimer[MAX_PLAYERS];
Timer:
for (new i=0; i< MAX_VEHICLES; i++)
{
GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
Motor[i] = false;
Tank[i] = 100;
}
Tanken:
if(newkeys & KEY_LOOK_BEHIND) {
for(new g;g<MAX_GAS;g++) {
new car = GetPlayerVehicleID(playerid);
if(GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid,error,"Du bist in keinem Fahrzeug (oder kein Fahrer)!");
else if(TanktGerade[car]) return SendClientMessage(playerid,error,"Du bist bereits dabei dein Auto aufzutanken!");
else if(Motor[car] == true) return SendClientMessage(playerid,error,"Du musst vor dem Tanken den Motor ausschalten!");
else if(!IsPlayerInRangeOfPoint(playerid,Gasstation[g][Gasradius], Gasstation[g][Gasx],Gasstation[g][Gasy],Gasstation[g][Gasz])) return SendClientMessage(playerid,error,"Du bist an keiner Tankstelle!"); {
new ZuTanken = 100-Tank[car];
new preis = ZuTanken * BENZINPREIS;
if(GetPlayerMoney(playerid)-preis < 0) return SendClientMessage(playerid,error,"Du hast nicht genug Geld!");
GivePlayerMoney(playerid, -preis);
SendClientMessage(playerid, info, "Tankvorgang wird gestartet...");
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,0);
TanktGerade[car] = true;
tanktimer[playerid] = SetTimerEx("Auftanken",5000,true,"i",playerid); }
}
}
Public's
public BenzinVerlust()
{
for(new i=0; i<MAX_VEHICLES; i++)
{
if (Motor[i] == true)
{
Tank[i] = Tank[i]-1;
if (Tank[i]<1)
{
Tank[i] = 0;
GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
Motor[i] = false;
}
}
}
return 1;
}
{
new car = GetPlayerVehicleID(playerid);
Tank[car] = Tank[car] +1;
if(Tank[car] >= 100)
{
TanktGerade[car] = false;
Tank[car] = 100;
SendClientMessage(playerid, erfolg, "Dein Fahrzeug wurde für %i€ vollgetankt.");
TogglePlayerControllable(playerid,1);
KillTimer(tanktimer[playerid]);
}
return 1;
}
Das war der Code.
Ich hoffe ihr könnt mir auf die Sprünge helfen, wäre echt sehr Dankbar dafür
Mit freundlichen Grüßen
TVPikachu
Jeffry: