[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. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    @ALL:
    - Phương pháp học cái này cũng không khó đâu,...
    -> Tìm hiểu và đọc các tutorial cơ bản "của pawn", đọc tới đâu là phải hiểu tơi đó, ko hiểu hỏi ngay để xuống phần sau ko bị khó hiểu...
    -> Sau khi đọc xong và hiểu hết rồi, thì tìm và vọc mấy cái plugin nhỏ nhỏ thôi tầm 0 ~ 20 ~ 30 dòng là đủ, rồi cứ thế mà vọc cao hơn. Học đi đôi với thực hành. học thấy cái này hay, ra làm 1 plugin thử đem vào CS thử nếu thành công là mình nhớ cái đó liền...
    -> Ban đầu tui cũng chả biết làm 1 mode riêng, plugin riêng là thế nào hết ==". VỌc 1 hồi lâu, tự dưng biết làm luôn :))

    Cái quan trọng là phải biết english. Vì các hàm trong Pawn, nghĩa của hàm là cái tên hàm luôn rồi... VD: set_user_health(id) -> Nghĩa là: Set User Health (Chỉnh Máu Cho Người Chơi). Đúng ko :))

    -> Học xong nó sẽ có lợi đấy :-bd. Từ ngôn ngữ này mình có thể suy ra nhiều ngôn ngữ khác, như PHP, C++,... hoặc ngược lại. Tình hình là tui học dc nhiều ngôn ngư rồi :)). trong đấy mạnh nhất là Pawn, PHP. còn C++ khó vãi cả chuối... =="
     
    Chỉnh sửa cuối: 14/7/11
  2. MrKaii

    MrKaii The Warrior of Light

    Tham gia ngày:
    14/6/11
    Bài viết:
    2,208
    Nơi ở:
    Hà Nội
    Liệu có thực sự chỉ cần hiểu theo nghĩa tiếng anh là mình sẽ dịch đúng ko ;)). vd về 1 từ khóa trong C "Break" Tiếng anh là vỡ, gãy => Nhưng hiểu trong từ điển tin học nghĩa là gì ;)), hiểu trong lập trình sẽ là gì ;)) Nói chung thì tiếng anh cũng quan trọng 1 phần, nhưng tư duy toán học ko có thì cho dù thằng chuyên anh ngữ cũng chả thể làm nổi ;))
     
  3. NguLongHaKhac

    NguLongHaKhac T.E.T.Я.I.S

    Tham gia ngày:
    5/2/11
    Bài viết:
    653
    Nơi ở:
    MC
    Anh dias đến cơ làm 1 ebook VIE đi,Chứ về ENG em khó hiểu lắm (Thông cảm em còn bé nên chưa học nhiều về Eng =(()
     
  4. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    @MrKaii:
    - Có 1 số từ eng có nhiều nghĩa,.....

    @ALL:
    - Ai cho tôi biết Việt Nam hiện có bao nhiêu Coder AMX nhỉ :-?
    - sontung0, 5c0r, redplane, huucuong, ryokin, chief, kakaan, mrkun (tên này dạo này ko thấy đâu nữa), dias,... Còn thiếu ai thì pm nhá :))

    @NguLongHaKhac:
    - Tôi có viết tut tiếng VN rồi mà, kungfulon up ngoài page 1 ấy. Chờ khi tất cả các coder viết dc nhiều tut rồi gộp lại thành ebook cũng ko sao đâu :))
     
    Chỉnh sửa cuối: 14/7/11
  5. MrKaii

    MrKaii The Warrior of Light

    Tham gia ngày:
    14/6/11
    Bài viết:
    2,208
    Nơi ở:
    Hà Nội
    Từ khóa trong lập trình nhiều từ dịch ra ko đúng theo nghĩa dịch đâu. Thế nó mới phân biệt ra từ điển anh-viêt vs từ điển tin học
    Coder thì cũng nham nhảm đấy, nhưng 1 số người ko xuất hiện=> Nói chung ai có kỹ năng về C rồi thì vào trong CS này làm được vài plugins đấy
     
  6. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    Chỉnh sửa cuối: 14/7/11
  7. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    Cứ cho là vậy đi, em rốt Eng, tra google thì nó dịch loạn lên
    Còn toán thì được có gần 9,5 thôi ^^

    Ko phải em ko muốn nghiên cứu mà là ko có time, học 10 buổi/tuần rồi, thỉnh thoảng mới được sờ vào cái PC, còn mọi hum em toàn sài mobile thôi...
     
  8. MrKaii

    MrKaii The Warrior of Light

    Tham gia ngày:
    14/6/11
    Bài viết:
    2,208
    Nơi ở:
    Hà Nội
    học lý thuyết đi rồi áp dụng thực hành sau. 1 đứa bé mới sinh ko thể nào đứng lên và chạy nó chỉ có thể bò. Lập trình cũng vậy cần phải bò sát vào lý thuyết nắm vững các từ khóa. Vd như này: Trong lập trình thì các hằng số là đại lượng ko thể thay đổi và bắt buộc phải viết hoa, biến là đại lượng có thể thay đổi,... Giỏi toán như thế thì là 1 lợi thế đấy
     
  9. Atick hem

    Atick hem The Warrior of Light

    Tham gia ngày:
    8/12/08
    Bài viết:
    2,015
    Nơi ở:
    Buôn Ma Thuật
    sự thật mà nói nhảy cóc đôi khi có lợi đấy :|................. đôi khi thôi nhé.

    tui làm quen lua. nhảy cóc đọc advance ~> ok, áp dụng tốt trừ 1 số chỗ mò mãi mới ra lúc test.
    ~> sang amx, đọc nst_wpn. hiểu hầu hết cách hoạt động
    ~> sang php, làm vụ LAN đã nói, cũng tương đối vụ gửi và nhận.
    ... thực ra thì nhảy cóc tốt hay ko cũng tùy trường hợp và tùy người. đa số là failed.
     
  10. MrKaii

    MrKaii The Warrior of Light

    Tham gia ngày:
    14/6/11
    Bài viết:
    2,208
    Nơi ở:
    Hà Nội
    Đấy là những người có khả năng tiếp thu tốt về đọc hiểu, một số người ko phải dốt nhưng mà ko thể nào nhảy cóc được
     
  11. redplane

    redplane Legend of Zelda

    Tham gia ngày:
    7/11/09
    Bài viết:
    1,195
    Túm lại là đi dần từng bước, có đam mê + học tốt toán + học tốt tiếng anh = lợi thế. Như ông Bill Gates đó, học dần dần, từ từ chứ có phải là học C++ xong 1 phát là có ngay hệ điều hành Windows đồ sộ đâu.
     
  12. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    Trời ơi, nản quá, có thêm cái dòng thông báo cũng không xong nữa

    Các anh xem dùm em với..
    Em chỉ thêm mỗi chỗ Line 91-100
    Complie được nhưng vào game thì nó báo "New message started when msg 107 has bot been sent yet" :((

    PHP:
    #include <amxmodx>

    #define PLUGIN "Weapon Icon"
    #define VERSION "1.0"
    #define AUTHOR "Duc Duy"

    new iconstatus;
    new 
    user_icons[32][192];
    new 
    icon_origin[3] = {0,0,0}
    new 
    pcv_show;
    new 
    pcv_iloc;

    public 
    plugin_init() {
        
    register_plugin(PLUGINVERSIONAUTHOR)
        
        
    register_event ("CurWeapon""update_icon""ab")
        
    register_event("DeathMsg""event_death""a")
        
    pcv_show register_cvar("show""1");
        
    pcv_iloc register_cvar("hide""1");
        
    register_concmd("amx_weapon_icon""weapon_icon_toggle"ADMIN_CVAR"Toggle display of the weapon icon on/off (default on)")
        
        
    check_icon_loc();
    }

    public 
    update_icon(id) {
        
    check_icon_loc();
        if(!
    get_pcvar_num(pcv_show) || get_pcvar_num(pcv_iloc) == 0)
            return 
    PLUGIN_CONTINUE;
        
        if(
    is_user_alive(id))
        {
            new 
    iwpnwclipwammosprite[192], icon_color[3] = {01600}
            
            
    remove_weapon_icon(id)
            
            
    iwpn get_user_weapon(idwclipwammo)
            switch(
    iwpn) {
                case 
    CSW_P228sprite "d_p228"
                    
    case CSW_SCOUTsprite "d_m700"
                    
    case CSW_HEGRENADEsprite "d_grenade"
                    
    case CSW_XM1014sprite "d_xm1014"
                    
    case CSW_C4sprite "d_c4"
                    
    case CSW_MAC10sprite "d_mac10"
                    
    case CSW_AUGsprite "d_aug"
                    
    case CSW_SMOKEGRENADEsprite "d_grenade"
                    
    case CSW_ELITEsprite "d_elite"
                    
    case CSW_FIVESEVENsprite "d_fiveseven"
                    
    case CSW_UMP45sprite "d_ump45"
                    
    case CSW_SG550sprite "d_sg550"
                    
    case CSW_GALILsprite "d_galil"
                    
    case CSW_FAMASsprite "d_famas"
                    
    case CSW_USPsprite "d_usp"
                    
    case CSW_MP5NAVYsprite "d_mp5"
                    
    case CSW_M249sprite "d_m249"
                    
    case CSW_M3sprite "d_m3"
                    
    case CSW_M4A1sprite "d_m4a1"
                    
    case CSW_TMPsprite "d_tmp"
                    
    case CSW_G3SG1sprite "d_g3sg1"
                    
    case CSW_FLASHBANGsprite "d_flashbang"
                    
    case CSW_DEAGLEsprite "d_deagle"
                    
    case CSW_SG552sprite "d_sg552"
                    
    case CSW_AK47sprite "d_ak47"
                    
    case CSW_KNIFEsprite "d_knife"
                    
    case CSW_P90sprite "d_p90"
                    
    case CSW_VESTsprite "suit_full"
                    
    case CSW_VESTHELMsprite "suithelmet_full"
                    
    case CSW_GLOCK18sprite "d_glock18"
                    
    case CSW_AWPsprite "d_awp"
                    
    case 0sprite ""
                    
    default: sprite ""
            
    }
            if (
    is_user_ok(id)) {
                if (
    equali(sprite"") || !is_user_ok(id)) {
                    
    remove_weapon_icon(id)
                    } else {
                    
    // draw the sprite itself (only on a human user's screen)
                    // marker ////////////////////////////////////////////////////////////////////////////////
                    
    message_begin(MSG_ONE,iconstatus,icon_origin,id);
                    
    write_byte(1); // status (0=hide, 1=show, 2=flash)
                    
    write_string(sprite); // sprite name
                    
                    /*
                    4 stages - Normal, 1 Clip, No Clip + Some ammo, Completely Out
                    
                    */
                    
                    // ammo check, this is for the color of the icon
                    
    get_user_ammo(idiwpnwammowclip// update vars correctly
                    
                    
    if (wclip == && wammo == 0){
                        
    icon_color = {00255// outta ammo!
                        
    client_print(idprint_chat"Bang dan hien tai con %d, bang dan du phong con %d"0,  0
                    }
                    if (
    wclip == wammo || wclip wammo){
                        
    icon_color = {255150150// last clip!
                        
    client_print(idprint_chat"%s hay tiet kiem dan""ban"
                    }
                    if (
    wammo && wclip == 0) {
                        
    icon_color = {255100100
                        
    client_print(idprint_chat"Bang dan du phong chi con %d vien"0
                    }
                        
    // almost out!
                    // attempt at percentage max clip & % red/green color
                    // 1: Get max ammo for weapon
                    //maxammo = maxclip(iwpn);
                    
                    
                    
    write_byte(icon_color[0]); // red
                    
    write_byte(icon_color[1]); // green
                    
    write_byte(icon_color[2]); // blue
                    
    message_end();
                }
                
    user_icons[id] = sprite;
            }
        }
        return 
    PLUGIN_CONTINUE


    public 
    weapon_icon_toggle(id) {
        new 
    toggle[32], players[32], numplayerstatus[32] = "enabled"
        
    read_argv(1toggle1)
        
        if (
    equali(toggle"1")) {
            
    status "enabled"
            
    } else if (equali(toggle"0")) {
            
    status "disabled"
            
    } else if (equali(toggle"")) {
            
    console_print(id"Usage: amx_weapon_icon <1/0> - Toggles wether or not showing the user's current weapon as an icon")
            
    console_print(id"Weapon Icon is currently %s"status)
            return 
    PLUGIN_HANDLED
        
    }
        
        
    set_cvar_string("amx_show_weapon_icon"toggle)
        
    client_print(0print_chat"Weapon Icon is now %s"status)
        
    get_players(playersnum)
        for (new 
    i=0i<numi++) {
            
    player players[i]
            if (!
    equali(user_icons[player], "") && !equali(players[i], "") && is_user_ok(id)) {
                
    remove_weapon_icon(i)
            }
        }
        return 
    PLUGIN_CONTINUE
    }

    public 
    remove_weapon_icon(id) {
        if (
    is_user_ok(id)) {
            
    message_begin(MSG_ONE,iconstatus,icon_origin,id);
            
    write_byte(0);
            
    write_string(user_icons[id]);
            
    message_end();
        }
    }

    public 
    is_user_ok(id) {
        
    // check if the user is "ok": they are connected, not a bot, and alive
        
    if (is_user_connected(id) && !is_user_bot(id) && is_user_alive(id))
            return 
    true
        
    return false
    }

    public 
    event_death() {
        new 
    player read_data(2// the dead player's ID (1-32)
        
    if (is_user_connected(player) && !is_user_bot(player)) { // remove icon
            
    message_begin(MSG_ONE,iconstatus,icon_origin,player);
            
    write_byte(0);
            
    write_string(user_icons[player]);
            
    message_end();
        }
    }

    public 
    check_icon_loc() {
        if(!
    get_pcvar_num(pcv_iloc))
            return 
    PLUGIN_CONTINUE;
        new 
    value get_pcvar_num(pcv_iloc);
        if (
    value == 0)
            
    iconstatus 0;
        if (
    value == 1)
            
    iconstatus get_user_msgid("StatusIcon");
        if (
    value == 2)
            
    iconstatus get_user_msgid("Scenario");
        return 
    PLUGIN_CONTINUE;
    }

     
  13. legiondark

    legiondark Donkey Kong

    Tham gia ngày:
    2/5/11
    Bài viết:
    357
    Nơi ở:
    Skynet !
    Mấy cái AMX này có tác động đc vào AL bot k mấy bác (Kiểu như ta tạo 1 chế độ rồi hướng dẫn bot chơi theo chế độ của mình ý)
    P/s:Ta nên xin sếp 1 topic bàn luận về vấn đề này đi, thấy ở đấy k phù hợp lắm (Tổng hợp code, plug cơ mà.)
     
    Chỉnh sửa cuối: 15/7/11
  14. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    Cái đó thì chắc là ko đâu. Bot lập trình ra để bắn nhau thôi, mình đâu có sửa dc suy nghĩ của bot...
     
  15. Atick hem

    Atick hem The Warrior of Light

    Tham gia ngày:
    8/12/08
    Bài viết:
    2,015
    Nơi ở:
    Buôn Ma Thuật
    ^:)^.... hiểu đơn giản là có thể sửa cấu trúc của podbot thành 1 loại bot mới chỉ dành riêng cho chơi zombie đc. thực ra nó đc lập trình cũng hướng đối tượng, kiểm tra, bắn.

    vấn đề là hiện giờ chưa đủ khả năng để sửa source nó thôi :))
     
  16. kakaan96

    kakaan96 Dragon Quest

    Tham gia ngày:
    29/1/10
    Bài viết:
    1,422
    zbot chơi Zombie cũng ổn
    làm bot mới làm ji ...........
    PS:có dự án
     
    Chỉnh sửa cuối: 15/7/11
  17. My Own Way

    My Own Way S.V.E.N Commander Lão Làng GVN

    Tham gia ngày:
    30/7/09
    Bài viết:
    12,231
    Nơi ở:
    Hải Phòng
    Muốn cũng khó mà làm được ...zbot chẳng qua hit & run bằng melee tốt thôi.
     
  18. 5c0r-|3i0

    5c0r-|3i0 Donkey Kong

    Tham gia ngày:
    6/8/09
    Bài viết:
    387
    @ducduy : Quote dòng nào chú thêm ra xem :| .
     
  19. Atick hem

    Atick hem The Warrior of Light

    Tham gia ngày:
    8/12/08
    Bài viết:
    2,015
    Nơi ở:
    Buôn Ma Thuật
    chả hiểu cái line 170 là line nào. scan ra thì line 170 là nil @@
     
  20. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    90 ~ 101
    PHP:
                    if (wclip == && wammo == 0){ 
                        
    icon_color = {00255// outta ammo! 
                        
    client_print(idprint_chat"Bang dan hien tai con %d, bang dan du phong con %d"0,  0)  
                    } 
                    if (
    wclip == wammo || wclip wammo){ 
                        
    icon_color = {255150150// last clip! 
                        
    client_print(idprint_chat"%s hay tiet kiem dan""ban")  
                    } 
                    if (
    wammo && wclip == 0) { 
                        
    icon_color = {255100100}  
                        
    client_print(idprint_chat"Bang dan du phong chi con %d vien"0)  
                    } 
    * muốn đếm dòng thì dùng notepad++, amxmodx studio, pass code vào rồi kiếm dòng... Ctrl + G
     
    Chỉnh sửa cuối: 15/7/11

Chia sẻ trang này