仿CSO靜止回血插件

Home Home
引用 | 編輯 龍心
2017-09-06 23:33
樓主
推文 x0

圖 1.


【插件資訊】

插件來源:網路資源轉載提供會員參考 http://bbs.mychat.tw/reads.php?tid=927921
使用指令:自行修改編譯及參考http://bbs.mychat.tw/reads.php?tid=927921
安裝路徑:自行修改編譯及參考http://bbs.mychat.tw/reads.php?tid=927921

【插件介紹】

複製程式
new cumulative[33];
new g_Time;
new g_Amount;
new Float:get_attack_time[33];
new g_hamczbots;
new cvar_botquota;



public plugin_init()
{
    register_plugin(320, "1.0", 412);
    register_event("Damage", "NeedRecovery", "be", "2>0");
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0");
    g_Time = register_cvar("mychat_recovery_time", "3", 0, 0.00);
    g_Amount = register_cvar("mychat_recovery_health", "20", 0, 0.00);
    RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage", 0);
    return 0;
}


public plugin_precache()
{
    precache_sound("mychat/memberid_604597/post_in_mychat.wav");
    return 0;
}


public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
    if (attacker != victim && !is_user_connected(attacker))
    {
        return 1;
    }
    if (zp_get_user_zombie(victim) == zp_get_user_zombie(attacker))
    {
        return 1;
    }
    if (!zp_get_user_zombie(victim))
    {
        return 1;
    }
    if (!damage_type & 2 || !damage_type & 4)
    {
        return 1;
    }
    static id;
    id = victim;
    if (task_exists(id, 0))
    {
        remove_task(id, 0);
    }
    if (task_exists(id + 9988, 0))
    {
        remove_task(id + 9988, 0);
    }
    cumulative[id] = 0;
    return 1;
}


public NeedRecovery(id)
{
    if (!is_user_alive(id) || !zp_get_user_zombie(id))
    {
        return 0;
    }
    if (1 <= cumulative[id][0][0])
    {
        return 0;
    }
    new max_health = 0;
    max_health = zp_get_zombie_maxhealth(id);
    if (max_health > get_user_health(id))
    {
        new var2 = cumulative[id];
        var2 = var2[0][0] + 1;
        new param[2];
        param[0] = id;
        if (cumulative[id][0][0] == 1)
        {
            param[1] = 0;
            set_task(get_pcvar_float(g_Time), "RecoveryRate", id, param, 2, "b", 0);
        }
        else
        {
            param[1] = 1;
            set_task(get_pcvar_float(g_Time), "RecoveryRate", id + 9988, param, 2, "", 0);
        }
    }
    return 0;
}


public RecoveryRate(param[2])
{
    if (!is_user_alive(id) || !zp_get_user_zombie(id))
    {
        return 0;
    }
    new health = get_user_health(id);
    new max_health = 0;
    max_health = zp_get_zombie_maxhealth(id);
    new need_health = max_health - health;
    if (get_pcvar_num(g_Amount) >= need_health)
    {
        engfunc(EngFunc_EmitSound, id, 2, "mychat/memberid_604597/post_in_mychat.wav", 1.00/*1065353216*/, 0.80/*1061997773*/, 0, 100);
        set_user_health(id, max_health);
        remove_task(id, 0);
        remove_task(id + 9988, 0);
        cumulative[id] = 0;
    }
    else
    {
        set_user_health(id, get_pcvar_num(g_Amount) + health);
        if (deduct_times == 1)
        {
            cumulative[id] = max(cumulative[id][0][0] - 1, 0);
        }
    }
    return 0;
}


