HeyHoo,
Ich hab mir grad ein Individuelles Tanksystem zusammengebastelt (hat 2 Stunden gedauert).
Nun, wenn Ich tanken will, funktioniert das nicht :o
Hier der fill-Befehl und die "FillGas"-FunktioN:
public FillGas(OldFuel, i, playerid, price)
{
new str[50];
new car = GetPlayerVehicleID(playerid);
if(OldFuel < MaxTank[(car)-400])
{
if(IsAtGasStation(playerid) && Motor[i] == false)
{
format(str, sizeof str, "Du hast nicht genug Geld um dein Fahrzeug zu betanken. Der Preis pro Liter liegt bei %d$!", price);
if(GetPlayerMoney(playerid) >= PREIS)
{
Tank[i] ++;
SetTimerEx("FillGas", TANKDAUER * 1, 0, "iiii", Tank[i], i, playerid, price + PREIS);
GivePlayerMoney(playerid, -PREIS);
}
else
{
SendClientMessage(playerid,error, str);
}
}
else
{
format(str, sizeof str, "Du hast dein Fahrzeug für %d$ betankt!", price);
SendClientMessage(playerid,error, str);
}
}
else
{
format(str, sizeof str, "Du hast dein Fahrzeug für %d$ betankt!", price);
SendClientMessage(playerid, info, str);
}
return 1;
}
{
new str[50];
new car = GetPlayerVehicleID(playerid);
if(OldFuel < MaxTank[(car)-400])
{
if(IsAtGasStation(playerid) && Motor[i] == false)
{
format(str, sizeof str, "Du hast nicht genug Geld um dein Fahrzeug zu betanken. Der Preis pro Liter liegt bei %d$!", price);
if(GetPlayerMoney(playerid) >= PREIS)
{
Tank[i] ++;
SetTimerEx("FillGas", TANKDAUER * 1, 0, "iiii", Tank[i], i, playerid, price + PREIS);
GivePlayerMoney(playerid, -PREIS);
}
else
{
SendClientMessage(playerid,error, str);
}
}
else
{
format(str, sizeof str, "Du hast dein Fahrzeug für %d$ betankt!", price);
SendClientMessage(playerid,error, str);
}
}
else
{
format(str, sizeof str, "Du hast dein Fahrzeug für %d$ betankt!", price);
SendClientMessage(playerid, info, str);
}
return 1;
}
ocmd:fill(playerid, params[])
{
if(IsPlayerInAnyVehicle(playerid))
{
if(IsAtGasStation(playerid))
{
new vehicle = GetPlayerVehicleID(playerid); new price = MaxTank[(vehicle)-400]; price -= Tank[vehicle];
if ( Motor[vehicle] == true )
{
SendClientMessage(playerid, error, "Bitte stelle den Motor vor dem Tanken aus!");
}
else
{
if(GetPlayerMoney(playerid) > price*PREIS)
{
TogglePlayerControllable(playerid, 1);
new OldFuel = Tank[vehicle], t = price * TANKDAUER;
SetTimerEx("FillGas", 1000, 0, "iiii", OldFuel, vehicle, playerid, 0);
SendClientMessage(playerid,COLOR_LIGHTRED,"Fahrzeug wird betankt!");
printf("%d",t);
}
else
{
SendClientMessage(playerid, error, "Du hast nicht genug Geld!");
}
}
}
else
{
SendClientMessage(playerid, error, "Du bist an keiner Tankstelle!");
}
}
return 1;
}
{
if(IsPlayerInAnyVehicle(playerid))
{
if(IsAtGasStation(playerid))
{
new vehicle = GetPlayerVehicleID(playerid); new price = MaxTank[(vehicle)-400]; price -= Tank[vehicle];
if ( Motor[vehicle] == true )
{
SendClientMessage(playerid, error, "Bitte stelle den Motor vor dem Tanken aus!");
}
else
{
if(GetPlayerMoney(playerid) > price*PREIS)
{
TogglePlayerControllable(playerid, 1);
new OldFuel = Tank[vehicle], t = price * TANKDAUER;
SetTimerEx("FillGas", 1000, 0, "iiii", OldFuel, vehicle, playerid, 0);
SendClientMessage(playerid,COLOR_LIGHTRED,"Fahrzeug wird betankt!");
printf("%d",t);
}
else
{
SendClientMessage(playerid, error, "Du hast nicht genug Geld!");
}
}
}
else
{
SendClientMessage(playerid, error, "Du bist an keiner Tankstelle!");
}
}
return 1;
}
public IsAtGasStation(playerid)
{
if(IsPlayerConnected(playerid))
{
if(IsPlayerInRangeOfPoint(playerid,15.0,1004.0070,-939.3102,42.1797) || IsPlayerInRangeOfPoint(playerid,15.0,1944.3260,-1772.9254,13.3906)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,-90.5515,-1169.4578,2.4079) || IsPlayerInRangeOfPoint(playerid,15.0,-1609.7958,-2718.2048,48.5391)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,-2029.4968,156.4366,28.9498) || IsPlayerInRangeOfPoint(playerid,15.0,-2408.7590,976.0934,45.4175)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,-2243.9629,-2560.6477,31.8841) || IsPlayerInRangeOfPoint(playerid,6.0,-1676.6323,414.0262,6.9484)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,2202.2349,2474.3494,10.5258) || IsPlayerInRangeOfPoint(playerid,15.0,614.9333,1689.7418,6.6968)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,-1328.8250,2677.2173,49.7665) || IsPlayerInRangeOfPoint(playerid,15.0,70.3882,1218.6783,18.5165)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,2113.7390,920.1079,10.5255) || IsPlayerInRangeOfPoint(playerid,15.0,-1327.7218,2678.8723,50.0625)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,2146.6143,2748.4758,10.3852)||IsPlayerInRangeOfPoint(playerid,15.0,2639.0022,1108.0353,10.3852)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,1598.2035,2198.6448,10.3856)){return 1;}
}
return 0;
}
{
if(IsPlayerConnected(playerid))
{
if(IsPlayerInRangeOfPoint(playerid,15.0,1004.0070,-939.3102,42.1797) || IsPlayerInRangeOfPoint(playerid,15.0,1944.3260,-1772.9254,13.3906)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,-90.5515,-1169.4578,2.4079) || IsPlayerInRangeOfPoint(playerid,15.0,-1609.7958,-2718.2048,48.5391)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,-2029.4968,156.4366,28.9498) || IsPlayerInRangeOfPoint(playerid,15.0,-2408.7590,976.0934,45.4175)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,-2243.9629,-2560.6477,31.8841) || IsPlayerInRangeOfPoint(playerid,6.0,-1676.6323,414.0262,6.9484)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,2202.2349,2474.3494,10.5258) || IsPlayerInRangeOfPoint(playerid,15.0,614.9333,1689.7418,6.6968)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,-1328.8250,2677.2173,49.7665) || IsPlayerInRangeOfPoint(playerid,15.0,70.3882,1218.6783,18.5165)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,2113.7390,920.1079,10.5255) || IsPlayerInRangeOfPoint(playerid,15.0,-1327.7218,2678.8723,50.0625)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,2146.6143,2748.4758,10.3852)||IsPlayerInRangeOfPoint(playerid,15.0,2639.0022,1108.0353,10.3852)) { return 1; }
else if(IsPlayerInRangeOfPoint(playerid,15.0,1598.2035,2198.6448,10.3856)){return 1;}
}
return 0;
}
Hier das "Max-Tank":
new MaxTank[212] = {
90,//Landstalker
65,//Bravura
80,//Buffalo
120,//Linerunner
85,//Perenniel
60,//Sentinel
160,//Dumper
100,//Firetruck
110,//Trashmaster
90,//Stretch
50//Manana
};
90,//Landstalker
65,//Bravura
80,//Buffalo
120,//Linerunner
85,//Perenniel
60,//Sentinel
160,//Dumper
100,//Firetruck
110,//Trashmaster
90,//Stretch
50//Manana
};
//Und so weiter
Keine Scripterrors, doch InGame an der Tanke kann ich nich tanken :o
Bitte um Hilfe
lg