Szerző Téma: Hogy használjam a "switch" -et?[kezdõ]  (Megtekintve 1151 alkalommal)

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Hogy használjam a "switch" -et?[kezdõ]
« Dátum: 2014. szeptember 13. - 23:40:54 »
0 Show voters
Sziasztok! Vlaki adna róla egy leírást, hogy hogyan használjam a switchet?

Szeretnék egy olyat, hogy a textdrawba alul(már megvan) írja ki hogy melyik frakcióban vagyok.


Lennének frakcióidk, 0- civil, 1- rendõrség, 2- Vagos


És hogy csináljam, hogy a textdrawba ne a frakció IDjét, hanem a nevét írja ki?


Valaki írna errõl egy tutorialt részletesen? Keresgéltem, de nem nagyon találtam :(


Nagy segítség lenne!
« Utoljára szerkesztve: 2014. szeptember 14. - 01:51:37 írta ZyZu. »

Nem elérhető rayle

  • 174
    • Profil megtekintése
Hogy használjam a "switch" -et?[kezdõ]
« Válasz #1 Dátum: 2014. szeptember 13. - 23:56:13 »
0 Show voters
Ugyanolyan, mintha if -el ellenõriznéd, csak itt nyitsz neki egy elágazást. Tehát:
 

new szam = random(5);
switch(szam)
{
case 0:
{
SendClientMessageToAll(-1, \"A random szám értéke: 0\");
}
        case 1:
{
SendClientMessageToAll(-1, \"A random szám értéke: 1\");
}
        case 2:
{
SendClientMessageToAll(-1, \"A random szám értéke: 2\");
}
        case 3:
{
SendClientMessageToAll(-1, \"A random szám értéke: 3\");
}
        case 4:
{
SendClientMessageToAll(-1, \"A random szám értéke: 4\");
}
default:
{
                SendClientMessageToAll(-1, \"A random szám értéke: ismeretlen\");
// A default ugyanolyan, mint az if, else if ellenõrzésekben az else, tehát ha egyik feltétel sem igaz, akkor fut le.
                // Ebben a példában ez nem fog lefutni, mivel mind az 5 értéket leellenõriztük.
}
}

 
ugyanúgy mûködik, mint ez:
 
new szam = random(5);
if(szam == 0) SendClientMessageToAll(-1, \"A random szám értéke: 0\");
else if(szam == 1) SendClientMessageToAll(-1, \"A random szám értéke: 1\");
else if(szam == 2) SendClientMessageToAll(-1, \"A random szám értéke: 2\");
else if(szam == 3) SendClientMessageToAll(-1, \"A random szám értéke: 3\");
else if(szam == 4) SendClientMessageToAll(-1, \"A random szám értéke: 4\");
else SendClientMessageToAll(-1, \"A random szám értéke: ismeretlen\"); // az else ugyanolyan, mint a switch elágazásokban a default.

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Hogy használjam a "switch" -et?[kezdõ]
« Válasz #2 Dátum: 2014. szeptember 14. - 00:25:34 »
0 Show voters
Én esetemben hogyan mukodne a kód?

Hogy használjam a "switch" -et?[kezdõ]
« Válasz #3 Dátum: 2014. szeptember 14. - 01:24:30 »
0 Show voters



Elkezdem írni a kódot...
 
switch($csapat)

 
XD túl sok volt a php :D
 


new frakciotext[32];
switch(frakcioid) {
    case 0: frakciotext = \"Civil\";
    case 1: frakciotext = \"Rendõr\";
    case 2: frakciotext = \"Vagos\";
    default: frakciotext = \"N/A\";
}
new string[128];
format(string,128,\"Egyéb infó, bla bla bla... Frakció: %s\",frakciotext);
TextDrawSetString(textdraw,string);

 
Ha hibás, csak annyit tudok mondani: nézd meg mikor írtam ezt.. :D
Itt át kell írnod a dolgokat.. például, hogy mit írjon ki alúlra, a frakcióid-t stb..

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Hogy használjam a "switch" -et?[kezdõ]
« Válasz #4 Dátum: 2014. szeptember 14. - 15:04:48 »
0 Show voters
Hm, itt is elkellene egy segítség.
Hogy csináljam, hogy a textdrawba frakció -nál ne a frakció számát, hanem a nevét irja?:
 
stock getFKName(const fkID)
{
switch(fkID)
{
       case 0: frakciotext = \"Civil\";
       case 1: frakciotext = \"Rendõr\";
       case 2: frakciotext = \"Vagos\";
       default: frakciotext = \"N/A\";
}
}

 

CMD:maketagsag(playerid,params[])
{
if(Belepve[playerid])
{
    if(JatekosInfo[playerid][AdminSzint] >= 1337)
    {
        new id;
        new frakcioid;
   if(sscanf(params,\"ui\",id,frakcioid)) return MSG(playerid,COLOR_LIGHTRED,\"Használata: /maketagsag [játékosid] [frakcióid]\");
   {
      if(IsPlayerConnected(id))
      {
          if(frakcioid >= 0 && frakcioid <=13)
          {
            new file[128];
            GetPlayerName(playerid,nev,sizeof(nev));
            format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
            if(fexist(file) && Belepve[playerid] == 1)
            {
                new neve[MAX_PLAYER_NAME];
                GetPlayerName(playerid,nev,sizeof(nev));
                GetPlayerName(playerid,neve,sizeof(neve));
                JatekosInfo[id][Frakcio] = frakcioid;
                   dini_IntSet(file,\"Frakcio\",JatekosInfo[id][Frakcio]);
                   new uzenet[128];
                   new uzenet2[128];
                   printf(\"%s berakta %-t a(z) %i IDjû frakcióba!\",nev,neve,frakcioid);
                   format(uzenet,sizeof(uzenet),\"Beraktad %s -t a(z) %i IDjû frakcióba!\",neve,frakcioid);
               MSG(playerid,COLOR_LIGHTBLUE,uzenet);
               format(uzenet2,sizeof(uzenet2),\"Egy admin berakott téged a(z) %i-s IDjû frakcióba!\",frakcioid);
               MSG(id,COLOR_OOC,uzenet2);
               TextDrawShowForPlayer(id,infovonal[playerid]);
               new szoveg[128];
               format(szoveg,sizeof(szoveg),\"Bank: %d | Szint: %d| Frakcio: %i | Adminszint: %d\",JatekosInfo[playerid][bank],JatekosInfo[playerid][szint], JatekosInfo[playerid][Frakcio] ,JatekosInfo[playerid] [AdminSzint]);
               TextDrawSetString(infovonal[id],szoveg);
               TextDrawShowForPlayer(id, Box[playerid]);
               TextDrawShowForPlayer(id, Ft[playerid]);
            }
             }
          else MSG(playerid,COLOR_LIGHTRED,\"Nincs ilyen frakcióID!\");
      }
      else MSG(playerid,COLOR_LIGHTRED,\"Nincs ilyen játékos!\");
   }
    }
    else
    {
        if(JatekosInfo[playerid][AdminSzint] >= 1)
        {
            MSG(playerid,COLOR_LIGHTRED,\"Nem elegendõ az adminszinted ehhez a parancshoz!\");
        }
    }
}
return 1;
}

Hogy használjam a "switch" -et?[kezdõ]
« Válasz #5 Dátum: 2014. szeptember 14. - 15:32:23 »
0 Show voters
miután bezártad a switchet, térj vissza a frakciotext-el.
return frakciotext;
majd a stockot használd mindenhol, valamint %i helyett %s t, mint stringet

Nem elérhető rayle

  • 174
    • Profil megtekintése
Hogy használjam a "switch" -et?[kezdõ]
« Válasz #6 Dátum: 2014. szeptember 14. - 15:54:35 »
0 Show voters
stock getFKName(const fkID)
{
    new frakciotext[32];
    switch(fkID)
    {
        case 0: frakciotext = \"Civil\";
        case 1: frakciotext = \"Rendõr\";
        case 2: frakciotext = \"Vagos\";
        default: frakciotext = \"N/A\";
    }
    return frakciotext;
}

 

CMD:maketagsag(playerid,params[])
{
        if(Belepve[playerid])
        {
            if(JatekosInfo[playerid][AdminSzint] >= 1337)
            {
                new id;
                new frakcioid;
                        if(sscanf(params,\"ui\",id,frakcioid)) return MSG(playerid,COLOR_LIGHTRED,\"Használata: /maketagsag [játékosid] [frakcióid]\");
                        {
                                if(IsPlayerConnected(id))
                                {
                                    if(frakcioid >= 0 && frakcioid <=13)
                                    {
                                                new file[128];
                                                GetPlayerName(playerid,nev,sizeof(nev));
                                                format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
                                                if(fexist(file) && Belepve[playerid] == 1)
                                                {
                                                    new neve[MAX_PLAYER_NAME];
                                                    GetPlayerName(playerid,nev,sizeof(nev));
                                                    GetPlayerName(playerid,neve,sizeof(neve));
                                                    JatekosInfo[id][Frakcio] = frakcioid;
                                                dini_IntSet(file,\"Frakcio\",JatekosInfo[id][Frakcio]);
                                                new uzenet[128];
                                                new uzenet2[128];
                                                printf(\"%s berakta %-t a(z) %s nevû frakcióba!\",nev,neve,getFKName(frakcioid));
                                                format(uzenet,sizeof(uzenet),\"Beraktad %s -t a(z) %i nevû frakcióba!\",neve,getFKName(frakcioid));
                                                        MSG(playerid,COLOR_LIGHTBLUE,uzenet);
                                                        format(uzenet2,sizeof(uzenet2),\"Egy admin berakott téged a(z) %s nevû frakcióba!\",getFKName(frakcioid));
                                                        MSG(id,COLOR_OOC,uzenet2);
                                                        TextDrawShowForPlayer(id,infovonal[playerid]);
                                                        new szoveg[128];
                                                        format(szoveg,sizeof(szoveg),\"Bank: %d | Szint: %d| Frakcio: %s | Adminszint: %d\",JatekosInfo[playerid][bank],JatekosInfo[playerid][szint], getFKName(JatekosInfo[playerid][Frakcio]) ,JatekosInfo[playerid] [AdminSzint]);
                                                        TextDrawSetString(infovonal[id],szoveg);
                                                        TextDrawShowForPlayer(id, Box[playerid]);
                                                        TextDrawShowForPlayer(id, Ft[playerid]);
                                                }
                                }
                                    else MSG(playerid,COLOR_LIGHTRED,\"Nincs ilyen frakcióID!\");
                                }
                                else MSG(playerid,COLOR_LIGHTRED,\"Nincs ilyen játékos!\");
                        }
            }
            else
            {
                if(JatekosInfo[playerid][AdminSzint] >= 1)
                {
                    MSG(playerid,COLOR_LIGHTRED,\"Nem elegendõ az adminszinted ehhez a parancshoz!\");
                }
            }
        }
        return 1;
}

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Hogy használjam a "switch" -et?[kezdõ]
« Válasz #7 Dátum: 2014. szeptember 14. - 16:53:00 »
0 Show voters
Idézetet írta: rayle date=1410702875\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50610\" data-ipsquote-contentclass=\"forums_Topic

stock getFKName(const fkID)
{
    new frakciotext[32];
    switch(fkID)
    {
        case 0: frakciotext = \"Civil\";
        case 1: frakciotext = \"Rendõr\";
        case 2: frakciotext = \"Vagos\";
        default: frakciotext = \"N/A\";
    }
    return frakciotext;
}

 

CMD:maketagsag(playerid,params[])
{
        if(Belepve[playerid])
        {
            if(JatekosInfo[playerid][AdminSzint] >= 1337)
            {
                new id;
                new frakcioid;
                        if(sscanf(params,\"ui\",id,frakcioid)) return MSG(playerid,COLOR_LIGHTRED,\"Használata: /maketagsag [játékosid] [frakcióid]\");
                        {
                                if(IsPlayerConnected(id))
                                {
                                    if(frakcioid >= 0 && frakcioid <=13)
                                    {
                                                new file[128];
                                                GetPlayerName(playerid,nev,sizeof(nev));
                                                format(file,sizeof(file),\"/Karakterek/%s.ini\",nev);
                                                if(fexist(file) && Belepve[playerid] == 1)
                                                {
                                                    new neve[MAX_PLAYER_NAME];
                                                    GetPlayerName(playerid,nev,sizeof(nev));
                                                    GetPlayerName(playerid,neve,sizeof(neve));
                                                    JatekosInfo[id][Frakcio] = frakcioid;
                                                dini_IntSet(file,\"Frakcio\",JatekosInfo[id][Frakcio]);
                                                new uzenet[128];
                                                new uzenet2[128];
                                                printf(\"%s berakta %-t a(z) %s nevû frakcióba!\",nev,neve,getFKName(frakcioid));
                                                format(uzenet,sizeof(uzenet),\"Beraktad %s -t a(z) %i nevû frakcióba!\",neve,getFKName(frakcioid));
                                                        MSG(playerid,COLOR_LIGHTBLUE,uzenet);
                                                        format(uzenet2,sizeof(uzenet2),\"Egy admin berakott téged a(z) %s nevû frakcióba!\",getFKName(frakcioid));
                                                        MSG(id,COLOR_OOC,uzenet2);
                                                        TextDrawShowForPlayer(id,infovonal[playerid]);
                                                        new szoveg[128];
                                                        format(szoveg,sizeof(szoveg),\"Bank: %d | Szint: %d| Frakcio: %s | Adminszint: %d\",JatekosInfo[playerid][bank],JatekosInfo[playerid][szint], getFKName(JatekosInfo[playerid][Frakcio]) ,JatekosInfo[playerid] [AdminSzint]);
                                                        TextDrawSetString(infovonal[id],szoveg);
                                                        TextDrawShowForPlayer(id, Box[playerid]);
                                                        TextDrawShowForPlayer(id, Ft[playerid]);
                                                }
                                }
                                    else MSG(playerid,COLOR_LIGHTRED,\"Nincs ilyen frakcióID!\");
                                }
                                else MSG(playerid,COLOR_LIGHTRED,\"Nincs ilyen játékos!\");
                        }
            }
            else
            {
                if(JatekosInfo[playerid][AdminSzint] >= 1)
                {
                    MSG(playerid,COLOR_LIGHTRED,\"Nem elegendõ az adminszinted ehhez a parancshoz!\");
                }
            }
        }
        return 1;
}

 

Köszönöm, mûködik! :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal