[AMX] Tổng hợp Code, Plug do Mem chế hoặc giới thiệu

Thảo luận trong 'Counter Strike' bắt đầu bởi Orpheus, 22/1/11.

  1. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    Trong topic new amxx menus system có đó bác, phần sub-menu
    Kiểu như là mỗi trang là 1 menu nhỏ :D.
     
  2. ngochai9a7

    ngochai9a7 Dragon Quest

    Tham gia ngày:
    5/1/12
    Bài viết:
    1,450
    Mình nghĩ sub-menu là như thế này: Primary Weapon ---> blah blah các súng
    Nếu như ý của cậu thì menu "Next" sẽ gồm các sub-menu nhỏ đúng không :)
    Nhưng như vậy còn "Back" thì mình nghĩ không làm theo kiểu trên được, rất rối :)
     
  3. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    page1
    1.
    2.
    ...


    9. Next (chỗ này dẫn đến menu2 (page2)

    page2
    1.
    2.
    ...

    8. Back (quay trở về page1) (tức là bác xem cái function nào show menu page 1 thì viết nó ra)
    9. Next (tương tự)

    Còn muốn auto thì hình như có cái Dynamic Item gì gì ấy nhưng mà khó hiểu lắm @@. Em nghĩ mình newbie làm vậy thôi :)).
     
  4. kungfulon

    kungfulon Fire in the hole! Lão Làng GVN Sorcerer

    Tham gia ngày:
    1/5/11
    Bài viết:
    2,535
    Add nhiều item là nó tự phân trang mà.
     
  5. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    Bác kungfulon ơi 2 cái register_touch vs register_think sử dụng như nào nhỉ.
     
  6. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    Mang SDK Hook lên forum giữ cho chắc, để share luôn... Nhiều khi đánh mất trên máy
    Đây là một module đã hook sẵn cho ai tìm mà ko có

    [SDK Hook]
    Version: 1.0
    Author: Dias
    Credits:
    - Kungfulon | Hook New Round
    - thatguyzp | Hook Round Start & Round End
    - Dias | Hook Round Restart
    - Bos93 | Hook Spawn, TakeDamage, Killed

    List Hooked Function:
    - New Round (Lines: 51)
    - Round Start (Lines: 54)
    - Round End (+ Round Restart) (Lines: 61)
    - Player Spawn (Lines: 138)
    - Player Take Damage (Lines: 165)
    - Player Killed (Lines: 187)
     

    Các file đính kèm:

  7. ngochai9a7

    ngochai9a7 Dragon Quest

    Tham gia ngày:
    5/1/12
    Bài viết:
    1,450
    Bác hướng dẫn cụ thể cách dùng được không :)
     
  8. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    ^
    - Các chú chỉ mới lọ mọ tới Code AMXX thì ko nên rờ mó vào Module -.-, Module là 1 thứ cấp bậc cao hơn Code AMXX. Nổi tiếng nhiều chức năng và khó dùng. Mà nếu ai thực sự biết Code module thì ko phải hỏi cách dùng
     
  9. ngochai9a7

    ngochai9a7 Dragon Quest

    Tham gia ngày:
    5/1/12
    Bài viết:
    1,450
    Plugin Fun Menu by ngochai9a7
    Plugin này được làm ra với tính chất tự sướng là chủ yếu nhưng up lên cho ai thích làm siêu nhân trong game thì down :5cool_big_smile:
    Tính năng:
    - Cộng 1000 máu và giáp
    - Tăng tốc (nếu chuyển qua súng khác thì tốc độ sẽ trở về bình thường)
    - Giảm trọng lực đi 1 nửa (nhảy cao hơn và rớt chậm hơn) =))
    Cách dùng: Vào game bấm F1, nếu không được thì mở console lên và bấm bind F1 fun_menu rồi F1 :)
    Nhận gạch đá thoải mái :4cool_beauty:
    [spoil]Được lên #2 càng tốt :) [/spoil]
    Link: http://www.mediafire.com/download.php?4dak12wrm9vj5c6
     
  10. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    ^
    - Plugin này có thể lên dc #2 nhưng vì lý do là Slow-Hack nên ko dc lên
     
  11. ngochai9a7

    ngochai9a7 Dragon Quest

    Tham gia ngày:
    5/1/12
    Bài viết:
    1,450
    Maybe :2cool_go:
    Do thực hành từ cái fun.inc :1cool_byebye:
    Vậy thì bữa nào làm cái plugin give súng rồi up chắc không sao :5cool_big_smile:
     
  12. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    Mấy plugin đó em nghĩ bác dùng để làm quen thôi chứ up thì em nghĩ ít ai dùng vì nó ko đặc biệt lắm :-?.
     
  13. ngochai9a7

    ngochai9a7 Dragon Quest

    Tham gia ngày:
    5/1/12
    Bài viết:
    1,450
    PHP:
    #include <amxmodx>
    #include <fun>

     
    public plugin_init()
     {
        
    register_clcmd"my_awesome_menu","AwesomeMenu");
     }
     public 
    AwesomeMenu(id)
     {
        new 
    menu menu_create("\rLook at this awesome Menu!:""menu_handler")

        
    menu_additem(menu"\wI'm Selection #1""1"0);
        
    menu_additem(menu"\wGo to SubMenu""2"0);

        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_display(idmenu0);
     }
     public 
    menu_handler(idmenuitem)
     {
        if( 
    item == MENU_EXIT )
        {
            
    menu_destroy(menu);
            return 
    PLUGIN_HANDLED;
        }

        new 
    data[6], szName[64];
        new 
    accesscallback;
        
    menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);

        new 
    key str_to_num(data);
        switch(
    key)
        {
        case 
    1:

            {
                
    //Send them to the submenu
                
    SubMenu(id);
            }
        }


        
    menu_destroy(menu);
        return 
    PLUGIN_HANDLED;
     }
     
    SubMenu(id)
     {
        
    //Note that we will be using a different menu handler
        
    new menu menu_create("\rLook at this awesome Sub-Menu!:""submenu_handler")

        
    menu_additem(menu"\wI'm Sub-Selection #1""1"0);
        
    menu_additem(menu"\wI'm Sub-Selection #2""2"0);

        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_display(idmenu0);
     }
     public 
    submenu_handler(idmenuitem)
     {
        if( 
    item == MENU_EXIT )
        {
            
    menu_destroy(menu);

            
    //If they are still connected
            
    if( is_user_connected(id) )
                
    //Lets send them back to the top menu
                
    AwesomeMenu(id);

            return 
    PLUGIN_HANDLED;
        }

        new 
    data[6], szName[64];
        new 
    accesscallback;
        
    menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);

        new 
    key str_to_num(data);

        switch(
    key)
        {
            case 
    1:
            {
                
    client_print(idprint_chat"Hooray! You selected the Awesome 1st Sub-Selection");
            }
            case 
    2:
            {
                
    client_print(idprint_chat"OH NO! You selected the Awesome 2nd Sub-Selection! BEWARE!");
            }
        }

        
    menu_destroy(menu);

        
    //Here you might want to show the submenu or the top menu again.
        
    AwesomeMenu(id);

        return 
    PLUGIN_HANDLED;
    }
    case 
    2:
            {
                
    //Send them to the submenu
                
    SubMenu2(id);
            
        

        
    menu_destroy(menu);
        return 
    PLUGIN_HANDLED;
     }
     
    SubMenu2(id)
     {
        
    //Note that we will be using a different menu handler
        
    new menu menu_create("\rLook at this awesome Sub-Menu!:""submenu2_handler")

        
    menu_additem(menu"\wI'm Sub-Selection #1""1"0);
        
    menu_additem(menu"\wI'm Sub-Selection #2""2"0);

        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_display(idmenu0);
     }
     public 
    submenu2_handler(idmenuitem)
     {
        if( 
    item == MENU_EXIT )
        {
            
    menu_destroy(menu);

            
    //If they are still connected
            
    if( is_user_connected(id) )
                
    //Lets send them back to the top menu
                
    AwesomeMenu(id);

            return 
    PLUGIN_HANDLED;
        }

        new 
    data[6], szName[64];
        new 
    accesscallback;
        
    menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);

        new 
    key str_to_num(data);

        switch(
    key)
        {
            case 
    1:
            {
                
    client_print(idprint_chat"Hooray! You selected the Awesome 1st Sub-Selection");
            }
            case 
    2:
            {
                
    client_print(idprint_chat"OH NO! You selected the Awesome 2nd Sub-Selection! BEWARE!");
            }
        }

       
    menu_destroy(menu);

        
    //Here you might want to show the submenu or the top menu again.
        
    AwesomeMenu(id);

        return 
    PLUGIN_HANDLED;
     }
    Trong này sai bao nhiêu chỗ nhỉ, đang định làm 2 sub-menu (Primary --> ..., Second --> ...)
    Ai biết thì sửa giúp luôn nhé :) Thank trước
     
  14. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    Từng là có 1 menu

    1. SubMenu1
    2. SubMenu2


    hả bác.
     
  15. ngochai9a7

    ngochai9a7 Dragon Quest

    Tham gia ngày:
    5/1/12
    Bài viết:
    1,450
    Làm được 1 sub-menu rồi, có ai giúp mình thêm 1 sub-menu vào được không
    PHP:
     #include <amxmodx>
    #include <fun>

     
    public plugin_init()
     {
        
    register_clcmd"new_give_weapon","AwesomeMenu");
     }
     public 
    AwesomeMenu(id)
     {
        new 
    menu menu_create("\rLook at this awesome Menu!:""menu_handler")

        
    //Note that we are prefixing our data with an 'm' to know it is from the main menu
        
    menu_additem(menu"\wPrimary Weapon""m1"0);
        
    menu_additem(menu"\wSecondary Weapon""m2"0);

        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_display(idmenu0);
     }
     
    SubMenu2(id)
     {
        new 
    menu menu_create("\rLook at this awesome Sub-Menu!:""menu_handler")

        
    //Note that we are prefixing our data with an 's' to know it is from the sub menu
        
    menu_additem(menu"\wUSP""p1"0);
        
    menu_additem(menu"\wDual Elite""p2"0);
        
    menu_additem(menu"\wDeagle""p3"0);
        
    menu_additem(menu"\wFive Seven""p4"0);
        
    menu_additem(menu"\wP228""p5"0);
        
    menu_additem(menu"\wGlock 18""p6"0);

        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_display(idmenu0);
     }
     
    SubMenu(id)
     {
        new 
    menu menu_create("\rLook at this awesome Sub-Menu!:""menu_handler")

        
    //Note that we are prefixing our data with an 's' to know it is from the sub menu
        
    menu_additem(menu"\wAK47""s1"0);
        
    menu_additem(menu"\wM4A1""s2"0);
        
    menu_additem(menu"\wAUG""s3"0);
        
    menu_additem(menu"\wAWP""s4"0);
        
    menu_additem(menu"\wFamas""s5"0);
        
    menu_additem(menu"\wScout""s6"0);
        
    menu_additem(menu"\wM3""s7"0);
        
    menu_additem(menu"\wXM1014""s8"0);
        
    menu_additem(menu"\wM249""s9"0);
        
    menu_additem(menu"\wMac10""s10"0);
        
    menu_additem(menu"\wMP5""s11"0);
        
    menu_additem(menu"\wP90""s12"0);
        
    menu_additem(menu"\wSG550""s13"0);
        
    menu_additem(menu"\wSG552""s14"0);
        
    menu_additem(menu"\wTMP""s15"0);
        
    menu_additem(menu"\wUMP45""s16"0);
        
    menu_additem(menu"\wG3GS1""s17"0);
        
    menu_additem(menu"\wGalil""s18"0);
        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_display(idmenu0);
     }
     
     
     public 
    menu_handler(idmenuitem)
     {
        if( 
    item == MENU_EXIT )
        {
            
    menu_destroy(menu);
            return 
    PLUGIN_HANDLED;
        }

        new 
    data[6], szName[64];
        new 
    accesscallback;
        
    menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);

        
    //Note that we are getting the number after the first character
        
    new key str_to_num(data[1]);

        
    //Switch based on the first character of the data (the 'm' or the 's')
        
    switch( data[0] )
        {
            
    //All our main menu data will be handled in this case
            
    case 'm':
            {
                switch( 
    key )
                {
                    case 
    1:
                    {
                       
    SubMenu(id);              
                    }
                    case 
    2:
                    {
                       
    SubMenu2(id); 
                    }
                }
            }
            
    //All our sub menu data will be handled in this case
    case 's':
    {
      switch( 
    key )
        {
            case 
    1:
            {
                
    give_item(id"weapon_ak47")
            }
            case 
    2:
            {
                
    give_item(id"weapon_m4a1")
            }
        case 
    3:
            {
                
    give_item(id"weapon_aug")
            }
        case 
    4:
            {
                
    give_item(id"weapon_awp")
            }
        case 
    5:
            {
                
    give_item(id"weapon_famas")
            }
        case 
    6:
            {
                
    give_item(id"weapon_scout")
            }
        case 
    7:
            {
                
    give_item(id"weapon_m3")
            }
        case 
    8:
            {
                
    give_item(id"weapon_xm1014")
            }
        case 
    9:
            {
                
    give_item(id"weapon_m249")
            }
        case 
    10:
            {
                
    give_item(id"weapon_mac10")
            }
        case 
    11:
            {
                
    give_item(id"weapon_mp5")
            }
        case 
    12:
            {
                
    give_item(id"weapon_p90")
            }
        case 
    13:
            {
                
    give_item(id"weapon_sg550")
            }
        case 
    14:
            {
                
    give_item(id"weapon_sg552")
            }
        case 
    15:
            {
                
    give_item(id"weapon_tmp")
            }
        case 
    16:
            {
                
    give_item(id"weapon_ump45")
            }
        case 
    17:
            {
                
    give_item(id"weapon_g3gs1")
            }
        case 
    18:
            {
                
    give_item(id"weapon_galil")
        }
       }
       
       
       
       
       
       
                
    AwesomeMenu(id);
            }
        }

        
    menu_destroy(menu);
        return 
    PLUGIN_HANDLED;
     }
    Cụ thể mình muốn add thêm đoạn code sub-menu mua súng secondary vào đoạn code trên, tức là gộp 2 đoạn thành 1 (làm mãi không được, cứ báo error chỗ case 'p':):
    PHP:
    case 'p':
    {
      switch( 
    key )
        {
            case 
    1:
            {
                
    give_item(id"weapon_usp")
            }
            case 
    2:
            {
                
    give_item(id"weapon_elite")
            }
        case 
    4:
            {
                
    give_item(id"weapon_deagle")
            }
        case 
    5:
            {
                
    give_item(id"weapon_fiveseven")
            }
        case 
    6:
            {
                
    give_item(id"weapon_glock18")
            }
        }
    }    
     
    Chỉnh sửa cuối: 3/3/13
  16. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    ERROR gì vậy.
     
  17. ngochai9a7

    ngochai9a7 Dragon Quest

    Tham gia ngày:
    5/1/12
    Bài viết:
    1,450
    Nếu bạn ghép được thì ghép giúp mình đi :)
    Error thì tùm lum ở chỗ case 'p': (Too many error....)
     
  18. ngochai9a7

    ngochai9a7 Dragon Quest

    Tham gia ngày:
    5/1/12
    Bài viết:
    1,450
    Plugin Buy Weapon v1.0 by ngochai9a7
    Chức năng: Ngay như tiêu đề, cụ thể:
    - Mua súng chính
    - Mua súng phụ
    - 1 tính năng khác, hãy test để trải nghiệm :)
    Tất cả vũ khí đều là vũ khí có sẵn của CS
    Plugin này do newbie làm nên đừng có ai nổi hứng hỏi các add súng như nst_wpn nhé =))
    Xem lần này lên #2 được không ta :)
    Đặc biệt cảm ơn bác kungfulon đã chỉ giúp lỗi sai của plugin
    Link: http://www.mediafire.com/download.php?pp1999z2sc4qzqo
     
  19. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    Có vài cái bác cần chú ý nè:
    1. Nếu code của bác chỉ có 1 dòng, vd give_item(id, "weapon_usp") thì ko cần { } đậu :D, để vậy nó rối lắm :D.
    2. Bác chú ý cẩn thận khi code nha, cái case 'p' thiếu số 3 nè:
    PHP:
    case 'p':
    {
      switch( 
    key )
        {
            case 
    1:
            {
                
    give_item(id"weapon_usp")
            }
            case 
    2:
            {
                
    give_item(id"weapon_elite")
            }
    // case 3 :D ?
        
    case 4:
            {
                
    give_item(id"weapon_deagle")
            }
        case 
    5:
            {
                
    give_item(id"weapon_fiveseven")
            }
        case 
    6:
            {
                
    give_item(id"weapon_glock18")
            }
        }
    }  
    Full Code (em chỉ sửa về nội dung thôi còn hình thức bác tự sửa nhé :D).

    PHP:
     #include <amxmodx>
    #include <fun>

     
    public plugin_init()
     {
        
    register_clcmd"new_give_weapon","AwesomeMenu");
     }
     public 
    AwesomeMenu(id)
     {
        new 
    menu menu_create("\rLook at this awesome Menu!:""menu_handler")

        
    //Note that we are prefixing our data with an 'm' to know it is from the main menu
        
    menu_additem(menu"\wPrimary Weapon""m1"0);
        
    menu_additem(menu"\wSecondary Weapon""m2"0);

        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_display(idmenu0);
     }
     
    SubMenu2(id)
     {
        new 
    menu menu_create("\rLook at this awesome Sub-Menu!:""menu_handler")

        
    //Note that we are prefixing our data with an 's' to know it is from the sub menu
        
    menu_additem(menu"\wUSP""p1"0);
        
    menu_additem(menu"\wDual Elite""p2"0);
        
    menu_additem(menu"\wDeagle""p3"0);
        
    menu_additem(menu"\wFive Seven""p4"0);
        
    menu_additem(menu"\wP228""p5"0);
        
    menu_additem(menu"\wGlock 18""p6"0);

        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_display(idmenu0);
     }
     
    SubMenu(id)
     {
        new 
    menu menu_create("\rLook at this awesome Sub-Menu!:""menu_handler")

        
    //Note that we are prefixing our data with an 's' to know it is from the sub menu
        
    menu_additem(menu"\wAK47""s1"0);
        
    menu_additem(menu"\wM4A1""s2"0);
        
    menu_additem(menu"\wAUG""s3"0);
        
    menu_additem(menu"\wAWP""s4"0);
        
    menu_additem(menu"\wFamas""s5"0);
        
    menu_additem(menu"\wScout""s6"0);
        
    menu_additem(menu"\wM3""s7"0);
        
    menu_additem(menu"\wXM1014""s8"0);
        
    menu_additem(menu"\wM249""s9"0);
        
    menu_additem(menu"\wMac10""s10"0);
        
    menu_additem(menu"\wMP5""s11"0);
        
    menu_additem(menu"\wP90""s12"0);
        
    menu_additem(menu"\wSG550""s13"0);
        
    menu_additem(menu"\wSG552""s14"0);
        
    menu_additem(menu"\wTMP""s15"0);
        
    menu_additem(menu"\wUMP45""s16"0);
        
    menu_additem(menu"\wG3GS1""s17"0);
        
    menu_additem(menu"\wGalil""s18"0);
        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_display(idmenu0);
     }
     
     
     public 
    menu_handler(idmenuitem)
     {
        if( 
    item == MENU_EXIT )
        {
            
    menu_destroy(menu);
            return 
    PLUGIN_HANDLED;
        }

        new 
    data[6], szName[64];
        new 
    accesscallback;
        
    menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);

        
    //Note that we are getting the number after the first character
        
    new key str_to_num(data[1]);

        
    //Switch based on the first character of the data (the 'm' or the 's')
        
    switch( data[0] )
        {
            
    //All our main menu data will be handled in this case
            
    case 'm':
            {
                switch( 
    key )
                {
                    case 
    1:
                    {
                       
    SubMenu(id);              
                    }
                    case 
    2:
                    {
                       
    SubMenu2(id); 
                    }
                }
            }
            
    //All our sub menu data will be handled in this case
    case 's':
    {
      switch( 
    key )
        {
            case 
    1:
            {
                
    give_item(id"weapon_ak47")
            }
            case 
    2:
            {
                
    give_item(id"weapon_m4a1")
            }
        case 
    3:
            {
                
    give_item(id"weapon_aug")
            }
        case 
    4:
            {
                
    give_item(id"weapon_awp")
            }
        case 
    5:
            {
                
    give_item(id"weapon_famas")
            }
        case 
    6:
            {
                
    give_item(id"weapon_scout")
            }
        case 
    7:
            {
                
    give_item(id"weapon_m3")
            }
        case 
    8:
            {
                
    give_item(id"weapon_xm1014")
            }
        case 
    9:
            {
                
    give_item(id"weapon_m249")
            }
        case 
    10:
            {
                
    give_item(id"weapon_mac10")
            }
        case 
    11:
            {
                
    give_item(id"weapon_mp5")
            }
        case 
    12:
            {
                
    give_item(id"weapon_p90")
            }
        case 
    13:
            {
                
    give_item(id"weapon_sg550")
            }
        case 
    14:
            {
                
    give_item(id"weapon_sg552")
            }
        case 
    15:
            {
                
    give_item(id"weapon_tmp")
            }
        case 
    16:
            {
                
    give_item(id"weapon_ump45")
            }
        case 
    17:
            {
                
    give_item(id"weapon_g3gs1")
            }
        case 
    18:
            {
                
    give_item(id"weapon_galil")
        }
       }
       
                
    AwesomeMenu(id);
            } 
    case 
    'p':
    {
      switch( 
    key )
        {
            case 
    1:
            {
                
    give_item(id"weapon_usp")
            }
            case 
    2:
            {
                
    give_item(id"weapon_elite")
            }
        case 
    3:
            {
                
    give_item(id"weapon_deagle")
            }
        case 
    4:
            {
                
    give_item(id"weapon_fiveseven")
            }
        case 
    5:
                       
    give_item(id"weapon_p228")
               
    case 
    6:
        
    give_item(id"weapon_glock18")
        
        }
        
    AwesomeMenu(id);
        }

       
    }  

        return 
    PLUGIN_HANDLED;
     }  
     
  20. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    ^
    - Đề nghị lần sau up = attachment của forum, file có vài kb mà cũng phải mediafire, mất thời gian
     

Chia sẻ trang này