找回密码
 点一下
查看: 2000|回复: 7

附魔的装备如何通过触发查看属性

[复制链接]
发表于 2011-12-20 16:49:57 | 显示全部楼层 |阅读模式
移植了一个附魔系统,但本身就没完全搞清楚,所以也无法做到通过触发显示装备属性。
我的设想是给物品一个技能,点击即可显示物品的附魔属性
这些都不重要,重要的是如何将附魔属性显现出来。
我在下面把整个触发贴出来:
[trigger]
A
    事件
        地图初始化
    条件
    动作
        设置 Ghost_Shop = 幽灵商店
        设置 FMZL = 6
        设置 FMJN[1] = 附魔 (蓝宝石)
        设置 FMJN[2] = 附魔 (红宝石)
        设置 FMJN[3] = 附魔 (绿宝石)
        设置 FMJN[4] = 附魔 (黄宝石)
        设置 FMJN[5] = 附魔 (黑宝石)
        设置 FMJN[6] = 附魔 (神秘石)
        设置 FMBS[1] = 蓝宝石A
        设置 FMBS[2] = 红宝石A
        设置 FMBS[3] = 绿宝石A
        设置 FMBS[4] = 黄宝石A
        设置 FMBS[5] = 黑宝石A
        设置 FMBS[6] = 神秘石A
        设置 BSML[1] = 能增加魔法值的物品 (50)
        设置 BSML[2] = 能增加生命值的物品 (50)
        设置 BSML[3] = 能提高英雄属性的物品(+5敏捷)
        设置 BSML[4] = 能提高英雄属性的物品(+5力量)
        设置 BSML[5] = 能提高英雄属性的物品(+5智力)
        设置 BSML[6] = 增加攻击力的物品+10
        设置 FMBS_A[1] = 蓝宝石
        设置 FMBS_A[2] = 红宝石
        设置 FMBS_A[3] = 绿宝石
        设置 FMBS_A[4] = 黄宝石
        设置 FMBS_A[5] = 黑宝石
        设置 FMBS_A[6] = 神秘石

[/trigger]

-----------------------------

[trigger]
B
    事件
        单位 - 任意单位 发动技能效果
    条件
        ((技能施放目标) 的类型) 等于 紫电青霜
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((技能施放目标) 是被持有的) 等于 TRUE
            Then - 动作
                游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示 2.00 秒的文本信息: |cffff8c00镶嵌成...
                循环动作[ForLoopAIndex]从 1 到 FMZL, 运行 (Loop - 动作)
                    Loop - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                (施放技能) 等于 FMJN[ForLoopAIndex]
                            Then - 动作
                                设置 Temp_Integer = 0
                                循环动作[ForLoopBIndex]从 1 到 MWZS, 运行 (Loop - 动作)
                                    Loop - 动作
                                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                            If - 条件
                                                YFMW[ForLoopBIndex] 等于 (技能施放目标)
                                            Then - 动作
                                                设置 Temp_Integer = ForLoopBIndex
                                            Else - 动作
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        Temp_Integer 等于 0
                                    Then - 动作
                                        设置 Temp_Integer = (MWZS + 1)
                                        循环动作[ForLoopBIndex]从 1 到 MWZS, 运行 (Loop - 动作)
                                            Loop - 动作
                                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                                    If - 条件
                                                        (YFMW[ForLoopBIndex] 的当前生命值) 小于或等于 0.00
                                                    Then - 动作
                                                        设置 Temp_Integer = ForLoopBIndex
                                                        设置 MWZS = (MWZS - 1)
                                                    Else - 动作
                                        设置 MWZS = (MWZS + 1)
                                        设置 YFMW[Temp_Integer] = (技能施放目标)
                                        循环动作[ForLoopBIndex]从 1 到 FMZL, 运行 (Loop - 动作)
                                            Loop - 动作
                                                设置 FMDJ[((Temp_Integer x FMZL) + ForLoopBIndex)] = 0
                                    Else - 动作
                                英雄 - 丢弃 (技能施放目标) ,从 (触发单位) 身上
                                设置 FMDJ[((Temp_Integer x FMZL) + ForLoopAIndex)] = (FMDJ[((Temp_Integer x FMZL) + ForLoopAIndex)] + 1)
                                英雄 - 把 (技能施放目标) 给 (触发单位)
                            Else - 动作
            Else - 动作
                循环动作[循环整数A]从 1 到 6, 运行 (Loop - 动作)
                    Loop - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                (施放技能) 等于 FMJN[循环整数A [R]]
                            Then - 动作
                                英雄 - 创建 FMBS_A[循环整数A [R]] 给 (触发单位)
                                游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示 2.00 秒的文本信息: |cffff8c00只能镶...
                            Else - 动作

