hlmod.hu
https://hlmod.hu/

switch megnyitási probléma
https://hlmod.hu/viewtopic.php?f=9&t=23513
Oldal: 1 / 1

Szerző:  Levii@Peace [ 2016.01.10. 08:15 ]
Hozzászólás témája:  switch megnyitási probléma

Üdvözletem!

Van egy "Láda menü-m" amibe 2 switch- van , egy Random-os és egy sima, a hiba: ha rámegyek a Tárgy Piac-ra, akkor a láda kinyitást érzékeli [ ha van ládád akkor: kinyit 1-t , ha nincs akkor írja ugye hogy nincs ládád ], és ezt hogy birom fixálni hogyha a Tárgy Piac-ra megyek akkor néha beadja néha nem [szóval aztis ilyen RANDOM ként érzékeli ]és az kéne hogyha a Láda Piac-ra megyek akkor azt adja be..

  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5.  
  6. #define PLUGIN "Uj Plugin"
  7. #define VERSION "1.0"
  8. #define AUTHOR "Levii"
  9.  
  10. new g_Lada[ 33 ]
  11.  
  12. public plugin_init() {
  13.     register_plugin(PLUGIN, VERSION, AUTHOR)
  14.     register_clcmd("/lada","lada_menu")
  15.     // Add your code here...
  16. }
  17. public lada_menu(id)
  18. {
  19.     new cim[121], Text[1337]
  20.     format( cim, charsmax( cim ), "ládanyitas ^n Ládáid: %d", g_Lada[ id ])
  21.     new menu = menu_create(cim, "ladakinyit_handler" )
  22.    
  23.     formatex(Text, 125, "Ládanyitás")
  24.     menu_additem(menu, Text, "1")
  25.    
  26.     formatex(Text, 125, "Mit tud a VIP?")
  27.     menu_additem(menu, Text, "10")
  28.    
  29.    
  30.     formatex(Text, 125, "Láda Piac")
  31.     menu_additem(menu, Text, "11")
  32.    
  33.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  34.    
  35.     menu_setprop(menu, MPROP_PERPAGE, 6);
  36.     menu_setprop(menu, MPROP_BACKNAME, "Back");
  37.     menu_setprop(menu, MPROP_NEXTNAME, "Next");
  38.     menu_setprop(menu, MPROP_EXITNAME, "Exit");
  39.    
  40.     menu_display(id, menu, 0)
  41. }
  42. public ladakinyit_handler(id, menu, item)
  43. {
  44.    
  45.     if( item == MENU_EXIT )
  46.     {
  47.         menu_destroy(menu);
  48.         return PLUGIN_HANDLED;
  49.     }
  50.     new data[6], szName[64];
  51.     new access, callback;
  52.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  53.    
  54.     new key = str_to_num(data);
  55.     new name[33]
  56.     get_user_name(id, name, 32)
  57. {
  58.     switch(key)
  59.     {
  60.         case 11:
  61.         {
  62.             lada_piacozas(id)
  63.         }
  64.         case 10:
  65.         {
  66.             show_motd(id,"addons/amxmodx/configs/info/lada_nyit.txt","Mit nyithatok ládából?")
  67.         }
  68.        
  69.        
  70.     }
  71.     switch(random_num(1,11))
  72.     {
  73.         case 1:
  74.         {
  75.             if(g_Lada[id] >= 1)
  76.             {
  77.                 client_print(id, print_chat, "Nyitottal bla bla bla..");
  78.                 g_Lada[id] -= 1
  79.                 lada_menu(id)
  80.             }
  81.             else
  82.                 client_print(id, print_chat, "Nincs lada-d bla bla bla...");
  83.                 lada_menu(id)
  84.             }
  85.         }
  86.     }
  87. }
  88. public lada_piacozas(id)
  89. {
  90.         client_print(id, print_chat, "ezt adja randomként....[Pedig nem kéne].");
  91. }



Előre is köszönöm.

Szerző:  fear_ezmegmi [ 2016.01.12. 16:24 ]
Hozzászólás témája:  Re: switch megnyitási probléma

