üdv hogy tudnám megcsinálni ha belemegyek egy cpbe akkor végrehatjsa az adott parancsot majd megjelenik a kövi cp és ott is majd az utolsó ahol szintén parancsot hajt végre
public OnPlayerEnterCheckpoint(playerid)
{
if(checkpoint[playerid]==1){
new frand = random(2);
switch(frand)
{
case 0: { SendClientMessage(playerid,COLOR_WHITE,\"*titok mi van ide írva*\"); DisablePlayerCheckpoint(playerid);SetPlayerCheckpoint(playerid,1273.3054,296.6645,19.5547,3);checkpoint[playerid]=2;GetPlayerSkin(playerid); }
case 1: { SendClientMessage(playerid,COLOR_RED,\"*ez is titok*\"); SpawnPlayer(playerid); SetPlayerTeam(playerid,TEAM_RAB); DisablePlayerCheckpoint(playerid);
}
}
if(checkpoint[playerid]==2){
SendClientMessage(playerid,COLOR_ORANGE,\"titok\");
SendClientMessage(playerid,COLOR_WHITE,\"titok\");
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,1273.3054,296.6645,19.5547,3);checkpoint[playerid]=3;
SetPlayerSkin(playerid, 189);
}
if(checkpoint[playerid]==3){
SendClientMessage(playerid,COLOR_GREEN,\"titok\");
SetPlayerScore(playerid, GetPlayerScore(playerid) + 200);
DisablePlayerCheckpoint(playerid);
SetPlayerSkin(playerid, GetPlayerSkin(playerid));
SetPlayerTeam(playerid,TEAM_RAB);
SpawnPlayer(playerid);
}
}
return 1;
}
mert itt az a gond ha belemegyek az elsõ cpbe akkor lefut az egész egybe...
mert minden case végén kell break; vagyis: case 0: {valami; break;}
Sehová sem kötelezõ a break, anélkül is mûködik (de berakható, habár én sosem tettem, nem nagy gáz, ha a többit is csekkolja, habár tényleg fölösleges)... Amúgy a switch-be tett érték mindig a következõ CP értéke legyen. Ezt mindig a CP-be éréskor állítsd, és menj is végig az elágazáson, az új értékkel. Így mindig a soron következõ CP-t fogod kapni. Tehát amikor a CP-be ér a játékos, az érték növekedjen 1-el, és utána futtasd le az elágazást. Ja és kösd playerid-hez a switch-ben megadott értéket, mert keveredés lesz, ha nem.
public OnPlayerEnterCheckpoint(playerid)
{
EzaCPjon[playerid]++;
switch(EzaCPjon[playerid])
{
{
case 0: { SendClientMessage(playerid,COLOR_WHITE,\"*titok mi van ide írva*\"); DisablePlayerCheckpoint(playerid);SetPlayerCheckpoint(playerid,1273.3054,296.6645,19.5547,3);checkpoint[playerid]=2;GetPlayerSkin(playerid); }
case 1: { SendClientMessage(playerid,COLOR_RED,\"*ez is titok*\"); SpawnPlayer(playerid); SetPlayerTeam(playerid,TEAM_RAB); DisablePlayerCheckpoint(playerid);
}
}
return 1;
}
Valahogy így.
Sehová sem kötelezõ a break, anélkül is mûködik.
Nem kötelezõ de a break nélkül végig lép az összes értéken és végrehajtja a sorokat. Ezért kell a break a case-ek végeire hogy ne lépjen tovább.
[/quote]
nem éppen...mivel a blokkot figyelembe veszi...
case 0:
{
// kód
}
case 1:
{
// kód
}