引用 | 编辑
tony486
2013-05-08 05:35 |
楼主
▼ |
||
x0
复制程式
if (g_damage[attacker] >= 150) { g_damage[attacker] -= 150 g_xp[attacker] += 1 } [/pre] 而不是侦查攻击者的伤害多少 这个是为了修改 独立枪械攻击力 误差问题 例如把攻击力改为0.1成 扣血只是一半,,,可是侦查出已经破了500伤害. 求指点! 300雅币!~ x0
|
引用 | 编辑
andyt0621
2013-05-08 08:18 |
1楼
▲ ▼ |
方法一、将TakeDamage转用为TakeDamage_Post
方法二、将TakeDamage转用为client_damage 以上两者都不需改动public下的内容 x0 |
引用 | 编辑
a7811311622
2013-05-08 09:37 |
2楼
▲ ▼ |
下面是引用 andyt0621 于 2013-05-08 08:18 发表的 :如果要取得最正确的伤害数值的话… message_damage 或 client_damage 通常是比 TakeDamage_Post 好一些… 因为 TakeDamage_Post 的伤害不会计算头盔和同队伤害的伤害减免… 题外话: ANDY你知道 ExecuteHamB(Ham_TakeDamage 可以不用 LOG_KILL 就能 让系统自动送出 Ham_Killed 和 DeathMsg 吗? 最近找资料在AlliedModders爬文才发现的… x1 |
引用 | 编辑
a7811311622
2013-05-08 16:39 |
4楼
▲ ▼ |
引用 | 编辑
andyt0621
2013-05-08 20:07 |
5楼
▲ ▼ |
下面是引用 a7811311622 于 2013-05-08 09:37 发表的 : 我知道TakeDamage可以不用LOG_KILL.. 之前写一些特殊武器插件就试过了 但"伤害不会计算头盔和同队伤害的伤害减免"我就不知道了 0.0 下面是引用 tony486 于 2013-05-08 16:02 发表的: a78大说了.. 但写插件比较少用.. (至少我还没用过 xD) x0 |
引用 | 编辑
a7811311622
2013-05-08 23:31 |
6楼
▲ ▼ |
引用 | 编辑
a7811311622
2013-05-09 09:04 |
8楼
▲ ▼ |
引用 | 编辑
andyt0621
2013-05-09 12:18 |
10楼
▲ ▼ |
||||||||||
下面是引用 a7811311622 于 2013-05-08 23:31 发表的 : 还有我写的WeaponSystem都用了不少次 ExecuteHamB(Ham_TakeDamage的inflictor我每次都写为attacker.. 不过public Ham_TakeDamage我就没用过inflictor 下面是引用 tony486 于 2013-05-09 11:37 发表的: 看您还是对ham hook不太了解吧.. 试试这个吧
x0 |
引用 | 编辑
a7811311622
2013-05-09 12:45 |
11楼
▲ ▼ |
下面是引用 andyt0621 于 2013-05-09 12:18 发表的 :一般来说用在枪枝上的伤害 inflictor 写 attacker 是没什么大问题… 不过如果用在榴弹、飞弹等投射物件会发生BUG…发生时机很微妙… 丢出去的那瞬间切换武器…杀人讯息会变成当下拿的武器… 例如拿着M32或M79射出后马上切换成闪光弹…然后看着杀人图变成闪光弹… 以下是之前在AlliedModders找到后我稍微修改过的版本: 复制程式 new inflictor = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "weapon_m4a1")) if(pev_valid(inflictor)) { set_pev(inflictor, pev_owner, attacker) ExecuteHamB(Ham_TakeDamage,victim,inflictor,attacker,damage,damage_type) engfunc(EngFunc_RemoveEntity, inflictor) } 因为是系统自动送出的讯息…所以自定义的杀人图也是会被 message_deathmsg 修改到… 就看你的需求啦…就像 Weapon_Balrog7 的范围伤害条件根本不会发生这问题也不用写这堆内容就是了… x0 |
引用 | 编辑
a7811311622
2013-05-09 18:16 |
16楼
▲ ▼ |
引用 | 编辑
andyt0621
2013-05-09 18:35 |
17楼
▲ ▼ |
下面是引用 a7811311622 于 2013-05-09 12:45 发表的 : 试过用M79发射后被杀.. 杀人图变了SKULL.. 不过也懒Fix了 下面是引用 tony486 于 2013-05-09 17:34 发表的:2121 可以贴上错误吗. 你插件include很多我没有的inc.. 但正常来说我所修改的内容不应该影响插件内容 x0 |
引用 | 编辑
a7811311622
2013-05-09 18:49 |
18楼
▲ ▼ |
引用 | 编辑
tony486
2013-05-10 03:06 |
20楼
▲ ▼ |
||||||||||
下面是引用 andyt0621 于 2013-05-09 18:35 发表的 :
x0 |
引用 | 编辑
a7811311622
2013-05-10 09:06 |
21楼
▲ ▼ |
引用 | 编辑
a7811311622
2013-05-10 19:52 |
23楼
▲ ▼ |
引用 | 编辑
a7811311622
2013-05-11 08:26 |
25楼
▲ ▼ |
引用 | 编辑
a7811311622
2013-05-11 21:39 |
27楼
▲ ▼ |
下面是引用 tony486 于 2013-05-11 21:09 发表的 :在 register_message(get_user_msgid("TextMsg"), "message_textmsg") 下面插入 复制程式 register_message(get_user_msgid("Damage"), "message_damage") 复制程式 public message_damage(msg_id, msg_dest, victim) if (attacker == victim || !is_user_connected(attacker))改成 复制程式 static attacker; attacker = get_user_attacker(victim) static damage; damage = get_msg_arg_int(2) if (damage <= 0) return HAM_IGNORED if (!(1 <= attacker <= 32) || !(1 <= victim <= 32)) return HAM_IGNORED if (attacker == victim || !is_user_connected(attacker)) return HAM_IGNORED g_damage[attacker] += damage x0 |
引用 | 编辑
tony486
2013-05-11 22:06 |
28楼
▲ ▼ |
下面是引用 a7811311622 于 2013-05-11 21:39 发表的 : 加你那段 立即出现错误 x0 |
引用 | 编辑
a7811311622
2013-05-11 22:24 |
29楼
▲ |