黑暗灵蛇 发表于 2008-4-24 22:03:15

……代码怎么写呢……551155前辈写个教程吧~

zhuzeitou 发表于 2008-4-24 22:11:10

代码
le]这是一张表格1234
效果如下

这是一张表格1234

黑暗灵蛇 发表于 2008-4-24 22:25:10

123123454

??????

??????????????????

标题数量自己数——种类未知猜猜

551155 发表于 2008-4-25 04:22:48

演示-单体转群体技能模版

  可以让所有针对单体的技能,包括对敌的伤害技能和对盟有的辅助技能都可以实现。不过还有点问题我暂时没想到如何解决:1,类似于雷霆一击的技能,目标是触发单位,因此造成一些困扰,但因为不会执行放技能动作,所以也就无视掉吧。2,偶而还出现目标选择过少的问题,范围内的目标没有被选择,原因不明。



    事件
      单位 - 任意单位 准备施放技能
    条件
      ((触发单位) 是 英雄) 等于 TRUE
      (技能施放目标) 不等于 没有单位
      ((触发单位) 的类型) 不等于 神秘单位
    动作
      设置 mo = ((触发单位) 的当前命令ID.)
      设置 GM = (半径为 300.00 圆心为 ((技能施放目标) 的位置) 的圆范围内所有单位)
      单位组 - 选取 GM 内所有单位做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                  If - 条件
                        ((选取单位) 是存活的) 等于 TRUE
                        ((选取单位) 的类型) 不等于 神秘单位
                        (选取单位) 不等于 (技能施放目标)
                        ((选取单位) 是 ((技能施放目标) 的所有者) 的同盟单位) 等于 TRUE
                  Then - 动作
                        设置 N = (N + 1)
                        单位 - 创建 1 个 神秘单位 给 ((触发单位) 的所有者) 在 ((触发单位) 的位置) ,面向角度为 默认建筑朝向 度
                        单位 - 设置 (最后创建的单位) 关闭 碰撞
                        单位 - 隐藏 (最后创建的单位)
                        单位 - 设置 3.00 秒 普通 类型的生命周期对 (最后创建的单位)
                        单位 - 添加 (施放技能) 给 (最后创建的单位)
                        单位 - 设置 (施放技能) 等级对 (最后创建的单位) 为 ((施放技能) 的等级对 (触发单位))
                        自定义代码: call IssueTargetOrder( GetLastCreatedUnit(), OrderId2String(udg_mo), GetEnumUnit() )
                  Else - 动作
                        无动作
      设置 N = 0
      自定义代码: call DestroyGroup( udg_GM )


  演示要点:利用辅助单位来施放事件响应的技能,同时设定辅助单位的技能等级等同于触发单位的技能等级(效果相同)。使用自定义代码的原因主要是因为发布命令ID无法用T直接使用字符串动作,下面的清除单位组只是为了防止没有使用UI的人无法读取而已。另一个重点就是“(技能施放目标) 不等于 没有单位”,这对于判断技能是否单体有直接关系,添加这一条类似于暴风雪之类技能不会触发事件。

flzt5354 发表于 2008-4-26 10:52:32

   其实,,楼主有没有出过地图的~~貌似楼主的技术很不错的说,出的地图应该挺好玩的

黑暗灵蛇 发表于 2008-4-26 11:12:28

其实,,楼主有没有出过地图的~~貌似楼主的技术很不错的说,出的地图应该挺好玩的

紫色浮雕 发表于 2008-4-26 22:38:56

真的很好 重新回到了GA一切 一切还是那么美好~~

551155 发表于 2008-4-27 12:44:11

演示 - 物品栏合成





Initialization
    事件
      地图初始化
    条件
    动作
      自定义代码: set udg_OrderToSlot=852002
      自定义代码: set udg_OrderToSlot=852003
      自定义代码: set udg_OrderToSlot=852004
      自定义代码: set udg_OrderToSlot=852005
      自定义代码: set udg_OrderToSlot=852006
      自定义代码: set udg_OrderToSlot=852007
      设置 Item_Type = 攻击之爪 +3
      设置 Item_Type = 攻击之爪 +6
      设置 Item_Type = 攻击之爪 +9
      设置 Item_Type = 攻击之爪 +12
      设置 Item_Type = 攻击之爪 +15





