偵查傷害 與 獨立槍械 與 經驗升級 問題!

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 頁)