引用 | 編輯
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
|
引用 | 編輯
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 發表的 : 直接.. 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 發表的 : 原槍械傷害 不是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 發表的 : 如果想單純儲存傷害顯示的話 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 |