明輝手游網(wǎng)唯一官網(wǎng):79things.com

本站App下載  |  

首頁 > 游戲資訊 > 單機游戲

《閃點行動2:龍之崛起》任務編輯器教程

作者:佚名   來源:本站   時間:2024-04-16  點擊:

電腦大家應該不怎么陌生吧!現(xiàn)在電腦已經(jīng)普及到大多數(shù)人的家庭之中了,電腦的用途非常地廣,不同年齡段、不同行業(yè)的人對電腦的用處不同。但是對于很多的年輕人來說電腦最大的用途就是玩游戲了。電腦游戲大家肯定玩過吧!它可以使人上癮。

原文:點擊

感想:本人玩過的三角洲系列,毀滅戰(zhàn)士系列,地震系列,反恐系列,霹靂系列,彩虹系列,榮譽勛章系列,cod系列。

說實話我已厭倦了巷戰(zhàn),厭倦了按規(guī)定線路沖鋒的的第一人稱射擊游戲。

給我感覺最好的好是閃點行動和三角洲,開闊的地圖,真實的戰(zhàn)爭,1公里開外匍匐在草叢中,抬個狙,聽著風吹過草地的聲音,等待著目標的出現(xiàn)!。

任務編輯器感想:該編輯還是比較傻瓜容易懂的。連我這種對腳本語言一巧不通的人也摸出了點門道。

教程一:初識界面,放置單位,單位屬性。

 

可以看到圖片所示。界面很簡單。

要做個最最簡單的地圖就是把解放軍,和美軍拖到地圖上,然后選中一個單位在屬性界面里把AI換成player就可以了。
下面圖片的屬性的簡單介紹 如圖


沒什么難點隨便選擇了玩玩就可以了。


教程二: 路徑點

因為路徑設置已經(jīng)有人寫過比較好的帖子,我復制如下(感謝原作者vid190):
很多人都要問道怎么讓AI自動走路,下面簡單介紹下,會了這個你也就差不多能做個極為簡單的防御地圖了


舉例做一個讓AI一開始就自己移動一段距離的任務

1.首先加入AI,在Create面板里的USMC跟PLA下的,F(xiàn)ireteams 火線小組 Soldiers 單兵 Squads 一個班 ,這些就不多介紹了,自己選擇個小隊加入。然后在設置自己,這里要注意了,如果讓AI自己移動那么這個移動的隊伍里不能有你自己。不然系統(tǒng)會自己默認讓你自己發(fā)號施令指揮隊友。自己在Soldiers選擇個自己喜歡的加上,讓后在地圖上在自己加入的這個人物圖標上單擊右鍵選擇Set Control Mode Of This Character - Player 就設置為自己了,但是如果設置的為敵方那就不用考慮自己了。

2.然后是設置路徑點。在Create面板里的Systems下的,Mission里選擇 Waypoint 路徑點。然后在地圖上畫出路徑點,這里要注意,每到一個路徑點隊長都會報告下一個路徑點,所以不要點太多,不然每走幾步隊長就得烏拉烏拉的。然后選擇AI,不包括你自己,這里可以全選也可以點擊小隊的盾牌,也可以單選。怎么都可以。選擇后在他們的圖標上點右鍵選擇Pick Waypoint 這時圖標會變灰但是路徑點還是亮著的,選擇你剛才設置的第一個起始路徑點就可以了。

技巧一.關于怎么樣設置迂回,同理只要在終點路徑點上右鍵單擊并選擇Pick Next Waypoint 然后點擊起始路徑點即可。這時會看見路徑線的兩個箭頭會重合相對,意思就是AI會在這兩點上來回游走。當然你也可以畫個圈,反正怎么畫隨你。

技巧二.如果你想讓AI跑步以最快的速度行進,那只要點擊路徑點然后選擇右邊Modify-Waypoint下的Rapid Move,把它點亮就可以了。然后你會看見路徑線變成多箭頭,既是成功。

技巧三.當然這時你可能看到Rapid Move下的Stance選項,它是設置到這個路徑點用什么樣的姿態(tài),依次為正常直立行進,蹲著行進,還有匍匐前進。

技巧四.然后你會看到Stance下面的Doctrine選項,雖然這個單詞很難理解,但也是跟姿態(tài)有關。依次說下你們就明白了。第一個命令后的姿態(tài),就是說隊長命令AI什么樣AI就保持什么樣的姿態(tài),然后第二個是巡邏姿態(tài),就是心不在焉的那種。第三個事正常姿態(tài)。第四個也是個巡邏姿態(tài),但是是非常警覺的那種,也可以理解成搜尋姿態(tài)。第五個就是戰(zhàn)斗姿態(tài)了。然后這里下面的Formation我們簡單介紹下,就是行進隊形。明白了吧,什么代表什么隊形游戲中熟悉這里就不做多介紹了。

