《閃點行動2:龍之崛起》任務(wù)編輯器教程
作者:佚名 來源:本站 時間:2024-04-18 點擊:次
原文:點擊
感想:本人玩過的三角洲系列,毀滅戰(zhàn)士系列,地震系列,反恐系列,霹靂系列,彩虹系列,榮譽勛章系列,cod系列。
說實話我已厭倦了巷戰(zhàn),厭倦了按規(guī)定線路沖鋒的的第一人稱射擊游戲。
給我感覺最好的好是閃點行動和三角洲,開闊的地圖,真實的戰(zhàn)爭,1公里開外匍匐在草叢中,抬個狙,聽著風(fēng)吹過草地的聲音,等待著目標的出現(xiàn)!!
任務(wù)編輯器感想:該編輯還是比較傻瓜容易懂的。連我這種對腳本語言一巧不通的人也摸出了點門道。
教程一:初識界面,放置單位,單位屬性。
可以看到圖片所示。界面很簡單。
要做個最最簡單的地圖就是把解放軍,和美軍拖到地圖上,然后選中一個單位在屬性界面里把AI換成player就可以了。
下面圖片的屬性的簡單介紹 如圖
沒什么難點隨便選擇了玩玩就可以了。
教程二: 路徑點
因為路徑設(shè)置已經(jīng)有人寫過比較好的帖子,我復(fù)制如下(感謝原作者vid190):
很多人都要問道怎么讓AI自動走路,下面簡單介紹下,會了這個你也就差不多能做個極為簡單的防御地圖了
舉例做一個讓AI一開始就自己移動一段距離的任務(wù)
1.首先加入AI,在Create面板里的USMC跟PLA下的,F(xiàn)ireteams 火線小組 Soldiers 單兵 Squads 一個班 ,這些就不多介紹了,自己選擇個小隊加入。然后在設(shè)置自己,這里要注意了,如果讓AI自己移動那么這個移動的隊伍里不能有你自己。不然系統(tǒng)會自己默認讓你自己發(fā)號施令指揮隊友。自己在Soldiers選擇個自己喜歡的加上,讓后在地圖上在自己加入的這個人物圖標上單擊右鍵選擇Set Control Mode Of This Character - Player 就設(shè)置為自己了,但是如果設(shè)置的為敵方那就不用考慮自己了。
2.然后是設(shè)置路徑點。在Create面板里的Systems下的,Mission里選擇 Waypoint 路徑點。然后在地圖上畫出路徑點,這里要注意,每到一個路徑點隊長都會報告下一個路徑點,所以不要點太多,不然每走幾步隊長就得烏拉烏拉的。然后選擇AI,不包括你自己,這里可以全選也可以點擊小隊的盾牌,也可以單選。怎么都可以。選擇后在他們的圖標上點右鍵選擇Pick Waypoint 這時圖標會變灰但是路徑點還是亮著的,選擇你剛才設(shè)置的第一個起始路徑點就可以了。
技巧一.關(guān)于怎么樣設(shè)置迂回,同理只要在終點路徑點上右鍵單擊并選擇Pick Next Waypoint 然后點擊起始路徑點即可。這時會看見路徑線的兩個箭頭會重合相對,意思就是AI會在這兩點上來回游走。當然你也可以畫個圈,反正怎么畫隨你。
技巧二.如果你想讓AI跑步以最快的速度行進,那只要點擊路徑點然后選擇右邊Modify-Waypoint下的Rapid Move,把它點亮就可以了。然后你會看見路徑線變成多箭頭,既是成功。
技巧三.當然這時你可能看到Rapid Move下的Stance選項,它是設(shè)置到這個路徑點用什么樣的姿態(tài),依次為正常直立行進,蹲著行進,還有匍匐前進。
技巧四.然后你會看到Stance下面的Doctrine選項,雖然這個單詞很難理解,但也是跟姿態(tài)有關(guān)。依次說下你們就明白了。第一個命令后的姿態(tài),就是說隊長命令A(yù)I什么樣AI就保持什么樣的姿態(tài),然后第二個是巡邏姿態(tài),就是心不在焉的那種。第三個事正常姿態(tài)。第四個也是個巡邏姿態(tài),但是是非常警覺的那種,也可以理解成搜尋姿態(tài)。第五個就是戰(zhàn)斗姿態(tài)了。然后這里下面的Formation我們簡單介紹下,就是行進隊形。明白了吧,什么代表什么隊形游戲中熟悉這里就不做多介紹了。
技巧五.然后是Delay選項,顧名思義就是延遲,就是到達次路徑點后等待多長時間再移動到下個路徑點。單位是毫秒,注意不是秒。1000毫秒=1秒。要是設(shè)置60分鐘就得是 3600000
感謝原作者vid190
教程三:部隊編組
因為部隊編組已經(jīng)有人寫過比較好的帖子,我復(fù)制如下(感謝原作者vid190):
1.我們先在Soldiers重選擇5個單兵,放到地圖上去,因為一個小隊最多5個人,你選6個也編不到一塊去。
然后我們在看Create-Systems-AI-下的Echelon圖標。這個事我們以后編輯任務(wù)的常用圖標,就是小隊圖標。
我們在地圖上加一個。
2.然后我們就可以把這5個人編輯成一小組,我們可以在Echelon圖標上點擊右鍵選擇Pick Parent Echelon單個選擇單兵,
也可以在單兵圖標上點擊右鍵選擇Pick Parent Echelon指向Echelon圖標。在就可以用鼠標全選,或者按住Ctrl挑選。
3.這時我們看到五個單兵都用線指向Echelon圖標,并且Echelon圖標被點亮了。然后我們看到這五個單兵中有一個帶有白色黑點小盾牌圖標的,這個就是隊長了。怎么樣設(shè)置隊長呢,我們來說下。首先選擇你那個要設(shè)置隊長的單兵,然后在右下角Modify面板中找到Hierarchy面板中的Leadership選項,我們看到數(shù)值有100,200,300這樣的,說到這有的人明白了吧,數(shù)越大級別越高。小隊中級別最高的就是隊長。
而后面的Reset就是還原成默認,還有就是什么樣的級別對應(yīng)什么樣軍銜,在下一課中Rank屬性中有介紹,不然一個小兵命令一個將軍就糗大了,(400為小隊長,800為大隊長。)
4.小隊任務(wù)說完了,然后我們再說編輯班級隊伍,就是把編輯好的幾個小隊組成一個大隊。
把剛才編輯好的Ctrl+c Ctrl+v再復(fù)制出4個來。然后再加入一個Echelon圖標,聰明人到這個都應(yīng)該明白再怎么設(shè)置了吧,
在每個小隊的Echelon圖標上點擊右鍵選擇Pick Parent Echelon指向新加入的Echelon圖標。這時你會看到。新加入的圖標變成兩個黑點。
這就是一個大隊的標志。5個小隊都選擇完畢后你會看到這25人其中有一個人有兩點白色盾牌標記,那個就是大隊長了。關(guān)于怎么設(shè)置大隊長,同上面的第3節(jié),這里就不啰嗦了。
要點:加入軍官時要小心,只要一個就夠了,不要重復(fù)加入,系統(tǒng)不支持多軍官。
還有就是你最多只能控制9個單位,就是說最多只能命令24個人,1到9,1是你自己,2到5是你小隊的人,6.7.8.9是另外4個小隊。
教程四:初識lua腳本
編寫level.lua是此編輯器的靈魂核心。
請不要看見代碼就犯暈,其實都很簡單。
我之前對腳本語言一竅不通,不對之處多多指教。
首先我們點到右上角界面中system然后拖動
圖標在地圖上。地圖上選中該圖標,在標簽欄就會出現(xiàn)level.lua標簽。如圖所示。
二我們打開標簽level.lua,在輸入界面里輸入:
function onMissionStart()
OFP:showLetterBoxOsd(true);
end
請不要暈,我們慢慢的一行行的解釋。
首先第一行:
function onMissionStart() 意思可以這么理解“當游戲開始的時候”這段代碼就是這個意思?吹絝unction就是“當什么什么的時候”。onMissionStart()意思是游戲開始。
再看第二行OFP:showLetterBoxOsd(true);
OFP:觸發(fā)。showLetterBoxOsd(true)意識是給出信框。
end為結(jié)束,記得end要和function連用。
很簡單把.整段代碼的作用是:
當游戲開始的時候
觸發(fā):出現(xiàn)信框。 --要滿足function onMissionStart()否則不觸發(fā)。
效果:
就是我們在玩任務(wù)的時候一開始,屏幕上下的黑幕。
再看個例子:
function onDeath_huang(victim, killer)
OFP:missionFailed();
end
看到function就是“當”,
第一行意為“當huang這個單位死了”
第二行:觸發(fā):任務(wù)失敗; --要滿足function onDeath_huang(victim, killer)否則無法觸發(fā)。
效果:只要huang這個名稱的兵死了任務(wù)將失敗。
總結(jié)下:寫level.lua不外乎就是當什么什么的時候,觸發(fā)什么什么。很簡單吧。
教程五:如何顯示小黃棋
這個圖標在游戲中起到指南的作用,讓玩家一步步順者提示走。(該圖標只有指南作用,沒有完成任務(wù)的作用,也就是說這個圖標配合任務(wù)圖標才能完美任務(wù))
用法很簡單就是點擊system里的把
拖動到地圖上就可以了,如果拖動多個
就要將他們之間互相連接起來,類似路徑點。屬性里設(shè)置下名稱大小等就可以了。
但是很多朋友可能遇到這樣個問題,明明把
放在了地圖上。但是測試游戲里面就是不見。。。。。!
其實關(guān)鍵是我們沒有觸發(fā)。
好,一一來實現(xiàn)。
首先拖動
圖標到地圖上,然后再拖動
到地圖上,并且在
的屬性name命名為point1,讓后點擊level.lua標簽
輸入:
function onMissionStart()
OFP:activateRVChain("point1");
End
這樣看來就很簡單了把:
當游戲開始的時
觸發(fā):point1這個旗。
效果:
進入游戲后我們就能看到這個小黃棋在坐標上啦。
備注:如果有多個00并且之間相連,那么在level.lua里只要觸發(fā)第一個棋子的名字就可以了,其他后面的棋子都可見到了。
休息下,抽根煙,喝點茶。
待編。。。。。。。。。。。。
教程六:如何制作任務(wù)
要制作好的任務(wù)必須配合上一章的內(nèi)容。根據(jù)小黃棋的提示來完成任務(wù)。(當然你不用小黃旗也是可以的)
我們先來做個最簡單的任務(wù)。
首先在右上角的界面里擊system標簽然后把
拖到地圖上,然后點擊
把屬性里把name寫成objective,后在把type里面選擇成primary objictive 1.意思是這個是主要任務(wù)一,再把army設(shè)置成PLA,意思是PLA的任務(wù)。如圖所示:
這樣任務(wù)就能顯示了。
不過現(xiàn)在還沒有任務(wù)的實際內(nèi)容,所以我們還要寫level.lua
再拖一個
到地圖上,再隨便拖一輛坦克在地圖上并且在name里設(shè)置為tank1.然后后打開.lua
輸入以下代碼:
function onDeath_tank1(victim, killer)
OFP:setObjectiveState("objective"," COMPLETE ");
End
這個代碼很容易懂。
意思是:
當tank1被摧毀
觸發(fā):任務(wù)objective完成。
效果:把坦克打爆,則任務(wù)完成
哈哈 是不是超級簡單
當然這里你要把
和坦克放在一起,或者在
的屬性欄里面的linked to里面選擇tank1。這樣才能準確的定位坦克的位置,不然任務(wù)和內(nèi)容就不匹配了。
這樣一個簡單的任務(wù)就制作完成了。
還可以對該代碼改進一下,如:
function onDeath_tank1(victim, killer)
OFP:setObjectiveState("objective"," COMPLETE ");
OFP:missionCompleted();
end
意思是該任務(wù)完成并且所有任務(wù)完成退出游戲。
下面介紹下復(fù)雜一點的任務(wù)編輯。
我們怎樣來制作2個或3任務(wù)呢?
那就很簡單了直接放兩個
分別命名為objective1和objective2,設(shè)置好陣營,分別設(shè)置primary objictive 1和primary objictive 2
然后拖
到地圖上。再分別拖一輛坦克命名為但tank1個一個兵命名為bin1,如圖所示:
代碼為:
function onDeath_tank1(victim, killer)
OFP:setObjectiveState("objective1"," COMPLETE ");
end
function onDeath_bin1(victim, killer)
OFP:setObjectiveState("objective2"," COMPLETE ");
end
很好理解:
意思為:
當tank1爆炸則任務(wù)1完成
當bin1死亡則任務(wù)2完成
2個任務(wù)制作很簡單吧!!哈哈
不過細心的同學(xué)發(fā)現(xiàn)了,以上代碼是無論你先完成哪個任務(wù)都可以,但如果想完成了任務(wù)1才能完成任務(wù)2那怎么辦?
我們必須加入個判斷:
代碼修改如下:
function onMissionStart()
ob=0;
end
function onDeath_tank1(victim, killer)
OFP:setObjectiveState("objective1"," COMPLETE ");
ob=1;
end
function onDeath_bin1(victim, killer)
if ob==1 then
OFP:setObjectiveState("objective2"," COMPLETE ");
OFP:missionCompleted();
end
end
我們詳細講解下:
首先看到function onMissionStart()就知道是“當游戲開始時"
下面ob=0;則是設(shè)定了個變量!且把0(為假)賦值給ob
再看下一段
function onDeath_tank1(victim, killer)
OFP:setObjectiveState("objective1"," COMPLETE ");
ob=1; ---這里多了個ob=1,意思是當objective1這個任務(wù)完成后讓1(真)賦值給ob
end
接著看最后段
function onDeath_bin1(victim, killer)
if ob==1 then ---這里是如果 ob等于1則觸發(fā)objective2任務(wù)完成,達到了完成任務(wù)1后才能完成任務(wù)2的效果。注意下語法結(jié)構(gòu)。
OFP:setObjectiveState("objective2"," COMPLETE ");
OFP:missionCompleted();
end - -這里注意凡有if必須有end結(jié)束
end - -這里的end對function
超級簡單吧!! 哈哈
其實不外乎多1個變量讓他完成任務(wù)1時ob變成1,任務(wù)判斷ob是否等于1才觸發(fā)第二個任務(wù)!
那么三個任務(wù)就不多講了!
此章介紹到這里。
任務(wù)完成可以是多樣性的,可以是某單位被殺,或者進入某區(qū)域,或者某段時間內(nèi)。
學(xué)到這里應(yīng)該可以制作“1公里開外匍匐在草叢中,抬個狙,聽著風(fēng)吹過草地的聲音,等待著目標的出現(xiàn)。!狙殺。。。。。!“
大家靈活應(yīng)用可以做出絢麗的任務(wù)來!
教程七:如何刷兵,如何刪除出來的刷兵
此游戲只能同時擁有64個單位,確實少了點。以上內(nèi)容是能編輯小規(guī)模戰(zhàn)爭mod。
但是學(xué)了此章后,你能把場面放大無數(shù)倍,可以制作出面對成百上千敵人的超級大場面。
可以制作絢麗的海灘登陸。
可以率領(lǐng)25輛99式坦克面對200輛M1坦克的超級坦克大對轟。
還可制作數(shù)十輛武裝直升機飛過頭頂?shù)恼鸷承Ч。。?br>
可以制作出絢麗的橋頭保衛(wèi)戰(zhàn),村莊保衛(wèi)戰(zhàn)等等
在學(xué)習(xí)此章之前,我們先來了解下地區(qū):
,位置在右上角的system里面可以找到。
如圖:
這個東西主要是用于:某單位進入該地區(qū)時發(fā)生什么事。
多用于刷兵,刪除刷兵,觸發(fā)任務(wù)完成等。
代碼為:function onEnter(zoneName, unitName)
來個例子:
首先拖動
和
在地圖上,把
的name命名為zone然后再拖一個兵并把該兵的name命名為han并設(shè)置為player.
放好后,點擊標題欄的level.lua
輸入以下代碼:
function onEnter_zone_han(zoneName, unitName)
OFP:missionFailed();
end
意思是:當han這個單位進入zone這個地區(qū)時
觸發(fā)總?cè)蝿?wù)完成
效果:
當玩家操作han這個單位進去zone這個區(qū)域則彈出任務(wù)完成菜單,游戲勝利。
很簡單吧。
好了現(xiàn)在我們對地區(qū)已經(jīng)了解了。
現(xiàn)在我們就利用地區(qū)這個工具來制作刷兵。
在此之前我們先了解為什么要刷兵。
這里在羅嗦下這個編輯器只能支持64個單位在地圖上,這明顯限制的游戲的規(guī)模,但是我們可以在64個單位死后,再刷出新的兵,這樣我就能把戰(zhàn)斗做到無限大!不過注意一個地圖上同一時間只能有64個單位,不然刷不新的兵來。
刷兵語句:OFP:activateEntitySet();
好我們來例子:
例1:
首先點擊 右側(cè)Create欄右邊的Explorer
在 Entety Sey View 目錄下面空白處點一下(防止建在根目錄里) 再選擇+ ADD Entity Set
增加一個Entity Set 我們這里他命名為E1.單擊E1灰色目錄圖標打勾,
然后再右鍵E1選Exportable 最后圖標就是一個黃色打勾的目錄.
這樣我們就建立了個實體。
然后拖動一組兵到地圖上在屬性界面里的modify里的Entity Set 里選擇剛
才創(chuàng)建的E1。命名為bin1
現(xiàn)在這組兵事E1這個實體里的單位。
那么我們要實現(xiàn)刷兵就必須觸發(fā)這個實體(E1這個實體里的單位在游戲一開始是不會出現(xiàn)的)
在地圖上拖一個地區(qū)
命名為:zone,再拖一個
,再拖一個兵命名為han設(shè)置成player。點擊level.lua輸入以下代碼:
function onEnter_zone_han(zoneName, unitName)
OFP:activateEntitySet("E1");
end意思是:
當han這個單位進入zone這個區(qū)域時
觸發(fā)刷實體E1
那么我們知道剛才的bin1是在實體E1中,那么觸發(fā)E1也就實現(xiàn)了bin1的出現(xiàn)。
效果:
當han進入zone這個地區(qū)時,bin1刷出來!
哈哈哈哈哈哈是不是超級簡單。不過要注意刷出來的兵或者說實體E1里面的單位必須要有小隊隊長。不然會出錯。
好了我們再來學(xué)習(xí)刪除刷兵。
代碼為:OFP:destroyEntitySet();
為什么要刪除刷兵?
那么一隊敵人遠離你1公里,這隊敵人也沒辦法追上你,那么我就可以把這個小隊刪除,釋放出內(nèi)存給其他的單位!真正實現(xiàn)大規(guī)模的戰(zhàn)斗。
我們繼續(xù)以例1來講解。
再拖動一個地區(qū)到地圖上00命名為shanbingzone
現(xiàn)在地圖上有兩個地區(qū)00分別為zone和shanbingzone,一個han兵,一個bin1,和一個level.lua
我們點擊level.lua
輸入以下代碼:
function onEnter_zone_han(zoneName, unitName)
shuabin1=OFP:activateEntitySet("E1");
end
function onEnter_shanbingzone_han(zoneName, unitName)
OFP:destroyEntitySet(shuabin1);
end
代碼的意思是:
當han這個單位進入zone這個區(qū)域時
shuabin1=觸發(fā)刷兵E1實體
當han這個單位進入shanbingzone這個地區(qū)時
觸發(fā)刪除shuabin1這個變量。
我們來講解下:
shuabin1=OFP:activateEntitySet("E1");這段代碼和例1有所不同,這里必須把OFP:activateEntitySet("E1")賦值給shuabin1才能執(zhí)行后面的消除刷兵。Shuabin1這個變量可以取自己容易記的名字。
再看下面:
OFP:destroyEntitySet(shuabin1);為觸發(fā)刪除刷出來的兵。
看到了把后面括號里是(shuabin1)而不是E1。如果是E1的話則代碼不能出現(xiàn)效果,切記.那么這里刪除了shuabin1也就刪除了E1這個實體也就刪除了bin1這組兵。(注意格式(shuabin1)沒有雙引號)
效果:
當han進入zone時刷兵,當han進入shanbingzone時刪除剛才所刷的兵.
呵呵 也很簡單把
不外乎把刷兵的觸發(fā)效果給他賦值個變量,在刪除刷兵的時候只要刪除這個變量就可以了。
休息下繼續(xù)。。。。。。。。。。。。。。。。。。。。
但是細心的同學(xué)又發(fā)現(xiàn)了
上面這個例子,當han單位進入zone這個地區(qū)刷兵,然后進去shanbingzone這個地區(qū)刪除刷出來的兵,但是當han再進入zone這個區(qū)域時又刷兵了,這明顯不是我們設(shè)計的本意。
那么我們該如何只讓zone這個區(qū)域只刷一次兵,以后再進入zone地區(qū)時不再刷兵呢。
我們就必須加入判斷。
例3
來看代碼:
function onMissionStart()
panduan1=0;
end
function onEnter_zone_han(zoneName, unitName)
if panduan1==0 then
shuabin1=OFP:activateEntitySet("E1");
panduan1=1;
end
end
function onEnter_shanbingzone_han(zoneName, unitName)
OFP:destroyEntitySet(shuabin1);
end
很好理解把
在游戲開始的時候設(shè)置個變量panduan1=0。
當han進入zone時,先判斷panduan1是不是0后才刷兵。
當觸發(fā)刷兵后讓panduan=1,則以后再進入zone地區(qū)時因為panduan=1所以不會再刷兵了。
當然對于例3的功能還有更簡單的辦法:
function onEnter_zone_han(zoneName, unitName)
shuabin1=OFP:activateEntitySet("E1");
OFP:disableEvent("onEnter_zone_han") ; --消除該觸發(fā)器,也可以達到例3的效果,且更簡單方便,不需要變量來判斷。
end
function onEnter_shanbingzone_han(zoneName, unitName)
OFP:destroyEntitySet(shuabin1);
end
我們來個牛的例子
例4:
假設(shè)我們有實體E1和E2還有兵若干,地區(qū)4個分別為zone,zone1和shanbingzone,shanbingzong1玩家han.
代碼為
function onMissionStart()
panduan1=0;
panduan2=0;
end
function onEnter_zone_han(zoneName, unitName)
if panduan1==0 then
shuabin1=OFP:activateEntitySet("E1");
panduan1=1;
end
end
function onEnter_zone1_han(zoneName, unitName)
if panduan2==0 then
shuabin2=OFP:activateEntitySet("E2");
panduan2=1;
end
end
function onEnter_shanbingzone_han(zoneName, unitName)
OFP:destroyEntitySet(shuabin1);
end
function onEnter_shanbingzone1_han(zoneName, unitName)
OFP:destroyEntitySet(shuabin2);
end
意思是:
當han進入zone時
觸發(fā)刷E1
當han進入zone時
觸發(fā)刷E2
當han進shanbingzone時
觸發(fā)刪除E1
當han進入shanbingzone1時
觸發(fā)刪除E2
以上代碼刷兵區(qū)域只能刷1次兵
效果:略
值得注意的是一次刷兵判斷時,變量只能用一次
function onEnter_zone_han(zoneName, unitName)
if panduan1==0 then
shuabin1=OFP:activateEntitySet("E1");
panduan1=1;
end
end
function onEnter_zone1_han(zoneName, unitName)
if panduan1==1 then ――用了同一個變量,錯誤
shuabin2=OFP:activateEntitySet("E2");
panduan1=2;――錯誤end
這樣寫是錯誤的,所以我們必須有panduan1=0;和panduan2=0;兩個變量來判斷刷兵。切記。。。!
要做大規(guī)模戰(zhàn)斗例4必須要學(xué)會。
本章說到這里結(jié)束了,希望大家多多練習(xí),作出超級大戰(zhàn)場來給我玩^_^
這章稍微有點難度,有什么困難可以聯(lián)系我,大家一起討論。
教程八:路徑點高級應(yīng)用
在教程二中已經(jīng)認識了路徑點,那么這里我們對路徑點的功能拓展一下
此章我們用三個部分來給大家講解:
一:如何讓刷出來的兵安路徑點移動
二:如何讓AI防守路徑點
三:當達到路徑點觸發(fā)事件
一:我們在學(xué)習(xí)完教程七的后已經(jīng)學(xué)會刷兵,但是如果喜歡鉆研的同學(xué)發(fā)現(xiàn),刷出來的兵不會按路徑點走,無論你怎么設(shè)置路徑,他們只是呆呆的站在原地,或者是發(fā)現(xiàn)敵人就一擁而上。
現(xiàn)在我們解決這個問題:
例1:
首先我們設(shè)置好事體E1(見教程七),拖動一組兵命名為bing1選擇實體E1,拖2個地區(qū)分別命名為:shuabingzone和yidongzone.在拖3個路徑分別命名為:way1,way2,way。并把3個路徑相連。拖一個level.lua再來一組兵命名為han選擇為player.
現(xiàn)在我們的任務(wù)是進入shuabingzone時,觸發(fā)刷bing1,進入yidongzone時讓bing1按路徑移動。(哈哈明白了吧,要讓刷出來的兵按路徑移動,就必須去觸發(fā))。
好我們輸入以下代碼:
function onEnter_shuabingzone_han(zoneName, unitName)
OFP:activateEntitySet("E1"); - -刷兵
end
function onEnter_yidongzone_han(zoneName, unitName)
OFP:move(“bing1”,”way1p”)
End
我們講解下:第一段沒問題,看第二段:當進入yidongzone時觸發(fā)移動move(“兵的名字”,”路徑點名稱+p”):
呵呵是不是很簡單。
但是請注意OFP:move(“bing1”,”way1p”)這里必須是way1+p而不是way1,這里一定要在路徑點名稱后面加個P,才能讓bing1沿著way1到way2到way3,如果不加p,兵1只會到達way1就不動了。
二:如何讓AI防守路徑點。
我們要讓刷出來的敵人,防守某個路徑點,而不是亂跑,或者原地不動
例2:在例1的基礎(chǔ)上再加一個路徑點命名為fangshouway和一個地區(qū)命名為fangshouzone,且該路徑點不能和其他路徑相連.
我們要讓刷出來的兵防守路徑點fangshouway.
代碼如下:
function onEnter_shuabingzone_han(zoneName, unitName)
OFP:activateEntitySet("E1"); - -刷兵
end
function onEnter_fangshouzone_han(zoneName, unitName)
OFP:defendPos("bing1","fangshouway",10);
end
也很簡單
當han進入shuabing地區(qū)時觸發(fā)刷兵,再觸發(fā)防守。
OFP:defendPos("bing1","fangshouway",10);這里時(“兵名稱”,”路徑點”,范圍/米)
三:當達到路徑點觸發(fā)事件
例如我們有一輛卡車,上面裝滿了兵,當?shù)竭_某個路徑時觸發(fā)所有兵下車。
我們再拖一輛卡車命名為kache1,拖一組兵命名為bing2,讓bing2裝上卡車。在把bing2和路徑way1相連。
代碼如下:
function onArriveAtWaypoint_kache1_way1(entityName, waypointName)
OFP:move("bin1","way1","OVERRIDE");
end
function onArriveAtWaypoint_kache1_way1(entityName, waypointName)
OFP:land("bing2");
end
第一段觸發(fā)移動。
第二段觸發(fā)下卡車。
嚴重注意:一個地區(qū)zone只能對應(yīng)一類OFP,
例如:
function onEnter_shuabingzone_han(zoneName, unitName)
OFP:activateEntitySet("E1"); - -刷兵
OFP:activateEntitySet("E2"); - -刷兵
OFP:activateEntitySet("E3"); - -刷兵
end
這個是正確的,因為一個為地區(qū)只對應(yīng)了觸發(fā)刷兵,雖然有多個但是是屬于同一類。
而:
function onEnter_shuabingzone_han(zoneName, unitName)
OFP:activateEntitySet("E1"); - -刷兵
OFP:move("bin1","way1","OVERRIDE");
end
這樣是錯誤的:一個地區(qū)不能對應(yīng)兩種類型觸發(fā)。
再看
function onEnter_zone_han(zoneName, unitName)
shuabin1=OFP:activateEntitySet("E1");
OFP:disableEvent("onEnter_zone_han") ;
end
這樣情況例外!這個是正確的shuabin1=OFP:activateEntitySet("E1");和OFP:disableEvent("onEnter_zone_han") 屬于同一類觸發(fā),
好第八章就講到這里。
教程九:實例應(yīng)用
一:什么是虛擬單位
二:存盤點的制作
三:實例下載
一:什么是虛擬單位
我們知道一輛坦克需要配上一個駕駛員,一個指揮,和一個炮手,連上坦克本身就需要4個單位。
我們知道地圖只能有64個單位,那么是不是只能有16輛坦克同時在地圖上,答案是否定的。
我們可以把一輛坦克配置上虛擬駕駛員虛擬指揮和虛擬炮手,那么1輛完整的坦克只占用1個單位
方法:
拖一輛坦克到地圖上,并在屬性欄里面選擇has virtual crew就可以了
二存盤點制作
這個很簡單
在地圖上拖一個Mission progress checkpoint就是圓圈里有個勾勾那個圖標,
命名為save1。(在右上角的system里面找到),再拖一個地區(qū)命名為zone1,
再拖一個兵到地圖上明命名為han,設(shè)置成player,再來一個level.lua
(save1和zone1最好在一起。)
輸入代碼:
function onEnter_zone1_han(zoneName, unitName)
OFP:enableCheckpoint("save1")
end
這樣就可以了。
意思是當han進入zone1這個區(qū)域時觸發(fā)存盤點save1,并且恢復(fù)體能,AI彈藥得到補充。
三:實例下載
這里有個本人制作的例子供大家參考:
t6解壓到游目錄data_winmissionsMission Editor下,進入游戲玩。
介紹:
任務(wù)目標1:攻占山頭,擊斃美軍軍官。
任務(wù)目標2:埋伏在小道兩側(cè),突襲M1主戰(zhàn)坦克。
任務(wù)目標3:占領(lǐng)村莊。
敵人單位:步兵若干(100+),30+輛M1主戰(zhàn)坦克,兩輛運兵車。
解放軍單位:20+輛99式主戰(zhàn)坦克,玩家?guī)ьI(lǐng)17人小隊,援兵若干。
戰(zhàn)線長度:4公里。
功略:
順著指南小旗走就可以了。不要硬拼,多用戰(zhàn)術(shù)。
全文完(^.^)
祝大家戰(zhàn)斗愉快!
更多相關(guān)內(nèi)容請訪問:閃點行動2專區(qū)
- 上一篇: 《破壞份子》cdkey安裝序列號
- 下一篇: 《無雙大蛇Z》夷陵迷宮走法
相關(guān)閱讀
更多資訊
- 《無雙大蛇Z》夷陵迷宮走法
- 《無雙大蛇Z》道具入手法
- 《無雙大蛇Z》戲劇關(guān)卡開鎖條件
- 《無雙大蛇Z》關(guān)于特技的修改
- 《使命召喚6:現(xiàn)代戰(zhàn)爭2》聯(lián)機獎勵榮譽牌獲得詳解
- 《使命召喚6:現(xiàn)代戰(zhàn)爭2》聯(lián)機獎勵的全部頭像獲得辦法
- 《無雙大蛇z》技能配置推薦
- 《亞瑟王》刷裝備的辦法
- 《亞瑟王》會破壞游戲興趣的修改和小竅門
- 《亞瑟王》后期英雄和較高級兵種
- 《生存之旅2》L4D2基本指令
- 《生存之旅2》淺談四位幸存者的個性
- 《生存之旅2》劇情簡介
- 《無雙大蛇Z》三藏法師的“熱吻”全攻擊
- 《使命召喚6:現(xiàn)代戰(zhàn)爭2》去除十字準星辦法
- 《無主之地》通關(guān)感想與建議
- 《生存之旅2》武器指令代碼
- 《使命召喚6:現(xiàn)代戰(zhàn)爭2》游戲劇情簡述及解惑
- 《生存之旅2》對抗心得
- 《無主之地》圖文攻略
熱門文章
推薦游戲
換一換- 天天養(yǎng)神獸app-天天養(yǎng)神獸下載v108.101手游
- 人偶模擬器最新版-人偶模擬器游戲免費下載v1.6.1正版手游
- 開心水族箱修改版無限金幣無限金幣-開心水族箱游戲破解版免費下載v10.7.15破解版無限內(nèi)購2021
- 螞蟻部落大戰(zhàn)破解版-螞蟻部落大戰(zhàn)免廣告版下載v1.0.1
- 大屠龍冰雪高爆版-大屠龍冰雪版下載v1.0.3冰雪單職業(yè)版本
- 風(fēng)暴召喚師變態(tài)版下載-風(fēng)暴召喚師bt版下載v1.0.0
- hitman sniper破解版無限金幣鉆石-hitman sniper內(nèi)購破解版下載v1.7.193827安卓破解版
- 咸魚大沖關(guān)破解版-咸魚大沖關(guān)免廣告破解版提供下載v1.2.4
- 像素大陸送免費直充版-像素大陸送6666元充值版下載v2.0送真充版
最新文章
- 人氣排行