[/trigger]

-----------------------------------------


[trigger]
C
    事件
        单位 - 任意单位 获得物品
    条件
        ((被操作物品) 的类型) 等于 紫电青霜
    动作
        触发器 - 关闭 (当前触发)
        触发器 - 关闭 E <预设>
        循环动作[ForLoopDIndex]从 1 到 MWZS, 运行 (Loop - 动作)
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        (被操作物品) 等于 YFMW[ForLoopDIndex]
                    Then - 动作
                        循环动作[ForLoopEIndex]从 1 到 FMZL, 运行 (Loop - 动作)
                            Loop - 动作
                                英雄 - 丢弃 (被操作物品) ,从 (触发单位) 身上
                                触发器 - 开启 D <预设>
                                设置 Temp_Unit = (新建 ((触发单位) 的所有者) 的 Ghost_Shop 在(((触发单位) 所在X轴坐标),((触发单位) 所在Y轴坐标)),面向角度:0 度)
                                单位 - 对 Temp_Unit 发布 中立商店 - 选择单位 <New> 命令到目标: (触发单位)
                                循环动作[ForLoopFIndex]从 1 到 FMDJ[((ForLoopDIndex x FMZL) + ForLoopEIndex)], 运行 (Loop - 动作)
                                    Loop - 动作
                                        单位 - 使 ((触发单位) 的所有者) 从 Temp_Unit 处购买 FMBS[ForLoopEIndex]
                                单位 - 删除 Temp_Unit
                                英雄 - 把 (被操作物品) 给 (触发单位)
                                触发器 - 关闭 D <预设>
                    Else - 动作
        触发器 - 开启 (当前触发)
        触发器 - 开启 E <预设>

[/trigger]

-----------------------------

[trigger]
D
    事件
        单位 - 任意单位 出售物品
    条件
    动作
        物品 - 删除 (被售出物品)

[/trigger]

-----------------------------


[trigger]
E
    事件
        单位 - 任意单位 丢弃物品
    条件
        ((被操作物品) 的类型) 等于 紫电青霜
    动作
        循环动作[ForLoopDIndex]从 1 到 MWZS, 运行 (Loop - 动作)
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        (被操作物品) 等于 YFMW[ForLoopDIndex]
                    Then - 动作
                        循环动作[ForLoopEIndex]从 1 到 FMZL, 运行 (Loop - 动作)
                            Loop - 动作
                                循环动作[ForLoopFIndex]从 1 到 FMDJ[((ForLoopDIndex x FMZL) + ForLoopEIndex)], 运行 (Loop - 动作)
                                    Loop - 动作
                                        单位 - 删除 BSML[ForLoopEIndex] 从 (触发单位)
                    Else - 动作

[/trigger]

------------------------------------


[trigger]F
    事件
        单位 - 任意单位 发动技能效果
    条件
        ((技能施放目标) 的类型) 不等于 紫电青霜
    动作
        循环动作[循环整数A]从 1 到 6, 运行 (Loop - 动作)
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        (施放技能) 等于 FMJN[循环整数A [R]]
                    Then - 动作
                        英雄 - 创建 FMBS_A[循环整数A [R]] 给 (触发单位)
                        游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示 2.00 秒的文本信息: |cffff8c00这个物...
                    Else - 动作

