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

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    đươc như pascal đã tôt, minh đã hoc pascal, c, autoit nhưng chưa thấy cai nao kho như cái này.
    Hàm trong inc thi ko có ví dụ, lại còn id cua player, học mà nản!
     
  2. VN-zombie

    VN-zombie T.E.T.Я.I.S

    Tham gia ngày:
    20/11/10
    Bài viết:
    567
    hỏi ở đây khó vãi luyện , đếck ai trả lời :-w
     
  3. white hat

    white hat Youtube Master Race

    Tham gia ngày:
    23/6/11
    Bài viết:
    30
    VN-zombie: Không có plugins như thế hoặc là có thì cũng ko ai dỗi hơi đi nhận làm đặt hàng :-"
     
  4. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    @sontung0:
    - Tui làm dc 1 phần rồi, đó là khi bt` thì nó sẽ không hiện. Nhưng khi bị dính bomb, thì cái ent nó hiện lên, nhưng cái player nó ko ẩn đi, thành ra nó dính 2 cái lại với nhau. ông xem tui viết sai chỗ nào trong cái đoạn AddToFUlLPack sửa hộ tui đi, vọc cả từ sáng rồi. chưa ra

    - Ent thì khi plugin chạy tui tạo 32 ent cho 32 player ồi, nên khi sài thì có hiện nó lên thôi. Nên phải check cho nó hiện đúng lúc, ko phải đang chơi mà nó hiện lên. 1 cái là check cho ent hiện hoặc ẩn, 1 cái là check cho player ẩn hay hiện....

    PHP:
    public fw_WhatsTheFuckPost(es,e,ent,host,hostflags,player,pSet)
    {
        if(
    is_user_connected(host))
        {
            if(!
    player && is_valid_ent(ent))
            {
                if(!
    g_illusion_stat[host])
                {
                    static 
    classname[32]
                    
    pev(entpev_classnameclassnamesizeof(classname))
                    
                    if(
    equal(classname"fakep"))
                        
    set_es(esES_EffectsEF_NODRAW)
                }
            } else if(
    player && is_user_connected(ent))
            {
                if(
    g_illusion_stat[host])
                if(
    is_user_alive(ent) && cs_get_user_team(ent) == CS_TEAM_T)
                {
                    
    set_es(esES_EffectsEF_NODRAW)
                }
            }
            
        }
        
        
        return 
    FMRES_IGNORED
    }
     
    Chỉnh sửa cuối: 15/10/11
  5. Home Sweet Home

    Home Sweet Home Mr & Ms Pac-Man

    Tham gia ngày:
    13/10/11
    Bài viết:
    143
    Hic Khó như vậy à :(
     
  6. sontung0

    sontung0 Dragon Quest

    Tham gia ngày:
    27/5/09
    Bài viết:
    1,333
    @dias: Fake hoàn hảo :>
    PHP:
    #include <amxmodx>
    #include <amxmisc>
    #include <fakemeta>
    #include <engine>

    #define PLUGIN "Fake Player"
    #define VERSION "1.0"
    #define AUTHOR "NST"


    #define CLASSNAME_FAKE_PLAYER "fake_player"
    new g_iConfusing[33], g_iEntFake[33]
    new 
    cv[32]


    public 
    plugin_init()
    {
        
    register_plugin(PLUGINVERSIONAUTHOR)
        
        
    register_forward(FM_AddToFullPack"Forward_AddToFullPack_Post"1)
        
        
    cv[0] = register_cvar("fake_attacker""2")
    }

    public 
    Forward_AddToFullPack_Post(es_handledinteenthosthostflagsplayerpSet)
    {
        
    // neu host ko con song thi bo qua
        
    if ( !is_user_alive(host) )
            return 
    FMRES_IGNORED
        
        
    // neu host ko bi dinh bomb hc thang attacker da chet
        
    g_iConfusing[host] = get_pcvar_num(cv[0])
        new 
    iAttacker g_iConfusing[host]
        if ( !
    iAttacker || iAttacker == host || !is_user_alive(iAttacker) )
            return 
    FMRES_IGNORED
        
        
        
    // neu ent chinh la thang dap bom
        
    if (ent == iAttacker)
        {
            
    // an? thang do'
            
    set_es(es_handledES_RenderModekRenderTransAdd)
            
    set_es(es_handledES_RenderAmt0.0)
            
            
    // tao ent fake cho attacker neu chua co
            
    new iEntFake find_ent_by_owner(-1CLASSNAME_FAKE_PLAYERiAttacker)
            if ( !
    iEntFake || !pev_valid(iEntFake) )
            {
                
    iEntFake create_fake_player(iAttacker)
            }
            
    g_iEntFake[iAttacker] = iEntFake
        
    }
        
        
    // neu ent la fake player cua attack
        
    else if (ent == g_iEntFake[iAttacker])
        {
            
    // show hang' cho thang host xem
            
    set_es(es_handledES_RenderModekRenderNormal)
            
    set_es(es_handledES_RenderAmt255.0)
            
            
    // set model cua host cho ent fake
            
    set_es(es_handledES_ModelIndexpev(hostpev_modelindex) )
        }
        
        return 
    FMRES_IGNORED
    }

    create_fake_player(id)
    {
        new 
    iEntFake create_entity("info_target")
        
    set_pev(iEntFakepev_classnameCLASSNAME_FAKE_PLAYER)
        
    set_pev(iEntFakepev_modelindexpev(idpev_modelindex) )
        
    set_pev(iEntFakepev_movetypeMOVETYPE_FOLLOW)
        
    set_pev(iEntFakepev_solidSOLID_NOT)
        
    set_pev(iEntFakepev_aimentid)
        
    set_pev(iEntFakepev_ownerid)
        
        
    // an? fake player
        
    set_pev(iEntFakepev_rendermodekRenderTransAdd)
        
    set_pev(iEntFakepev_renderamt0.0)
        
        return 
    iEntFake
    }

     

    Các file đính kèm:

  7. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    @sontung0:
    - Cám ơn, để check xem nào :x
     
  8. 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
    Giống y chang cách fake của mình=))
     
  9. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    @sontung0:
    - Vậy giờ set model cho nó thế nào đây. Tạo thêm 1 biến là is_confusing[id] cho dễ hiểu đi :-?, giờ nếu bị confusing thì nhìn team CT thành team TE :-? Chứ code kia...vẫn chưa hiểu :))
     
  10. teobrvt1995

    teobrvt1995 T.E.T.Я.I.S

    Tham gia ngày:
    19/9/10
    Bài viết:
    691
    Tớ học pascal toàn 4 điểm mà viết pawn đủ thứ súg ốg ý...
     
  11. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    Có vẻ như ông Sontung0 ko hiểu vấn đề của mình rồi :(. Xin phép explain lại
    -> cái này tôi làm theo cách là tạo sẵn entity cho 32 player, rồi đến khi sài chỉ việc hiện nó lên thôi. ent fake ẩn còn player hiện thì làm dc rồi, nhưng còn player ẩn ent fake hiện (cái quan trọng) thì lại chưa làm được. Làm mãi không được làm mà nó toàn hiện cả 2 không chịu ẩn player đi
     
  12. sontung0

    sontung0 Dragon Quest

    Tham gia ngày:
    27/5/09
    Bài viết:
    1,333
    @dias:
    cái plugin trên kia đã bao gồm việc tạo fake ent, gán model victim cho fake ent và ẩn attacker
    công việc của cậu bây giờ đơn giản chỉ là set giá trị cho biến g_iConfusing đê biết player nào đang bị dính bom và ai là attacker thôi
     
  13. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    à dc rồi, để vọc xem :-?.
     
    Chỉnh sửa cuối: 16/10/11
  14. [S]on[D]hl

    [S]on[D]hl Dragon Quest

    Tham gia ngày:
    9/12/06
    Bài viết:
    1,403
    Nơi ở:
    C:\
    cho mình hỏi chút có plugin nào mà bỏ giới hạn tiền 16000 đi ko ?
     
  15. Home Sweet Home

    Home Sweet Home Mr & Ms Pac-Man

    Tham gia ngày:
    13/10/11
    Bài viết:
    143
  16. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    @Dias: Cho em hỏi tí..
    Nếu mình dùng
    client_print(id,print_chat,"Hello")
    Thì dòng chat "Hello" sẽ gửi đến toàn bộ player đang chơi trong server đúng ko? (id == All player)

    Còn mình dùng
    client_print(1,print_chat,"Hello")
    Thì dòng chat "Hello" sẽ gửi đến ngưởi chơi có id = 1 đúng ko ?

    Thế cái id nó từ 1 trở đi (Theo thứ tự cấp số cộng, công sai 1: 1,2,3..) hay là lung tung hả anh...?
     
  17. teobrvt1995

    teobrvt1995 T.E.T.Я.I.S

    Tham gia ngày:
    19/9/10
    Bài viết:
    691
    id là index cũa player, nếu dùng như chú thì nó chỉ send cái "hello" cho player nhất định dc set thôi.
    mún nó send cho cả SV thì index sẽ là 0
    PHP:
    client_print(0,print_chat,"Hello")
     
  18. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    @buiduchuy:
    - Nhầm rồi, gửi đến id là id thằng player hiện tại. Chứ ko phải gửi hết khi nào client_print(0, print_chat,.... khi đó mới send hết. VD:
    PHP:
    register_clcmd("say /set""set")

    public 
    set(id)
    {
           
    client_print(idprint_chat"Hello World")
    }
    -> Khi đó, thằng nào mà gõ /set thì nó sẽ gửi tới thằng đó vì cái chữ id bên cạnh cái public set là để chứa đựng id thằng thực thi cái cmd đó

    2. nếu client_print(1, print_chat,,.... thì gửi tới thằng có id = 1 :))
     
  19. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    Không ý em là lúc đăng kí mấy cái sự kiện cơ...
    Nếu đăng kí sự kiện DeathMsg thì id xác định như thế nào? Hay CurWeapon chẳng hạn...

    Tiện thể bác cho em xin lun cái code lấy kill và dead của player nhé! :D
    Làm sao để kiểm tra thằng nào có số kill cao nhất nhỉ?

    for(id;id<32;id++)
    {
    xong làm sao đây, em vẫn ngu cái chỗ này... :)
    }

    2..Cho em hỏi luôn cái sự kiện DeathMsg lúc nào cũng có chỗ read_data(1) (2) (3) là đọc cái gì vậy ạ? sao lại thế?
    3. Nếu em muốn làm chế độ đấu dao (admin ko được dùng súng) thì dùng sự kiện nào để gán câu lệnh drop ạ?
    Nhưng dùng drop thì súng của mình rơi xuống đất (phi thực tế quá) có cách nào để khóa ko cho dùng súng ko anh?

    Thanks anh trước nha!
     
  20. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    1. Mấy cái đó tôi cũng không rành cho lắm, mở mấy cái const ra là có
    PHP:
    /* Registers event on which a given function will be called
    * Flags:
    * "a" - global event.
    * "b" - specified.
    * "c" - send only once when repeated to other players.
    * "d" - call if is send to dead player.
    * "e" - to alive.
    * NOTE: Due to a long-standing bug that would break compatibility with old plugins,
    *       the client id should be checked for alive/dead state if you use d or e.
    * Examples for conditions:
    * "2=c4" - 2nd parameter of message must be sting "c4".
    * "3>10" - 3rd parameter must be greater then 10.
    * "3!4" - 3rd must be different from 4.
    * "2&Buy" - 2nd parameter of message must contain "Buy" substring.
    * "2!Buy" - 2nd parameter of message can't contain "Buy" substring. */
    native register_event(const event[],const function[],const flags[],const cond[]="", ... );
    2. lấy kill death của player.
    - get_user_frags(id) // return kill count
    - get_user_deaths(id) // return death count
    3.
    PHP:
    for(khởi tạođiều kiệntăng)
    {
         
    // Nếu điều kiện đúng, thì tăng và thực hiện code
    }
    VD:
    PHP:
    #define MAX 10

    for(new 0MAXi++)
    {
          
    client_print(player"%i"i)
    }
    --- Mang vào CS test là biết
    4. DeathMSG
    - data 1 = attacker
    - data 2 = victim
    - data 3 = headshot
    --- nếu tôi ko lầm thì trong const có
    5.
    * Drop súng:
    - strip_user_weapon(id)

    * Không cho lượm súng:
    PHP:
    RegisterHam(Ham_Touch"weaponbox""fw_touch_weapon")

    public 
    fw_touch_weapon(entid)
    {
          return 
    HAM_SUPERCEDE
    }
     
    Chỉnh sửa cuối: 21/10/11

Chia sẻ trang này