技巧五.然后是Delay選項,顧名思義就是延遲,就是到達次路徑點后等待多長時間再移動到下個路徑點。單位是毫秒,注意不是秒。1000毫秒=1秒。要是設置60分鐘就得是 3600000

感謝原作者vid190


教程三:部隊編組

因為部隊編組已經(jīng)有人寫過比較好的帖子,我復制如下(感謝原作者vid190):
1.我們先在Soldiers重選擇5個單兵,放到地圖上去,因為一個小隊最多5個人,你選6個也編不到一塊去。
然后我們在看Create-Systems-AI-下的Echelon圖標。這個事我們以后編輯任務的常用圖標,就是小隊圖標。
我們在地圖上加一個。

2.然后我們就可以把這5個人編輯成一小組,我們可以在Echelon圖標上點擊右鍵選擇Pick Parent Echelon單個選擇單兵,
也可以在單兵圖標上點擊右鍵選擇Pick Parent Echelon指向Echelon圖標。在就可以用鼠標全選,或者按住Ctrl挑選。

3.這時我們看到五個單兵都用線指向Echelon圖標,并且Echelon圖標被點亮了。然后我們看到這五個單兵中有一個帶有白色黑點小盾牌圖標的,這個就是隊長了。怎么樣設置隊長呢,我們來說下。首先選擇你那個要設置隊長的單兵,然后在右下角Modify面板中找到Hierarchy面板中的Leadership選項,我們看到數(shù)值有100,200,300這樣的,說到這有的人明白了吧,數(shù)越大級別越高。小隊中級別最高的就是隊長。
而后面的Reset就是還原成默認,還有就是什么樣的級別對應什么樣軍銜,在下一課中Rank屬性中有介紹,不然一個小兵命令一個將軍就糗大了,(400為小隊長,800為大隊長。)

4.小隊任務說完了,然后我們再說編輯班級隊伍,就是把編輯好的幾個小隊組成一個大隊。
把剛才編輯好的Ctrl+c Ctrl+v再復制出4個來。然后再加入一個Echelon圖標,聰明人到這個都應該明白再怎么設置了吧,
在每個小隊的Echelon圖標上點擊右鍵選擇Pick Parent Echelon指向新加入的Echelon圖標。這時你會看到。新加入的圖標變成兩個黑點。
這就是一個大隊的標志。5個小隊都選擇完畢后你會看到這25人其中有一個人有兩點白色盾牌標記,那個就是大隊長了。關于怎么設置大隊長,同上面的第3節(jié),這里就不啰嗦了。

要點:加入軍官時要小心,只要一個就夠了,不要重復加入,系統(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ā)。
效果:
就是我們在玩任務的時候一開始,屏幕上下的黑幕。

再看個例子:
function onDeath_huang(victim, killer)
OFP:missionFailed();
end
看到function就是“當”,
第一行意為“當huang這個單位死了”
第二行:觸發(fā):任務失敗;       --要滿足function onDeath_huang(victim, killer)否則無法觸發(fā)。
效果:只要huang這個名稱的兵死了任務將失敗。

總結(jié)下:寫level.lua不外乎就是當什么什么的時候,觸發(fā)什么什么。很簡單吧。

教程五:如何顯示小黃棋

這個圖標在游戲中起到指南的作用,讓玩家一步步順者提示走。(該圖標只有指南作用,沒有完成任務的作用,也就是說這個圖標配合任務圖標才能完美任務)
用法很簡單就是點擊system里的把

拖動到地圖上就可以了,如果拖動多個

就要將他們之間互相連接起來,類似路徑點。屬性里設置下名稱大小等就可以了。
但是很多朋友可能遇到這樣個問題,明明把

放在了地圖上。但是測試游戲里面就是不見。。。。。!
其實關鍵是我們沒有觸發(fā)。
好,一一來實現(xiàn)。
首先拖動

圖標到地圖上,然后再拖動

到地圖上,并且在

的屬性name命名為point1,讓后點擊level.lua標簽
輸入:
function onMissionStart()
OFP:activateRVChain("point1");
End
這樣看來就很簡單了把:
當游戲開始的時
觸發(fā):point1這個旗。
效果:
進入游戲后我們就能看到這個小黃棋在坐標上啦。
備注:如果有多個00并且之間相連,那么在level.lua里只要觸發(fā)第一個棋子的名字就可以了,其他后面的棋子都可見到了。
休息下,抽根煙,喝點茶。
待編。。。。。。。。。。。。


教程六:如何制作任務

要制作好的任務必須配合上一章的內(nèi)容。根據(jù)小黃棋的提示來完成任務。(當然你不用小黃旗也是可以的)
我們先來做個最簡單的任務。
首先在右上角的界面里擊system標簽然后把

拖到地圖上,然后點擊

把屬性里把name寫成objective,后在把type里面選擇成primary objictive 1.意思是這個是主要任務一,再把army設置成PLA,意思是PLA的任務。如圖所示:


這樣任務就能顯示了。
不過現(xiàn)在還沒有任務的實際內(nèi)容,所以我們還要寫level.lua
再拖一個

到地圖上,再隨便拖一輛坦克在地圖上并且在name里設置為tank1.然后后打開.lua
輸入以下代碼:
function onDeath_tank1(victim, killer)
OFP:setObjectiveState("objective"," COMPLETE ");
End
這個代碼很容易懂。
意思是:
當tank1被摧毀
觸發(fā):任務objective完成。

效果:把坦克打爆,則任務完成
哈哈 是不是超級簡單
當然這里你要把

和坦克放在一起,或者在

的屬性欄里面的linked to里面選擇tank1。這樣才能準確的定位坦克的位置,不然任務和內(nèi)容就不匹配了。

這樣一個簡單的任務就制作完成了。
還可以對該代碼改進一下,如:
function onDeath_tank1(victim, killer)
OFP:setObjectiveState("objective"," COMPLETE ");
OFP:missionCompleted();
end
意思是該任務完成并且所有任務完成退出游戲。
下面介紹下復雜一點的任務編輯。

我們怎樣來制作2個或3任務呢?
那就很簡單了直接放兩個

分別命名為objective1和objective2,設置好陣營,分別設置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爆炸則任務1完成
當bin1死亡則任務2完成
2個任務制作很簡單吧。。」

不過細心的同學發(fā)現(xiàn)了,以上代碼是無論你先完成哪個任務都可以,但如果想完成了任務1才能完成任務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;則是設定了個變量。∏野0(為假)賦值給ob

再看下一段
function onDeath_tank1(victim, killer)
OFP:setObjectiveState("objective1"," COMPLETE ");
ob=1;           ---這里多了個ob=1,意思是當objective1這個任務完成后讓1(真)賦值給ob
end

接著看最后段
function onDeath_bin1(victim, killer)
if ob==1 then     ---這里是如果 ob等于1則觸發(fā)objective2任務完成,達到了完成任務1后才能完成任務2的效果。注意下語法結(jié)構(gòu)。
OFP:setObjectiveState("objective2"," COMPLETE ");
OFP:missionCompleted();
end  - -這里注意凡有if必須有end結(jié)束
end  - -這里的end對function

超級簡單吧!! 哈哈
其實不外乎多1個變量讓他完成任務1時ob變成1,任務判斷ob是否等于1才觸發(fā)第二個任務!
那么三個任務就不多講了!
此章介紹到這里。
任務完成可以是多樣性的,可以是某單位被殺,或者進入某區(qū)域,或者某段時間內(nèi)。
學到這里應該可以制作“1公里開外匍匐在草叢中,抬個狙,聽著風吹過草地的聲音,等待著目標的出現(xiàn)!。【褮ⅲ。。。。。。 
大家靈活應用可以做出絢麗的任務來!


教程七:如何刷兵,如何刪除出來的刷兵

此游戲只能同時擁有64個單位,確實少了點。以上內(nèi)容是能編輯小規(guī)模戰(zhàn)爭mod。
但是學了此章后,你能把場面放大無數(shù)倍,可以制作出面對成百上千敵人的超級大場面。
可以制作絢麗的海灘登陸。
可以率領25輛99式坦克面對200輛M1坦克的超級坦克大對轟。
還可制作數(shù)十輛武裝直升機飛過頭頂?shù)恼鸷承Ч。。?br> 可以制作出絢麗的橋頭保衛(wèi)戰(zhàn),村莊保衛(wèi)戰(zhàn)等等

在學習此章之前,我們先來了解下地區(qū):

,位置在右上角的system里面可以找到。
如圖:


這個東西主要是用于:某單位進入該地區(qū)時發(fā)生什么事。
多用于刷兵,刪除刷兵,觸發(fā)任務完成等。
代碼為:function onEnter(zoneName, unitName)
來個例子:
首先拖動

在地圖上,把

的name命名為zone然后再拖一個兵并把該兵的name命名為han并設置為player.
放好后,點擊標題欄的level.lua
輸入以下代碼:
function onEnter_zone_han(zoneName, unitName)
OFP:missionFailed();
end
意思是:當han這個單位進入zone這個地區(qū)時
觸發(fā)總?cè)蝿胀瓿?br> 效果:
當玩家操作han這個單位進去zone這個區(qū)域則彈出任務完成菜單,游戲勝利。
很簡單吧。
好了現(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設置成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里面的單位必須要有小隊隊長。不然會出錯。
好了我們再來學習刪除刷兵。
代碼為: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ù)。。。。。。。。。。。。。。。。。。。。
但是細心的同學又發(fā)現(xiàn)了
上面這個例子,當han單位進入zone這個地區(qū)刷兵,然后進去shanbingzone這個地區(qū)刪除刷出來的兵,但是當han再進入zone這個區(qū)域時又刷兵了,這明顯不是我們設計的本意。
那么我們該如何只讓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

很好理解把
在游戲開始的時候設置個變量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:
假設我們有實體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必須要學會。
本章說到這里結(jié)束了,希望大家多多練習,作出超級大戰(zhàn)場來給我玩^_^
這章稍微有點難度,有什么困難可以聯(lián)系我,大家一起討論。


教程八:路徑點高級應用
在教程二中已經(jīng)認識了路徑點,那么這里我們對路徑點的功能拓展一下
此章我們用三個部分來給大家講解:

一:如何讓刷出來的兵安路徑點移動
二:如何讓AI防守路徑點
三:當達到路徑點觸發(fā)事件

一:我們在學習完教程七的后已經(jīng)學會刷兵,但是如果喜歡鉆研的同學發(fā)現(xiàn),刷出來的兵不會按路徑點走,無論你怎么設置路徑,他們只是呆呆的站在原地,或者是發(fā)現(xiàn)敵人就一擁而上。
現(xiàn)在我們解決這個問題:
例1:
首先我們設置好事體E1(見教程七),拖動一組兵命名為bing1選擇實體E1,拖2個地區(qū)分別命名為:shuabingzone和yidongzone.在拖3個路徑分別命名為:way1,way2,way。并把3個路徑相連。拖一個level.lua再來一組兵命名為han選擇為player.
現(xiàn)在我們的任務是進入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的基礎上再加一個路徑點命名為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只能對應一類OFP,
例如:
function onEnter_shuabingzone_han(zoneName, unitName)
OFP:activateEntitySet("E1"); - -刷兵
OFP:activateEntitySet("E2"); - -刷兵
OFP:activateEntitySet("E3"); - -刷兵
end
這個是正確的,因為一個為地區(qū)只對應了觸發(fā)刷兵,雖然有多個但是是屬于同一類。
而:
function onEnter_shuabingzone_han(zoneName, unitName)
OFP:activateEntitySet("E1"); - -刷兵
OFP:move("bin1","way1","OVERRIDE");
end
這樣是錯誤的:一個地區(qū)不能對應兩種類型觸發(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ā),
好第八章就講到這里。


教程九:實例應用

一:什么是虛擬單位
二:存盤點的制作
三:實例下載
一:什么是虛擬單位
我們知道一輛坦克需要配上一個駕駛員,一個指揮,和一個炮手,連上坦克本身就需要4個單位。
我們知道地圖只能有64個單位,那么是不是只能有16輛坦克同時在地圖上,答案是否定的。
我們可以把一輛坦克配置上虛擬駕駛員虛擬指揮和虛擬炮手,那么1輛完整的坦克只占用1個單位
方法:
拖一輛坦克到地圖上,并在屬性欄里面選擇has virtual crew就可以了
二存盤點制作
這個很簡單
在地圖上拖一個Mission progress checkpoint就是圓圈里有個勾勾那個圖標,
命名為save1。(在右上角的system里面找到),再拖一個地區(qū)命名為zone1,
再拖一個兵到地圖上明命名為han,設置成player,再來一個level.lua
(save1和zone1最好在一起。)
輸入代碼:
function onEnter_zone1_han(zoneName, unitName)
OFP:enableCheckpoint("save1")
end
這樣就可以了。
意思是當han進入zone1這個區(qū)域時觸發(fā)存盤點save1,并且恢復體能,AI彈藥得到補充。
三:實例下載
這里有個本人制作的例子供大家參考:
t6解壓到游目錄data_winmissionsMission Editor下,進入游戲玩。
介紹:
任務目標1:攻占山頭,擊斃美軍軍官。
任務目標2:埋伏在小道兩側(cè),突襲M1主戰(zhàn)坦克。
任務目標3:占領村莊。
敵人單位:步兵若干(100+),30+輛M1主戰(zhàn)坦克,兩輛運兵車。
解放軍單位:20+輛99式主戰(zhàn)坦克,玩家?guī)ьI17人小隊,援兵若干。
戰(zhàn)線長度:4公里。
功略:
順著指南小旗走就可以了。不要硬拼,多用戰(zhàn)術。
全文完(^.^)
祝大家戰(zhàn)斗愉快!

更多相關內(nèi)容請訪問:閃點行動2專區(qū)



玩游戲可以在很大程度上讓大家放松放松,但是我建議大家不要把過多的時間投入到工作當中,因為這樣的話大家很有可能上癮,這樣不利于大家的工作或者是學習。

推薦游戲

換一換