自制音速吧 关注:5,064贴子:369,064

『插件发布』随机谱面插件发布以及使用细则 By笹瀬川佐々美

只看楼主收藏回复

『序言』
@笹瀬川佐々美 又一巨作,『随机谱面插件』终于在昨日2014-11-09问世!
经过多次测试以及修改部分BUG和完善部分语法之后,
最终版本已经完成,并且简单测试之后基本没有问题.
于是对外发布!
***********************************************************
由于此插件使用起来相比之前的插件略微有些复杂,
因此由我来详细说明下使用细则
***********************************************************
(可能需要7个楼层,在没有发表「完毕」之前,请勿插楼,否则砍头示众)


IP属地:上海1楼2014-11-10 13:36回复
    『第一章 插件的原理与构造』
    此插件由两个部分组成.
    传统的DLL应用程序扩展文件以及XML代码转换器
    其原理的话大致如下过程:
    首先先通过编写特殊格式的XML,让其符合XML代码转换器的要求,
    接下来用转换器将特殊格式的XML里面的内部代码进行转换,
    最后再配合DLL插件所写的内部代码,来实现在游戏中执行障碍随机.
    ※XML代码转换器需要安装 python ,如果要转换代码,请先安装 python (区分32位/64位)


    IP属地:上海3楼2014-11-10 13:43
    收起回复
      『第二章 XML代码转换器的组成以及使用』
      XML代码转换器主要由三个部分组成,如下图

      genxml.py 为主程序,也就是转换代码,需要安装 python 才能打开
      notemap.txt 为转换规则,将你所需要转换的规则可以都写在里面,具体写法稍后说明
      xmllist.txt 为转换列表,用于填写需要转换的XML的路径以及转换后保存位置的路劲
      ********************************************
      首先先说下 notemap.txt
      如下图所示,这是本人自定义的规则

      这些是最基本的规则.
      *********************************
      我来分析一段
      左钉 18
      右钉 19
      上 16
      下 17
      上下左右 18,19,16,17
      *****************************
      例如上面这一段
      左钉 18
      右钉 19
      上 16
      下 17
      分别为游戏中各个障碍 Kind 值,再配合后面的 Level 的值,反映在游戏中.
      例如在XML中 如果这样写的话
      <AREA Coord="330" Kind="18" Level="2" FxSndIndex="0"></AREA>
      就是在 Coord="330" 位置 出现的障碍为左钉,并且读取K音编号为0(0=不读取)
      上下左右 18,19,16,17
      则表示将这四个障碍组合在一起随机,组合后的名字叫做「上下左右」
      ***************************************
      当然,你也可以把以上四个组合后的名字叫做「法庭万岁」,那么就应该这样写
      法庭万岁 18,19,16,17
      或者你也可以自行组合
      例如以下
      左钉 18
      右钉 19
      左上 20
      右上 21
      左下 22
      右下 23
      上 16
      下 17
      作死万岁 18,19,20,21,22,23,16,17
      不过 注意分寸,乱来出BUG了 可就不管了
      **********************************
      接下来说明下 xmllist.txt
      这个,很简单,就是路径的意思
      为了方便区分,遵循IO大神的意思,
      我在目录下创建了2个文件夹,
      分别为base和random
      然后路径填写为了下图

      XXXXXX/XXXXX.xml(空格)XXXXXX/XXXXX.xml
      前者表示为需要读取的路径,后者表示为更改后保存的路径,
      (当然,你也可以同时转换多个,分别一行行填写都没有问题)


      IP属地:上海5楼2014-11-10 14:54
      回复
        『第三章 XML转换前的准备工作』
        上一章也说明了,需要制定转换规则,
        个么问题来了,规则制定好之后改怎么办呢?
        很简单,就是开始对成品的XML做编辑.
        以上面我所展示的规则为例,
        我开始进行对原来的XML 进行改写
        **************************
        左钉 18
        右钉 19
        上 16
        下 17
        上下左右 18,19,16,17
        还是以这个为例,如果我要想实现在上述障碍位置进行上述障碍规则随机的话,
        那么我们先要修改XML中 Kind 的值
        如上四个障碍对应的 Kind
        值分别为 18 19 16 17 ,将他们全部修改成 [上下左右]
        如下图样式(Kind="[xxxx]")

        修改的话很简单,用txt的替换方法都能秒替

        当然,你也可以选择部分替换,不是所有的上下左右位置都随机
        反正要随机哪些随便你
        ***************************************
        等所有要修改替换的规则全部修改完毕,那么准备工作就完成了 ,
        接着,开始转换Kind数值代码


        IP属地:上海6楼2014-11-10 15:10
        回复
          『第四章 XML转换时的问题』
          如上所示,XML准备工作全部完毕之后,
          那么就是开始对Kind数值重新编码.
          python 之后,右击 genxml.py,
          选择XXXX with IDLE(一般都是第二个,双击你是打不开的)
          如下图

          选择之后,会出来以下的画面.

          直接按F5执行即可,完成后会出现一个finish的信息提示,
          如果过程中没有弹出上图绿色的两种内容,那么就说明没有报错,也就是转换成功了
          以忽略映射=XML中发现了规则中没有写入的内容,直接忽略了(说明你的规则和你XML写的名字有不一致)
          找不到文件=在目标目录中没有找到需要转换的XML
          正常情况下,完成后应该为下图.没有任何报错
          然后直接关闭即可.



          IP属地:上海8楼2014-11-10 15:28
          收起回复
            『第五章 DLL插件的添加与随机歌曲添加』
            完成了XML转换工作,基本事情已经告一段落,
            随后剩下的就是简单的歌曲xml添加以及插件DLL的添加.
            插件DLL的添加,和之前的所有添加方法一致.
            在原有的目录中的plugin.txt里面添加随机插件的地址,并且执行开关即可
            (如果之前没有添加过插件的,请先打exe插件补丁,
            随后在游戏目录下创建plugin.txt,并且将PluginLoader.dll和plugin.txt放置在一个目录下)
            具体写法如下
            rnr_plugin/random.dll(空格)1
            1表示开,0表示关
            (个人习惯将所有插件全部放入游戏目录下自建的rnr_plugin文件夹内,方便查找,
            当然,你也可以放在和plugin.txt一起的游戏主目录下,不过以后东西多了找起来麻烦)
            已经转码好的XML 就按照正常添加歌曲的方法添加即可,如果所有步骤全部正确,
            那么在游戏中就会体现随机障碍
            ************************************
            关于随机率,采用的是游戏默认的随机率,
            并且会有一大部分的几率维持原位置,
            因此,多少会有点反人类.
            还是一句话,此插件仅供娱乐,不要玩的太过分.
            游戏最重要的还是能玩.


            IP属地:上海9楼2014-11-10 15:47
            回复
              被炸3次噜,吓尿我惹


              IP属地:浙江来自iPhone客户端12楼2014-11-10 16:07
              回复
                我打头阵


                IP属地:广东来自Android客户端13楼2014-11-10 17:35
                回复
                  超高档,玩起来感觉好赞。不愧是大神发布的福利!


                  IP属地:江苏14楼2014-11-10 17:39
                  收起回复
                    太高端看不懂


                    来自Android客户端15楼2014-11-10 17:55
                    回复
                      壕ET


                      IP属地:贵州来自Android客户端16楼2014-11-10 18:37
                      回复
                        高端大气打土豪


                        IP属地:广东17楼2014-11-10 18:55
                        回复
                          触给跪


                          IP属地:中国香港来自iPhone客户端18楼2014-11-11 03:15
                          回复
                            支持一下,虽然不玩很多年了


                            IP属地:陕西19楼2014-11-11 09:53
                            回复


                              IP属地:广东20楼2014-11-11 16:26
                              回复