Szerző Téma: több cp bug  (Megtekintve 753 alkalommal)

több cp bug
« Dátum: 2014. február 12. - 16:12:03 »
0 Show voters
ü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...
« Utoljára szerkesztve: 2014. február 12. - 16:14:34 írta speti9603 »

Nem elérhető TheDon

  • 159
    • Profil megtekintése
több cp bug
« Válasz #1 Dátum: 2014. február 12. - 19:15:19 »
0 Show voters
mert minden case végén kell break;   vagyis: case 0: {valami; break;}

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
több cp bug
« Válasz #2 Dátum: 2014. február 12. - 19:24:54 »
0 Show voters
Idézetet írta: TheDon date=1392228919\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46466\" data-ipsquote-contentclass=\"forums_Topic
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.
« Utoljára szerkesztve: 2014. február 12. - 19:28:17 írta Dfoglalo »

Nem elérhető TheDon

  • 159
    • Profil megtekintése
több cp bug
« Válasz #3 Dátum: 2014. február 12. - 19:37:36 »
0 Show voters
Sehová sem kötelezõ a break, anélkül is mûködik.[/quote]
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.

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
több cp bug
« Válasz #4 Dátum: 2014. február 12. - 19:58:45 »
0 Show voters
Idézetet írta: TheDon date=1392230256\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46466\" data-ipsquote-contentclass=\"forums_Topic

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]
Véletlenül se idézd be azt a részt, amiben én is leírom ugyanezt, mintha én nem tudnám... Habár az is lehet, hogy csak addig olvastad el, és aztán már meg is untad. :facepalm:
 
(de berakható, habár én sosem tettem, nem nagy gáz, ha a többit is csekkolja, habár tényleg fölösleges)[/quote]


Amúgy szerintem a DisablePlayerCheckpoint(playerid); nem szükséges, mert úgyis létrehozol egy másik CP-t, így az elõzõ eltûnik. De ebben nem vagyok biztos :hmmm:

Nem elérhető TheDon

  • 159
    • Profil megtekintése
több cp bug
« Válasz #5 Dátum: 2014. február 13. - 06:55:26 »
0 Show voters
Dfoglalo.
Nem neked szántam az idézést, hanem kicsit másképp magyaráztam el azt amit írtál.

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
több cp bug
« Válasz #6 Dátum: 2014. február 13. - 07:51:28 »
0 Show voters
Idézetet írta: TheDon date=1392230256\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46466\" data-ipsquote-contentclass=\"forums_Topic

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
}
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető TheDon

  • 159
    • Profil megtekintése
több cp bug
« Válasz #7 Dátum: 2014. február 13. - 08:40:55 »
0 Show voters
Idézetet írta: Kovacs_Richard date=1392274288\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46466\" data-ipsquote-contentclass=\"forums_Topic


 
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
}

 

[/quote]
Bocs igazad van. Csak C#, C meg Java van a fejemben és elfelejtettem, hogy Pawn-ban nem kell.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal