魔兽首页最新地图防守地图对抗地图角色剧情TD塔类图标准战役ORPG地图其它地图
魔兽论坛攻略秘籍补丁工具RPG 录像制图教学制图资源魔兽战队新图试玩通魔作坊

您的位置:魔兽争霸U9网 >> 制图教学

通魔之路(WE主讨论区):【推荐】目前最简单的物品合成和最BT的物品升级

作者:Red_Wolf    文章来源:U9论坛    点击数:    更新时间:2006-8-30 18:35:46
两种非常规方法实现的,极度推荐的DD,特别是第2种方法,合成也可以用第2种的方法实现,不过这里就不做了

合成系统

利用物品名字做的,目前最简单最有效率的做法了,光看里面的循环次数就知道了
而得到无关的物品也不会触发动作
替别人做的演示,这么好的DD扔那可惜了,就提出来了

在名字中加颜色代码|cxxxxxxxx|r十位字符,x取值0~9,a~f,A~F,是不会对显示有影响的,而名字有96个字符的空间,可以利用来做很多时。

具体方法:
在物品名字前加自定义值,取4位
物品自定义值格式:|cXYYZ0000|r

X表示合成组件的数量,取值2-6
X+YY表示合成物品的编号
Z表示组件编号,比如一个3in1的物品,其组件分别为123

并设一个数组保存成品,X+YY为其编号

更新的演示是支持同一物品在多个合成公式的,不过当然步骤要比原来的麻烦

对于在对多个配方中用到的物品,自定义值以7xx0格式保存,并建立一个字符串数组以7xx编号来保存其实际自定义值
字符串格式为XYYZxyyzXYYZxyyz,与上面的自定义意义是一样的
判断到物品自定义段首位为7就从数组里读取信息
暂不支持A+A+B=C类同一物品出现多次的合成 ,毕竟功能越强,消耗资源也越多
等要用到再整理了


升级系统

自定义物品时让同类物品按序排列(按Ctrl+D可以看到)

设置等级1物品等级为99以便区分,得到物品时判断其等级,等级为99则触发动作
判断1~6格物品ID,利用其差即可判定是否同类物品,其允许差即为可升级段数
满足条件则在其ID基础上+1,即实现了升级,够效率吧~~

该演示是用得到Lv1物品来升级的,可升级3次 (b >= a and b - a <3,即对Lv1~3都可升级)
如果要改成用其它物品来升级,只需将Lv1改为该物品,b >= a改为b>a(不允许Lv1物品的升级)即可


注意:
物品ID是按ASCII码转为256进制的,而自定义物品中只使用0~9,A~Z 36个字符,相对应ASCII码为48~57,65~90
所以物品9-A,Z-0会有一个跨度,比如'I009'=1227894841 'I00A'=1227894849,中间的跨度为8而不是1
这样,如果同一类物品中有此类情况就会出现问题
对此有2种解决方法:

1 将BT效率进行到底,遇到此类情况就跳过,如本来I008~I00B的,那就先创建两个无用DD填掉08和09,然后使用0A~0D的位置,再把08 09的物品删掉

2 使用以下自定义函数将256进制转为36进制,然后比较转化过的数值

具体方法:  将function IdTo36那段Copy到自定义代码区
J版则将 local integer a=GetItemTypeId(GetManipulatedItem()) => local integer a=IdTo36(GetItemTypeId(GetManipulatedItem()))
        set b = GetItemTypeId(UnitItemInSlot(GetTriggerUnit(), i)) => set b = IdTo36(GetItemTypeId(UnitItemInSlot(GetTriggerUnit(), i)))

T版同样是将2句Custom script加上 IdTo36()


function IdTo36 takes integer i returns integer
    local integer m = i
    local integer n
    local integer j = 1
    local integer k
    loop
        set n = m/256
        set m = m - 256*n
        if m<57 then
            set m=m-48
        else
            set m=m-55
        endif
        set k = k+m*j
        exitwhen j>=46656
        set j = 36*j
        set m = n
    endloop
    return k
endfunction

[ 本帖最后由 Red_Wolf 于 2006-8-22 23:26 编辑 ]

附件: 简单的物品合成演示.w3x (2006-6-7 22:29, 18.56 K)
该附件被下载次数 364


附件: 简单的物品合成演示改.w3x (2006-6-10 19:31, 21.19 K)
该附件被下载次数 276


附件: 最BT的物品升级演示.w3x (2006-8-22 23:26, 20.37 K)
该附件被下载次数 23

责任编辑:瞳瞳
进入论坛参与针对本文章的讨论
文中部分附件请进入论坛下载
本文章地址:
  • 上一篇:[演示]DOTA虚空假面大绝-时间结界(Time Stop)
  • 下一篇:
  • 相关文章

    进入论坛参与针对本文章的讨论用户评论

    地图 攻略
    热门搜索: 仙之侠道 真三国无双 Dota Allstar

    地图专区导航

    热门地图攻略

    热门地图周排行

    最新推荐地图

    地图下载总排行

    关于我们  -  联系我们  -  广告优势  -  广告服务
    建议意见:玩家点击留言  商务合作:客户点击留言
    西安优久数码科技有限公司 版权所有 陕ICP证08000654号