请选择 进入手机版 | 继续访问电脑版

 找回密码
 点一下
查看: 3526|回复: 5

工程技能 特性 分析

[复制链接]
发表于 2009-4-19 22:48:45 | 显示全部楼层 |阅读模式
本贴主要分析的是 工程技能之间互相作用性质


首先附上 东门吹牛 对 工程技能普遍性质的分析
关于工程升级的替换测试
今天特地测试了一下工程升级的所有替换效果,之前已经知道工程升级替换技能时无法做到完全替换(删除重学除外,过会说明),原始技能的命令ID、目标类型(指无目标、点目标、单位目标等)、技能类型(被动或主动)和整个技能的效果(如风暴之锤是晕眩,暗影突袭是持续伤害等)不会替换,CD、魔法消耗、目标分类(指目标是不是敌人等)可以替换。
关于其他的数据,今天基本都做了测试
除以上4项无法替换的其余都能替换,而且可以不同类型的数据替换
其中包括:施法距离、持续时间、施法动作、投射物相关(特效应该也行)、buff、图标(和其位置)、文字说明等
关于特定的数据也支持传递,如风暴之锤的DataA即其产生的伤害,暗影突袭具有多个Data,如果风暴之锤替换成暗影突袭,则有效传递其中的DataA(即持续伤害)
由于我的研究结果应用了。。大量自定义符号。。
所以要看明白首先看符号的定义:
  1. 定义环境
  2. {
  3. 1.ABCDE等各代表1个技能,如果没定义2 那代表非工程升级
  4. 2.A=(B→C) 达标 工程技能A 的数据 =技能B升级到技能C
  5. 3.A<A> 代表A的实际数据 是A本身的 工程升级时完美替换
  6. 4.A<B> 代表A的实际数据 是B的 工程升级时部分数据没替换,会继承部分
  7. 5.U(A,B) 代表了 单位U 拥有技能A,B
  8. 6.U(A,!B) 代表了 单位U 拥有技能A,B 但B在上次升级时无效果[参见优先特性1],之后仍具有效力
  9. 7.U(A,{B}) 代表了 多个工程升级时 会导致的 设置技能未全部升级 [参见优先特性3]
  10. 8.U(A,B^2) 代表了 单位U 拥有技能A 1个,  B 2个 [参见叠加特性]
  11. 9.U+C →U(A,D) 代表 单位U 添加技能C 后 单位拥有技能A,D
  12. A.U-C →U(A,D) 代表 单位U 删除技能C 后 单位拥有技能A,D
  13. B.{ U-C →U(A,D) →[D]→ U(E,D) } 代表 单位U 删除技能C 后 单位拥有技能A,D 然后D又把A升级成E [参见优先特性2]
  14. C.[A,B(C→D),C,D,U(A,B)] 定义4个技能A,B,C,D B是工程升级 单位U初始状态拥有技能A,B
  15. }
