精華區beta WarCraftChat 關於我們 聯絡資訊
技能:傷害吸收 描述:創造一個能吸收300傷害的護盾保護自身 我的作法是 受到傷害X > 護盾值減少 > 受到傷害單位恢復X生命 但缺點是受到比現有生命值大的傷害時會被秒殺 護盾無法作用 想請教有什麼其他方法來實現 另外 我嘗試用隱藏施法單位對使用護盾者施展靈魂連結來作 但傷害並沒有分擔 怪怪的@@ --  ☑will you kill someone you love, because of love? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.103.202
badken:感覺很像毫髮可是又不是XD 02/21 13:13
mist719:毫髮是? 02/21 13:15
Wsion:逆壓和苦楚? 沒作用應該是先抵銷護盾然後才傷到本尊? 02/21 13:16
wulouise:靈魂連結是彈跳到的兩個目標上才有分擔吧.. 只有自己的話 02/21 13:16
wulouise:只是會傷害打在自己身上變成100%魔法傷害 02/21 13:17
mist719:恩 我是想說讓隱藏施法單位跟施法者連在一起 然後都給隱藏 02/21 13:18
mist719:單位承受這樣 02/21 13:19
wulouise:另外你可以打前補 這樣傷害大於最大生命值才會秒殺 02/21 13:19
mist719:被秒殺是我想解決的問題QQ 02/21 13:20
wulouise:辦不到 辦得到強者大戰就會用了吧.. 02/21 13:23
wulouise:至少打前補是傷害達到最大值才秒殺 比超過現在值就秒殺好 02/21 13:24
tinkens:毫髮無傷應該是負數值的狂戰士技能? 02/21 13:32
wulouise:至少會受到1的傷害吧? 02/21 13:35
nobodyx:狂戰士承受傷害調成負數的話會補血 02/21 13:55
gyd:辦得到 02/21 13:57
toy78997:狂戰士-0.01怎麼樣 02/21 15:17
gyd:所有法術傷害會變補血 02/21 15:39
lucifiel1618:把靈魂鍊結調成1,然後用科技把原單位的裝甲換成神 02/21 16:36
lucifiel1618:性裝甲,然後把裝甲屬性的魔法減傷調到零 02/21 16:38
lucifiel1618:其他屬性調成跟原來的裝甲屬性一樣就好了 02/21 16:38
lucifiel1618:不過這招對技能傷害還是沒用的,這招已經有很多前人 02/21 16:39
lucifiel1618:嘗試過了,在流連還有討論串,到現在還是沒結論 02/21 16:40
lucifiel1618:而且你原來的方式不只會有秒殺的問題而已 02/21 16:41
lucifiel1618:編輯器是抓不到一擊斬造成的傷害的 02/21 16:41
gyd:一擊斬的傷害抓得到阿.. 02/22 09:55
> -------------------------------------------------------------------------- < 作者: 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群 group261611@msnzone.cn (使用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)
gyd:如果要考慮生命上限的問題, 就多一步給生命上限再拔掉 02/21 15:46
wulouise:SetUnitLifeBJ可以給單位超過上限的hp? 02/21 16:37
c0705:怎麼程式語言都都長得好像 囧 真所謂一法通萬法通 02/21 17:48
mist719:意思是變更現有生命值去承受傷害這樣? 02/21 18:13
wulouise:就是打前補..可是這好像擋不住超過生命最大值的傷害 02/21 18:48
linjrming:LoA現在大決好像怎樣都不會死耶 02/21 21:53
wulouise:最近都沒ran到 但是沒改過吧? 薄葬跟loa大絕一樣被axe婊 02/21 22:16
gyd:所以要考慮超過生命最大值的傷害, 就是要多一步給生命上限 02/21 22:18
gyd:然後拔掉 02/21 22:18
linjrming:除了axe之外,其他就算傷害超過血量也一樣會回血耶 02/22 00:03
wulouise:那是因為要超過"最大"血量 不是超過目前hp 02/22 00:17
> -------------------------------------------------------------------------- < 作者: gyd (iphone 3gs get!) 看板: WarCraftChat 標題: Re: [ WE ] 吸收傷害的護盾 時間: Sun Feb 21 23:41:21 2010
gyd:如果要考慮生命上限的問題, 就多一步給生命上限再拔掉 02/21 15:46
wulouise:SetUnitLifeBJ可以給單位超過上限的hp? 02/21 16:37
c0705:怎麼程式語言都都長得好像 囧 真所謂一法通萬法通 02/21 17:48
mist719:意思是變更現有生命值去承受傷害這樣? 02/21 18:13
wulouise:就是打前補..可是這好像擋不住超過生命最大值的傷害 02/21 18:48
linjrming:LoA現在大決好像怎樣都不會死耶 02/21 21:53
wulouise:最近都沒ran到 但是沒改過吧? 薄葬跟loa大絕一樣被axe婊 02/21 22:16
gyd:所以要考慮超過生命最大值的傷害, 就是要多一步給生命上限 02/21 22:18
gyd:然後拔掉 02/21 22:18
function TestCode_Actions takes nothing returns nothing local real life local unit target = GetTriggerUnit() //'A000' -> 增加生命上限300 call UnitAddAbilityBJ( 'A000', target ) //以下是一行 call SetUnitLifeBJ( target, ( GetUnitStateSwap(UNIT_STATE_LIFE, target) + GetEventDamage() ) ) //以上 //等待傷害完成 call TriggerSleepAction( 0.00 ) set life = GetUnitStateSwap(UNIT_STATE_LIFE, target) call UnitRemoveAbilityBJ( 'A000', target ) if life < 0 then //表示檔300還是會掛, 這步做不做一樣意思 call KillUnit(target) else call SetUnitLifeBJ(target, life) endif endfunction -- 三國猛將傳 m群 group261611@msnzone.cn (使用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:補充, 如果無上限則是給一個極大生命, 而非300hp 02/21 23:42
wulouise:喔喔 wc3有hp上限嗎? 02/22 00:18
gyd:沒印象, 但是根據地圖的不同, 只要能比最大傷害高就ok了 02/22 09:49
zseineo:hp上限沒印象,不過玩過張圖,攻擊力稱太高會變負的 02/28 10:17
zseineo:還是綠字變零忘了 02/28 10:17