本帖最后由 裸奔的代码 于 2014-10-4 17:38 编辑
趁着空闲写点教程,这次是物品教程 Dota2的物品系统其实跟技能系统是差不多的 也就是说dota2技能文本里面的内容可以在物品中使用 只不过物品多了金钱神马的设置
所以说,要想做物品就要知道怎么做技能 链接
物品基础属性 ItemCost | 金钱 | ItemDroppable | 是否可丢弃 | ItemSellable | 是否可出售 |
ItemPurchasable | 是否可购买 | ItemKillable | 是否能够攻击 | ItemAlertable | 是否可提醒 | ItemPermanent | 是否永久的 | ItemInitialCharges | 是否初始物品数量 | ItemRequiresCharges | 是否有数量才可用 | SideShop | 是否在旁边的商店出售 | SecretShop | 是否在神秘商店出售 | ItemCastOnPickup | 是否拾起就使用 | ItemStackable | 是否可叠加 | ItemQuality | 品质 | ItemShopTags | 店铺标签 | ItemAliases | 别名 | MaxUpgradeLevel | 物品最大等级 | ItemBaseLevel | 物品当前等级 | ItemRecipe | 是否是物品合成菜单 | ItemResult | 合成的物品 | ItemRequirements | 合成所需物品 |
ItemQuality //品质,测试结果中是影响装备名字的颜色 component | 这个翻译不出来,零件?部件? | rare | 稀有[蓝] | epic | 史诗[紫] | common | 常见[绿] | consumable | 消耗品[白] | secret_shop | 神秘商店[青蓝] | artifact | 神器[橙] |
ItemDeclarations //购买提示方式 DECLARE_PURCHASES_IN_SPEECH | 语音 | DECLARE_PURCHASES_TO_SPECTATORS | 观众 | DECLARE_PURCHASES_TO_TEAMMATES | 队友 |
ItemDisassembleRule //是否可拆分 DOTA_ITEM_DISASSEMBLE_ALWAYS | 总是可以 | DOTA_ITEM_DISASSEMBLE_NEVER | 不可拆分 |
ItemShareability //共享方式 ITEM_FULLY_SHAREABLE | 都可以共享 | ITEM_FULLY_SHAREABLE_STACKING | 库存共享 | ITEM_NOT_SHAREABLE | 不可共享 | ITEM_PARTIALLY_SHAREABLE | 部分共享 |
以上翻译是本人的翻译,如有错误可提出
前方高能,一步一步跟着走起
看完基础属性,那就开始做物品 物品是在npc_items_custom.txt里面制作 打开这个文本,会有两个自带的物品,可以删掉 我们做的第一个物品,所以就简单的取名叫item_first 这里注意拉,物品的名字一定要有 item_ 作为前缀,这点跟技能不同 至于为什么非要这样做,后面讲到图标你就知道了
好,直接上代码 - "DOTAAbilities"
- {
- "item_first"
- {
- "ID" "1000"
- "BaseClass" "item_datadriven"
- "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
- "AbilityTextureName" "item_first"
- "ItemCost" "200"
- "ItemDroppable" "1"
- "ItemSellable" "1"
- "ItemPurchasable" "1"
- "ItemKillable" "1"
- "ItemQuality" "rare"
- "ItemShareability" "ITEM_FULLY_SHAREABLE"
- }
- }
复制代码
可以看出一些设置是跟技能一样的 这里很重要的一点,就是ID,技能可以不用,但是物品一定要有ID,没ID不成物品 而物品的ID最大貌似8100来着,反正可以试试看,设置成9000 毕竟你会做7000个以上的物品? 还有一点,ID不能与其它物品的ID重复
物品的BaseClass当然就是item_datadriven
先别急,我们先准备好图标 嗯.....论坛不好发PNG,图标有一小部分是透明的,在论坛里就不明显了 所以就截图给大家,后面的附件里有这些图标
黑色区域中放置物品图标,右边有一小片的透明区域 嗯……没方法,这是V社要求的格式
我就懒得做图标了,大家要是介意我的图标,可以自己到 自带的地图holdout_example里面的resource\flash3\images\items 这里里面就是专门放置物品图标的,然而创建的地图是没有这些文件夹的 需要自己创建,所以自己做好吧
看到逗B图标的名字没有,这个逗B图标不叫doub,而是叫first 再看看我们物品的名称,item_first,没错,这是对应好的 系统会自动到items里面搜索first这个图标,所以为什么item_前缀很重要
好了,接下来我们来给英雄加上推荐物品, 添加推荐物品不是必须的,我是写教程嘛,当然要教咯
首先在地图的项目文件夹下建立itembuilds 我的地图是叫zhuzai,所以就是game\dota_addons\zhuzai\itembuilds 在itembuilds文件夹下建立一个txt文本 取名default_juggernaut 如果是斧王,就是default_axe,可以参考自带的holdout_example里面的itembuilds
文本里的内容如下 - "itembuilds"
- {
- "author" "Valve"
- "hero" "npc_dota_hero_juggernaut"
- "Title" "Recommended items for Juggernaut"
-
- "Items"
- {
- "#DOTA_Item_Build_Starting_Items" //出门装备
- {
- "item" "item_first"
- }
-
- "#DOTA_Item_Build_Early_Game" //前期装备
- {
- }
-
- "#DOTA_Item_Build_Core_Items" //核心装备
- {
- }
-
- "#DOTA_Item_Build_Luxury" //可选装备
- {
- }
- }
- }
复制代码
这些是V社要求的格式,也没什么好说的
接下来给商店添加物品 竟然是RPG那一般不会用到自带的物品了 我们需要去掉自带的物品 自带物品的删除是在npc_abilities_override.txt里面删除的哦 但是自带的物品有特么多,所以呢,我在教程后面会放出文件 自行下载,再复制过去就可以了
接下来进入script文件夹 建立一个文件夹叫shops 意思很明显,在shops里面建立一个txt文本
接下来很重要,关系到你的物品会不会在物品里显示 在之前的教程中我推荐使用template_map.vmap进行测试用 所以建立的文本的名字就是template_map_shops.txt
但是,如果我有一个zhuzai.vmap的地图,那么将不会显示template_map_shops.txt 里面的设置的物品,需要在shops里面再建立一个zhuzai_shops.txt 把template_map_shops.txt里面设置好的物品再复制过去即可在zhuzai.vmap地图里面的商店显示
所以,shops里面的文本名字必须与地图的名字对应,还需要后缀 _shops
我们依然使用template_map.vmap地图 所以建立template_map_shops.txt
文本内容如下 - "dota_shops"
- {
- "consumables" //消耗品
- {
- "item" "item_first"
- }
- "attributes" //属性物品
- {
- "item" "item_first"
- }
- "weapons_armor"
- {
- }
-
- "misc"
- {
- }
-
- // Level 1 - Green Recipes
- "basics"
- {
- }
- // Level 2 - Blue Recipes
- "support"
- {
- }
-
- "magics"
- {
- }
-
- // Level 3 - Purple Recipes
- "defense"
- {
- }
-
- "weapons"
- {
- }
-
- // Level 4 - Orange / Orb / Artifacts
- "artifacts"
- {
- }
- "sideshop1" //路边商店1
- {
- }
- "sideshop2" //路边商店2
- {
- }
-
- "secretshop" //神秘商店
- {
- "item" "item_first"
- }
- }
复制代码
这里面的内容对应商店里面的各个区域
如图
添加完毕进入编辑器,打开template_map.vmap地图
操作如下图,给地图加入商店
OK,可以建立测试一下
还没完,还有最后一部分,物品合成 Dota2物品合成就不像魔兽编辑器那样还要自己写触发器 Dota2很简单
竟然是物品合成,那么我们需要再建立一个几个物品 合成公式:逗B+傻B=2B 不要介意
下面是两个新物品的代码 - "item_sha_b"
- {
- "ID" "1001"
- "BaseClass" "item_datadriven"
- "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
- "AbilityTextureName" "item_sha_b"
- "ItemCost" "200"
- "ItemDroppable" "1"
- "ItemSellable" "1"
- "ItemPurchasable" "1"
- "ItemKillable" "1"
- "ItemQuality" "rare"
- "ItemShareability" "ITEM_FULLY_SHAREABLE"
- }
- "item_2_b"
- {
- "ID" "1002"
- "BaseClass" "item_datadriven"
- "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
- "AbilityTextureName" "item_2_b"
- "ItemCost" "99999"
- "ItemDroppable" "1"
- "ItemSellable" "1"
- "ItemPurchasable" "1"
- "ItemKillable" "1"
- "ItemQuality" "rare"
- "ItemShareability" "ITEM_FULLY_SHAREABLE"
- }
复制代码
很明显的一个地方,我们需要合成的2B物品的价格竟然是99999 你没看错,就是99999,对于合成的物品,你设置成998也没关系 因为系统会自动的修改成合成物品的价格 合成物品的价格=合成所需物品价格之和+合成符的价格
Dota2的物品合成系统是通过合成符来实现的
看下面代码 - "item_recipe_2_b"
- {
- "ID" "1003"
- "BaseClass" "item_recipe_arcane_boots"
- "ItemCost" "50"
- "ItemShopTags" ""
- ItemRecipe "1"
- ItemResult "item_2_b"
- ItemRequirements
- {
- "01" "item_sha_b;item_first"
- }
- }
复制代码
合成符也是要有自己的ID,不能重复 注意BaseClass是item_recipe_arcane_boots,只要是合成符就用这个类
合成符的名称也有要求,只要是合成符一律item_recipe_(加上要合成物品的名称) 注意加上去要合成物品的名称没有item_前缀
合成符的价格如果为0,那么只要有这两个装备就自动合成 ItemResult 填写要合成的物品 ItemRequirements 填写物品的合成公式 如果我们这个2B物品可以有其它物品合成,例如呆B可以直接升级到2B 那么只需要在01下面加入02,然后填写呆B的物品名称
OK,就这样了,物品完成 物品里面的效果的编写跟技能是一样的,所以这里就不再写了 还不懂可以参考holdout_example里面的物品设置 还是不懂,发帖吧
附件:
|