Az egész rossz ahogy van, a randomizálásnak semmi értelme illetve fölöslegesen használod a formatexet. Emellett több helyen volt hiba a zárásokkal is. Nehéz megtippelni mit is akartál, de ez a kód talán segít.

Kód:
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
 
#define PLUGIN "Uj Plugin"
#define VERSION "1.0"
#define AUTHOR "Levii"
 
new g_Lada[ 33 ];
 
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("/lada","lada_menu")
    // Add your code here...
}
public lada_menu(id)
{
    new cim[121];
    format( cim, charsmax( cim ), "ládanyitas ^n Ládáid: %d", g_Lada[ id ]);
    new menu = menu_create(cim, "ladakinyit_handler" );
   
    menu_additem(menu, "Ládanyitás", "1")
    menu_additem(menu, "Mit tud a VIP?", "2")
    menu_additem(menu, "Láda Piac", "3")
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
   
    menu_setprop(menu, MPROP_PERPAGE, 6);
    menu_setprop(menu, MPROP_BACKNAME, "Back");
    menu_setprop(menu, MPROP_NEXTNAME, "Next");
    menu_setprop(menu, MPROP_EXITNAME, "Exit");
   
    menu_display(id, menu, 0);
}
public ladakinyit_handler(id, menu, item)
{
   
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6], szName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
   
    new key = str_to_num(data);
   
    switch(key)
    {
        case 1:
        {
            if(g_Lada[id] >= 1)
            {
                client_print(id, print_chat, "Nyitottal bla bla bla..");
                g_Lada[id] -= 1;
                lada_menu(id);
            }
            else
      {
                client_print(id, print_chat, "Nincs lada-d bla bla bla...");
                lada_menu(id);
            }
        }
        case 2:
        {
            show_motd(id,"addons/amxmodx/configs/info/lada_nyit.txt","Mit nyithatok ládából?");
        }
        case 3:
        {
            lada_piacozas(id);
        }
       
    }
    return 1;
}
public lada_piacozas(id)
{
        client_print(id, print_chat, "ezt adja randomként....[Pedig nem kéne].");
}

Szerző:  Levii@Peace [ 2016.01.12. 16:36 ]
Hozzászólás témája:  Re: switch megnyitási probléma

fear_ezmegmi írta:
Az egész rossz ahogy van, a randomizálásnak semmi értelme illetve fölöslegesen használod a formatexet. Emellett több helyen volt hiba a zárásokkal is. Nehéz megtippelni mit is akartál, de ez a kód talán segít.

Kód:
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
 
#define PLUGIN "Uj Plugin"
#define VERSION "1.0"
#define AUTHOR "Levii"
 
new g_Lada[ 33 ];
 
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("/lada","lada_menu")
    // Add your code here...
}
public lada_menu(id)
{
    new cim[121];
    format( cim, charsmax( cim ), "ládanyitas ^n Ládáid: %d", g_Lada[ id ]);
    new menu = menu_create(cim, "ladakinyit_handler" );
   
    menu_additem(menu, "Ládanyitás", "1")
    menu_additem(menu, "Mit tud a VIP?", "2")
    menu_additem(menu, "Láda Piac", "3")
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
   
    menu_setprop(menu, MPROP_PERPAGE, 6);
    menu_setprop(menu, MPROP_BACKNAME, "Back");
    menu_setprop(menu, MPROP_NEXTNAME, "Next");
    menu_setprop(menu, MPROP_EXITNAME, "Exit");
   
    menu_display(id, menu, 0);
}
public ladakinyit_handler(id, menu, item)
{
   
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6], szName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
   
    new key = str_to_num(data);
   
    switch(key)
    {
        case 1:
        {
            if(g_Lada[id] >= 1)
            {
                client_print(id, print_chat, "Nyitottal bla bla bla..");
                g_Lada[id] -= 1;
                lada_menu(id);
            }
            else
      {
                client_print(id, print_chat, "Nincs lada-d bla bla bla...");
                lada_menu(id);
            }
        }
        case 2:
        {
            show_motd(id,"addons/amxmodx/configs/info/lada_nyit.txt","Mit nyithatok ládából?");
        }
        case 3:
        {
            lada_piacozas(id);
        }
       
    }
    return 1;
}
public lada_piacozas(id)
{
        client_print(id, print_chat, "ezt adja randomként....[Pedig nem kéne].");
}


