Guten Abend,
ich verwende ocmd und habe mit ocmd einen Befehl Namens /jobstart erstellt. Das ist nicht mein erster Befehl.
Der Befehl ist wie folgt aufgebaut:
ocmd:jobstart (playerid, params[])
{
new jobname[30];
GetPVarString(playerid, "jobname", jobname, sizeof(jobname));
if (!strcmp("pizzaboy", jobname, false))
{
if (GetPVarInt(playerid, "JobStarted") == 1)
{
SetPVarInt(playerid, "JobStarted", 0);
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, lightblue, "* Du hast gerade das Pizza austragen beendet. Du bekommst nun kein Geld.");
}
else
{
if (!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, grey, "Du musst auf einem Pizzaroller sitzen!");
}
else
{
if (!IsVehicleJobVehicle(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, grey, "Du musst auf einem Pizzaroller sitzen!");
}
else
{
ShowPlayerDialog(playerid, PIZZA_JOBSTART_DIALOG, DIALOG_STYLE_LIST, "Linie auswählen", ""white_i"Linie 1 (Los Santos)\nLinie 2 (Los Santos)", "Starten", "Abbrechen");
}
}
}
}
else if (!strcmp("pilot", jobname, false))
{
if (GetPVarInt(playerid, "JobStarted") == 1)
{
SetPVarInt(playerid, "JobStarted", 0);
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, lightblue, "* Du hast gerade dich als Pilot abgemeldet. Du bekommst nun kein Geld für diesen Flug.");
}
else
{
if (!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, grey, "Du musst in einem Job-Flugzeug sitzen!");
}
else
{
if (IsVehicleJobVehicle(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, lightblue, "* Du hast den Job Pilot nun begonnen. Bitte fliege die Checkpoints ab (auf jedem Airport sind 2).");
}
else
{
SendClientMessage(playerid, grey, "Du musst in einem Job-Flugzeug sitzen!");
}
}
}
}
else
{
SendClientMessage(playerid, grey, "Diesen Befehl kannst du nicht benutzen!");
}
return 1;
}
Das Problem ist das wenn ich IsVehicleJobVehicle(GetPlayerVehicleID(playerid)) weglasse, funktioniert der Befehl ohne Probleme. Ist aber IsVehicleJobVehicle(GetPlayerVehicleID(playerid)) dabei, so wird der Befehl nicht ausgeführt und es kommt die Meldung "SERVER: Unknown Command".
Warum ist das so ?
Befehl: IsVehicleJobVehicle
stock IsVehicleJobVehicle(vehicleid)
{
new find = 0;
for (new i = 0; i <= MAX_VEHICLES; i++)
{
if (PizzaBoyCars1[i] == vehicleid)
{
find = 1;
}
if (PizzaBoyCars2[i] == vehicleid)
{
find = 1;
}
if (PizzaBoyCars3[i] == vehicleid)
{
find = 1;
}
if (PilotJobCars1[i] == vehicleid)
{
find = 1;
}
if (PilotJobCars2[i] == vehicleid)
{
find = 1;
}
if (PilotJobCars3[i] == vehicleid)
{
find = 1;
}
if (PilotJobCars4[i] == vehicleid)
{
find = 1;
}
if (TaxiJobVehicles1[i] == vehicleid)
{
find = 1;
}
if (TaxiJobVehicles2[i] == vehicleid)
{
find = 1;
}
if (TaxiJobVehicles3[i] == vehicleid)
{
find = 1;
}
}
return find;
}
Habe das ganze was in IsVehicleJobVehicle steht auch direkt im Befehl eingebunden, was aber keinen Unterschied machte. Immer wenn ich die Überprüfung rausnehme, funktioniert es...
Kennt jemand das Problem ?