无名杀吧 关注:65,062贴子:289,861

十分钟极速入门无名杀制作扩展、编写代码(适合新手的极简教程)

只看楼主收藏回复

无名杀能自己DIY制作武将、编写技能,这是无名杀最精髓最厉害的地方。不会写代码?不要紧,游戏内及各类扩展提供了成千上万个技能的代码供你参考,足够你发挥了。


IP属地:广东1楼2018-01-21 10:56回复


    首先进入扩展-制作扩展-技能,你可以直接引用技能,只需更改一些内容就会诞生新的技能。


    IP属地:广东2楼2018-01-21 10:58
    收起回复

      代码的总体结构大致如上: 先写配音代码,扩展包也一般写audio:2, 就行了,保存重启后会自动生成扩展配音的格式。接着是时机(待会再分析),然后是发动技能的条件,然后这个技能的内容。最后是ai 。


      IP属地:广东3楼2018-01-21 11:02
      收起回复
        讲解时机之前先讲技能的分类,一般分为四大类:触发类(如遗计,受到伤害即触发)、主动类(如攻心,出牌阶段主动对其他角色发动技能)、视为类(将一种牌视为另一种牌使用或打出,如武圣、倾国)、Mod类(可以理解为固定死的技能,一般是弄不了配音的,如马术)


        IP属地:广东4楼2018-01-21 11:10
        回复
          时机:呃,有很多。。。
          主动类这样写:
          enable:"phaseUse", 表示出牌阶段,phase是阶段的意思
          usable:1, 数字可以更改,表示可发动次数
          触发类:
          格式:trigger:{触发者:"触发时机"},
          触发者先确定是谁触发,一般有三种:场上的人写global , 自己写player , 自己为来源写source 。
          比如:其他角色受到伤害后:trigger:{global:"damageEnd"},
          你受到伤害后:trigger:{player:"damageEnd"},
          你造成伤害后:trigger:{source:"damageEnd"},
          触发时机大致有以下这些,替换上边的damageEnd 就会诞生新的技能,当然不是生搬硬套,得符合逻辑:
          gameDrawAfter 所有人摸牌结束之后,游戏开始
          phaseBofore 回合开始前
          phaseBegin 回合开始阶段
          phaseJudgeBegin 判定阶段开始时
          phaseJudgeBefore判定阶段开始前
          phaseJudge 判定阶段
          phaseDrawBefore摸牌之前
          phaseDrawBegin摸牌之时
          phaseDrawEnd摸牌结束
          phaseUseBefore出牌阶段之前
          phaseUseBegin出牌阶段开始时
          phaseUseEnd出牌阶段结束时
          phaseDiscardBefore弃牌阶段之前
          phaseDiscardBegin弃牌阶段开始时
          phaseDiscardEnd弃牌阶段结束时
          phaseEnd回合结束时
          loseEnd失去一张牌时
          gainEnd获得一张牌后
          chooseToRespondBegin打出一张牌响应之前
          chooseToUseBegin使用一张牌后
          damageEnd
          视为类:
          有回合内主动视为( enable:["chooseToUse","chooseToRespond"],)和回合外响应视为(trigger:{ player:["useCard","respond"], },)


          IP属地:广东5楼2018-01-21 11:27
          收起回复
            常用词汇:trigger触发,phase阶段, player玩家,current当前玩家, target目标, global场上所有角色, event事件,card牌, handCard手牌 ,equip装备牌, trick锦囊牌,delay延时性锦囊, h手牌, e装备牌 , j判定牌, hp体力(即是血量), maxHp体力上限, damage受伤 , lose失去, recover回复体力, discard弃置牌, draw摸牌, step 步骤,fire火焰伤害,thunder雷属性伤害,true成功, false失败,storage可理解为技能的标记,mark标记,countCard牌数, result结果,random随机,compare比较、拼点,gain获得,$gain2 给出牌,skill技能, add增加……
            举例:目标受到一点火焰伤害:target.damage('fire'); 你摸3张牌:player.draw(3);
            注:受伤和失去体力是不一样的,语句结束用分号;函数框架结束用逗号,所有符号都要英文输入法状态,代码里出现中文一般要用英文单引用 ‘’ 括着。


            IP属地:广东7楼2018-01-21 11:45
            收起回复
              写技能时一定要切记技能的 ID 要保持一致,否则技能会失败产生BUG,配音也不会出声音。然后技能的命名格式为:id|技能名,id一般最好用英文小写,中间有个英文竖,


              IP属地:广东8楼2018-01-21 11:49
              回复
                编写完代码保存重启后,再进入你的扩展里增加武将,然后添加技能(此扩展),这个不用介绍了吧?保存重启。然后将配音文件手动粘贴到extension-你的扩展 里,然后压缩-全选所有文件-压缩,压缩完后将压缩包改回扩展名,然后扩展包完成了。


                IP属地:广东9楼2018-01-21 11:56
                回复(4)
                  话说我记得有个无名杀教程手册呢,那个挺方便的,只不过现在怎么找不到了...


                  IP属地:河南来自Android客户端10楼2018-01-21 12:44
                  收起回复
                    漏了技能组,呃。。。有空再补一下


                    IP属地:广东11楼2018-01-21 12:44
                    回复
                      好帖,虽然依旧不太会


                      IP属地:河南来自Android客户端12楼2018-01-21 12:58
                      收起回复
                        怎么删除或者修改非扩展武将技能呢


                        IP属地:江苏来自Android客户端13楼2018-01-21 21:34
                        收起回复
                          楼主大赞


                          来自Android客户端14楼2018-01-21 21:49
                          回复
                            老生常谈的感觉


                            IP属地:江西来自Android客户端15楼2018-01-22 00:14
                            收起回复
                              emmm,这种东西都能水


                              IP属地:中国香港来自手机贴吧16楼2018-01-22 07:02
                              收起回复