Hallo zusammen.
Ich habe einen /fill befehl der nicht so ganz funktioniert, mir wurde von Montero Schon gut dabei geholfen und Klappt auch soweit aber es ist noch nicht ganz so richtig und ich weiß nicht wie ich das genau machen müsste:
Es soll so ein /fill (An Tankstelle dann wird auto vollgetankt aber es soll auch die Möglichkeit geben /fill 10 (das dann nur 10 Liter getankt wird))
Dann des weiteren soll /fill für den Job Trucker auch sein, Tankstellen müssen ja Beliefert werden und dafür muss LKW mit Anhänger befüllt werden und dies soll über /fill [MENGE] passieren:
if (strcmp(cmd, "/fill", true) == 0)
{
new veh = GetPlayerVehicleID(playerid);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
if(!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,COLOR_YELLOW, "Du bist in Keinem Fahrzeug:");
return 1;
}
if(IsANoTachoVehicle(veh))
{
SendClientMessage(playerid,COLOR_YELLOW," Ein Fahrrad hat doch keinen Tank.");
return 1;
}
if(IsAtGasStation(playerid))
{
for(new i = 0; i < sizeof(TankstellenInfo); i ++)
{
//new Float:TestX, Float:TestY, Float:TestZ;
//GetPlayerPos(playerid, TestX, TestY, TestZ);
//printf("User: %f %f %f", TestX, TestY, TestZ);
//printf("Tank: %f %f %f", TankstellenInfo[i][tsEntranceX], TankstellenInfo[i][tsEntranceY], TankstellenInfo[i][tsEntranceZ]);
if(IsPlayerInRangeOfPoint(playerid,10.0, TankstellenInfo[i][tsEntranceX], TankstellenInfo[i][tsEntranceY], TankstellenInfo[i][tsEntranceZ]))
{
if(PlayerInfo[playerid][pPtankkey] == 0 || GetPlayerMoney(playerid) >= TankstellenInfo[i][tsEntranceCost])
{
if(PlayerInfo[playerid][pPtankkey] != 0)
{
if(TankstellenInfo[i][tsLocked] == 1)
{
SendClientMessage(playerid,COLOR_RED, "Die Tanke hat geschlossen");
return 1;
}
if(TankstellenInfo[i][tsProducts] == 5000)
{
SendClientMessage(playerid,COLOR_RED, "Die Tankstelle hat kein Benzin mehr");
return 1;
}
if(Refueling[playerid] == 1) {
SendClientMessage(playerid, COLOR_RED, "Du bist gerade am tanken...");
return 1;
}
Refueling[playerid] = 1;
FreezePlayer(playerid);
SendClientMessage(playerid,COLOR_WHITE," Dein Fahrzeug wird betankt, Bitte warten....");
SetTimerEx("Fillup",RefuelWait,0, "ii", playerid, i);
}
}
else
{
GameTextForPlayer(playerid, "~r~Du hast nicht genug Geld", 5000, 1);
}
}
}
}
//else
//{
// SendClientMessage(playerid, COLOR_RED,"Du bist an keiner Tankstelle!");
// return 1;
//}
}
else if(IsPlayerInRangeOfPoint(playerid,90.0, 78.8584, -291.3175, 1.5781))
{
new tmpcar = GetPlayerVehicleID(playerid);
new compcost2 = 50;
if(PlayerInfo[playerid][pJob] != 22)
{
SendClientMessage(playerid, COLOR_WHITE, "du bist kein Trucker");
return 1;
}
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "FEHLER: /fill [Menge]");
return 1;
}
new vehicleid = GetPlayerVehicleID(playerid);
if(IsATruck2(tmpcar))
{
if(!IsTrailerAttachedToVehicle(vehicleid))
{
SendClientMessage(playerid, COLOR_RED, "Du hast keinen anhänger dran");
return 1;
}
new typ=GetPlayerHaul(tmpcar);
if(PlayerHaul2[typ][pLoad2] < PlayerHaul2[typ][pCapasity2])
{
new amount;
amount = strval(tmp);
if(amount < 1 || amount > 1500)
{
SendClientMessage(playerid, COLOR_GREY, " Die Menge muss zwischen 1 und 1500 sein !");
return 1;
}
new check= PlayerHaul2[typ][pLoad2] + amount;
if(check > PlayerHaul2[typ][pCapasity2])
{
format(string, sizeof(string), " Du hast das Limit mit %d Benzin erreicht, Benzin: %d.",PlayerHaul2[typ][pCapasity2],PlayerHaul2[typ][pLoad2]);
SendClientMessage(playerid, COLOR_GREY, string);
return 1;
}
new cost = amount*compcost2;
if(GetPlayerMoney(playerid) >= cost)
{
PlayerHaul2[typ][pLoad2] += amount;
format(string, sizeof(string), "Benzin: %d/%d.", PlayerHaul2[typ][pLoad2],PlayerHaul2[typ][pCapasity2]);
SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
format(string, sizeof(string), "Du hast %d Benzin für $%d gekauft.", amount,cost);
SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
GivePlayerMoney(playerid,-cost);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
return 1;
}
else
{
format(string, sizeof(string), "Du kannst nicht %d Benzin für $%d anfordern!", amount,cost);
SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
return 1;
}
}
else
{
format(string, sizeof(string), "Benzin: %d/%d.", PlayerHaul2[typ][pLoad2],PlayerHaul2[typ][pCapasity2]);
SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
return 1;
}
}
else
{
SendClientMessage(playerid, TEAM_GROVE_COLOR, "Dieses Fahrzeug kann keine Benzin ausliefern.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_YELLOW,"Du bist an keiner Tankstelle!");
}
}