nem így akarom :c, hanem hogy egy handlerba elsőnek randomizálom aztán meg sima :D

Szerző:  fear_ezmegmi [ 2016.01.12. 16:51 ]
Hozzászólás témája:  Re: switch megnyitási probléma

Levii@Peace írta:
fear_ezmegmi írta:
Az egész rossz ahogy van, a randomizálásnak semmi értelme illetve fölöslegesen használod a formatexet. Emellett több helyen volt hiba a zárásokkal is. Nehéz megtippelni mit is akartál, de ez a kód talán segít.

Kód:
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
 
#define PLUGIN "Uj Plugin"
#define VERSION "1.0"
#define AUTHOR "Levii"
 
new g_Lada[ 33 ];
 
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("/lada","lada_menu")
    // Add your code here...
}
public lada_menu(id)
{
    new cim[121];
    format( cim, charsmax( cim ), "ládanyitas ^n Ládáid: %d", g_Lada[ id ]);
    new menu = menu_create(cim, "ladakinyit_handler" );
   
    menu_additem(menu, "Ládanyitás", "1")
    menu_additem(menu, "Mit tud a VIP?", "2")
    menu_additem(menu, "Láda Piac", "3")
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
   
    menu_setprop(menu, MPROP_PERPAGE, 6);
    menu_setprop(menu, MPROP_BACKNAME, "Back");
    menu_setprop(menu, MPROP_NEXTNAME, "Next");
    menu_setprop(menu, MPROP_EXITNAME, "Exit");
   
    menu_display(id, menu, 0);
}
public ladakinyit_handler(id, menu, item)
{
   
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6], szName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
   
    new key = str_to_num(data);
   
    switch(key)
    {
        case 1:
        {
            if(g_Lada[id] >= 1)
            {
                client_print(id, print_chat, "Nyitottal bla bla bla..");
                g_Lada[id] -= 1;
                lada_menu(id);
            }
            else
      {
                client_print(id, print_chat, "Nincs lada-d bla bla bla...");
                lada_menu(id);
            }
        }
        case 2:
        {
            show_motd(id,"addons/amxmodx/configs/info/lada_nyit.txt","Mit nyithatok ládából?");
        }
        case 3:
        {
            lada_piacozas(id);
        }
       
    }
    return 1;
}
public lada_piacozas(id)
{
        client_print(id, print_chat, "ezt adja randomként....[Pedig nem kéne].");
}


nem így akarom :c, hanem hogy egy handlerba elsőnek randomizálom aztán meg sima :D

és mit akarsz randomizálni? Random esélye legyen kinyitni a ládát?

Szerző:  Levii@Peace [ 2016.01.12. 17:04 ]
Hozzászólás témája:  Re: switch megnyitási probléma

fear_ezmegmi írta:
Levii@Peace írta:
fear_ezmegmi írta:
Az egész rossz ahogy van, a randomizálásnak semmi értelme illetve fölöslegesen használod a formatexet. Emellett több helyen volt hiba a zárásokkal is. Nehéz megtippelni mit is akartál, de ez a kód talán segít.

Kód:
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
 
#define PLUGIN "Uj Plugin"
#define VERSION "1.0"
#define AUTHOR "Levii"
 
