Üdv, próbálok készíteni egy 10 db-os checkpoint [fuvarozós] scriptet de nem nagyon megy.
A 2. checkpoint-ba ha belemegyek nem történik semmi...
Van egy munka választós dialog, abból a fuvarozós rész ez:
SetPlayerTeam(playerid, 8);
SetPlayerFacingAngle(playerid, 92.2933);
SetPlayerPos(playerid, 2283.5850, 2062.8411, 10.8207);
HideMenuForPlayer(tele, playerid);
TogglePlayerControllable(playerid, true);
SetPlayerSkin(playerid,5);
new string[255];
new pName[30];
GetPlayerName(playerid, pName, 30);
format(string, 280,\"%s Mostantól a 24/7 italcég fuvarozója.\", pName);
SendClientMessageToAll(COLOR_CHARTREUSE, string);
SetPlayerRaceCheckpoint(playerid,0, 2149.593500,2107.536400,10.663200, 0.000000,0.000000,0.000000, 5.0);
És van maga az EnterCheckpont rész:
public OnPlayerEnterRaceCheckpoint(playerid)
{
if(GetPlayerTeam(playerid) == fuvaros)
{
switch(playerid)
{
case 1:
{
DisablePlayerRaceCheckpoint(playerid);
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 10.0);
SendClientMessage(playerid, COLOR_LIME, \"Ellenõrzõpont 10/1\");
SetPlayerRaceCheckpoint(playerid,0, 2229.5994,2429.0188,10.6613, 2490.2437,2511.4233,10.8101, 5.0);
}
case 2:
{
DisablePlayerRaceCheckpoint(playerid);
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 10.0);
SendClientMessage(playerid, COLOR_LIME, \"Ellenõrzõpont 10/2\");
SetPlayerRaceCheckpoint(playerid,0, 2490.2437,2511.4233,10.8101, 2597.0022,2231.5420,10.6645, 5.0);
}
case 3:
{
DisablePlayerRaceCheckpoint(playerid);
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 10.0);
SendClientMessage(playerid, COLOR_LIME, \"Ellenõrzõpont 10/3\");
SetPlayerRaceCheckpoint(playerid,0, 2597.0022,2231.5420,10.6645, 2887.3572,2446.4065,10.8076, 5.0);
}
} //éssatöbbi
}
return 1;
}
Tehát hogy mi lehet a hiba, vagy hogy lehetne kivitelezni normálisan egy 10db-os racecheckpoint [munka] rendszert?
Köszönöm!
Ez az a rész ami nem jó.
switch(playerid)
Én így oldanám meg:
public OnPlayerEnterRaceCheckpoint(playerid)
{
if(GetPlayerTeam(playerid) == fuvaros)
{
switch(GetPVarInt(playerid, \"Részek\"))
{
case 1:
{
SetPVarInt(playerid, \"Részek\", +1); // hozzáadunk 1-et
DisablePlayerRaceCheckpoint(playerid);
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 10.0);
SendClientMessage(playerid, COLOR_LIME, \"Ellenõrzõpont 10/1\");
SetPlayerRaceCheckpoint(playerid,0, 2229.5994,2429.0188,10.6613, 2490.2437,2511.4233,10.8101, 5.0);
}
case 2:
{
SetPVarInt(playerid, \"Részek\", +1); // megint hozzáadunk 1-et
DisablePlayerRaceCheckpoint(playerid);
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 10.0);
SendClientMessage(playerid, COLOR_LIME, \"Ellenõrzõpont 10/2\");
SetPlayerRaceCheckpoint(playerid,0, 2490.2437,2511.4233,10.8101, 2597.0022,2231.5420,10.6645, 5.0);
}
case 3:
{
SetPVarInt(playerid, \"Részek\", +1); // és megint . . .
DisablePlayerRaceCheckpoint(playerid);
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 10.0);
SendClientMessage(playerid, COLOR_LIME, \"Ellenõrzõpont 10/3\");
SetPlayerRaceCheckpoint(playerid,0, 2597.0022,2231.5420,10.6645, 2887.3572,2446.4065,10.8076, 5.0);
}
} //éssatöbbi
}
return 1;
}
A dialog résznél pedig:
SetPVarInt(playerid, \"Részek\", 1);
SetPlayerTeam(playerid, 8); // A checkpointnál fuvaros van itt meg 8? :D
SetPlayerFacingAngle(playerid, 92.2933);
SetPlayerPos(playerid, 2283.5850, 2062.8411, 10.8207);
HideMenuForPlayer(tele, playerid);
TogglePlayerControllable(playerid, true);
SetPlayerSkin(playerid,5);
new string[255];
new pName[30];
GetPlayerName(playerid, pName, 30);
format(string, 280,\"%s Mostantól a 24/7 italcég fuvarozója.\", pName);
SendClientMessageToAll(COLOR_CHARTREUSE, string);
SetPlayerRaceCheckpoint(playerid,0, 2149.593500,2107.536400,10.663200, 0.000000,0.000000,0.000000, 5.0);
Elvileg ez így mûködik. Ha valamit rosszul írtam azért bocs, nem pawnoban, hanem itt írtam.