Hallo Community,
Ich habe ein Problem mit einem Job den ich gestern Angefangen habe zu Scripten der aber nicht Richtig Funktioniert.
Hier die Erklärung wie es Sein sollte:
Also man startet den Job mit /startkanal dann muss man in den Kanal rein gehen damit der der Spieler die Checkpoints bekommt damit er die ganzen Rohre Repariert.
Mein Problem ist aber das er nur einen Checkpoint anzeigt und mehr dann auch nicht.
Hier ist mal der Code.
enum rohrtruk{Float:rorx,Float:rory,Float:rorz};
new const kanalrohre[][rohrtruk] = {
{1929.8137,-1924.8713,54.4226},
{1956.0355,-1926.3319,54.6801},
{1987.3923,-1924.7682,54.4044},
{2010.2902,-1924.1105,56.0204},
{2037.3839,-1926.7302,54.7571},
{2081.1785,-1924.9680,55.0217},
{2105.1272,-1933.3962,54.8906},
{2120.3411,-1929.2815,53.7099},
{2140.9414,-1939.9978,54.9471},
{2152.5525,-1936.1401,53.9214}
};
if(IsPlayerInRangeOfPoint(playerid,1,2608.4004,-2134.6606,0.0480))//Kanal Enter
{
if(SpielerInfo[playerid][Job]==10)
{
SetPlayerCheckpoint(playerid,1929.8137,-1924.8713,54.4226,1.0);
SetPlayerPos(playerid,1920.2080,-1925.5753,54.5467);
TextDrawShowForPlayer(playerid,freeze_Textdraw0);
TextDrawShowForPlayer(playerid,freeze_Textdraw1);
TextDrawShowForPlayer(playerid,freeze_Textdraw2);
TogglePlayerControllable( playerid, 0 );
SetTimerEx("FreezeTimer", 5000, false, "i", playerid);
}
return 1;
}
Und bei OnPlayerEnterCheckpoint:
if(SpielerInfo[playerid][Job]==10)
{
if(IsPlayerInRangeOfPoint(playerid,5,2608.4004,-2134.6606,0.0480))
{
if(JobDuty[playerid]==0)
{
DisablePlayerCheckpoint(playerid);
new rohr;
if(rohr==1)
{
for(new i=0; i<=sizeof(kanalrohre); i++)
{
if(IsPlayerInRangeOfPoint(playerid,5,kanalrohre[i][rorx],kanalrohre[i][rory],kanalrohre[i][rorz]))
{
DisablePlayerCheckpoint(playerid);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid, false);
ApplyAnimation(playerid, "BEACH", "Lay_Bac_Loop", 4.0, 1, 0, 0, 0, 0);
SetTimerEx("UnfreezeRepairPlayer",4500, false, "d", playerid);
SetPlayerCheckpoint(playerid,kanalrohre[i+1][rorx],kanalrohre[i+1][rory],kanalrohre[i+1][rorz],1.0);
{
SendClientMessage(playerid, COLOR_ROT, "Du hast dir durch dieses Rohr 50€ verdient. Gehe zum Nächsten Checkpoint.");
GibGeld(playerid,50);
SpielerSpeichern(playerid);
}
return 1;
}
else if(IsPlayerInRangeOfPoint(playerid, 3.0, 2170.6145,-1944.5775,54.8270))
{
{
SendClientMessage(playerid, COLOR_GRAD2, "* Du bist nun Fertig mit dem Job. Deine endsumme beträgt (+$500).");
SendClientMessage(playerid, COLOR_GRAD4, "* Um erneut die Rohre zu Repairen, musst du lediglich erneut in den Dienst gehen.");
JobDuty[playerid] = 0;
SetPlayerSkin(playerid, SpielerInfo[playerid][Skin]);
}
}
}
}
}
}
}
Hoffe mir kann einer Helfen weil bei dem Checkpoint den ich bekomme und Rein laufe passiert nichts.