[/trigger]
发表于 2011-12-20 18:51:07 | 显示全部楼层
把那个附魔系统的地图文件也一起贴出来吧。

这个系统使用的原理为“商店法”,储存“附魔等级”的变量就是“FMDJ”;
FMDJ[ A x FMZL + B ] 既表示第 A 个物品的第 B 项附魔等级。

那么
循环动作[ForLoopDIndex]从 1 到 MWZS, 运行 (Loop - 动作)
        Loop - 动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
               If - 条件
                (被操作物品) 等于 YFMW[ForLoopDIndex]
               Then - 动作
              循环动作[ForLoopEIndex]从 1 到 FMZL, 运行 (Loop - 动作)
                                 Loop - 动作
                       输出  FMDJ[ForLoopDIndex  x FMZL + ForLoopEIndex ]

即可输出附魔等级…………
回复

使用道具 举报

 楼主| 发表于 2011-12-21 20:50:02 | 显示全部楼层

回 1楼(壹樓祭天祭百度) 的帖子

附魔系统.w3x (20 KB, 下载次数: 30)
抱歉,现在才回复你,我移植的原地图已发。

我现在就按你说的去测试下
回复

使用道具 举报

 楼主| 发表于 2011-12-21 21:15:44 | 显示全部楼层

回 1楼(壹樓祭天祭百度) 的帖子

壹樓祭天祭百度:把那个附魔系统的地图文件也一起贴出来吧。

这个系统使用的原理为“商店法”,储存“附魔等级”的变量就是“FMDJ”;
FMDJ[ A x FMZL + B ] 既表示第 A 个物品的第 B 项附魔等级。

....... (2011-12-20 18:51)
测试了,貌似不行。。。输出0
回复

使用道具 举报

发表于 2011-12-21 21:50:24 | 显示全部楼层
[trigger]表示可用
    事件
        单位 - 任意单位 使用物品
    条件
        ((被操作物品) 的类型) 等于 圣者遗物
    动作
        For ForLoopDIndex 从 1 到 MWZS, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (被操作物品) 等于 YFMW[ForLoopDIndex]
                    Then - 动作
                        游戏 - 清空 (所有玩家) 屏幕上的文本信息
                        For ForLoopEIndex 从 1 到 FMZL, 做动作
                            Loop - 动作
                                游戏 - 对 (所有玩家) 发送文本信息: (此物品的 + ((FMJN[ForLoopEIndex] 的名称) + (的等级为 + (转换 FMDJ[((ForLoopDIndex x FMZL) + ForLoopEIndex)] 为字符串))))
                    Else - 动作
[/trigger]

附魔系统.w3x (20 KB, 下载次数: 26)
回复

使用道具 举报

 楼主| 发表于 2011-12-21 23:30:36 | 显示全部楼层

回 4楼(壹樓祭天祭百度) 的帖子

壹樓祭天祭百度:[trigger]表示可用
    事件
        单位 - 任意单位 使用物品
    条件
        ((被操作物品) 的类型) 等于 圣者遗物
....... (2011-12-21 21:50)
谢谢你,测试成功!



我根据自己需要又定义了一组变量,完善了下提示,学到了不少东西!





另外再请教一下,有没有比较“环保”的物品技能,让使用物品不产生任何的效果呢?
回复

使用道具 举报

 楼主| 发表于 2011-12-22 09:36:48 | 显示全部楼层
使用通魔技能已经解决了!

谢谢你的帮助啊!
回复

使用道具 举报

发表于 2020-3-24 14:14:50 | 显示全部楼层
牛逼,牛逼,找了好久
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-19 15:32 , Processed in 0.203680 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表