[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ái đó em có hêt òi. Còn mỗi Hòm tiếp tế thì chưa... Class thì có gì đâu... Cứ kiểm tra xem có phải class đó ko (qua native) + xem có phải zombie ko... rùi chạy khác gì bình thường :) ... Chưa có skin cũng chẳng test được... Đang liều lĩnh làm AI mode... Còn vụ cái con bắn súng thì bỏ lun :))

    ---------- Post added at 19:49 ---------- Previous post was at 19:44 ----------

    Thôi các bác xem dùm em lun cái zombie v 1 này với.. Có chỗ nào dùng code chưa đúng hay là dài quá thì các bác sửa lun dùm em nha ( Cái này có gần 400 Line :) ) Chưa show hud & sound gì cả Có mỗi main :)
    PHP:
    /* Script generated by Pawn Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>
    #include <hamsandwich>
    #include <fun>
    #include <fakemeta>
    #include <engine>

    #define PLUGIN    "Zombie"
    #define AUTHOR    "Bui Duc Duy"
    #define VERSION    "1.0"

    new g_time_zombie_xuathien
    new g_msgTextMsg
    new boolg_zombie_daxuathien,  g_is_user_zombie[33] , g_is_zombie_delay[33]
    new 
    g_zombie_class[33]
    new 
    g_zombie_level[33]
    new 
    Human_ScoreZombie_scoreTotal_round
    // class 1 : red zombie, class 2: ke huy diet, class 3 : nu y ta, class 4: smoke
    new const g_remove_entities[][] = 

        
    "func_bomb_target",    
        
    "info_bomb_target"
        
    "hostage_entity",      
        
    "monster_scientist"
        
    "func_hostage_rescue"
        
    "info_hostage_rescue",
        
    "info_vip_start",      
        
    "func_vip_safetyzone"
        
    "func_escapezone",     
        
    "func_buyzone"
    }

    enum(+=1500)
    {
        
    G_HP_zombie_level_1 2000,
        
    G_HP_zombie_level_2,
        
    G_HP_zombie_level_3,
        
    G_HP_zombie_level_4,
        
    G_HP_zombie_level_5
    }

    enum(+=100)
    {
        
    TASK_MAKEZOMBIE 2000,
        
    TASK_RESTORE_HP,
        
    TASK_REAL_RESTORE_HP,
        
    TASK_REGISTER_BOT,
        
    TASK_OUT_GAME
    }

    #define ID_RESTORE_HP (taskid - TASK_RESTORE_HP)
    #define ID_REAL_RESTORE_HP (taskid - TASK_REAL_RESTORE_HP)
    #define ID_REGISTER_BOT (taskid - TASK_REGISTER_BOT)

    // ========= NATIVE============

    public plugin_natives()
    {
        
    register_native("bdd_is_user_zombie""native_bdd_is_user_zombie"1)
        
    register_native("bdd_get_user_class""native_bdd_get_user_class"1)
        
    register_native("bdd_get_user_level""native_bdd_get_user_level"1)
        
    register_native("bdd_get_zombie_score""native_bdd_get_zombie_score"1)
        
    register_native("bdd_get_human_score""native_bdd_get_human_score"1)
    }


    public 
    native_bdd_is_user_zombie(id)
    {
        return 
    g_is_user_zombie[id]
    }

    public 
    native_bdd_is_user_level(id)
    {
        return 
    g_zombie_level[id]
    }
    public 
    native_bdd_get_user_class(id)
    {
        return 
    g_zombie_class[id]
    }
    public 
    native_bdd_get_zombie_score()
    {
        return 
    Zombie_score
    }
    public 
    native_bdd_get_human_score()
    {
        return 
    Human_Score
    }
    //========== END ============

    public plugin_init()
    {
        
    register_plugin(PLUGINVERSIONAUTHOR)
        
    register_event("HLTV""event_round_start""a""1=0""2=0")
        
    register_logevent("logevent_round_start",2"1=Round_Start")
        
    register_logevent("logevent_round_end"2"1=Round_End")

        
    RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
        
    RegisterHam(Ham_Touch"weaponbox""fw_touch_weapon")
        
        
    register_forward(FM_Spawn"fwd_spawn")
        
        
        
    register_message(get_user_msgid("SendAudio"), "message_sendaudio")
        
    register_message(get_user_msgid("TextMsg"), "message_textmsg")
        
    register_message(get_user_msgid("Scenario"), "message_scenario")
        
        
    g_msgTextMsg get_user_msgid("TextMsg")
    }

    //Dang ki BOT
    public client_putinserver(id)
    {
        
    set_task(0.1"register_cz_function"id 5230)
    }

    public 
    register_bot_function(taskid)
    {
        new 
    id ID_REGISTER_BOT
        
    if (is_user_bot(id) && get_cvar_num("bot_quota"))
        {
            
    RegisterHamFromEntity(Ham_TakeDamageid"fw_TakeDamage")
        }
    }
    // disabel a cs default
    public message_textmsg()
    {
        static 
    textmsg[22]
        
    get_msg_arg_string(2textmsgsizeof textmsg 1);

        if (
    equal(textmsg"#Hostages_Not_Rescued") || equal(textmsg"#Round_Draw") || equal(textmsg"#Terrorists_Win") || equal(textmsg"#CTs_Win") || equal(textmsg"#Target_"8))
            
    set_msg_arg_string(2"")
        return 
    PLUGIN_CONTINUE
    }

    public 
    message_sendaudio()
    {
        static 
    audio[17]
        
    get_msg_arg_string(2audiosizeof audio 1)
        if(
    equal(audio[7], "terwin") || equal(audio[7], "ctwin") || equal(audio[7], "rounddraw"))
            
    set_msg_arg_string(2"")
        return 
    PLUGIN_CONTINUE;
    }
    public 
    message_scenario()
    {
        if (
    get_msg_args() > 1)
        {
            static 
    sprite[8]
            
    get_msg_arg_string(2spritesizeof sprite 1)
            if (
    equal(sprite"hostage"))
                return 
    PLUGIN_HANDLED;
        }
        return 
    PLUGIN_CONTINUE;
    }
    ///=== END=========

    // Take damage to human -> zombie
    public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
    {
        if (
    victim == attacker)
            return 
    HAM_IGNORED;
        if (!
    is_user_connected(victim) || !is_user_connected(attacker))
            return 
    HAM_IGNORED;

        
    // Zombie hit human
        
    if (g_is_user_zombie[attacker] && !g_is_user_zombie[victim])
        {
            
    g_zombie_level[attacker] ++
            
    g_is_user_zombie[victim] = true
            g_zombie_level
    [victim] = 1
            
            Update_frag
    (attacker)
            
    Update_dead(victim)
            
            
    set_user_to_zombie(victim1G_HP_zombie_level_1random_num(1,4))
            
    set_task(2.0"check_zombie_delay",victim+TASK_RESTORE_HP,_,_,"b")
        }
        
    //Zombie ---> when damge
        
    if (!g_is_user_zombie[attacker] && g_is_user_zombie[victim])
        {
            new 
    Float:Zombie_damage[3]
            
    VelocityByAim(victim1Zombie_damage)
            
    set_pev(victimpev_velocityZombie_damage)
        }
        return 
    HAM_IGNORED
    }
    // Kiem tra de hoi mau
    public check_zombie_delay(taskid)
    {
        new 
    id ID_RESTORE_HP
        check_zombie_to_restore_HP
    (id)
        if (
    g_is_zombie_delay[id]) 
        {
            if (
    task_exists(id TASK_REAL_RESTORE_HP)) remove_task(id TASK_REAL_RESTORE_HP)
            
    set_task(2.0"real_restore_HP_ZB",id+TASK_REAL_RESTORE_HP,_,_,"b")
        }
    }
    // HOI MAU
    public real_restore_HP_ZB(taskid)
    {
        new 
    id ID_REAL_RESTORE_HP
        
    new zombie_hp_now get_user_health(id)
        
    set_user_health(idzombie_hp_now 200)
        if (!
    g_is_zombie_delay[id] && task_exists(id TASK_REAL_RESTORE_HP))  remove_task(id TASK_REAL_RESTORE_HP)

    }
    //Log event Round end
    public logevent_round_end()
    {
        static 
    player_zombie[32], player_human[32], Number_zombieNumber_human
        get_players
    (player_human,Number_human,"a","CT")
        
    get_players(player_zombie,Number_zombie,"a","T")
        
        if (
    Number_human == && Number_zombie != 0
        {
            
    Zombie_score++
            
    client_print(0print_center"Zombie Win")
        }
        if (
    Number_human != && Number_zombie == 0
        {
            
    Human_Score++
            
    client_print(0print_center"Human Win")
        }
        
        if (
    Zombie_score+Human_Score == Total_roundset_task(5.0"me_out_team",TASK_OUT_GAME)
    }
    // new round
    public event_round_start()
    {
        
    reset_all_data()
    }

    // khong cho luom sung _zombie
    public fw_touch_weapon(entid)
    {
        if (
    g_is_user_zombie[id]) 
            return 
    HAM_SUPERCEDE
        
        
    return HAM_IGNORED;
    }  

    // SU kien bat dau van moi
    public logevent_round_start()
    {
        
    task_zombie_count()
        if (
    task_exists(TASK_MAKEZOMBIE)) remove_task(TASK_MAKEZOMBIE)
        
    set_task(1.0"task_zombie_count"TASK_MAKEZOMBIE__"b")
    }
    public 
    task_zombie_count()
    {
        new 
    message[128]
        
        if (
    g_time_zombie_xuathien == 0
        {
            
    format(message,charsmax(message),"Quai vat da xuat hien !")
            
    make_random_zombie()
            
    g_zombie_daxuathien true
        
    }
        else
        {
            
    format(message,charsmax(message),"Quai vat se xuat hien sau %i giay nua."g_time_zombie_xuathien)
        }
        
        
    g_time_zombie_xuathien -= 1
        SendCenterText
    (0message)
        
        if (
    g_zombie_daxuathienremove_task(TASK_MAKEZOMBIE)
    }

    // Block all cs defaut
    public fwd_spawn(ent)
    {
        if(!
    pev_valid(ent)) 
            return 
    FMRES_IGNORED
        
        
    static classname[32]
        
    pev(entpev_classnameclassname31)

        static 
    i
        
    for(0sizeof g_remove_entities; ++i)
        {
            if(
    equal(classnameg_remove_entities[i]))
            {
                
    engfunc(EngFunc_RemoveEntityent)
                return 
    FMRES_SUPERCEDE
            
    }
        }
        return 
    FMRES_IGNORED
    }  
    // Block roundend.

    // TASK OUT GAME
    public me_out_game()
    {
        for (new 
    id 1id <33id++)
        {
            if (!
    is_user_bot(id)) client_cmd(id"exit")
        }
    }
    // Function
    make_random_zombie()
    {
        static 
    Players[32], iNum
        get_players
    (PlayersiNum"a")
        if (
    iNum <= 8)
        {
            new 
    id random_num(1,iNum)
            
    set_user_to_zombie(id,4G_HP_zombie_level_4,random_num(1,4))
        } 
        else 
        {
            new 
    id1 random_num(1,iNum)
            new 
    id2 random_num(1,iNum)
            
    set_user_to_zombie(id1,4G_HP_zombie_level_4,random_num(1,4))
            
    set_user_to_zombie(id2,4G_HP_zombie_level_4,random_num(1,4))
        }
    }

    set_user_to_zombie(idlevelHP_level, class)
    {
        
    // class : 1 -4 (1- red, 2 - khd, 3- nu y t, 4- SMOKE) 
        // HP level: G_HP_zombie_level1->4
        // level = 1-> 5
        
    cs_set_user_team(idCS_TEAM_T)
        
    g_is_user_zombie[id] = true
        g_zombie_class
    [id] = class
        
    g_zombie_level[id] = level
        set_user_health
    (id,HP_level)
    }

    reset_all_data()
    {
        
    g_time_zombie_xuathien 20
        g_zombie_daxuathien 
    false
        
    if (task_exists(TASK_MAKEZOMBIE)) remove_task(TASK_MAKEZOMBIE)
        for (new 
    id 1id <33;id++)
        {
            
    cs_set_user_team(idCS_TEAM_CT)
            
    set_user_health(id100)
            
    g_zombie_level[id] = 1
            g_is_user_zombie
    [id] = false
        
    }
    }
    SendCenterText(idmessage[])
    {
        new 
    dest
        
    if (iddest MSG_ONE
        
    else dest MSG_ALL
        
        message_begin
    (destg_msgTextMsg, {0,0,0}, id)
        
    write_byte(4)
        
    write_string(message)
        
    message_end()
    }
    //Update score
    Update_frag(id)
    {
        new 
    user_frag
        user_frag 
    get_user_frags(id)
        
    set_user_frags(iduser_frag+1)
    }

    Update_dead(id)
    {
        new 
    user_dead
        user_dead 
    get_user_deaths(id)
        
    cs_set_user_deaths(iduser_dead +1)
    }
    // Kiem tra xem player co dung im ko?
    check_zombie_to_restore_HP(id)
    {
        new 
    iButton pev(id,pev_button)
        
    g_is_zombie_delay[id] = false

        
    if (iButton IN_ATTACK) return
        if (
    iButton IN_FORWARD) return
        if (
    iButton IN_BACK) return
        if (
    iButton IN_MOVELEFT) return
        if (
    iButton IN_MOVERIGHT) return
        if (
    iButton IN_JUMP) return
        
        
    g_is_zombie_delay[id] = true
    }
    Còn vụ hòm tiếp tế :) Cái chỗ cho rơi bất kì... Khó quá...! Với cả mấy thằng bot chả biết nhặt rì cả..! :(
     
  2. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    @buiducduy:
    - Zombie MOde AI thì ta làm gần xong roài :-??
    - SupplyBox ?. Quá dễ... chỉ tạo ent, setmodel là supplybox rồi register touch cho nó. ai touch vào thì cho thằng đó item rồi remove cái supplybox đi... Còn vụ tìm Origin, mở Human Scenario Sma hoặc ZB3 Sma ra mà coi cách nó find, save và load Origin từ file
    - cái vụ hệ thống class... không phải vậy đâu :)). Ý ta làm như Zombie Plague ấy... Register Class rồi cho chọn class luôn. Làm như trên thì quá dễ
     
    Chỉnh sửa cuối: 13/12/11
  3. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    Thì càng dễ càng tốt mà... Mod em do Launcher hỗ trợ nhìu mà .. :) Nói chung chẳng phải chọn gì trong game , chọn ngoài Launcher nên mấy cái phần menu bỏ hết :)
     
  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
    ^ Trong cái fw_TakeDamage, chỗ human bị infect ấy, để return HAM_SUPERCEDE thì tốt hơn...
    Với cả nếu trước khi có zombie mà thằng bị random đó ném bom, sau đó nó bị biến zom mà quả bomb đó take damage vào bất kỳ thằng nào thì thằng victim biến thành zombie luôn=))
     
  5. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    Ukm nhỉ ... :) Vẫn chưa nghĩ đến trường hợp này :) Thanks bạn !!!!
     
  6. N?K

    N?K C O N T R A

    Tham gia ngày:
    23/7/03
    Bài viết:
    1,814
    Có ai đang nghiên cứu cái metahook.inc hông?
    Đang tính làm 1 cai killmark bằng TGA, ngặt cái đang hơi bị rối rắm cách sắp xếp cấu trúc trong killmark. Cái này có khá nhiều ưu điểm hay:
    - Không cần hud.txt
    - Hình đẹp
    - fade in out tùy ý
    - Vị trí, thời gian hiển thị hình thoải mái
    - Hiển thị tối đa đến 19 hình cùng lúc
     
  7. lucky131

    lucky131 Mr & Ms Pac-Man

    Tham gia ngày:
    22/8/11
    Bài viết:
    141
    Nơi ở:
    Paradise
    Nhiều người biết+NC về metahook quá,bác N?K,bác biết chút gì về cái metahook,chia sẻ được không?
     
  8. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    ^
    - Nói trước là Metahook ko chạy dedicated sv dc đâu :))
     
  9. lucky131

    lucky131 Mr & Ms Pac-Man

    Tham gia ngày:
    22/8/11
    Bài viết:
    141
    Nơi ở:
    Paradise
    :)).Thui cứ nói đi,về nhà nghịch 1 chút,chứ cứ amx code mãi,hoa cả mắt.
     
  10. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    Metahook công nhận cũng sướng thật đấy. Nhưng tính nguyên trận dùng đầu ra Open đã lam fsp giảm khoảng 20 rồi nên em chẳng thích mấy !
    @Dias : Bác cho em xin Metahook 2.1 với, em dùng cái 2.0 hình như metahook 2.1 có rất nhiều cái khác thì phải!
     
  11. lucky131

    lucky131 Mr & Ms Pac-Man

    Tham gia ngày:
    22/8/11
    Bài viết:
    141
    Nơi ở:
    Paradise
    Tại sao lại phải xin?Search google ko có hả bác?Metahook hiếm có khó tìm vậy sao?:))
     
  12. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    Ukm..metahook hiếm lắm..Tui nhờ mãi anh bk_tkl mới xin được của bác kakana96 cái metahook2.0
    Google có nhưng trong trang wed trung quốc thì ko biết đâu mà đăng kí để down :(

    ---------- Post added at 20:55 ---------- Previous post was at 20:42 ----------

    Là sao nhỉ
    Có phải bên Vn-zoom không... Tui chắc chắn sẽ thanks các bác đã nhiệt tình giúp đỡ nhưng ko phải post nào cứ nói đến AMXX là phải nói là thanks to dias, kungfulon, redplane ... (Tui sẽ thanks tại topic của Mod khi mắt)

    [​IMG]

    Với lại tui ko hề nó nst_wpn là tạm nham mà tui chỉ nói 1 số bản mod tạp nham dùng nguyên bộ plugins từ cso - nst mà ko thèm ghi nổi cái nguồn thôi '+_+

    Tui ko phải loại người như vậy ...ĐỪng có mà hiểu nhầm :( ... Nếu bác cố tình ko chịu hiểu thì cũng đành chịu!
     
    Chỉnh sửa cuối: 16/12/11
  13. theanh11a5

    theanh11a5 - NOW ON - Moderator

    Tham gia ngày:
    8/10/09
    Bài viết:
    5,126
    Lan cả sang bên này,anh em nói chuyện chớ dùng từ ngữ mạnh nhé,tránh xúc phạm lẫn nhau.
    Vả lại,2pic kia bị xoá rồi,có nói cũng chẳng làm đc gì,nếu bỏ qua đc thì bỏ qua cho nhau thôi.
     
  14. buiducduy111

    buiducduy111 Dragon Quest

    Tham gia ngày:
    3/5/11
    Bài viết:
    1,257
    Mọi lỗ lực giải thích hình như không có ai thèm nghe ......... Thui zay. Tự túc là hạnh phúc !
     
  15. theanh11a5

    theanh11a5 - NOW ON - Moderator

    Tham gia ngày:
    8/10/09
    Bài viết:
    5,126
    Chuyện này người trong cuộc (MrKaii) đã yêu cầu kết thúc và ko tranh cãi nữa,thì mong mọi người đừng lôi vấn đề này lên mà war nhé.
    Ai cố tình nhắc lại hoặc tiếp tục bàn tiếp về vấn đề này thì tớ sẽ cho 10pts.
    Mong anh em hợp tác.
     
  16. kakaan96

    kakaan96 Dragon Quest

    Tham gia ngày:
    29/1/10
    Bài viết:
    1,422
    ặc lại còn nhờ thế nữa cha này lắm chuyện quá
    PS:dạo này lắm plugins mod CF quá =))
     
  17. ngocvinh2009

    ngocvinh2009 C O N T R A

    Tham gia ngày:
    27/1/10
    Bài viết:
    1,665
    Nơi ở:
    TP.HCM
     
  18. dias

    dias Mega Man

    Tham gia ngày:
    17/1/10
    Bài viết:
    3,226
    Nơi ở:
    SEOUL
    Hỏi ý kiến mọi người đi chứ ==". có nên tha lỗi hay không, ai đó mà bị mọi người ghét, mình mà giúp người đó chắc bị ghét luôn àh nha :))
     
  19. KO8E

    KO8E T.E.T.Я.I.S

    Tham gia ngày:
    24/5/11
    Bài viết:
    669
    Nơi ở:
    L.A
    có cái quái j đâu mà quan trọng hóa thế nhỉ, thằng nhóc chỉ nói k rõ ràng khiến bị hiểu lầm thế mà mọi người làm như nó làm j có lỗi lớn lớn lắm ý :-j
    rõ lố bịch
     
  20. lucky131

    lucky131 Mr & Ms Pac-Man

    Tham gia ngày:
    22/8/11
    Bài viết:
    141
    Nơi ở:
    Paradise
    Ai mà chả có lúc lầm lỡ,đã xin lỗi rồi thì thôi,mọi chuyện coi như xí xóa,ai không đồng ý thì cứ giữ trong lòng,đừng cãi nhau nữa,mất lòng anh em(mọi chuyện cũng chỉ xoay quanh một câu nói không rõ ý),còn ý kiến ý cung gì nữa,quay đầu lại là bờ.Rút kinh nghiệm luôn suy nghĩ trước khi nói năng là đc.Thui tập trung vao vấn đề,bác buiduyduc nếu đc thì share luôn metahook,còn không thì cứ send hộ cái link của china,để mình tự mày mò đăng ký nha.Cám ơn.
     

Chia sẻ trang này