Szerző Téma: Több dialog létrehozása.  (Megtekintve 1035 alkalommal)

Több dialog létrehozása.
« Dátum: 2013. November 30. - 15:12:52 »
0 Show voters
Sziasztok hogy lehet létrehozni pl 2 dialogot?
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
       if(dialogid == DIALOG_0)
           {
               if(response)
               {
                   if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
                   {
                           GivePlayerWeapon(playerid, 24, 50);
                           GivePlayerMoney(playerid, -5000);
                           SendClientMessage(playerid, 0x400000FF, \"Vettél egy Desert Eagle-t 5000$-ért.\");
                   }
                   if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
                   {
                           GivePlayerWeapon(playerid, 25, 50);
                           GivePlayerMoney(playerid, -7500);
                           SendClientMessage(playerid, 0x400000FF, \"Vettél egy Shotgun-t 7500$-ért.\");
                   }
                   if(listitem == 2) //ha rákattintasz az 3. gombra mi történjen....
                   {
                         GivePlayerWeapon(playerid, 26, 50);
                         GivePlayerMoney(playerid, -4500);
                         SendClientMessage(playerid,0x4000000FF, \"Vettél egy Sawnoff Shotgun-t 4500$-ért.\");
                   }
                   if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
                   {
                         GivePlayerWeapon(playerid, 29, 50);
                         GivePlayerMoney(playerid, -3000);
                         SendClientMessage(playerid,0x4000000FF, \"Vettél egy MP5-t 3000$-ért.\");
                   }
                   if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
                   {
                         GivePlayerWeapon(playerid, 30, 50);
                           GivePlayerMoney(playerid, -12000);
                           SendClientMessage(playerid,0x4000000FF, \"Vettél egy AK47-t 12000$-ért.\"); //megjavítja a kocsit
                   }
                   if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
                   {
                         GivePlayerWeapon(playerid, 31, 50);
                         GivePlayerMoney(playerid, -12000);
                         SendClientMessage(playerid,0x4000000FF, \"Vettél egy M4A1-t 12000$-ért.\");
                   }
                   if(listitem == 6)
                   {
               GivePlayerWeapon(playerid, 34, 50);
               GivePlayerMoney(playerid, -10000);
               SendClientMessage(playerid,0x4000000FF, \"Vettél egy Sniper-t 10000$-ért.\");
         }
           }
           }else{//ellentétben
           SendClientMessage(playerid, 0x400000FF, \"Kiléptél a dialogból\");
           }
}

 
Már van 1 a /weapon és hogylehet megoldani hogy /drink és ottis be hozzon egy dialog listet? :)

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Több dialog létrehozása.
« Válasz #1 Dátum: 2013. November 30. - 15:51:59 »
0 Show voters
Szia.
definálsz egy dialog nevet az includok alá:
 
#define DIALOG_1 2342

 
DIALOG_1 - a dialog neve. (Ez lehet bármi)
2342 - a dialog id-je (Ez is lehet bármilyen szám csak minden dialognak más legyen az id-je)
Most pedig jelenítsük meg a dialog-ot a /drink parancs alá:
Ha zcmd-t használsz itt a kód:
 
CMD:drink(playerid)
{
ShowPlayerDialog(playerid,DIALOG_1,DIALOG_STYLE_LIST,\"Italok\",\"Narancs kóla\\nCoca Cóla\\nWhiskey\\nBor\",\"Választ\",\"Mégsem\");
}

 
A dialog megjelenítésére a ShowPlayerDialog függvényt használjuk, most ha nem baj nem írnám le hogy a függvénybe mi mit jelent inkább adok egy linket itt mindent megtalálsz a függvényrõl: ShowPlayerDialog
Most az OnDialogResponse eljárás alá vegyük fel a dialogunkat.
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
       //A további sorokat teheted a DIALOG_0 alá.
       if(dialogid == DIALOG_1) //Ha a dialog id-je: DIALOG_1(definálva)
       {
               if(response)//Ha a \"Választ\" gombra kattintasz:
               {
                   if(listitem == 0) //ha a Narancs kólát választod akkor:
                   {
                           SendClientMessage(playerid, 0x400000FF, \"Egy Narancs Kólát vettél!\");
                   }
                   if(listitem == 1)  //ha a Coca Colát választod akkor:
                   {
                           SendClientMessage(playerid, 0x400000FF, \"Egy Coca Colát vettél!\");
                   }
                   //És így sorba az a lényege hogy a listitem == és a sorszáma.. de nem 1-tõl hanem 0-tól kezdõdik ez nehogy belezavarjon.
              }
       }
       return 1;
}

 
Remélem érthetõ voltam! :)
« Utoljára szerkesztve: 2013. November 30. - 15:54:09 írta BoOy »

Több dialog létrehozása.
« Válasz #2 Dátum: 2013. November 30. - 16:19:01 »
0 Show voters
Nem értem. Kész van egy dialog a /weapon és bejön egy dialog lista. És azt akarom hogy ha beírom hogy /drink akkor be jöjjön még egy dialog lista :)

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Több dialog létrehozása.
« Válasz #3 Dátum: 2013. November 30. - 16:25:59 »
0 Show voters
Amit leírtam és azt beteszed, jónak kellett volna lennie. Teljes szkriptbe leírom így hátha érteni fogod:
 
#include 
#define DIALOG_0 3244
#define DIALOG_1 2342
CMD:drink(playerid)
{
ShowPlayerDialog(playerid,DIALOG_1,DIALOG_STYLE_LIST,\"Italok\",\"Narancs kóla\\nCoca Cóla\\nWhiskey\\nBor\",\"Választ\",\"Mégsem\");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_0)
{
if(response)
{
   if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
   {
      GivePlayerWeapon(playerid, 24, 50);
      GivePlayerMoney(playerid, -5000);
      SendClientMessage(playerid, 0x400000FF, \"Vettél egy Desert Eagle-t 5000$-ért.\");
   }
   if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
   {
      GivePlayerWeapon(playerid, 25, 50);
      GivePlayerMoney(playerid, -7500);
      SendClientMessage(playerid, 0x400000FF, \"Vettél egy Shotgun-t 7500$-ért.\");
   }
   if(listitem == 2) //ha rákattintasz az 3. gombra mi történjen....
   {
      GivePlayerWeapon(playerid, 26, 50);
      GivePlayerMoney(playerid, -4500);
      SendClientMessage(playerid,0x4000000FF, \"Vettél egy Sawnoff Shotgun-t 4500$-ért.\");
   }
   if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
   {
      GivePlayerWeapon(playerid, 29, 50);
      GivePlayerMoney(playerid, -3000);
      SendClientMessage(playerid,0x4000000FF, \"Vettél egy MP5-t 3000$-ért.\");
   }
   if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
   {
      GivePlayerWeapon(playerid, 30, 50);
      GivePlayerMoney(playerid, -12000);
      SendClientMessage(playerid,0x4000000FF, \"Vettél egy AK47-t 12000$-ért.\"); //megjavítja a kocsit
   }
   if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
   {
      GivePlayerWeapon(playerid, 31, 50);
      GivePlayerMoney(playerid, -12000);
      SendClientMessage(playerid,0x4000000FF, \"Vettél egy M4A1-t 12000$-ért.\");
   }
   if(listitem == 6)
   {
       GivePlayerWeapon(playerid, 34, 50);
       GivePlayerMoney(playerid, -10000);
       SendClientMessage(playerid,0x4000000FF, \"Vettél egy Sniper-t 10000$-ért.\");
   }
}
}
else
{
SendClientMessage(playerid, 0x400000FF, \"Kiléptél a dialogból\");
}
if(dialogid == DIALOG_1)
{
       if(response)
       {
           if(listitem == 0)
           {
                   SendClientMessage(playerid, 0x400000FF, \"Egy Narancs Kólát vettél!\");
           }
           if(listitem == 1)  
           {
                   SendClientMessage(playerid, 0x400000FF, \"Egy Coca Colát vettél!\");
           }
           //...
      }
}
return 1;
}

Több dialog létrehozása.
« Válasz #4 Dátum: 2013. November 30. - 16:35:34 »
0 Show voters
Szerbusz.

Fegyver dialog:

Elõször definlod a dialog nevét

 
#define DIALOG_WEAPON 1

 
Létrehozzuk a parancsot:
 
CMD:weapon(playerid)
{
ShowPlayerDialog(playerid,DIALOG_WEAPON,DIALOG_STYLE_LIST,\"Weapon\",\"fegyver1\\nfegyver2\\nfegyver3\\nfegyver4\",\"Választ\",\"Mégsem\");
}

 
OnDialogResponse:
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
       if(dialogid == DIALOG_WEAPON)
       {
               if(response)
               {
                   if(listitem == 0)
                   {
                           SendClientMessage(playerid, 0x400000FF, \"Vettél egy fegyvert\");
                   }
                   if(listitem == 1)
                   {
                           SendClientMessage(playerid, 0x400000FF, \"Vettél egy fegyvert!\");
                   if(listitem == 2)
                   {
                           SendClientMessage(playerid, 0x400000FF, \"Vettél egy fegyvert!\");
                   }
              }
       }
       return 1;
}

 
Most jöhet a Drink dialog:
Definálod a dialog nevét:
 
#define DIALOG_DRINK 2

 
Létrehozzuk a parancsot:
 
CMD:drink(playerid)
{
ShowPlayerDialog(playerid,DIALOG_WEAPON,DIALOG_STYLE_LIST,\"Drink\",\"drink1\\ndrink2\\ndrink3\\ndrink4\",\"Választ\",\"Mégsem\");
}

 
OnDialogResponse:
Az elsõ dialog végénél a return 1 alatt lévõ kapcsos záró jel alá rakd be ezt:
 
if(dialogid == DIALOG_DRINK)
       {
               if(response)
               {
                   if(listitem == 0)
                   {
                           SendClientMessage(playerid, 0x400000FF, \"Vettél egy drinket\");
                   }
                   if(listitem == 1)
                   {
                           SendClientMessage(playerid, 0x400000FF, \"Vettél egy drinket\");
                   if(listitem == 2)
                   {
                           SendClientMessage(playerid, 0x400000FF, \"Vettél egy drinket\");
                   }
              }
       }
       return 1;
}

 
Remélem segítettem.

Üdvözlettel: Fallen

Több dialog létrehozása.
« Válasz #5 Dátum: 2013. November 30. - 18:16:41 »
0 Show voters
Valami gond van.
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
       if(dialogid == DIALOG_0)
       {
               if(response)
               {
                       if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 24, 50);
                               GivePlayerMoney(playerid, -5000);
                               SendClientMessage(playerid, 0x400000FF, \"{FFFF00}Vettél egy Desert Eagle-t 5000$-ért.\");
                       }
                       if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 25, 50);
                               GivePlayerMoney(playerid, -7500);
                               SendClientMessage(playerid, 0x400000FF, \"{FFFF00}Vettél egy Shotgun-t 7500$-ért.\");
                       }
                       if(listitem == 2) //ha rákattintasz az 3. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 26, 50);
                               GivePlayerMoney(playerid, -4500);
                               SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy Sawnoff Shotgun-t 4500$-ért.\");
                       }
                       if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 29, 50);
                               GivePlayerMoney(playerid, -3000);
                               SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy MP5-t 3000$-ért.\");
                       }
                       if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 30, 50);
                               GivePlayerMoney(playerid, -12000);
                               SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy AK47-t 12000$-ért.\"); //megjavítja a kocsit
                       }
                       if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 31, 50);
                               GivePlayerMoney(playerid, -12000);
                               SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy M4A1-t 12000$-ért.\");
                       }
                       if(listitem == 6)
                       {
                           GivePlayerWeapon(playerid, 34, 50);
                           GivePlayerMoney(playerid, -10000);
                           SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy Sniper-t 10000$-ért.\");
                       }
               }
       }
       else
       {
               SendClientMessage(playerid, 0x400000FF, \"{FF0000}Kiléptél a dialogból\");
       }
       if(dialogid == DIALOG_1)
       {
       if(response)
       {
           if(listitem == 1)
           {
                   SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
                   SetPlayerDrunkLevel(playerid, 6000);
                   SendClientMessage(playerid, -1, \"{FFFF00}Vettél egy üveg pálinkát.\");
           }
           if(listitem == 2)
           {
                   SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
                   SetPlayerDrunkLevel(playerid, 4000);
                   SendClientMessage(playerid, -1, \"{FFFF00}Vettél egy üveg whiskeyt.\");
           }
           if(listitem == 3)
           {
                   SetPlayerDrunkLevel(playerid, 3000);
                   SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
                   SendClientMessage(playerid, -1,\"{FFFF00}Vettél egy üveg bort.\");
   }
   if(listitem == 4)
   {
           SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);
           SendClientMessage(playerid, -1,\"{FFFF00}Vettél egy üveg kólát.\");
   }
       }
       }
       return 1;
}

 
Valamilyen oknál fogva össze keveredett és ha veszek egy kolát akkor megvesz egy fegyvert is

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
Több dialog létrehozása.
« Válasz #6 Dátum: 2013. November 30. - 18:27:53 »
0 Show voters
Tessék. Elcsúsztál egy lezárással.
 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
       if(dialogid == DIALOG_0)
       {
               if(response)
               {
                       if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 24, 50);
                               GivePlayerMoney(playerid, -5000);
                               SendClientMessage(playerid, 0x400000FF, \"{FFFF00}Vettél egy Desert Eagle-t 5000$-ért.\");
                       }
                       if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 25, 50);
                               GivePlayerMoney(playerid, -7500);
                               SendClientMessage(playerid, 0x400000FF, \"{FFFF00}Vettél egy Shotgun-t 7500$-ért.\");
                       }
                       if(listitem == 2) //ha rákattintasz az 3. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 26, 50);
                               GivePlayerMoney(playerid, -4500);
                               SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy Sawnoff Shotgun-t 4500$-ért.\");
                       }
                       if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 29, 50);
                               GivePlayerMoney(playerid, -3000);
                               SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy MP5-t 3000$-ért.\");
                       }
                       if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 30, 50);
                               GivePlayerMoney(playerid, -12000);
                               SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy AK47-t 12000$-ért.\"); //megjavítja a kocsit
                       }
                       if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
                       {
                               GivePlayerWeapon(playerid, 31, 50);
                               GivePlayerMoney(playerid, -12000);
                               SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy M4A1-t 12000$-ért.\");
                       }
                       if(listitem == 6)
                       {
                           GivePlayerWeapon(playerid, 34, 50);
                           GivePlayerMoney(playerid, -10000);
                           SendClientMessage(playerid,0x4000000FF, \"{FFFF00}Vettél egy Sniper-t 10000$-ért.\");
                       }
               }
              else
              {
                     SendClientMessage(playerid, 0x400000FF, \"{FF0000}Kiléptél a dialogból\");
              }
       }
       if(dialogid == DIALOG_1)
       {
       if(response)
       {
           if(listitem == 1)
           {
                   SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
                   SetPlayerDrunkLevel(playerid, 6000);
                   SendClientMessage(playerid, -1, \"{FFFF00}Vettél egy üveg pálinkát.\");
           }
           if(listitem == 2)
           {
                   SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
                   SetPlayerDrunkLevel(playerid, 4000);
                   SendClientMessage(playerid, -1, \"{FFFF00}Vettél egy üveg whiskeyt.\");
           }
           if(listitem == 3)
           {
                   SetPlayerDrunkLevel(playerid, 3000);
                   SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
                   SendClientMessage(playerid, -1,\"{FFFF00}Vettél egy üveg bort.\");
    }
    if(listitem == 4)
   {
       SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);
       SendClientMessage(playerid, -1,\"{FFFF00}Vettél egy üveg kólát.\");
   }
       }
       }
       return 1;
}

Több dialog létrehozása.
« Válasz #7 Dátum: 2013. November 30. - 19:38:58 »
0 Show voters
Még mindig nem jó.

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
Több dialog létrehozása.
« Válasz #8 Dátum: 2013. November 30. - 20:50:12 »
0 Show voters
Jónak kell lennie!

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Több dialog létrehozása.
« Válasz #9 Dátum: 2013. December 01. - 00:18:02 »
0 Show voters
Akkor máshol van a gond..

Több dialog létrehozása.
« Válasz #10 Dátum: 2013. December 01. - 15:43:03 »
0 Show voters
De hát mondom nem jó:D Átmásoltam stb.. 0 warning 0 error de ugyan úgy összekeveredik.  :hmmm:

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal