最近dota2自製地圖比較受玩家關注,可能也有很多玩家對此非常感興趣,相比war3引擎,在dota2這個平台可以實現更多想要的東西,下麵是RPG地圖製作教程詳解,有興趣不妨試著自己製作幾個地圖試試。

RPG地圖製作教程

第一章 邁出第一步

與其感慨路難行,不如馬上出發。

但是也有話說,磨刀不誤砍柴工,就讓我們先做一下準備工作吧。

為了完成第一卷的內容,我們要做的準備工作其實是很簡單的:

1、找到你的ADDONS文件夾:他一般在steamapps/common/dota2  beta/dota這個文件夾中,之後,在裏麵找到自己的frostivus文件夾吧,本卷教程都將會以這個文件夾裏麵的東西為例。

2、 找一個趁手的,能編輯txt文檔的東西,當然,係統自帶的記事本就夠了,如果覺得不趁手不夠高大上的話,那就去下載一個notepad++,或者更洋氣點 弄一個eclipse也行。當然了,有句話說得好,真正高端的程序猿向來都是隻用記事本編程的,記事本才是最高大上的IDE,哈哈。

3、為了節省一些工作,請退回到dota2beta/dota這個文件夾,之後打開cfg文件夾,並右鍵創建一個新建文本文檔.txt,之後把它改名為frostivus.cfg,並在裏麵輸入這些內容:

dota_local_custom_enable"1"

dota_local_custom_game"holdout"

dota_local_custom_map"dota"

dota_force_gamemode"15"

update_addon_paths

dota_wait_for_players_to_load"0"

dota_wait_for_players_to_load_timeout"10"

map"frostivus"

之後,打開自己的dota2,在控製台輸入:exec  frostivus.cfg,如果你的dota2黑屏卡死了!少年啊!有點耐心好不好!多等一會…如果你看到了選人界麵。

那麼恭喜你,你已經完成了所有的準備工作。

第二章  令人欣喜的創造

正所謂,每次邁出第一步總是最難的,那,就讓我們把這第一步弄得簡單一些吧。

1、編輯你的addon信息:

Addoninfo(addon信息),可以在frostivus這個文件夾的根目錄中找到(為了方便以後描述,我將會把dota2beta/dota/addons /frostivus這個文件夾,成為Frostivus根目錄,而把dota2beta/dota這個文件夾,稱為dota根目錄。)

打開之後,我們可以發現裏麵定義了一些東西:

816:dota2的app  id

addontitle:插件的標題

Addonversion:  插件的版本

addontagline:插件簡介

addonauthor:插件的作者

addonSteamGroupName:插件的玩家組

addonauthorSteamID:插件作者的steam  id

addonContent_Campaign:插件是否提供多個地圖

addonURL0:插件的網站

addonDescription:插件介紹

這些東西有什麼用?這些東西在目前的dota2中,一!點!用!都!沒!有!

這個東西是做什麼用的呢?  請大家注意這一句話:

short descriptionthat appears in the  Add-on list  screen…這個是在插件列表裏麵顯示的一個簡介。

也就是說,這個東西,將會和同樣在frostivus文件夾中的addonimage

一起,成為今後遊戲大廳中,向玩家展示的地圖列表裏麵顯示出來的內容。

SO,我們的第一次編輯,就從這裏開始吧:

OK,如此這般,編輯完成,別忘記按CTRL+ASS保存您的工作喲。

隻是改這個是不是太簡單了?

那就讓我們多做一些吧!

大家是否還記得frostivus的時候,有一次更新,大牛啊,女王啊,什麼的,就突然來加入了保護骷髏王的任務中來了?

接下來,我們就來看看要做到這個到底有多容易!  也揭穿下V社到底有多偷懶。

請大家打開frostivus根目錄/scripts/npc/herolist.txt這個文件夾。

接下來,就讓我們給冥魂之夜加個新英雄吧!

在最後一行後麵回車,加入這麼一行內容:"npc_dota_hero_invoker"  "1",按CTRL+S保存一下~

之後,讓我們檢驗下效果,和之前一樣,在控製台輸入exec  frostivus.cfg。

你就會看到,我們已經給冥魂之夜加入了一個新英雄:卡爾。

好的!  邁出第一步到此結束。

在看完這一部分之後,我希望大家可以打開frostivus根目錄,把每個文件夾都打開看看,把每個文件都打開瞄一眼~為今後的教程打好基礎!

第三章 進一步的創意

隻是把卡爾弄出來了,是不是太簡單了點?  咕~~(╯﹏╰)b,確實是比較簡單,那就來點難的吧,接下來,我們要給這個卡爾弄幾個自定義技能。

為了迎合frostivus塔防主題,我們決定,要把卡爾的技能做出如下改變:

1、卡爾現在不太需要用球什麼的來切技能了。他現在擁有六個技能:陽炎衝擊,熔爐精靈,靈動迅捷,寒冰之牆,聲波爆轟,群體急速冷卻,六個技能。

2、在frostivus中,陽炎衝擊的範圍增加到500

3、在frostivus中,卡爾一次能召喚六個火人。

3、在frostivus中,靈動迅捷能使目標附帶吸血效果。

OK,接下來,就讓我們開始製作卡爾的這六個自定義技能吧!

我們先來看看卡爾的原版天火:

接下來,我們要製作自己的天火,(如果真的有去看frostivus文件夾的應該就能知道哪個是自定義的文件了吧?)

如果沒有的話,那麼,就請打開frostivus根目錄/scripts/npc/npc_abilities_custom.txt這個文件。

打開之後,可以看到,裏麵定義了一大堆的自定義技能:

我們把我們的技能試著加在最前麵,依葫蘆畫瓢:

我們的效果是讓天火技能的範圍變成500:

額,讓我先把代碼都打出來給大家:

當然,這裏我並不隻是改了範圍為500而已,改動還有不少。

接下來我來一個一個解釋改動內容:

BaseClass: 是一個自定義技能可以說是最重要內容,如果缺少了他,在載入地圖的時候,便會報警:attempt  to create   unkown...之後你的dota2就會閃退。這時候可能會有一些之前玩WE,或者其他同學會問,如果我想弄一個整個DOTA都沒出現過的技能怎麼 辦?對於這個問題,V社也早  有解決方案,他給出了一個名叫ability_datadriven的技能做模板給大家用當然,這是後話,關於這個神奇的BassClass,如果接觸 過一些麵向對象編程的同學,可能會知道,這就是告訴引擎,我們的invoker_sun_strike_holdout,其實就是基於invoker_sun_strike這個技能的,如果有一些東西我們沒有特別定義,那麼,他就會繼承invoker_sun_strike的所有屬性, 例如,技能快捷鍵,技能圖標什麼的。

AbilityBehavior:這個定義了技能的屬性,這個屬性包含了很多東西,他和AbilityType,AbilityunitTargetType這些東西,都在這個圖裏麵說明了:

AbilityBehavior, 可以重複定義,這裏就是定義了天火是一個對點(點地板)釋放的技能,是個AOE,同時無視施法後搖。小強從12Ban變成冷板凳,就隻不過是穿刺刪掉了AbilityBehavior裏麵DOTA_ABILITY_BEHAVIOR_UNIT_TARGET這個屬性了而已。

之後CastRange施法距離,我這裏改成了2000.AbilityCooldown改成了8,這些都很好理解。

AbilitySpecial裏麵則是定義了這個技能的一些參數,這些參數,都是那些會顯示在英雄技能提示(就是你鼠標移上去之後會出現的那個技能麵板)下方的參數。

這裏改動的內容:

area_of_effect:AOE範圍,改成了500

delay:延遲,改成0,馬上生效(這裏需要注意的是數據類型,要求浮點數你打了一個整形上去可能沒事,但是如果要是要求整形你打個了小數上去會發生什麼呢?歡迎有興趣的同學研究研究)

damage:傷害,300  400 500  600(注意,本來的天火是一個七級的技能,這裏這麼定義,就是把這個天火變成了一個最多四級的技能了)

vision_distance:視野距離。vision_duration視野持續時間。

OK,編輯好了這個技能,怎麼看呢?

那就讓我們馬上編輯下卡爾這個英雄吧:

打開frostivus根目錄/scripts/npc/npc_heros_custom:

定義一下卡爾:

一樣是依葫蘆畫瓢~依然是繼承各種invoker的屬性,1技能變成我們自定義的天火!

保存一下,進遊戲看一眼吧!

你會看到,你的卡爾,其他都沒變,1技能變成了天火~ 而且還是施法範圍那麼大的天火!

OK,其他技能的實現,給我一點時間~ 我把他們都弄出來

OK…老毛病了… 寫代碼老是看不清花括號,耽擱了點時間:

讓我們來看看這個叫做召喚六個小怪物的技能吧~(注意下這個自定義的技能圖標喲~)

借著這個自定義技能的機會,說說在DOTA2裏麵怎麼自定義一個技能的圖標:

1、用畫圖等等工具打開任何一張現有圖標文件——你可以在frostivus/resource/flash3/images/spellicons裏麵找到他們。

2、畫出你想要的圖標。

3、再次以PNG的格式保存到frostivus/resource/flash3/images/spellicons這個文件夾中。

之後,隻要像我這樣:

"invoker_forge_spirit_holdout"

{

"AbilityBehavior""DOTA_ABILITY_BEHAVIOR_NO_TARGET|DOTA_ABILITY_BEHAVIOR_IGNORE_CHANNEL"

"BaseClass""ability_datadriven"  //如上文所說,這裏使用的就是ability_datadriven作為BaseClass,這個很好用

"AbilityTextureName""test1"  //隻要這麼一定義,技能圖標就是你的名叫test1的png文件咯,是不是很簡單方便?

"AbilityCooldown""1.0"

"AbilityManaCost""0"

"OnSpellStart" //在技能開始的時候

{

"SpawnUnit"  //召喚單位

{

"UnitName""npc_dota_invoker_forged_spirit"  //單位名稱

"UnitCount""6"  //單位數量

"SpawnRadius""128"  //單位召喚範圍

}

}//這一小段便是召喚6個小火人的代碼咯~其實隻要有點英文基礎,應該就能看懂他們吧~就算沒英文基礎,看了我的翻譯,應該也能看懂到底是什麼吧?

}

第四章:  讓一切有聲有色~

不知道昨天大家有沒有真的把卡爾這個英雄的六個技能都完成了呢?

就像是這樣:

圖標的創意神馬的,我才不想黑什麼影魔呢。(論秀飾品的10000種方法!)

之後,讓大家試用一下自己的召喚火人的技能,是不是總覺得少了點什麼?你就按一下技能,然後英雄就躺地上了,之後兩個火人出來了,一點都不高端大氣上檔次,對吧?

因此,我們之後要想著,怎麼給這個技能,加一些

施法動作

特效、還有

音效呢?

熱門評論

最新評論

發表評論 查看所有評論(0)

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)