引用 | 編輯
zxzyman
2014-04-04 23:25 |
樓主
▼ |
||
x0
不好意思... 希望有人能幫助我因為在殭屍裡,有些生命較高,不易殺死的殭屍 我想到一個點子,攻擊殭屍造成傷害30%數, 這個不知道有沒有人想過 下面是插件內容 的一個部份 複製程式 if (g_lasergun[attacker] && g_currentweapon[attacker] == CSW_AWP) { static Float:originF[3] pev(victim, pev_origin, originF) new plrWeapId, plrClip, plrAmmo plrWeapId = get_user_weapon(attacker, plrClip, plrAmmo) if (plrWeapId == CSW_AWP) SetHamParamFloat(4, damage += get_user_health(victim)) client_print(attacker, print_center, "Enemy Electrocuted!") if(get_pcvar_num(cvar_particles_dead)) dead_efect(originF) } 上面是,damage += get_user_health(victim) (也就是秒殺) 我想想後寫出, damage += (get_user_health(victim) *= 0.3 ) (傷害30%) 結果愚蠢的下場就是失敗... x0
|
引用 | 編輯
mischna09
2014-04-05 23:04 |
3樓
▲ ▼ |
set_user_health(victim, get_user_health(victim) * 0.7)
痾.. 一個提點的語法 不過如果一直這樣子打殭屍的話的話他應該死不了...頂多某道具一次吧 x0 |
引用 | 編輯
zxzyman
2014-04-06 16:44 |
5樓
▲ ▼ |
我想到這個方法: 但失敗
new PlayHp, Hiting PlayHp = get_user_health(victim) new Float:Dam = 0.3 Hiting = PlayHp *= Dam if (plrWeapId == CSW_AWP) SetHamParamFloat(4, damage += Hiting ) 假如玩家生命3000 3000 x 0.3 = 900 傷害 + 900 結果打下去 傷害變成: 1398658 (幾百萬....) 請問我上面的邏輯有錯嗎?... 還是說沒這麼單純... x0 |
引用 | 編輯
Nailaz
2014-04-06 18:07 |
6樓
▲ ▼ |
應該是小數問題
把get_user_health(index) 改成 pev(index, pev_health) 應該可行 x1 |
引用 | 編輯
[NiGhT]-妖
2014-04-07 19:54 |
7樓
▲ ▼ |
if (g_lasergun[attacker] && g_currentweapon[attacker] == CSW_AWP)
{ static Float:originF[3] pev(victim, pev_origin, originF) new plrWeapId, plrClip, plrAmmo plrWeapId = get_user_weapon(attacker, plrClip, plrAmmo) if (plrWeapId == CSW_AWP) SetHamParamFloat(4, damage += get_user_health(victim)) client_print(attacker, print_center, "Enemy Electrocuted!") if(get_pcvar_num(cvar_particles_dead)) dead_efect(originF) } get_user damger % } end x0 |
引用 | 編輯
弒血
2014-04-08 08:37 |
8樓
▲ ▼ |
下面是引用 zxzyman 於 2014-04-06 16:44 發表的 : 如果是我的話,我會先取得每隻殭屍的最大生命值去做: 例如說 我有一隻殭屍 血量 5000 先把傷害倍數乘於血量 = 新傷害倍數 再把新傷害倍數乘於1.0 = 傷害值 換句話說.. new Float:maxhealth, Float:adddmg, Float:newdmg; maxhealth = float(5000); //最大生命,重點是看你如何取的..我這個只是個例子... adddmg = 1.3; //30%傷害 newdmg = (damage + (maxhealth * adddmg)); // 取得舊傷害 + 傷害倍數 SetHamParamFloat(4, newdmg ); //給予新的傷害值 x1 |
引用 | 編輯
zxzyman
2014-04-08 13:27 |
9樓
▲ ▼ |
下面是引用 s8720419 於 2014-04-08 08:37 發表的 : 原來不是只有%數要用Float.... 我參考您的作法,但省去maxhealth 我用zp_get_zombie_maxhealth 取得殭屍生命,成功做出%數傷害了 但是1.3並不是30%傷害,這樣會變成130%傷害 (我剛剛想了很久發現就是錯在這...) Nailaz 大大 誤導了我們了 感謝s8720419 大大指點幫助,貌似有學到了什麼..~ 這樣就能延伸出不一樣的想法了,像是道具對復仇者有%數傷害 x0 |
引用 | 編輯
a7811311622
2014-04-08 21:05 |
12樓
▲ ▼ |
10樓之前提到血量…可是沒說是「最大」血量還是「當前」血量…
然後說 30% …可是也沒說這是「增加」還是「減少」… 看完全部的回覆後…結論是變成了打目標一下目標的血量大概只剩下原血量的30%? x0 |
引用 | 編輯
弒血
2014-04-08 21:40 |
13樓
▲ ▼ |
確實有可能 2~3下..就打死殭屍..
不過 看要不要設定機率處發 用YY大的方法 再傷害那邊使用機率 不然這樣..基本上 人類 一出場 殭屍穩死 x0 |