Move
    事件
      单位 - 任意单位 发布指定物体目标指令
    条件
    动作
      设置 Titt = (命令发布目标)
      For循环整数A从 1 到 6, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                  If - 条件
                        (发布的命令ID) 等于 OrderToSlot[(循环整数A)]
                  Then - 动作
                        如果所有条件成立则做动作1,否则做动作2
                            If - 条件
                              Titt 等于 ((触发单位) 所持有的 黑暗之球)
                            Then - 动作
                              设置 Item = ((触发单位) 物品栏第 (循环整数A) 格的物品)
                            Else - 动作
                              设置 Titt = ((触发单位) 物品栏第 (循环整数A) 格的物品)
                              设置 Item = (命令发布目标)
                        For循环整数B从 1 到 4, 做动作
                            Loop - 动作
                              如果所有条件成立则做动作1,否则做动作2
                                    If - 条件
                                        (Titt 的类型) 等于 黑暗之球
                                        (Item 的类型) 等于 Item_Type[(循环整数B)]
                                    Then - 动作
                                        物品 - 删除 Item
                                        物品 - 删除 ((触发单位) 所持有的 黑暗之球)
                                        英雄 - 创建 Item_Type[((循环整数B) + 1)] 给 (触发单位)
                                        任务 - 对 (所有玩家) 发送 收到新物品 信息: (你合成了|cff0000ff + (((最后创建的物品) 的名字) + 。))
                                    Else - 动作
                                        无动作
                  Else - 动作
                        无动作

551155 发表于 2008-4-27 12:44:38

演示 - 物品随机属性系统

写在演示之前:
  曾经,我也羡慕过JASS强大的功能,也和部分新手一样,向往着。然而,对于没有程序基础和基本上不懂E文的我来说,“J白”是一个很帖切的称呼,放弃了JASS领域,总幻想着用T来搭建属于自己的地图和演示。从防守图演示,到演示集现在的十多个演示,我也是比较满意自己交的答卷,不断创新,不断研究,至少我觉得我呆在GA是那么顺理成章。这次,也算是我自己的一个小小突破,一个貌似完全属于JASS的事物被自己用Trigger成功的制作出来了,很激动,也很感动。我希望,和我一样属于“J白”的朋友们,羡慕JASS的同时,用Tirgger来创建属于我们自己的天空。

                                         GA 551155 2008.4.27

  关于这个系统的解说,已经有很多了,简单的说,就是利用2幂来实现少量的数值组合来达到需要的效果,而通过这两天的研究,我发现,2进制的1和0,的确就是开关,对这些数的开关,我所设想的方式,就是基于开关的,请继续看具体的触发,一共三个半。

Initialization
    事件
      地图初始化
    条件
    动作
      -------- 设置技能 --------
      设置 Ability = (Item)增加攻击力 ( +1 )
      设置 Ability = (Item)增加攻击力 ( +2 )
      设置 Ability = (Item)增加攻击力 ( +4 )
      设置 Ability = (Item)增加攻击力 ( +8 )
      设置 Ability = (Item)增加攻击力 ( +16 )
      设置 Ability = (Item)增加攻击力 ( +32 )
      设置 Ability = (Item)增加攻击力 ( +64 )
      设置 Ability = (Item)增加攻击力 ( +128 )
      设置 Ability = (Item)增加攻击力 ( +256 )
      设置 Ability = (Item)增加攻击力 ( +512 )
      设置 Ability = (Item)增加攻击力 ( +1024 )
      设置 Ability = (Item)增加攻击力 ( +2048 )
      设置 Ability = (Item)增加攻击力 ( +4096 )
      设置 Ability = (Item)增加攻击力 ( +8192)
      设置 Ability = (Item)增加攻击力 ( +16384 )
      设置 Ability = (Item)增加攻击力 ( +32768 )
      设置 Ability = (Item)增加攻击力 ( +65536 )
      -------- 设置技能比较用数值 --------
      For循环整数A从 1 到 17, 做动作
            Loop - 动作
                设置 Ability_Ns[(循环整数A)] = DD_a
                设置 DD_a = (DD_a x 2)

  演示要点:很明显,这个是初始化技能以及设定和技能伤害相同的作来做计算的数值变量。Acquires item
    事件
      单位 - 任意单位 获得物品
    条件
      ((被操作物品) 的类型) 等于 随机属性武器
      ((被操作物品) 的自定义值) 大于 0
    动作
      设置 Item_s = (Item_s + ((被操作物品) 的自定义值))
      设置 Hero_s = Item_s
      游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示 60.00 秒的文本信息: (转换 Hero_s 为字符串)
      For循环整数A从 1 到 17, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                  If - 条件
                        Hero_s 大于或等于 Ability_Ns[(18 - (循环整数A))]
                        (Hero_s mod Ability_Ns[(18 - (循环整数A))]) 大于或等于 0
                  Then - 动作
                        设置 Hero_s = (Hero_s - Ability_Ns[(18 - (循环整数A))])
                        单位 - 添加 Ability[(18 - (循环整数A))] 给 (触发单位)
                  Else - 动作
                        单位 - 删除 Ability[(18 - (循环整数A))] 从 (触发单位)


  Loses item
    事件
      单位 - 任意单位 丢弃物品
    条件
      ((被操作物品) 的类型) 等于 随机属性武器
      ((被操作物品) 的自定义值) 大于 0
    动作
      设置 Item_s = (Item_s - ((被操作物品) 的自定义值))
      设置 Hero_s = Item_s
      游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示 60.00 秒的文本信息: (转换 Hero_s 为字符串)
      For循环整数A从 1 到 17, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                  If - 条件
                        Hero_s 大于或等于 Ability_Ns[(18 - (循环整数A))]
                        (Hero_s mod Ability_Ns[(18 - (循环整数A))]) 大于或等于 0
                  Then - 动作
                        设置 Hero_s = (Hero_s - Ability_Ns[(18 - (循环整数A))])
                        单位 - 添加 Ability[(18 - (循环整数A))] 给 (触发单位)
                  Else - 动作
                        单位 - 删除 Ability[(18 - (循环整数A))] 从 (触发单位)
  演示要点:其实很简单,利用变量保存该英雄身上物品的总值,物品获得和丢弃都只是对变量进行操作(因为无法用判断来捕获得到物品和丢弃物品,所以尽管两个触发差别不大,但也只能这样做)。然后就像我前面说的开关一样,在MOD对变量进行取余为正数的情况下,执行添加技能,为负数就删除技能,从而实现正确的开关数列,就像是一个二进制,1和0的组合。同时,利用物品自定义来读取物品可以增加的伤害属性。OOXX XXOO
    事件
      单位 - 中立敌对 的单位 死亡
    条件
    动作
      物品 - 创建 随机属性武器 在 ((触发单位) 的位置)
      物品 - 设置 (最后创建的物品) 的自定义值为 (随机整数,最小值: 1 最大值: 20000)
      等待 10.00 秒
      单位 - 创建 1 个 (一个等级 2 的随机中立生物类型) 给 中立敌对 在 ((触发单位) 的位置) ,面向角度为 默认建筑朝向 度
  演示要点:这就是最后的半个~其作用只不过是为了刷新掉落物品用的小怪而已……物品随机伤害在1-20000之间。


