最近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 (您的评论需要经过审核才能显示)