public client_PreThink(id)
{
    if (!is_user_alive(id) || !zp_get_user_zombie(id))
    {
        return 0;
    }
    if (get_gametime() - get_attack_time[id][0][0] < 0.50/*1056964608*/)
    {
        if (task_exists(id, 0))
        {
            remove_task(id, 0);
        }
        if (task_exists(id + 9988, 0))
        {
            remove_task(id + 9988, 0);
        }
        cumulative[id] = 0;
        return 0;
    }
    new speed = fm_get_speed(id);
    if (floatround(0.10/*1036831949*/ * 240, floatround_round) < speed)
    {
        if (task_exists(id, 0))
        {
            remove_task(id, 0);
        }
        if (task_exists(id + 9988, 0))
        {
            remove_task(id + 9988, 0);
        }
        cumulative[id] = 0;
        return 0;
    }
    if (!task_exists(id, 0))
    {
        cumulative[id] = 0;
    }
    new health = get_user_health(id);
    if (health >= 1)
    {
        if (health < max_health && cumulative[id][0][0])
        {
            NeedRecovery(id);
        }
    }
    return 0;
}


public event_round_start()
{
    new i = 1;
    while (i <= 32)
    {
        cumulative[i] = 0;
        i++;
    }
    client_print(0, print_chat, "仿CSO喪屍自愈插件 By MyChat - 文♂[會員ID:604597],此插件僅發佈於MyChat數位男女論壇,若出現於其他論壇均為盜文!");
    return 0;
}


public client_putinserver(id)
{
    if (is_user_bot(id))
    {
        if (!g_hamczbots && cvar_botquota)
        {
            set_task(0.10, "register_ham_czbots", id, "", 0, "", 0);
        }
    }
    return 0;
}


public register_ham_czbots(id)
{
    if (g_hamczbots || !is_user_connected(id) || !get_pcvar_num(cvar_botquota))
    {
        return 0;
    }
    RegisterHamFromEntity(Ham_TakeDamage, id, "fw_TakeDamage", 0);
    g_hamczbots = 1;
    return 0;
}


fm_get_speed(entity)
{
    static Float:velocity[3];
    pev(entity, pev_velocity, velocity);
    return floatround(vector_length(velocity), floatround_round);
}




獻花 x0
引用 | 編輯 qq1677438990
2017-09-09 11:07
1樓
  
没图吗

獻花 x0
引用 | 編輯 zxzyman
2017-09-09 21:26
2樓
  
原文沒有提供SMA 他提供的是部分寫法,並非複製文章


你發的文章內容根本無法轉檔,原碼內都缺少inc


建議在文內寫上一些只供參考的說明,免得其他人無法轉檔造成誤會....

獻花 x0
引用 | 編輯 86425731
2017-09-15 16:50
3樓
  
這插件我下載過…… 算重覆發文吧?

購買他人發的SMA檔內容 再將其重新發文
雖然不收費 但完全不尊重原發文者

表情

獻花 x0
引用 | 編輯 龍心
2017-09-15 17:40
4樓
  
下面是引用 86425731 於 2017-09-15 16:50 發表的 : 到引言文
這插件我下載過…… 算重覆發文吧?

購買他人發的SMA檔內容 再將其重新發文
雖然不收費 但完全不尊重原發文者

表情

原文沒有提供源碼

獻花 x0
引用 | 編輯 龍心
2017-11-04 23:44
5樓
  
下面是引用 zxzyman 於 2017-09-09 21:26 發表的 : 到引言文

原文沒有提供SMA 他提供的是部分寫法,並非複製文章


你發的文章內容根本無法轉檔,原碼內都缺少inc


建議在文內寫上一些只供參考的說明,免得其他人無法轉檔造成誤會....

[ 此文章被zxzyman在2017-11-04 19:21重新編輯 ]

【插件資訊】

插件來源:網路資源轉載提供會員參考 http://bbs.mychat.tw/reads.php?tid=927921
使用指令:自行修改編譯及參考http://bbs.mychat.tw/reads.php?tid=927921
安裝路徑:自行修改編譯及參考http://bbs.mychat.tw/reads.php?tid=927921
表情

獻花 x0
引用 | 編輯 talon9420
2018-12-02 12:26
6樓
  
好像不錯用~~~~~~~~~~~~~

獻花 x0
引用 | 編輯 mnva
2018-12-05 16:41
7樓
  
多久恢复一次血

獻花 x0
引用 | 編輯 kenzen
2021-05-16 14:00
8樓
  
反編譯的??

獻花 x0