侦查伤害 与 独立枪械 与 经验升级 问题!

Home Home
<< 1 2 >>
跳页: (共 2 页)
引用 | 编辑 tony486
2013-05-08 05:35
楼主
推文 x0
复制程式
if (g_damage[attacker] >= 150) { 
                          g_damage[attacker] -= 150 
                          g_xp[attacker] += 1 
             } [/pre]
[/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 发表的 : 到引言文
方法一、将TakeDamage转用为TakeDamage_Post
方法二、将TakeDamage转用为client_damage
以上两者都不需改动public下的内容
如果要取得最正确的伤害数值的话…
message_damage 或 client_damage 通常是比 TakeDamage_Post 好一些…
因为 TakeDamage_Post 的伤害不会计算头盔和同队伤害的伤害减免…

题外话:
ANDY你知道 ExecuteHamB(Ham_TakeDamage 可以不用 LOG_KILL 就能
让系统自动送出 Ham_Killed 和 DeathMsg 吗?

最近找资料在AlliedModders爬文才发现的…

献花 x1
引用 | 编辑 tony486
2013-05-08 16:02
3楼
  
下面是引用 andyt0621 于 2013-05-08 08:18 发表的 : 到引言文
方法一、将TakeDamage转用为TakeDamage_Post
方法二、将TakeDamage转用为client_damage
以上两者都不需改动public下的内容





public TakeDamage_Post(victim, inflictor, attacker, Float:damage, damage_type) 


粗体的是什么 ?

献花 x0
引用 | 编辑 a7811311622
2013-05-08 16:39
4楼
  
下面是引用 tony486 于 2013-05-08 16:02 发表的 : 到引言文






public TakeDamage_Post(victim, inflictor, attacker, Float:damage, damage_type) 


粗体的是什么 ?
顾名思义…加害者…
如果用枪枝攻击…inflictor 得到的数值和 attacker 一样…
如果用手榴弹攻击…inflictor 就是手榴弹这物件的ID…

献花 x0
引用 | 编辑 andyt0621
2013-05-08 20:07
5楼
  
下面是引用 a7811311622 于 2013-05-08 09:37 发表的 : 到引言文

如果要取得最正确的伤害数值的话…
message_damage 或 client_damage 通常是比 TakeDamage_Post 好一些…
因为 TakeDamage_Post 的伤害不会计算头盔和同队伤害的伤害减免…

题外话:
ANDY你知道 ExecuteHamB(Ham_TakeDamage 可以不用 LOG_KILL 就能
让系统自动送出 Ham_Killed 和 DeathMsg 吗?

最近找资料在AlliedModders爬文才发现的…



我知道TakeDamage可以不用LOG_KILL..
之前写一些特殊武器插件就试过了
但"伤害不会计算头盔和同队伤害的伤害减免"我就不知道了 0.0


下面是引用 tony486 于 2013-05-08 16:02 发表的: 到引言文

public TakeDamage_Post(victim, inflictor, attacker, Float:damage, damage_type) 

粗体的是什么 ?



a78大说了..
但写插件比较少用..
(至少我还没用过 xD)

献花 x0
引用 | 编辑 a7811311622
2013-05-08 23:31
6楼
  
下面是引用 andyt0621 于 2013-05-08 20:07 发表的 : 到引言文




我知道TakeDamage可以不用LOG_KILL..
之前写一些特殊武器插件就试过了
但"伤害不会计算头盔和同队伤害的伤害减免"我就不知道了 0.0






a78大说了..
但写插件比较少用..
(至少我还没用过 xD)
你指的是你写的Weapon_Balrog7.sma里的那个吗…?表情
我上面说的 ExecuteHamB(Ham_TakeDamage 就是会用到 inflictor 的写法…表情
而且还能利用这个让右上角自定义的杀人图可以支援被BLOCK掉的 Ham_Killed…表情

献花 x0
引用 | 编辑 tony486
2013-05-09 02:36
7楼
  
下面是引用 a7811311622 于 2013-05-08 23:31 发表的 : 到引言文

你指的是你写的Weapon_Balrog7.sma里的那个吗…?表情  
我上面说的 ExecuteHamB(Ham_TakeDamage 就是会用到 inflictor 的写法…表情
而且还能利用这个让右上角自定义的杀人图可以支援被BLOCK掉的 Ham_Killed…表情



两位的我也测试了= ="
可是不行阿..


我把m4 调至0攻击力  ,, 杀不死人  ,在别的伤害达成 也会显示超出500伤害!!!


如果可以的话 .. 侦查扣了别人多少血 而定会不会比较容易呢

献花 x0
引用 | 编辑 a7811311622
2013-05-09 09:04
8楼
  
下面是引用 tony486 于 2013-05-09 02:36 发表的 : 到引言文




两位的我也测试了= ="
可是不行阿..


我把m4 调至0攻击力  ,, 杀不死人  ,在别的伤害达成 也会显示超出500伤害!!!


如果可以的话 .. 侦查扣了别人多少血 而定会不会比较容易呢
那伤害达成的内容有没有改…?||= =
方便放SMA吗…?
别人用都没问题用到你身上却出问题的原因大部分都是「你自认你的修改没问题」…

侦测扣血多少不是问题…问题是你只知道对象有受伤却不知道对象是什么原因受伤…
难道你想看到一个人光是摔伤就能累积伤害达成…?

献花 x0
引用 | 编辑 tony486
2013-05-09 11:37
9楼
  
下面是引用 a7811311622 于 2013-05-09 09:04 发表的 : 到引言文

那伤害达成的内容有没有改…?||= =
方便放SMA吗…?
别人用都没问题用到你身上却出问题的原因大部分都是「你自认你的修改没问题」…

侦测扣血多少不是问题…问题是你只知道对象有受伤却不知道对象是什么原因受伤…
难道你想看到一个人光是摔伤就能累积伤害达成…?



已上传了


可能是我改错了...
希望能帮修改 表情 表情 表情 表情

献花 x0
引用 | 编辑 andyt0621
2013-05-09 12:18
10楼
  
下面是引用 a7811311622 于 2013-05-08 23:31 发表的 : 到引言文

你指的是你写的Weapon_Balrog7.sma里的那个吗…?表情
我上面说的 ExecuteHamB(Ham_TakeDamage 就是会用到 inflictor 的写法…表情
而且还能利用这个让右上角自定义的杀人图可以支援被BLOCK掉的 Ham_Killed…表情



还有我写的WeaponSystem都用了不少次


ExecuteHamB(Ham_TakeDamage的inflictor我每次都写为attacker..


不过public Ham_TakeDamage我就没用过inflictor


下面是引用 tony486 于 2013-05-09 11:37 发表的: 到引言文


已上传了


可能是我改错了...
希望能帮修改 


看您还是对ham hook不太了解吧..
试试这个吧

本帖包含附件
档名: zip sma.rar   (2022-06-09 14:20 / 6 KB)   下载次数:7 需要威望:30


献花 x0
引用 | 编辑 a7811311622
2013-05-09 12:45
11楼
  
下面是引用 andyt0621 于 2013-05-09 12:18 发表的 : 到引言文




还有我写的WeaponSystem都用了不少次


ExecuteHamB(Ham_TakeDamage的inflictor我每次都写为attacker..


不过public Ham_TakeDamage我就没用过inflictor





看您还是对ham hook不太了解吧..
试试这个吧
一般来说用在枪枝上的伤害 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)
}
概念就和丢手榴弹一样…测试过就算杀死目标杀人图还是依据M4A1去显示…
因为是系统自动送出的讯息…所以自定义的杀人图也是会被 message_deathmsg 修改到…

就看你的需求啦…就像 Weapon_Balrog7 的范围伤害条件根本不会发生这问题也不用写这堆内容就是了…

献花 x0
引用 | 编辑 tony486
2013-05-09 16:16
12楼
  

图 1.


下面是引用 andyt0621 于 2013-05-09 12:18 发表的 : 到引言文




还有我写的WeaponSystem都用了不少次


ExecuteHamB(Ham_TakeDamage的inflictor我每次都写为attacker..


不过public Ham_TakeDamage我就没用过inflictor





看您还是对ham hook不太了解吧..
试试这个吧



发生错误了! 

献花 x0
引用 | 编辑 andyt0621
2013-05-09 16:42
13楼
  
下面是引用 tony486 于 2013-05-09 16:16 发表的 : 到引言文




发生错误了! 



自己存成utf8吧..
要不然就换一个compile

献花 x0
引用 | 编辑 tony486
2013-05-09 17:03
14楼
  
下面是引用 andyt0621 于 2013-05-09 16:42 发表的 : 到引言文




自己存成utf8吧..
要不然就换一个compile



阿,,,多了几个错误阿 但可以编成

献花 x0
引用 | 编辑 tony486
2013-05-09 17:34
15楼
  
下面是引用 andyt0621 于 2013-05-09 16:42 发表的 : 到引言文




自己存成utf8吧..
要不然就换一个compile



发现了一个问题...
虽然成功了
可是 =0=
它会累积伤害
不会重置  

献花 x0
引用 | 编辑 a7811311622
2013-05-09 18:16
16楼
  
下面是引用 tony486 于 2013-05-09 17:03 发表的 : 到引言文




阿,,,多了几个错误阿 但可以编成
下面是引用 tony486 于 2013-05-09 17:34 发表的: 到引言文




发现了一个问题...
虽然成功了
可是 =0=
它会累积伤害
不会重置  
有时候编译时没错误都有可能会有BUG了…何况是有错误…||= =

献花 x0
引用 | 编辑 andyt0621
2013-05-09 18:35
17楼
  
下面是引用 a7811311622 于 2013-05-09 12:45 发表的 : 到引言文

一般来说用在枪枝上的伤害 inflictor 写 attacker 是没什么大问题…
不过如果用在榴弹、飞弹等投射物件会发生BUG…发生时机很微妙…
丢出去的那瞬间切换武器…杀人讯息会变成当下拿的武器…
例如拿着M32或M79射出后马上切换成闪光弹…然后看着杀人图变成闪光弹…
.......



试过用M79发射后被杀..
杀人图变了SKULL..
不过也懒Fix了 表情


下面是引用 tony486 于 2013-05-09 17:34 发表的: 到引言文




发现了一个问题...
虽然成功了
可是 =0=
它会累积伤害
不会重置  
2121


可以贴上错误吗.
你插件include很多我没有的inc..
但正常来说我所修改的内容不应该影响插件内容

献花 x0
引用 | 编辑 a7811311622
2013-05-09 18:49
18楼
  
下面是引用 andyt0621 于 2013-05-09 18:35 发表的 : 到引言文




试过用M79发射后被杀..
杀人图变了SKULL..
不过也懒Fix了 表情


2121


可以贴上错误吗.
你插件include很多我没有的inc..
但正常来说我所修改的内容不应该影响插件内容
我测试时就算被杀也不会出现SKULL…照样显示正确的武器…
你该不会是写"weapon_hegrenade"吧…?手榴弹是写"grenade"…

献花 x0
引用 | 编辑 tony486
2013-05-09 20:20
19楼
  
下面是引用 andyt0621 于 2013-05-09 18:35 发表的 : 到引言文




试过用M79发射后被杀..
杀人图变了SKULL..
不过也懒Fix了 表情


2121


可以贴上错误吗.
你插件include很多我没有的inc..
但正常来说我所修改的内容不应该影响插件内容


我晚上上传 我在上班 正使用手机版

献花 x0
引用 | 编辑 tony486
2013-05-10 03:06
20楼
  
下面是引用 andyt0621 于 2013-05-09 18:35 发表的 : 到引言文




试过用M79发射后被杀..
杀人图变了SKULL..
不过也懒Fix了 表情  


2121


可以贴上错误吗.
你插件include很多我没有的inc..
但正常来说我所修改的内容不应该影响插件内容


本帖包含附件
档名: zip scripting.rar   (2022-06-09 14:20 / 8 KB)   下载次数:9 需要威望:30


献花 x0
引用 | 编辑 a7811311622
2013-05-10 09:06
21楼
  
下面是引用 tony486 于 2013-05-10 03:06 发表的 : 到引言文
为何 client_damage 里面伤害达成是用 if …?不是应该用 while 吗…?

献花 x0
引用 | 编辑 tony486
2013-05-10 16:10
22楼
  
下面是引用 a7811311622 于 2013-05-10 09:06 发表的 : 到引言文

为何 client_damage 里面伤害达成是用 if …?不是应该用 while 吗…?



这不是我改的阿...


如果伤害达到500 则加经验+点数..

献花 x0
引用 | 编辑 a7811311622
2013-05-10 19:52
23楼
  
下面是引用 tony486 于 2013-05-10 16:10 发表的 : 到引言文




这不是我改的阿...


如果伤害达到500 则加经验+点数..
那这插件一开始写的人就没考虑周全了吧…
举个极端的例子:
damage_give 数值是 1 …你造成一次伤害100…
如果是用 if 而不是 while 的话你只会升级一次…

献花 x0
引用 | 编辑 tony486
2013-05-10 20:05
24楼
  
下面是引用 a7811311622 于 2013-05-10 19:52 发表的 : 到引言文

那这插件一开始写的人就没考虑周全了吧…
举个极端的例子:
damage_give 数值是 1 …你造成一次伤害100…
如果是用 if 而不是 while 的话你只会升级一次…



这是一个累积到500伤害 给经验 , 可是一直累积而不是 一达到500伤害 重置

献花 x0
引用 | 编辑 a7811311622
2013-05-11 08:26
25楼
  
下面是引用 tony486 于 2013-05-10 20:05 发表的 : 到引言文




这是一个累积到500伤害 给经验 , 可是一直累积而不是 一达到500伤害 重置
听不懂你在表达什么…
所以你有没有改过测试了…?

献花 x0
引用 | 编辑 tony486
2013-05-11 21:09
26楼
  
下面是引用 a7811311622 于 2013-05-11 08:26 发表的 : 到引言文

听不懂你在表达什么…
所以你有没有改过测试了…?





表情 表情 表情 表情 表情



首先..
伤害达到500  >  +10经验


现在是只是高于500则+10经


但是我要的是 循环达成500伤害才 + 经验 每次达成自动清零

献花 x0
引用 | 编辑 a7811311622
2013-05-11 21:39
27楼
  
下面是引用 tony486 于 2013-05-11 21:09 发表的 : 到引言文






表情     表情     表情     表情     表情    



首先..
伤害达到500  >  +10经验


现在是只是高于500则+10经


但是我要的是 循环达成500伤害才 + 经验 每次达成自动清零
在 register_message(get_user_msgid("TextMsg"), "message_textmsg") 下面插入
复制程式
register_message(get_user_msgid("Damage"), "message_damage")
之后将 public client_damage(attacker, victim, damage, wpnindex, hitplace, TA) 改成
复制程式
public message_damage(msg_id, msg_dest, victim)
最后将里面的内容
        if (attacker == victim  || !is_user_connected(attacker))
                          return HAM_IGNORED

        g_damage[attacker] += damage
改成
复制程式
    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 发表的 : 到引言文

在 register_message(get_user_msgid("TextMsg"), "message_textmsg") 下面插入
复制程式
register_message(get_user_msgid("Damage"), "message_damage")
.......



加你那段 立即出现错误


献花 x0
引用 | 编辑 a7811311622
2013-05-11 22:24
29楼
  
下面是引用 tony486 于 2013-05-11 22:06 发表的 : 到引言文




加你那段 立即出现错误
[attachment=822636]
怪我啰?
你自己加错位置了…你有仔细看我说的内容吗?

献花 x0
<< 1 2 >>
跳页: (共 2 页)