死者復活---004觸發的應用
1. 前言:
帝國的戰役製作經歷了20年,留下了不少被認為無法攻克的難題。例如問上所有的高分戰役製作者:英雄的光環效果有沒有辦法實現。所有人都會告訴你不可能。同樣的,能否讓死掉的單位再活過來,所有人也都會告訴你不可能。而這兩個問題本質上,其實是同一個問題:只要能復活死掉的單位,英雄光環就不會是夢想。而這個問題在帝國二發行近20年的今天,終於有了解決方法。
2. 困難點與理論背景:
2.1 技術困難點. 死者復活的困難點在於地圖ID的繼承。所謂地圖ID,就是一開始放在地圖上所有單位的編號。地圖ID有點像是單位的"真名",例如在觸發中寫入ID 001號的單位增加100血,那對應的就只會是001號單位增加100血。以今天的技術而言,利用觸發或MOD要在死去的單位原地建立一個單位是很容易的。但新建立的單位,他的地圖ID和死去的單位必定不同(就算改變屍體單位也是一樣的)。因此,如何在單位死亡後建立一個和原本單位有相同地圖ID的單位,就變成死者復活的主要困難之處。
值得一提的是,死者復活這個技術目前只有在004觸發系統上做得到。當初1.4和etp推出後004發表的這個觸發擴充版本沒有多少人重視(可能只有在下有好好鑽研過),非常可惜。以在下來看,up1.5當今技術仍不能完全取代004的觸發擴充。
2.2 死亡狀態與真實死亡. 描述完此技術的困難點後,我們還需要知道幾個技術的理論背景。第一個是有關死亡。一個單位在血量為0時,會進入死亡狀態,在短暫的跑完死亡動作後,才會進入真實死亡。有趣的是,只要在進入真實死亡前,單位都是可以受到觸發和科技影響的,但只要一旦進入死亡狀態,單位就不可避免得一定會邁向真實死亡。而進入真實死亡後,所有觸發和科技對此單位都會無效,而且此單位的地圖ID就會永遠地從這場戰役中消失(無論你之後建立了什麼單位,都不會是這個ID)。
既然死亡狀態是不可逆的,有沒有辦法能永久暫停呢?答案是可以,以下圖為例,一個弓兵死亡瞬間,利用擁有較少單位就可以偵測出來。此時將這個弓兵瞬間進駐到一個建築(或單位)裡,這個單位就會以死亡狀態保存於此建築中,但永遠不會進入真實死亡。(下圖最右邊是在死亡狀態時,研發弩兵科技後讓單位變成死亡單位升級成弩兵(死亡的弩兵)的結果)。
2.3 同ID技術與真假單位. 第二個理論背景是關於同ID的。這裡說的是同正ID,不了解背景知識的可以閱讀在下之前撰寫的關於同ID的按鈕技術。004觸發中最有趣的幾個效果,一個是可以用指派的方式將A的ID變成和B的ID一樣,其中A也可以換成一個區域。指派後兩單位A、B的地圖ID會完全一樣,但B會是真單位而A會是假單位。真單位的意思是在遊戲中不管是觸發或是AI,甚至是電腦在判定單位的狀態時,都是以真單位的狀態為準。也就是因為如此,如果假單位進駐時進行卸載,真單位才會以"被放出"的形式移動到卸載的位置。至於假單位,無法被選取也無法控制。
但同ID技術有很多侷限之處,例如它對單位的改權十分敏感。因此如果不熟悉這技術的新人製作者,在製作過程鐵定會產生一堆BUG (ex. 《流镝》的技能存檔後失效就是個很好的例子)。這類BUG包含許多狀況,其中一個就是真假單位會調換身分。以004觸發為例,如果用指派的方式將A的ID變成和B的ID一樣,然後再把A改權幾秒後改回來,這樣A就會變成真單位,而B就會變成假單位。
2.4 作法. 有了上述兩個理論背景,我們就可以製作死者復活。順序如下:
1. 單位進入死亡動作那一剎那,將A單位先用觸發進駐起來,以確保A不進入真實死亡。
2. 建立一個新單位B,保持所有舊單位的能力值,並讓新單位與舊單位ID相同,此時A為真單位,B為假單位。
3. 此時新舊單位的ID相同,但進入死亡的單位為真單位,所以我們必須逆轉真假單位的順序。
4. 將新單位改權幾秒後改回來,此時新單位B就會變成可操作的真單位,其地圖ID和原本一樣。
注意到,在此之後絕對不可以將假單位A放出來。一旦A進入真實死亡,電腦就會檢查地圖上所有單位的地圖ID,並將新單位B的ID重新置換。此時,有極大機率會產生跳出。
3. 應用與總結:
看完後大家可能會覺得,此技術如此困難,到底值不值得?答案是非常值得。打個比方,單人戰役就像是一堆演員在我們設計的舞台上表演。而隨著戰役的進行,新建立的單位們就像是一群不受觸發控制的臨時演員。但是如果我們能讓單位復活,那麼每次我們就可以讓這固定的一兩百人在場上表演,每個都可以受到觸發控制,想製作英雄光環效果也能用觸發與AI處理。這樣一來就可以大幅的增加戰役製作的效果。 本帖最后由 焚风之爱莉琰 于 2019-6-14 16:26 编辑
QwQ被点名批评了。
我最开始制作技能按钮的时候使用的是正同id,一个进驻在英雄内,一个进驻在运输船内。但是当我点击英雄内的单位时,却直接被放出来了。所以只好改用负同id。刚刚尝试了一下也是如此,这是怎么回事呢? 焚风之爱莉琰 发表于 2019-6-14 16:22
QwQ被点名批评了。
我最开始制作技能按钮的时候使用的是正同id,一个进驻在英雄内,一个进驻在运输船内。但 ...
因為你放反了,放在英雄內的是真單位。 troytroytroy 发表于 2019-6-14 18:07
因為你放反了,放在英雄內的是真單位。
之前是这样的,我将豹勇士B的id改为1,驻扎在运输船中。豹勇士A的id仍为1,驻扎在百夫长中。但游戏开始之后,无论是点击百夫长还是运输船中的豹勇士,都会被放出。而且两个豹勇士都能选中、行动等等。
随后我将两名豹勇士交换了位置,但无论点击哪个仍然是这种情况。请问这是在什么地方做错了?
本帖最后由 焚风之爱莉琰 于 2019-6-18 22:45 编辑
就是这个,我在这个地图上,给玩家方只放了一个英雄、两个同正id的豹勇士和一个运输船。但无论点击哪个豹勇士,都会被放出来,而且放出来以后两个都可以自由行动。除非把同id改为负数。麻烦您帮我看看是哪里做错了,感谢。
焚风之爱莉琰 发表于 2019-6-18 22:43
就是这个,我在这个地图上,给玩家方只放了一个英雄、两个同正id的豹勇士和一个运输船。但无论点击哪个豹勇 ...
看起來似乎用AOKTS改同正ID後開始戰役就會被改回來。感覺AOKTS的改法應該是有問題的,因為以前用ID修改器修改後舊版的AOKTS應該可以開啟,但現在卻不行。
我不確定以前那個ID修改器能不能達到相同效果,否則應該就只能用004的觸發系統或者負ID技術了。 用这个技术能实现同一单位的多次复活吗? M.I.K.U. 发表于 2019-7-6 03:01
用这个技术能实现同一单位的多次复活吗?
當然是可以。而且觸發可以循環利用,只須寫一次。 地图里的迷雾怎么去除啊 本帖最后由 1147836879 于 2019-7-8 19:35 编辑
为什么我调了最慢,看着弓兵还没倒下,我用驻扎按到了瞭望塔,然后弓兵直挺挺的倒下了,驻扎不到,是不是有限制 1147836879 发表于 2019-7-8 19:30
为什么我调了最慢,看着弓兵还没倒下,我用驻扎按到了瞭望塔,然后弓兵直挺挺的倒下了,驻扎不到,是不是有 ...
手動駐紮當然是來不及的,這帖子裡的駐紮都是用觸發來駐紮。 troytroytroy 发表于 2019-7-8 20:36
手動駐紮當然是來不及的,這帖子裡的駐紮都是用觸發來駐紮。
唉,来自编程白痴的叹息 1147836879 发表于 2019-7-8 21:08
唉,来自编程白痴的叹息
你想學戰役製作可以加入天龍QQ群:498122293。我一般不太用論壇私聊,都用QQ。 本帖最后由 newtonerdai 于 2020-3-29 20:22 编辑
挖坟。补充详细做法:
(我使用的是WAIFor和004战役时代20191020版本)
假设主角步弓兵(兵种ID为4),其地图ID是36,存放“死亡状态”主角的为垛墙
触发0 || 初始开启不显示任务不循环
条件0 || 拥有物件数量小于等于玩家1步弓兵数量0个//检测主角0血并进入“死亡状态”
效果0 || Change/Replace Object设定物件为初始主角数量4数目2//数量4:步弓兵的兵种ID。数目2:(叠加)在单位的位置上建立新单位,但不移除原单位。这个效果是原地复活。如果需要定点复活,可以使用“产生单位”等其他效果。
效果1 || 指派物件设定物件为初始主角设定目标为驻扎尸体的垛墙数目1//数目1:传送物件。这个效果可以使得死亡地点处不残留尸体,相当于把尸体残像转移到垛墙处。
效果2 || Instant Garrison设定物件为初始主角设定目标为驻扎尸体的垛墙//直接把死亡状态的“尸体”驻扎到垛墙里。
效果3 || Change Object Id不设区域或设为战斗区域步弓兵数量36//把效果0创建的新步弓兵地图ID改为36。
效果4 || 改变所有权不设区域或设为战斗区域步弓兵玩家1→玩家2//改权两次以使新步弓兵主角成为“真单位”。
效果5 || 激活触发触发1
触发1 || 初始关闭不显示任务不循环
条件0 || 计时器0~任一值//若不需复活等待时间,可把 效果0合并到上面的效果5后面,并把触发0改为循环模式。
效果0 || 改变所有权不设区域或设为战斗区域步弓兵玩家2→玩家1//改权两次以使新步弓兵主角成为“真单位”。
效果1 || 激活触发触发0
謝謝樓主分享和newtonerdai補充. (沒補充還真不懂...) 本帖最后由 nathanielng 于 2020-4-14 08:04 编辑
newtonerdai 发表于 2020-3-29 20:21
挖坟。补充详细做法:
(我使用的是WAIFor和004战役时代20191020版本)
你好。
我在004下照著做, 但新COPY的弓手在改權2次後還是沒有取代死去的弓手的真單位, 能幫忙看看嗎? 謝謝。
(有弓手樣子的表示有選擇目標)
新出來的弓手 沒有原來弓手的攻擊力和血量加成 無法接受每3秒對原生弓手的攻擊力+1.
nathanielng 发表于 2020-4-14 08:03
你好。
我在004下照著做, 但新COPY的弓手在改權2次後還是沒有取代死去的弓手的真單位, 能幫忙看看嗎?...
你搞錯這個技術帶來的效果了。這個技術重點在於復活單位可以沿用舊單位的觸發效果,所以你要改血量攻擊就要再把之前的改血/攻的觸發再跑一遍。 troytroytroy 发表于 2020-4-14 13:19
你搞錯這個技術帶來的效果了。這個技術重點在於復活單位可以沿用舊單位的觸發效果,所以你要改血量攻擊就 ...
十分感謝你的回覆。
不好意思, 我不該同時提出二個問題,。
我感覺我的觸發做不到"復活單位可以沿用舊單位的觸發效果"。
我設定了一個觸發(循環, 己觸發), 每3秒對原生目標提高1點攻擊力。
但重生的弓手的攻擊力不會隨時間提升。
則, 假設原生弓手攻擊力4+6 (存活了18秒), 重生弓手攻擊力4, (這處沒錯。), 但接下來的時間, 重生弓手每3秒不會增加1點攻擊力。
我另外設定了一個"當目標到達地區, 傳送到X區", 這個重生的弓手也觸發不了。
還是我理解錯了"沿用舊單位的觸發效果"的意思?
謝謝 (很高興遇到你這樣活潑, 願意分享, 還有技術的人) nathanielng 发表于 2020-4-14 22:26
十分感謝你的回覆。
不好意思, 我不該同時提出二個問題,。
原來如此。這樣看來是你有地方設置錯誤了。
檢查一下你置放的單位地圖ID是不是正確的,36那個數字是新桶測試時放置單位的ID,
你自己做的時候要查看你放的單位ID是多少,要用aokts查。 萬分感謝, 用TS找到ID後就能觸發了。我當初犯傻, 沒明白數量這個是應該填ID的。
這個東西太神奇了, 簡直是在逃避死神。
也太偉大了, 對做RPG幫助很大。
页:
[1]