[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
    Cái ví dụ về add item ko làm hỏng crosshair có phải là AK-47 Golden trên alliedmods ko nhỉ @_@...

    Mà sao có tut tạo 1 class zombie cho ZP sao bác nào ko viết tut tạo game mode ZP hay extra item nhỉ, hehe :D.
     
  2. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    AK Golden đó ko bị hư Crosshair vì nó ko thay firesound
     
  3. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    Mà post trc bác bảo 2 file sound chạy trùng nhau là sao.
     
  4. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    ^
    - Giả sử làm cây SL8 dựa trên cây G3SG1 nhé, vậy mình hook cái forward primary attack để play soundfire của sl8, Nếu mình play mà ko chặn sound cũ của g3sg1 thì ko phải nó chạy cả 2 sound sl8 và g3sg1 luôn à
     
  5. 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
    Nếu tính làm mod thì move sound súng cũ sang folder khác là chặn đc.
    Còn nếu không thì chấp nhận để cái tâm bắn nó đứng yên 1 chỗ.
     
  6. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    Bác nào giải thích em cái return với. em xem nhiều plugin thì hiểu cái return; là làm gì đó cho func ko hoat động, return true/false là đúng/sai (xem trong code ZP).
    Nhưng em ko hiểu thực sự return để làm gì, nhiều khi compile plugin nó báo public XYZ cần return nên em tạo biến mới rồi return thôi chứ chẳng biết để làm gì :|. Cả cái PLUGIN_HANDLED với PLUGIN_CONTINUE nữa =.=!

    P.s: Mà sao dạo này CS 1.6 dần lỗi thời hay sao ý nhỉ, thấy mấy topic skin hay amx mấy bác ko thảo luận mấy, mà xem năm 2010-2011 riêng topic amx thôi cũng 1 ngày cả chục comment rồi, giờ có mỗi em hỏi thỉnh thoảng mấy bác vào trả lời, buồn vãi :((.
     
  7. MrKaii

    MrKaii The Warrior of Light

    Tham gia ngày:
    14/6/11
    Bài viết:
    2,208
    Nơi ở:
    Hà Nội
    return => trả về. Có gì ko hiểu, hihihi :6cool_boss:
     
  8. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    thế mấy cái return thế này đúng k ạ.
    PLUGIN_HANDLED: Stop plugin luôn.
    PLUGIN_CONTINUE: Ignore function đang check và chạy phần còn lại của plugin ??@@.
    còn cái return; cũng stop thì phải.

    Mà return function là sao hả bác, ví dụ: return Abc(id, param1, ...)
     
  9. MrKaii

    MrKaii The Warrior of Light

    Tham gia ngày:
    14/6/11
    Bài viết:
    2,208
    Nơi ở:
    Hà Nội
    chịu khó search trên AM nhé bạn :D MẤy cái này cũng căn bản thôi
    http://forums.alliedmods.net/archive/index.php/t-23224.html
    mà cái return khác plugin_continue đấy nhé

    - - - Updated - - -

    Hoặc xem trên wiki là đầy đủ tut căn bản nâng cao nhất :D
    http://wiki.amxmodx.org/Intro_to_AMX_Mod_X_Scripting
     
  10. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    PLUGIN_CONTINUE causes the associated function for the given plugin event to continue on to its final destination of the mod DLL or the engine.

    PLUGIN_HANDLED halts the function from being called in the mod DLL or the engine. Note that all plugins will still have the same function called, this only halts the final function call in the mod or engine.

    Đọc tiếng Anh nhiều từ cũng khó hiểu bác ạ.
     
    Chỉnh sửa cuối: 19/2/13
  11. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    Giờ ví dụ ta hook cái Drop Weapon nhé ?
    PHP:
    register_clcmd("drop""cmd_drop")

    PHP:
    public cmd_drop(id)
    {
             if(
    cant_drop_weapon[id])
                      return 
    PLUGIN_HANDLED // Chặn lại ko cho Drop Weapon = nút G

             
    return PLUGIN_CONTINUE
    }
    Giờ nếu mình chỉ để mỗi
    PHP:
    public cmd_drop(id)
    {
             if(
    cant_drop_weapon[id])
                      return 
    PLUGIN_HANDLED
    }
    Thì nó sẽ Warning phải ko ?, Nhưng nếu mình để

    PHP:
    public cmd_drop(id)
    {
             if(
    cant_drop_weapon[id])
                   return 
    PLUGIN_HANDLED

            
    return PLUGIN_HANDLED
    }
    Thì cho dù cái biến cant_drop_weapon[id] kia là 0 hay 1 thì chốt lại nó vẫn là return PLUGIN_HANDLED (VẪn bị block drop)
    thế nên phải sài PLUGIN_CONTINUE

    nói sơ sơ qua thì: PLUGIN_HANDLED Là dừng hẳn 1 function
    PLUGIN_CONTINUE thì bỏ qua cái đoạn đó thôi chứ ko dừng function

    Như lúc nãy là PLUGIN_HANDLED Nó dừng hẳn func drop luôn (là ko drop dc súng) và ta phải dùng PLUGIN_CONTINUE để bỏ qua đoạn code đó mà vẫn drop dc súng
     
  12. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    Mà nếu bác register đè vào command +drop của game nó có bị mất ko vậy :)?

    kiểu như
    PHP:
    register_clcmd("drop""func")

    public 
    func(id)
    {
    client_print(id, ....)
    }

    Thì nó vẫn vứt súng hay là ko vứt súng mà print... . :)
     
  13. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    Có cách nào block/replace weapon sound ko nhỉ ???
     
  14. 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ôi nghĩ là k thể :D
    nhưng thử vs FM_EmitSound xem nào
     
  15. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
     
  16. Kinzu

    Kinzu Mario & Luigi

    Tham gia ngày:
    24/12/12
    Bài viết:
    817
    bác cho em hỏi muốn lấy cái nội dung chat thì như nào nhỉ, ví dụ em muốn tất cả các text có chữ a đừng đầu thì thực hiện func này chẳng hạn :).

    Player1: abc -> chạy code
    Player2: a1b -> ________
    Player3: bac -> ko làm gì.
     
  17. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    ^
    - Cái này hơi khó làm 1 tý, lên alliedmods lấy plugin Color Chat về rồi nghịch
     
  18. 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
    Chả có gì khó làm cả:2cool_go:
    Hook cmd "say" rồi read_argv để lấy nội dung chat:2cool_go:
     
    Chỉnh sửa cuối: 24/2/13
  19. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    ^
    - Mi xem cái vế sau ấy =)), nó đòi bỏ hết chữ a đi, hook kiểu như mi chả khác gì làm lại từ đầu cái Chat đó =))
     
  20. 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
    Check ký tự đầu tiên của nó thì có gì khó:2cool_go:
    if (szArg[0] == 'a')
    {
    // Blah blah blah​
    }
     

Chia sẻ trang này