So, nun hab ich ein Jobsystem mit insgesamt 2 Jobs auf die dynamische Weise erstellt... und es funktioniert nicht.
Folgedes Problem, ich gehe von einer Art "ID Überschreitungen" aus, weiß aber keine Lösung. Ich habe 2 Jobs, wenn ich einen davon starte zeigt der mir die falschen Checkpoints und den falschen Text (der Text, der eig. beim anderen Job kommen sollte) an.
So sieht's aus:
new Checkpoint1[MAX_PLAYERS];
new Checkpoint2[MAX_PLAYERS];
enum job_1 {
Float:X,
Float:Y,
Float:Z,
Float:Rad
}
enum job_2 {
Float:X,
Float:Y,
Float:Z,
Float:Rad
}
new Muellabfuhr_Stationen[][job_1] = {
{2356.7480,-1753.2466,14.0043, 5.0},
{2468.4392,-1736.9575,14.0044, 5.0},
{2492.4402,-1683.0251,13.9469, 5.0},
{2483.2607,-1654.7614,13.8996, 5.0},
{2411.7537,-1653.9558,13.9673, 5.0},
{2363.8208,-1654.5842,14.0030, 5.0},
{2323.2871,-1654.7487,14.3918, 5.0},
{2337.4602,-1695.1283,13.9723, 5.0},
{2309.7393,-1727.6522,13.9984, 5.0},
{2185.8481,-1976.9807,14.1186, 5.0}
};
new Strassenfeger_Stationen[][job_2] = {
{1562.1071,-1772.3701,13.2720, 5.0},
{1533.2131,-1740.0784,13.2720, 5.0},
{1471.7781,-1739.9257,13.2720, 5.0},
{1402.1671,-1725.6589,13.2795, 5.0},
{1421.7833,-1697.4537,13.2718, 5.0},
{1421.7950,-1639.4755,13.2720, 5.0},
{1437.6943,-1634.6935,13.2721, 5.0},
{1438.2007,-1691.9915,13.2718, 5.0},
{1398.7441,-1785.4689,13.2721, 5.0},
{1521.6971,-1832.7549,13.2720, 5.0}
};
new vehicleid = GetPlayerVehicleID(playerid),
model = GetVehicleModel(vehicleid);
if(strcmp(cmdtext, "/start1", true) == 0)
{
if(model == 408)
{
Checkpoint1[playerid]=0;
SendClientMessage(playerid, COLOR_LIGHTGREEN, "Job gestartet. Du bist
nun ein Müllmann. Hol den Müll ab und bring ihn zur Deponie.");
SetPlayerCheckpoint(playerid,Muellabfuhr_Stationen[0][X],Muellabfuhr_Stationen[0][Y],Muellabfuhr_Stationen[0][Z],Muellabfuhr_Stationen[0][Rad]);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_RED,"Du bist nicht im Jobauto!");
}
}
if(strcmp(cmdtext, "/start5", true) == 0)
{
{
if(model == 574)
{
Checkpoint2[playerid]=0;
SendClientMessage(playerid, COLOR_LIGHTGREEN, "Job gestartet. Du bist nun Straßenfeger. Halte die Straßen sauber.");
SetPlayerCheckpoint(playerid,Strassenfeger_Stationen[0][X],Strassenfeger_Stationen[0][Y],Strassenfeger_Stationen[0][Z],Strassenfeger_Stationen[0][Rad]);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_RED,"Du bist nicht im Jobauto!");
return 1;
}
}
}
public OnPlayerEnterCheckpoint(playerid)
{
new string[128];
Checkpoint1[playerid]++;
if(Checkpoint1[playerid]==sizeof(Muellabfuhr_Stationen)) {
SendClientMessage(playerid, COLOR_RED, "Job erfolgreich ausgeführt. Der Bürgermeister dankt dir, dass du hilfst, die Stadt sauberzuhalten.");
DisablePlayerCheckpoint(playerid);
GivePlayerMoney(playerid, 250);
SendClientMessage(playerid, COLOR_RED, "Hier ist dein Gehalt. (+$250)");
}
else
{
new trinkgeld = random(9);
SendClientMessage(playerid, COLOR_RED, "Müll aufgeladen, weiter gehts.");
format(string, sizeof(string), "** Du hast $%d Trinkgeld bekommen. **",trinkgeld);
GivePlayerMoney(playerid,trinkgeld);
SendClientMessage(playerid, COLOR_GREEN, string);
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,Muellabfuhr_Stationen[Checkpoint1[playerid]][X],Muellabfuhr_Stationen[Checkpoint1[playerid]][Y],Muellabfuhr_Stationen[Checkpoint1[playerid]][Z],Muellabfuhr_Stationen[Checkpoint1[playerid]][Rad]);
return 1;
}
Checkpoint2[playerid]++;
if(Checkpoint2[playerid]==sizeof(Strassenfeger_Stationen)) {
SendClientMessage(playerid, COLOR_RED, "Job erfolgreich ausgeführt. Der Bürgermeister dankt dir, dass du hilfst, die Stadt sauberzuhalten.");
DisablePlayerCheckpoint(playerid);
GivePlayerMoney(playerid, 230);
SendClientMessage(playerid, COLOR_RED, "Hier ist dein Gehalt. (+$230)");
}
else
{
new trinkgeld = random(9);
SendClientMessage(playerid, COLOR_RED, "Abschnitt erfolgreich gesäubert, weiter gehts.");
format(string, sizeof(string), "** Du hast $%d Trinkgeld bekommen. **",trinkgeld);
GivePlayerMoney(playerid,trinkgeld);
SendClientMessage(playerid, COLOR_GREEN, string);
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,Strassenfeger_Stationen[Checkpoint2[playerid]][X],Strassenfeger_Stationen[Checkpoint2[playerid]][Y],Strassenfeger_Stationen[Checkpoint2[playerid]][Z],Strassenfeger_Stationen[Checkpoint2[playerid]][Rad]);
}
return 1;
}
Ich hoffe mir kann da jemand helfen bzw. das für mich machen
MfG