复制代码
基本特性
[jass]{
1.升级特性[本特性其实就是东门技能结论的细化]
  {
   1. [A=(B→C),B=(D→E),C=(D→F),U(A)]  U+B→U(A,C<C>)    如果B,C都是工程升级 那数据可以完全替换  
   2. [A=(B→C),B,C,U(A)]              U+B→U(A,C<B>)    如果B,C都不是工程升级 那C会继承B的部分数据  
    3. [A=(B→C),B=(D→E),C,U(A)]        U+B→U(A,C<B>)    如果B,C不都是工程升级 那C会继承B的部分数据  
    4. [A=(B→C),B,C=(D→E),U(A)]        U+B→U(A,C<B>)    如果B,C不都是工程升级 那C会继承B的部分数据
    5. [A=(B→C,D→E,F→G,H→I),U(A)]      U+B+D+F+H→U(A,C,E,G,I) 即使A拥有多个升级项目 仍全部有效
  }
2.反向特性
  {
   1.[A=(B→C),B=(D→E),C=(D→F),U(A,C)]    U-A→U(A,B<B>)   如果B,C都是工程升级 那数据可以完全替换  
   2.[A=(B→C),B=(D→E),C=(D→F),U(A,B,C)]  U-A→U(A,B^2)    如果单位还拥有B[优先特性2] 那么B会叠加[参见叠加1]
   3.[A=(B→C),B=(D→E),C=(D→F),U(A)]      U-A→U(A,B<B>)   如果B,C都是工程升级 那数据可以完全替换  
   4.[A=(B→C),B=(D→E),C=(D→F),U(A,B)]    U-A→U(A,B)      如果单位还拥有B[优先特性2] 那么B也不会叠加[参见叠加2]
   5.[A=(B→C),B,C,U(A,C)]                U-A→U(A,B<B>)   如果B,C都不是工程升级 那数据可以完全替换[主要应用于游戏里动态修改英雄技能]
   6.[A=(B→C,D→E,F→G,H→I),U(A)]          U-A→U()         拥有多个升级项目时 如果要反向添加 需要具有升级后技能
   7.[A=(B→C,D→E,F→G,H→I),U(A,C)]        U-A→U(B)        拥有多个升级项目时 如果要反向添加 需要具有升级后技能
   8.[A=(B→C,D→E,F→G,H→I),U(A,E,G)]      U-A→U(D,F)      拥有多个升级项目时 如果要反向添加 需要具有升级后技能
   9.[A=(B→C,D→E,F→G,H→I),U(A,C,E,G,I)]  U-A→U(B,D,F,H)  拥有多个升级项目时 如果要反向添加 需要具有升级后技能
  }
3.自身无法升级,无法反向
  {
   1.[A=(A→B),U()]                   U+A→U(A)       -A→U()
   2.[A=(A→B,C→D),C,U()]             U+A→U(A)       +C→U(A,D)
   3.[A=(A→B,C→D),C,U()]             U+C→U(C)       +A→U(A,D)
   4.[A=(B→A),B,C,D=(C→A),U(B,D)]    U+A→U(B,A,D)   -A→U(B,D)  
   5.[A=(B→A),B,U(B,A)]              U-A→U(B)
  }
}
[/jass]


