群友们问的C5pug插件

salute 赞助用户组 2022-7-12 2381

如题

上传的附件:

CSGO插件分享-申明 1、本网站名称:CSGO插件分享-中文站  网址:https://bbs.csgocn.net
2、本站的宗旨在于为CSGO玩家提供一个插件分享的中文资源平台,多数插件来源于SourceMod论坛,并配以中文介绍和安装教程。
3、欢迎有能力的朋友共享有趣的CSGO插件资源。
4、本站资源大多为百度网盘,如发现链接失效,可以点: 这里进行反馈,我们会第一时间更新。
最新回复 (17)
  • Tomsuunnehh 一级用户组@Ta 2022-7-12 1
    引用 2
    支持支持
  • Merv1n 赞助用户组@Ta 2022-7-13 1
    引用 3
    支持捏
  • thrmh 一级用户组@Ta 2022-7-17 0
    引用 4
    支持支持
  • 胖胖小猪脚 二级用户组@Ta 2022-7-22 0
    引用 5
    支持支持
  • 我不当学长 管理员组@Ta 2022-7-23 0
    引用 6

    如果要对友军伤害做判断,比方说仅接受友军伤害中的投掷物伤害:手雷、燃烧弹等的伤害。需要对这些伤害做额外处理。

    可以参考一下代码:

    #include <sourcemod>
    #include <sdkhooks>
    #pragma newdecls required
    
    public Plugin myinfo =
    {
        name = "Molotov Friendly Fire",
        author = "Ilusion9",
        description = "Enable only molotov damage for teammates and block everything else.",
        version = "1.0",
        url = "https://github.com/Ilusion9/"
    };
    
    bool g_IsPluginLoadedLate;
    
    public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
    {
        g_IsPluginLoadedLate = late;
    }
    
    public void OnPluginStart()
    {
        if (g_IsPluginLoadedLate)
        {
            for (int i = 1; i <= MaxClients; i++)
            {
                if (IsClientInGame(i))
                {
                    OnClientPutInServer(i);
                }
            }
        }
    }
    
    public void OnClientPutInServer(int client)
    {
        SDKHook(client, SDKHook_OnTakeDamage, SDK_OnTakeDamage);
    }
    
    public Action SDK_OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon, float damageForce[3], float damagePosition[3])
    {
        if (attacker < 1 || attacker > MaxClients || attacker == victim || inflictor < 1)
        {
            return Plugin_Continue;
        }
        
        if (GetClientTeam(attacker) != GetClientTeam(victim))
        {
            return Plugin_Continue;
        }
        
        if (inflictor > MaxClients)
        {
            char inflictorClass[64];
            GetEdictClassname(inflictor, inflictorClass, sizeof(inflictorClass));
            
            if (StrEqual(inflictorClass, "planted_c4") || StrEqual(inflictorClass, "inferno") || StrEqual(inflictorClass, "hegrenade_projectile"))
            {
                return Plugin_Continue;
            }
        }
        
        damage = 0.0;
        damagetype |= DMG_PREVENT_PHYSICS_FORCE;
        return Plugin_Changed;
    } 

    参考:

    上传的附件:
  • Shamihane 一级用户组@Ta 2022-7-25 0
    引用 7
    支持
  • toooj 一级用户组@Ta 2022-8-10 0
    引用 8
    支持!
  • L1mit4 一级用户组@Ta 2022-10-23 0
    引用 9
    感谢分享
  • 中意 一级用户组@Ta 2022-12-10 0
    引用 10
    谢谢,感谢分享。
  • Nan_Yuan 一级用户组@Ta 2022-12-31 0
    引用 11
    谢谢分享
  • Nan_Yuan 一级用户组@Ta 2022-12-31 0
    引用 12
      (→_→)
  • steve 一级用户组@Ta 2023-2-18 0
    引用 13
    支持
  • steve 一级用户组@Ta 2023-2-18 0
    引用 14
    支持
  • A1337 一级用户组@Ta 2023-10-6 0
    引用 15
    感谢分享
  • A1337 一级用户组@Ta 2023-10-6 0
    引用 16
    支持支持
  • 1537271403 一级用户组@Ta 8月前 0
    引用 17
    支持支持
  • SouliR_ 一级用户组@Ta 5月前 0
    引用 18
    感谢
返回