mugen吧 关注:78,726贴子:1,493,404
  • 32回复贴,共1

[简易教程]影之克隆、时间停止写法概述

只看楼主收藏回复

1L度娘


1楼2012-11-04 13:51回复
    影之克隆就是【真实分身】,不受注销影响的分身。
    从螺丝完成影之克隆的代码,到现在有一些年头了,
    当时应该也有一些人物在尝试编写分身,只是可能依旧惧怕注销,或者只是纯proj的无敌分身。
    当然,现在这种分身应该普及了,不过依旧有很多人询问,因此螺丝大致科普一下。
    至于时停,这个技能年代更加久远,warusaki3所作的Dio的时停算是非常具有代表意义的。
    时停本质很简单,螺丝这里只是拎出时停对于其他技能的影响,大致的说一下这个细节。
    另外刚刚完成雏形的组队独特技能(复活队友、生命分担)还存有瑕疵,下次螺丝整理完毕再科普了(那个写法有点乱)


    2楼2012-11-04 13:51
    回复
      影之克隆:(免疫注销的完善分身)
      只拎出主干,动画特效和技能条等其他细节就不涉及了。
      ————————————————————————————————————————本体召唤分身helper
      注意,必须helpertype = player,类型为player型。
      [State 3000, Helper]; ---- Shadow Clone Igniz
      type = Helper
      triggerall = !numhelper(97864)
      trigger1 = animelem = 10, >=61
      helpertype = player
      name = "Shadow Clone Igniz"
      ID = 97864 ; ---- MUST NOT change this !
      stateno = 3099
      pos = 60,0
      postype = p1 ;p2,front,back,left,right
      facing = 1
      keyctrl = 1
      ownpal = 1
      supermovetime = 172
      pausemovetime = 172
      在分身helper的初始化state里(这里是3099),再创建一个“重建系统”helper
      [State 3099, Helper]; ---- Shadow Clone Igniz recreater system helper
      type = Helper
      triggerall = !root,NumHelper(46879)
      trigger1 = 1
      helpertype = normal
      name = "Shadow Clone Igniz recreater system helper"
      ID = 46879 ; ---- MUST NOT change this !
      stateno = 3098
      pos = 0,0
      postype = p1 ;p2,front,back,left,right
      facing = 1
      keyctrl = 0
      ownpal = 1
      “重建系统”helper常时绑定位置到父helper(即parent)
      这里必须明确:重建helper和分身helper是“子与父”关系。重建系统helper里常时检测其父是否存在,如果不存在,那么分身helper就是被注销了(被敌人当身反转了)
      如果检测到了,那么重新创建分身helper。
      创建位置为重建系统helper的位置。由于重建系统helper始终和之前的分身绑定位置,所以看上去新的分身位置不变。被重新创建的新的分身helper,进入一个无敌的“假”挨打动作。
      其血量则通过之前的变量记录,保证重建过程分身的血量不变。当新的分身创建完毕后,【旧的分身创建的那个“重建系统helper”】自我注销。
      新的分身再创建属于它自己的【新的“重建系统helper”】
      如此确保,分身永远是其对应的重建系统的“父”,否则重建系统的检测不便。值得注意的是,几种情况下分身消失了却不应该重建,
      比如非战斗roundstate != 2,分身确实的死亡(生命0且stateno = 5150)等。
      ———————————————————————————————————————
      -2下应该设置一些必要的系统:
      当分身死亡时,应selfstate到挨打动作。变量记录血量,以便重建时使用。
      值得注意的是,mugen容易引起一些BUG,比如分身奇怪的将本体抓入无效的p2state,或者反之本体抓了分身。
      这时候用target,ID判断是不是抓错人了,用targetstate纠错一下。
      另外mugen每一局结束时应该消除所有helper,但是偶尔BUG会导致没消除, 于是下一局开场roundstate<2时注销一下。
      ————————————————————————————————————————
      其他全局细节:
      由于player型helper会触发所有-1 -2 -3,因此-1 -2 -3【全部】控制器必须检查一遍
      检查当控制器被分身helper而非本体执行时,是否产生问题。
      如果不产生问题,则无所谓。如果产生问题,须增加!ishelper条件以区分。如果写有AI,AI不增加!ishelper条件,则AI将同时作用于分身。此即分身共享了本体的AI。
      如果分身AI有特别要求,就以ishelper作为大前提条件,编写额外AI。
      另外,【所有】招式代码里,含有诸如绑定位置到root的设置,必须按本体和分身helper加以区分
      否则会造成“分身发出飞行道具,却从本体的位置出现”等瑕疵。
      区分办法为ishelper、!ishelper时,分别绑定到parent。
      招式中对某个【独有】helper、proj等有条件要求的,也必须按本体和分身helper加以区分
      否则会造成“本体圣光之刃命中,允许梦幻取消,分身却也被允许取消”等瑕疵。
      区分办法为创建的时候,本体和分身使用不同的helper ID、proj ID等。
      ————————————————————————————————————————
      关于神代码:
      分身重建机制对于通过【混线】来取得任意非开幕永久helper的神角色代码无效。


      3楼2012-11-04 13:53
      回复
        时间停止:(时停、延时特效)
        只拎出主干,动画特效和技能条等其他细节就不涉及了。
        ————————————————————————————————————————
        时停的本质就是一个长时间的superpause。
        设置superpause的movetime等于time,时停时自己始终可动。
        superpause的unhittable=1,时停无敌(但不免疫对手的当身)时停本身很简单,就是上面一句话。
        但是时停对于技能的影响则迥然不同。本体的技能,hitdef、reversaldef正常作用。
        飞行道具projectile正常作用,但是如果proj的supermovetime为0,则时停时proj也被静止
        helper的supermovetime若为0,则时停时被静止。
        explod贴图也一样。带有p2stateno的技能,命中对手后,对手由于无法动作,将卡在p2stateno第一帧。
        所以时停时不建议使用投技等通常带有p2state的技能,而是尽可能使用projectile等飞行道具。
        ————————————————————————————————————————
        -2下应该设置一些必要的系统:
        时停时,自己虽然无敌,但依旧会被对手当身到。
        若挨打,应selfstate以避免卡在敌方的静止的p2state里。
        可以考虑时停时noko断言,以免被当身即死。
        ————————————————————————————————————————
        其他全局细节:延时技能究竟延长多久,决定于时停时能动多久。
        如上所述,
        proj决定于supermovetime
        helper也决定于supermovetime
        举例,希望时停时,黑粒子只发出第一下光圈,那么黑粒子helper的supermovetime设置一个很小的值,
        当黑粒子只活动了几帧就被静止即可。
        再举例,希望时停时,阳光只隐隐照耀出一点儿,那么阳光explod贴图也将supermovetime设置一个很小的值。另外时停时,和平时的性能需要变得不一样的技能,应设置变量区分。
        比如时停的阳光不可打断,则应区别对待创建的阳光helper,
        指定时停时放出的阳光helper,在本体挨打时也不注销,继续攻击。
        等等。
        ————————————————————————————————————————
        如果对手恰好同时放出一个超级暂停,则对手能继续活动直至其超级暂停的时间耗尽。关于神代码:
        时停对于通过【开幕超级暂停】来无视暂停的神角色代码无效。


        4楼2012-11-04 13:55
        回复
          helpertype是不是player都可以....只是凶恶的一般都是用player罢了



          IP属地:广东6楼2012-11-04 15:12
          收起回复
            虽不明,但觉厉~ 问下螺丝,现在的老E是没有单独的带分身的模式了么? 我记得老版本几P是只有分身,没有援助的啊


            IP属地:北京7楼2012-11-04 15:37
            收起回复
              书签


              8楼2012-11-04 20:41
              回复
                我分身和你不同,我是本体召唤分身。
                分身在召唤个即时跟随的不消除援护。分身被消除就在当前位置召唤个。


                IP属地:江苏来自Android客户端9楼2012-11-04 21:40
                收起回复
                  教程支持


                  IP属地:河南10楼2012-11-05 01:52
                  收起回复
                    支持


                    IP属地:广东11楼2012-11-05 04:12
                    回复
                      大蛇对老E的视频很精彩啊


                      IP属地:湖北12楼2012-11-06 20:08
                      收起回复
                        有范例吗?


                        来自掌上百度13楼2012-11-07 14:32
                        收起回复
                          支持技术贴~~!!!


                          IP属地:广西14楼2012-11-09 00:18
                          回复