傷害問題!!!!!!!!傷害問題!!!!!!!!!!傷害問題!!!!!!!!

Home Home
引用 | 編輯 7632571Z
2014-07-14 17:40
樓主
推文 x0
各位大大:
        
小弟的sma有個很嚴重的問題,一直困擾着我:


我想記錄每個玩家的傷害情況
但是 傷害 得出來的結果不相同
例如:傷害別人生命1000 但記錄興傷害別人不同




以下是槍的sma的部分內容:


RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")


public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if (victim != attacker && is_user_connected(attacker))
{
if(get_user_weapon(attacker) == CSW_SG552)
{
if(g_has_gun attacker)
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_gun))
}
}
}
}

以下是僵屍的sma內容:

RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")


public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) 
{
damage = damage + (skill attacker * get_cvar_float("skills_damage")))
SetHamParamFloat(4, damage)


        g_damage2 attacker += floatround(damage)
client_print(attacker, print_chat, "%d",g_damage2 attacker)
}




求各位大大幫幫小弟,感激不盡,萬分感激!

獻花 x0
引用 | 編輯 弒血
2014-07-14 19:24
1樓
  
下面是引用 7632571Z 於 2014-07-14 17:40 發表的 傷害問題,|傷害問題!!!!!!!!傷害問題!!!!!!!!!!傷害問題!!!!!!!!: 到引言文
各位大大:
        
小弟的sma有個很嚴重的問題,一直困擾着我:

我想記錄每個玩家的傷害情況
.......

如果像要 記錄 所有玩家的傷害...區區一個g_has_gun attacker 就可以? 

至少..給個陣列把傷害 全部記錄給g_has_gun attacker就好..

獻花 x0
引用 | 編輯 7632571Z
2014-07-14 20:32
2樓
  
抱歉s78大大 我好像沒說清楚0.0
我想要每個玩家知道自己對僵屍造成傷害的情況(以hud顯示)
但是 傷害僵屍(HP) 得出來的g_damage2[ attacker] 不相同
例如: damage 是 100 , cvar_dmg_gun 是 2
SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_gun))
結果 造成僵屍傷害(HP) 是 200 , 但 g_damage2[ attacker] 是 100
Hud顯示: 對僵屍造成的傷害: 100
show_hudmessage(id,"對僵屍造成的傷害:%d", g_damage2[ attacker] )
為什麼會這樣??求各位大大幫幫小弟

獻花 x0
引用 | 編輯 弒血
2014-07-14 21:56
3樓
  
下面是引用 7632571Z 於 2014-07-14 20:32 發表的 : 到引言文
抱歉s78大大 我好像沒說清楚0.0
我想要每個玩家知道自己對僵屍造成傷害的情況(以hud顯示)
但是 傷害僵屍(HP) 得出來的g_damage2[ attacker] 不相同
例如: damage 是 100 , cvar_dmg_gun 是 2
SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_gun))
結果 造成僵屍傷害(HP) 是 200 , 但 g_damage2[ attacker] 是 100
Hud顯示: 對僵屍造成的傷害: 100
show_hudmessage(id,"對僵屍造成的傷害:%d", g_damage2[ attacker] )
為什麼會這樣??求各位大大幫幫小弟



直接..


new newdmg = (damage * g_damage2[attacker]);

show_hudmessage(id,"對僵屍造成的傷害:%d",newdmg );

這樣就會一起計算顯示的傷害了...

獻花 x0
引用 | 編輯 7632571Z
2014-07-15 12:05
4樓
  
那hud放在僵屍sma(對於任何傷害e.g.刀,槍)
set_task(0.2, "show_damage", id+1234, _, _, "b")

set_hudmessage(255, 255, 255, -1.0, 0.015, 0, 6.0, 0.3, 0.0, 0.0, -1)
show_hudmessage(id,"對僵屍造成的傷害:%d", g_damage2[ attacker] )

那要如果 造成僵屍傷害(HP)(槍械sma) 和 g_damage2[ attacker](僵屍sma)的傷害一致
我應該要如何做..這問題煩惱我很久了!!希望大大能幫我解決

獻花 x0
引用 | 編輯 弒血
2014-07-15 15:15
5樓
  
下面是引用 7632571Z 於 2014-07-15 12:05 發表的 : 到引言文
那hud放在僵屍sma(對於任何傷害e.g.刀,槍)
set_task(0.2, "show_damage", id+1234, _, _, "b")

set_hudmessage(255, 255, 255, -1.0, 0.015, 0, 6.0, 0.3, 0.0, 0.0, -1)
show_hudmessage(id,"對僵屍造成的傷害:%d", g_damage2[ attacker] )

那要如果 造成僵屍傷害(HP)(槍械sma) 和 g_damage2[ attacker](僵屍sma)的傷害一致
我應該要如何做..這問題煩惱我很久了!!希望大大能幫我解決



原槍械傷害 不是damage 就可以取得了嗎..

獻花 x0
引用 | 編輯 7632571Z
2014-07-15 18:28
6樓
  
我不太明白..
s87大大可以詳細一點嗎?感謝

另外想問一下nvault 儲存只可以建5個嗎?
我建第六個會遺失數據..

獻花 x0
引用 | 編輯 弒血
2014-07-15 18:47
7樓
  
下面是引用 7632571Z 於 2014-07-15 18:28 發表的 : 到引言文
我不太明白..
s87大大可以詳細一點嗎?感謝

另外想問一下nvault 儲存只可以建5個嗎?
我建第六個會遺失數據..



如果想單純儲存傷害顯示的話


new Float:newdmg = (damage * get_pcvar_float(cvar_dmg_gun)) // 把原槍的傷害 乘 自訂的傷害倍數


再來...把新傷害傳給 g_damage2[attacker] 做記錄..


 g_damage2[attacker] = newdmg;

接下來 套用 傷害...


SetHamParamFloat(4, newdmg);


如果想單純顯示傷害..直接取得g_damage2[ attacker] 的值..


show_hudmessage(id,"對僵屍造成的傷害:%d", floatround(g_damage2[ attacker] ))


另外..nvault..應該不只5個..不過 這好像是堤外話了

獻花 x0
引用 | 編輯 7632571Z
2014-07-16 13:56
8樓
  
我想問是用inc嗎?
inc:
new Float:newdmg
僵屍:
newdmg= damage + (skill[attacker] * get_cvar_float("skills_damage")))
SetHamParamFloat(4, newdmg)

g_damage2[attacker] += newdmg

show_hudmessage(id,"對僵屍造成的傷害:%d", g_damage2[ attacker] )
槍:
if(g_has_gun[attacker])
{
newdmg= (damage * get_pcvar_float(cvar_dmg_gun))
SetHamParamFloat(4, newdmg)
}

獻花 x0
引用 | 編輯 7632571Z
2014-07-17 17:19
9樓
  
已經完成了!!感謝s78大大一直的幫助.. 表情

獻花 x0