优先特性
[jass]{
0.越晚添加的技能 越早发生效力
  例0.[A=(B→C),B=(A→C),U()]  U+A→U(A)          U+B→(B,C)
  例1.[A=(B→C),B=(A→C),U()]  U+B→U(B)          U+A→U(A,C)
  例2: [A,B=(A→D),C=(A→B,,D→E,),D,E,U(C,B)]       { U+A→U(C,B,D) →[C]→ U(C,B,E) }
  例3: [A,B=(A→D),C=(A→B,,D→E,),D,E,U(B,C)]       U+A→U(B^2,C)
  例4: [A,B=(A→E),C=(A→F),D=(A→G),E,F,G,U(B,C,D)]       U+A→U(B,C,D,G)
  例5: [A,B=(A→E),C=(A→F),D=(A→G),E,F,G,U(C,D,B)]       U+A→U(B,C,D,E)
  例6: [A,B=(A→E),C=(A→F),D=(A→G),E,F,G,U(B,D,C)]       U+A→U(B,C,D,F)
1.先存在的技能,升级后添加的技能,得到的技能再此轮升级里无效力(无法升级别人也无法被别人升级);之后仍有效力
  例1: [A=(B→C),B=(C→A),C=(A→B,D→E),D,E,U(A)]                U+B→U(A,!C)      +D→U(A,C,E)
  例1: [A=(B→C),B=(C→A),C=(A→B,D→E),F=(C→G),D,E,U(A,F)]      U+B→U(A,F,!C)    -F→U(A,C)     +F→U(A,F,G)
  例2: [A=(B→C),B=(C→A),C=(A→B,D→E),D,E,U(A,D)]              U+B→U(A,D,!C)    -D→U(A,C)     +D→U(A,C,E)
  例3: [A=(B→C),B=(C→A),C=(A→B,D→E),D,E,U(A,E)]              U+B→U(A,E,!C)    -C→U(A,D)   
2.后添加技能,升级先存在的技能,得到的技能仍还具有效力
  例1: [A=(B→C),B=(C→A),C=(A→B,D→E),D,E,U(B)]           { U+A→U(C,A) →[C]→ U(!B,C) }        +A→U(B,C^2) -B→U(C^2)
  例2: [A=(B→D),B,C=(A→B,,D→E,),D,E,U(B,C)]             { U+A→U(D,C,A) →[C]→ U({D},C,B) }  
  例2: [A=(B→C),B=(C→A),C=(A→B,,D→E,),D,E,U(B,D)]       { U+A→U(C,D,A) →[C]→ U(C,{D},!B) }
  例2: [A=(B→C),B=(C→A),C=(,A→B,,D→E),D,E,U(B,D)]       { U+A→U(C,D,A) →[C]→ U(C,{D},!B) }
  例2: [A=(B→C),B=(C→A),C=(,A→B,,D→E),D,E,U(A,D)]    U+B→U(A,D,!C)
3.如果一轮升级里得到 的工程带有多个升级时 那些未设置升级的工程 不被升级
  例3: [A,B=(C→A),C=(D→E,A→B),D=(B→C),E,U(B,A)]     { U+D→U(A,C,D) →[C]→ U({A},C,E) }
  例3: [A,B=(C→A),C=(D→E,A→B),D=(B→C),E,U(A,B)]     { U+D→U(A,C,D) →[C]→ U({A},C,E) }
  例3: [A,B=(C→A),C=(D→E,A→B,F→G),D=(B→C),E,F,U(B,A,F)]     { U+D→U(A,C,F,D) →[C]→ U({A},C,{F},E) }
  例3: [A,B=(C→A),C=(D→E,A→B,F→G),D=(B→C),E,F,U(A,B,F)]     { U+D→U(A,C,F,D) →[C]→ U({A},C,{F},E) }
4.一轮升级里同1个技能只能被升级1次(反向得到的也算升级次)
  例4: [A,B=(A→E),C=(A→F),D=(A→G),E,F,G,U(B,C,D)]       U+A→U(B,C,D,G) -D→U(B,C,A)
  例5: [A,B=(A→E),C=(A→F),D=(A→G),E,F,G,U(C,D,B)]       U+A→U(C,D,B,E) -B→U(C,D,A)
  例6: [A,B=(A→E),C=(A→F),D=(A→G),E,F,G,U(B,D,C)]       U+A→U(B,D,C,F) -C→U(B,D,A)
}
[/jass]


叠加特性
[jass]
{
1.正向叠加
  例1: [A=(B→C),B,C,U(A,C)]     U+B→U(A,C^2)
2.反向叠加(一般是由于优先特性1造成的) 必须存在 升级后技能 才能叠加
  例1: [A=(B→C),B,C,U(A,B,C)]   U-A→U(B^2)
  例2: [A=(B→C),B,C,U(A,B)]     U-A→U(B)
}
[/jass]

ps:其实本来是为了弄个无限循环的 工程链。。结果怎么都循环不了~~

工程升级链.w3x

78 KB, 下载次数: 32

评分

参与人数 2威望 +5 收起 理由
kook + 4 oh,i see....
thewisp1 + 1 恶意灌水

查看全部评分

发表于 2009-4-19 22:52:32 | 显示全部楼层
难度在于看懂自定义符号
回复

使用道具 举报

 楼主| 发表于 2009-4-20 06:17:20 | 显示全部楼层
暂时请54.
似乎里面有些问题.
估计我写晕了..
我白天再重新测试次
回复

使用道具 举报

发表于 2009-4-20 08:07:00 | 显示全部楼层
用工程升级替换工程升级的话
MS会出现诡异的问题
回复

使用道具 举报

 楼主| 发表于 2009-11-22 02:10:27 | 显示全部楼层
..补充下 工程升级 还不能替换 比如剑刃风暴的伤害(那伤害是每0.2 秒 伤害次   而那只能设定每秒总伤害)
可能还有类似技能也不能直接替换

对这些 就必须先技能0级 再添加工程完美替换.
或者降低再提升下技能 (让等级变动 那样就会再次加载技能数据)
回复

使用道具 举报

发表于 2009-11-22 05:46:02 | 显示全部楼层
………………哪怕是写成密密的中文都比符号要好看啊……
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 19:03 , Processed in 0.445275 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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