A L item
    事件
      单位 - 任意单位 获得物品
      单位 - 任意单位 丢弃物品
    条件
      ((被操作物品) 的类型) 等于 随机属性武器
      ((被操作物品) 的自定义值) 大于 0
    动作
      自定义代码: set udg_isPick = GetTriggerEventId() == EVENT_PLAYER_UNIT_PICKUP_ITEM
      如果所有条件成立则做动作1,否则做动作2
            If - 条件
                isPick 等于 TRUE
            Then - 动作
                设置 Item_s = (Item_s + ((被操作物品) 的自定义值))
            Else - 动作
                设置 Item_s = (Item_s - ((被操作物品) 的自定义值))
      设置 Hero_s = Item_s
      游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示 60.00 秒的文本信息: (转换 Hero_s 为字符串)
      For循环整数A从 1 到 17, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                  If - 条件
                        Hero_s 大于或等于 Ability_Ns[(18 - (循环整数A))]
                        (Hero_s mod Ability_Ns[(18 - (循环整数A))]) 大于或等于 0
                  Then - 动作
                        设置 Hero_s = (Hero_s - Ability_Ns[(18 - (循环整数A))])
                        单位 - 添加 Ability[(18 - (循环整数A))] 给 (触发单位)
                  Else - 动作
                        单位 - 删除 Ability[(18 - (循环整数A))] 从 (触发单位)

  演示要点:对获取和丢弃物品的两个触发进行合并,用了自定义代码。

鸡斯拉 发表于 2008-4-27 13:28:47

不晓得谁做的J的 随机属性的物品

地域坠魔 发表于 2008-4-27 13:51:07

靠。551155 大人又炸尸了。

551155 发表于 2008-4-27 13:51:16

J版的出现其实很早~早在2004年我的教程里面,就收录了关于随机属性系统的一些理念,貌似是强大的Danexx……

地域坠魔 发表于 2008-4-27 13:52:29

而且炸的还会说话。

flzt5354 发表于 2008-4-27 16:50:10

,J白,是一个很无奈的选择

551155 发表于 2008-4-27 23:15:10

很无奈啊,很无奈……呜

朱里安·约克 发表于 2008-4-29 22:14:21

好吧,不管素啥托走先

kk128kk 发表于 2008-4-29 23:56:28

我是十分非常很支持551155的.你记得我是谁吗?

smild 发表于 2008-4-30 16:18:02

现不拖了,现学技能制作
生命就是这么痛苦着~

断云残崖 发表于 2008-5-3 19:15:54

支持啊!!!

smild 发表于 2008-5-5 14:39:41

支持的说,不过我觉得自定义加属性用对话框不合适吧
第一行第一列第一行第二列
很支持是的,很支持
页: 1 2 3 4 [5] 6 7 8 9 10
查看完整版本: 551155 演示集锦 -☆- 添加《新合成演示》- 160楼