new g_Lada[ 33 ];
 
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("/lada","lada_menu")
    // Add your code here...
}
public lada_menu(id)
{
    new cim[121];
    format( cim, charsmax( cim ), "ládanyitas ^n Ládáid: %d", g_Lada[ id ]);
    new menu = menu_create(cim, "ladakinyit_handler" );
   
    menu_additem(menu, "Ládanyitás", "1")
    menu_additem(menu, "Mit tud a VIP?", "2")
    menu_additem(menu, "Láda Piac", "3")
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
   
    menu_setprop(menu, MPROP_PERPAGE, 6);
    menu_setprop(menu, MPROP_BACKNAME, "Back");
    menu_setprop(menu, MPROP_NEXTNAME, "Next");
    menu_setprop(menu, MPROP_EXITNAME, "Exit");
   
    menu_display(id, menu, 0);
}
public ladakinyit_handler(id, menu, item)
{
   
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6], szName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
   
    new key = str_to_num(data);
   
    switch(key)
    {
        case 1:
        {
            if(g_Lada[id] >= 1)
            {
                client_print(id, print_chat, "Nyitottal bla bla bla..");
                g_Lada[id] -= 1;
                lada_menu(id);
            }
            else
      {
                client_print(id, print_chat, "Nincs lada-d bla bla bla...");
                lada_menu(id);
            }
        }
        case 2:
        {
            show_motd(id,"addons/amxmodx/configs/info/lada_nyit.txt","Mit nyithatok ládából?");
        }
        case 3:
        {
            lada_piacozas(id);
        }
       
    }
    return 1;
}
public lada_piacozas(id)
{
        client_print(id, print_chat, "ezt adja randomként....[Pedig nem kéne].");
}


nem így akarom :c, hanem hogy egy handlerba elsőnek randomizálom aztán meg sima :D

és mit akarsz randomizálni? Random esélye legyen kinyitni a ládát?

  1. public lada_menu(id)
  2. {
  3.     new cim[121], Text[1337]
  4.     format( cim, charsmax( cim ), LADANYITAS[0][Nyelv[id]], g_Lada[ id ])
  5.     new menu = menu_create(cim, "ladakinyit_handler" )
  6.    
  7.     formatex(Text, 125, LADANYITAS[1][Nyelv[id]])
  8.     menu_additem(menu, Text, "1")
  9.    
  10.     formatex(Text, 125, LADANYITAS[2][Nyelv[id]])
  11.     menu_additem(menu, Text, "10")
  12.    
  13.    
  14.     formatex(Text, 125, LADANYITAS[3][Nyelv[id]])
  15.     menu_additem(menu, Text, "11,12")
  16.    
  17.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  18.    
  19.     menu_setprop(menu, MPROP_PERPAGE, 6);
  20.     menu_setprop(menu, MPROP_BACKNAME, "Back");
  21.     menu_setprop(menu, MPROP_NEXTNAME, "Next");
  22.     menu_setprop(menu, MPROP_EXITNAME, "Exit");
  23.    
  24.     menu_display(id, menu, 0)
  25. }
  26. public ladakinyit_handler(id, menu, item)
  27. {
  28.    
  29.     if( item == MENU_EXIT )
  30.     {
  31.         menu_destroy(menu);
  32.         return PLUGIN_HANDLED;
  33.     }
  34.     new data[6], szName[64];
  35.     new access, callback;
  36.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  37.    
  38.     new key = str_to_num(data);
  39.     new name[33]
  40.     get_user_name(id, name, 32)
  41.    
  42.     switch(key)
  43.     {
  44.         case 11:
  45.         {
  46.             lada_piacozas(id)
  47.         }
  48.         case 12:
  49.         {
  50.             lada_piacozas(id)
  51.         }
  52.         case 10:
  53.         {
  54.             show_motd(id,"addons/amxmodx/configs/info/lada_nyit.txt","Mit nyithatok ládából?")
  55.         }
  56.        
  57.        
  58.     }
  59.     switch(random_num(1,11))
  60.     {
  61.         case 1:
  62.         {
  63.             if(g_Lada[id] >= 1)
  64.             {
  65.                 print_color(id, LADANYITAS[4][Nyelv[id]])
  66.                 g_Lada[id] -= 1
  67.                 lada_menu(id)
  68.             }
  69.             else
  70.                 print_color(id, LADANYITAS[5][Nyelv[id]])
  71.             lada_menu(id)
  72.         }
  73.         case 2:
  74.         {
  75.             if(g_Lada[id] >= 1)
  76.             {
  77.                 print_color(id, LADANYITAS[4][Nyelv[id]])
  78.                 g_Lada[id] -= 1
  79.                 lada_menu(id)
  80.             }
  81.             else
  82.                 print_color(id, LADANYITAS[5][Nyelv[id]])
  83.             lada_menu(id)
  84.         }
  85.         case 3:
  86.         {
  87.             if(g_Lada[id] >= 1)
  88.             {
  89.                
  90.                 print_color(id, LADANYITAS[6][Nyelv[id]])
  91.                 g_Lada[id] -= 1
  92.                 g_Elet[id] += 2
  93.                 lada_menu(id)
  94.             }
  95.             else
  96.                 print_color(id, LADANYITAS[5][Nyelv[id]])
  97.             lada_menu(id)
  98.         }


így érthetőbb

Szerző:  fear_ezmegmi [ 2016.01.12. 17:17 ]
Hozzászólás témája:  Re: switch megnyitási probléma

Szerintem sejtem mire kell neked a randomizálás. Szerintem így szépen és átláthatóan meglehet oldani:
ui: Ha többnyelvűre akarod a szövegeket akkor javaslom, hogy csinálj hozzá inkább lang filet.
Kód:
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
 
#define PLUGIN "Uj Plugin"
#define VERSION "1.0"
#define AUTHOR "Levii"
 
new g_Lada[ 33 ];
 
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("/lada","lada_menu")
    // Add your code here...
}
public lada_menu(id)
{
    new cim[121];
    format( cim, charsmax( cim ), "ládanyitas ^n Ládáid: %d", g_Lada[ id ]);
    new menu = menu_create(cim, "ladakinyit_handler" );
   
    menu_additem(menu, "Ládanyitás", "1")
    menu_additem(menu, "Mit tud a VIP?", "2")
    menu_additem(menu, "Láda Piac", "3")
   
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
   
    menu_setprop(menu, MPROP_PERPAGE, 6);
    menu_setprop(menu, MPROP_BACKNAME, "Back");
    menu_setprop(menu, MPROP_NEXTNAME, "Next");
    menu_setprop(menu, MPROP_EXITNAME, "Exit");
   
    menu_display(id, menu, 0);
}
public ladakinyit_handler(id, menu, item)
{
   
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6], szName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
   
    new key = str_to_num(data);
   
    switch(key)
    {
        case 1:
        {
      LadaNyitas(id);
        }
        case 2:
        {
      show_motd(id,"addons/amxmodx/configs/info/lada_nyit.txt","Mit nyithatok ládából?");
        }
        case 3:
        {
      lada_piacozas(id);
        }
       
    }
    return 1;
}
public lada_piacozas(id)
{
        client_print(id, print_chat, "ezt adja randomként....[Pedig nem kéne].");
}

