Szerző Téma: Elvan csúszva a dialog.  (Megtekintve 408 alkalommal)

Elvan csúszva a dialog.
« Dátum: 2012. április 01. - 12:02:47 »
+1 Show voters
Hello.

Ez az elsõ \"scriptem\" és kéne benne egy kis segítség. Úgyanis elvan csúszva, ezt arra értem, ha a Desert-re kattintok nem csinál semmit, de ha az MP5-re akkor adja a Desertet, ha Ak-47-re akkor az MP5-öt...És Így tovább.

 
    if (strcmp(\"/fegyverek\", cmdtext, true, 10) == 0)
{
ShowPlayerDialog(playerid, DIALOG_1, DIALOG_STYLE_LIST, \"Fegyverek\", \"\\nDesert Eagle 2000$\\nMP5 2500$\\nAK-47 3000$\\nM4 4000$\\nTec-9 3500$\\nMicro SMG 3500$\", \"Rendben\", \"Kilép\");
return 1;
}

 

    if(dialogid == DIALOG_1)
    {
    if(response)
    {
        if(listitem == 1) //ha rákattintasz az 1. gombra mi történjen....
        {
         if(GetPlayerMoney(playerid) >= 2000)
      {
             GivePlayerMoney(playerid, -2000);
             GivePlayerWeapon(playerid, 24, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 2) //ha rákattintasz az 2. gombra mi történjen....
        {
      if(GetPlayerMoney(playerid) >= 2500)
      {
             GivePlayerMoney(playerid, -2500);
             GivePlayerWeapon(playerid, 29, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 3) //ha rákattintasz az 2. gombra mi történjen....
        {
      if(GetPlayerMoney(playerid) >= 3000)
      {
             GivePlayerMoney(playerid, -3000);
             GivePlayerWeapon(playerid, 30, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 4) //ha rákattintasz az 4. gombra mi történjen....
        {
      if(GetPlayerMoney(playerid) >= 4000)
      {
             GivePlayerMoney(playerid, -4000);
             GivePlayerWeapon(playerid, 31, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 5) //ha rákattintasz az 5. gombra mi történjen....
        {
               if(GetPlayerMoney(playerid) >= 3500)
      {
             GivePlayerMoney(playerid, -3500);
             GivePlayerWeapon(playerid, 32, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 6) //ha rákattintasz az 6. gombra mi történjen....
        {
           if(GetPlayerMoney(playerid) >= 3500)
      {
             GivePlayerMoney(playerid, -3500);
             GivePlayerWeapon(playerid, 28, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
         }
}else{//ellentétben
        SendClientMessage(playerid, 0x400000FF, \"Kiléptél a dialogból\");
        }

Elvan csúszva a dialog.
« Válasz #1 Dátum: 2012. április 01. - 12:23:55 »
+1 Show voters
Igen mivel,az elsõ listitem az 0.
 
    if(dialogid == DIALOG_1)
    {
    if(response)
    {
        if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
        {
         if(GetPlayerMoney(playerid) >= 2000)
      {
             GivePlayerMoney(playerid, -2000);
             GivePlayerWeapon(playerid, 24, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
        {
      if(GetPlayerMoney(playerid) >= 2500)
      {
             GivePlayerMoney(playerid, -2500);
             GivePlayerWeapon(playerid, 29, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 2) //ha rákattintasz az 2. gombra mi történjen....
        {
      if(GetPlayerMoney(playerid) >= 3000)
      {
             GivePlayerMoney(playerid, -3000);
             GivePlayerWeapon(playerid, 30, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
        {
      if(GetPlayerMoney(playerid) >= 4000)
      {
             GivePlayerMoney(playerid, -4000);
             GivePlayerWeapon(playerid, 31, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
        {
               if(GetPlayerMoney(playerid) >= 3500)
      {
             GivePlayerMoney(playerid, -3500);
             GivePlayerWeapon(playerid, 32, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
        if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
        {
           if(GetPlayerMoney(playerid) >= 3500)
      {
             GivePlayerMoney(playerid, -3500);
             GivePlayerWeapon(playerid, 28, 2000);
      }
      else
      {
                 SendClientMessage(playerid, 0xFF0000AA, \"Nincs ennyi pénzed!\");
      }
        }
         }
}else{//ellentétben
        SendClientMessage(playerid, 0x400000FF, \"Kiléptél a dialogból\");
        }

Nem elérhető Benceee

  • 4785
    • Profil megtekintése
Elvan csúszva a dialog.
« Válasz #2 Dátum: 2012. április 01. - 12:27:40 »
+1 Show voters
Szerintem jobb megoldás a switch.

Példa:

 
switch(listitem)
{
case 0:
{
// Mi történjen ha az elsõre kattint.
}
case 1:
{
//mi történjen ha a másodikra... etc
}
}

Elvan csúszva a dialog.
« Válasz #3 Dátum: 2012. április 01. - 12:32:19 »
0 Show voters
Köszönöm! Ment a +!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal