Beitrag von Bananenstaude ()
Dieser Beitrag wurde vom Autor gelöscht ().
Ich würde dir, um Resourcen zu sparen, empfehlen nicht random(7) zu benutzen sondern direkt 2000 + random(500) um einen zufälligen Geldbetrag zu bekommen.
Warum so umständlich?
if(fcheckpoint[playerid]==22) {
new randomAmount = (rand(700) + 2000);
new string[30];
format(string, sizeof(string), "[ERFOLG]reich %i$ bekommen!", randomAmount);
SCM(playerid, GRUEN, string);
GivePlayerMoney(playerid, randomAmount);
DisablePlayerCheckpoint(playerid);
RemovePlayerFromVehicle(playerid);
}
// Cooper, hör auf ständig schneller zu sein als ich *g* Schon der dritte Post ;p
Bitte schreib doch die Koordinaten für die Checkpoints in ein Array und lasse dann dieses auslesen, damit sparst du dir gefühlt 90% der Zeilen.
Auch die auftretenden Fehler sind so schneller zu erkennen und auszumerzen.
new fCheckpoints[/*Anzahl*/][3/*X,Y,Z*/] =
{
{},
{},
..
{}
};
Dann kannst du ganz einfach bei OnPlayerEnterCheckpoint den nächsten CP anzeigen und die Aktionen durchführen lassen.
if(fcheckpoint[playerid]>0)//Spieler in Farmmission
{
if(fcheckpoint[playerid]<sizeof(FCheckpoints))
{
fcheckpoint[playerid]++;//Um eins erhöhen..
SetPlayerCheckpoint(playerid,FCheckpoints[fcheckpoint[playerid][0],FCheckpoints[fcheckpoint[playerid][1],FCheckpoints[fcheckpoint[playerid][2],5.0);//Checkpoint anzeigen lassen (X,Y,Z)
}
else
{
//Letzter CP; Geld geben..
}
}
Wenn dann so:
if(fcheckpoint[playerid]==1)
{
SetPlayerCheckpoint(playerid,-1135.4192,-1116.0123,128.2725,5.0);
fcheckpoint[playerid]=2;
return 1;
}
else if(fcheckpoint[playerid]==2) //Das else fehlt.
{
SetPlayerCheckpoint(playerid,-1211.1367,-1102.4056,128.2656,5.0);
fcheckpoint[playerid]=3;
}
Aber diese Möglichkeit würde ich dir nicht Empfehlen.