public LadaNyitas(id)
{
   if(g_Lada[id] < 1)
   {
      client_print(id, print_chat, "Nincs lada-d bla bla bla...");
      lada_menu(id);
      return 1;
   }
   
   new Random = random_num(1, 11);
   
   switch(Random)
   {
      case 1:
      {
         client_print(id, print_chat, "Nyitottal bla bla bla..1");
         g_Lada[id] -= 1;
      }
      case 2:
      {
         client_print(id, print_chat, "Nyitottal bla bla bla..2");
         g_Lada[id] -= 1;
      }
      case 3..11:
      {
         client_print(id, print_chat, "Nyitottal bla bla bla..3");
         g_Lada[id] -= 1;
      }
   }
   lada_menu(id);
   return 1;
}

Szerző:  Levii@Peace [ 2016.01.12. 17:24 ]
Hozzászólás témája:  Re: switch megnyitási probléma

Ohh Thank you, majd tesztelem, amúgy jobban átgondolva: DD kajakra így kellet volna megoldanom :D

ment a köszi :3

Szerző:  mforce [ 2016.01.12. 21:04 ]
Hozzászólás témája:  Re: switch megnyitási probléma

  1. new data[6], szName[64];
  2.     new access, callback;
  3.     menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  4.    
  5.     new key = str_to_num(data);


Felesleg.

switch(item) és kész.

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/