作者gyd (iphone 3gs get!)
看板WarCraftChat
標題Re: [ WE ] 吸收傷害的護盾
時間Sun Feb 21 13:56:01 2010
※ 引述《mist719 (白色蘋果)》之銘言:
: 技能:傷害吸收
: 描述:創造一個能吸收300傷害的護盾保護自身
: 我的作法是
: 受到傷害X > 護盾值減少 > 受到傷害單位恢復X生命
: 但缺點是受到比現有生命值大的傷害時會被秒殺
: 護盾無法作用 想請教有什麼其他方法來實現
: 另外 我嘗試用隱藏施法單位對使用護盾者施展靈魂連結來作
: 但傷害並沒有分擔 怪怪的@@
這是猛將傳中, 最近新增的華陀天生技程式片段
function DieOrLive_live takes nothing returns nothing
local string s1 = H2T(GetTriggeringTrigger())
local unit target = GetTriggerUnit()
local real dmg = GetEventDamage()
local real life = GetUnitStateSwap(UNIT_STATE_LIFE, target)
local real dmgcount
if dmg>life then
//計算可抵消傷害, 累積 dmg-life-1, 剩1, 100-50-1=49
set dmgcount = dmg-(life+1)
call SetReal(s1, "dmg", GetReal(s1, "dmg")+dmgcount)
call SetHandle(s1, "lastsource", GetEventDamageSource())
call SetUnitLifeBJ( target, dmg+1)
endif
endfunction
要改成你需要的東西也很簡單, 基本概念如下
function HP_Shield takes nothing returns nothing
//H2T->handle to string
local string s1 = H2T(GetTriggeringTrigger())
local unit target = GetTriggerUnit()
local real dmg = GetEventDamage()
local real life = GetUnitStateSwap(UNIT_STATE_LIFE, target)
//GetReal->store real into hash
local real dmgcount = GetReal(s1, "dmg")
//若還可以全檔
if dmgcount - dmg >= 0 then
call SetUnitLifeBJ( target, life+dmg)
call SetReal(s1, "dmg", dmgcount-dmg)
else
//已用光額度
call SetUnitLifeBJ( target, life+dmgcount)
//清空hash
//清掉觸發
endif
endfunction
當然,在你使用技能放護盾後,需要創一個特定單位的傷害觸發
--
三國猛將傳 m群
[email protected] (使用msn加入好友即可)
官方討論區
http://tw.garena.com/3go
地圖發布區
http://tw.garena.com/forum/thread.php?fid=1769
facebook
http://0rz.tw/AG7zA
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.79.76
※ 編輯: gyd 來自: 114.47.79.76 (02/21 13:58)
1F:→ gyd:如果要考慮生命上限的問題, 就多一步給生命上限再拔掉 02/21 15:46
2F:推 wulouise:SetUnitLifeBJ可以給單位超過上限的hp? 02/21 16:37
3F:→ c0705:怎麼程式語言都都長得好像 囧 真所謂一法通萬法通 02/21 17:48
4F:推 mist719:意思是變更現有生命值去承受傷害這樣? 02/21 18:13
5F:推 wulouise:就是打前補..可是這好像擋不住超過生命最大值的傷害 02/21 18:48
6F:推 linjrming:LoA現在大決好像怎樣都不會死耶 02/21 21:53
7F:推 wulouise:最近都沒ran到 但是沒改過吧? 薄葬跟loa大絕一樣被axe婊 02/21 22:16
8F:→ gyd:所以要考慮超過生命最大值的傷害, 就是要多一步給生命上限 02/21 22:18
9F:→ gyd:然後拔掉 02/21 22:18
10F:推 linjrming:除了axe之外,其他就算傷害超過血量也一樣會回血耶 02/22 00:03
11F:推 wulouise:那是因為要超過"最大"血量 不是超過目前hp 02/22 00:17
12F:噓 WCHOME: 11/04 00:53
13F:噓 WCHOME: 11/04 00:53
14F:噓 WCHOME: 11/04 00:53