我会尽量精简语言,如何玩耍这个mod,但估计是做不到了
事实上,这个mod自带官方教程,游戏里摁C显示
==========================================================
首先,你要了解本mod的用途
本mod是提供一系列道具供玩家DIY各种各样的魔法来取悦玩家的MOD
嗯?DIY魔法,听上去很酷炫,能让你做各种各样的事情
那么我们选择一个奇葩切入点,来开始本篇“攻略”
首先我们合成一个术士编写台,唔。。。。算了,为了快速入门请开启你的创造模式,过滤@psi,拽出来一个术式编写台
术式的本质,就是那一个一个的格子里放置的一个一个带有功能的方块,
也就是像其他编程语言一样提供给你的功能函数
我们首先来编写一个简单的东西
{spellName:"test",uuidMost:138845229429704877L,validSpell:1b,spellList:[{data:{key:"selectorCaster"},x:0,y:0},{data:{params:{_power:4,_time:2,_target:3},key:"trickSpeed"},x:1,y:0},{data:{key:"constantNumber",constantValue:"1"},x:1,y:1},{data:{key:"constantNumber",constantValue:"1"},x:2,y:0}],uuidLeast:-6223086538722776251L}
每个法术,都是从启动式开始运作的,当整个法术运转开后,从第一行从左往右顺序依次寻找启动式,找到启动式后,
等启动式完成后,才会继续往下寻找,就像一个任务清单一样,完成一样,才能继续寻找下一个启动式,
第一行寻找完,寻找第二行,直到整个术士读取完,所以因为顺序原因,放在第一行的启动式一定会启动在第二行启动式的前面
为什么特地提到这点,我怕有些不了解的人误以为所有的启动式是一起启动的,并不是,你需要了解必须做完一件事,才能继续往下做另一件事,
了解了这个,你才能设计出比较有意思的延时法术,如果是没有休眠等这种流程控制的块,所有的启动式主观上是一起生效的
找到了启动式,然后循着该启动符提供的参数,也就是左边那个写着config下面那些指定的方向的方块,读取他需要的参数
比如说这个术式的启动符:速度
来介绍一下方块
<-表示的是输出,也就是说其他功能方块如果选择这个方块作为参数能获得的东西
->代表的是输入,会获得指定方向临近的块的输出
有编程基础的可以理解为function(?){return ?}
比如这个启动式:速度,会赋予一个单位速度buff,
下面的参数,输出,none,也就是啥也不输出,其他功能方块妄想在他那里得到什么
输入参数,目标,级别,时间,结合起来不难猜出是给一个特定单位一个特定级别的特定时间速度buff
啧,墨迹,但是还是要这么说,觉得墨迹请稍微忍耐一下
你需要注意一下目标后面的【】里的内容,表示的是一个参数类型,也就是说并不是他的参数你是可以随便给的
所以,目标,你需要给他一个目标参数,上面那个图config里目标参数点选的左
他左面那一格,放置的是
输出一个目标,根据描述,会返回施法的你
这样这个法术的作用就是给你一个1秒lv.1的速度buff
完结撒花,啊呸啊
从你的作弊里拽出来一个,术士子弹
手持子弹右击术士编写台,叮er,附魔完毕
作弊里再拽出来一个 cad配装台,
再拽一把创造版cad机体,啥是cad机体
cad机体就是用于施法的武器,嗯,一把枪,用来发射法术的(耶~
手枪想要射击子弹,需要经过cad配装器的配装,cad机体就是个机体,什么都干不了,
你还需要一些零件,需要的零件有:核心,电池,弹夹,可选的染料
把机体和三样必须的东西塞进装配台,取出的东西叫 术士辅助演算器
这部分内容我不想多逼逼,看隔壁内容前面带图的部分
https://www.mcmod.cn/post/374.html
到目前位置,我默认你已经把子弹塞进枪里了,对着空气右键即可使用,你就获得了一秒的速度1
“老师,能不能给力点”
emmmmm,我们刚才做了一个最简单的术士,当然,法术嘛,对敌最重要,幸好我们有爆炸,
爆炸就是艺术,这位同学我看你骨骼惊奇,你同意我的说法吧
我们把速度替换成爆炸
可以看到出现了个大×,爆炸方块上面也显示了红色的叹号,我们鼠标移动过去
提示第二列第一行的参数有不正确的
我们看到他需要的参数不是某个实体,而是位置,但是我们就想让某个实体爆炸呢,所以我们需要获取某个实体的位置
输入一个目标,输出一个位置,太好了,这样我们就可以对目标实行爆炸了,
我们把枪塞回配装台,取出子弹,右击配装台,叮er~,反操作放回去,拿出手枪
让我们来试试
随着一声巨响,什么都没有发生。。
也许我们需要改进一下爆炸的级别
我觉得这样就很好,试一下
嗯?没反应,不对啊,我设置的没问题啊,我擦勒,yes,这就是我想要的,只要走到怪的身边,然后使用这个。。。。
“等等等老师,我门不想搞自杀袭击啊,这绝对死定了吧,爆炸范围太高了吧,还有这这这。。。”
唉你们这帮人真麻烦,好吧,我们来改进一下,让爆炸直接爆炸在敌人身上,首先我们需要一个。。。。嗯?
好吧,我们再拖出来一个术士台,装配机
接下来介绍的是这个东西,获取指定实体所看到的实体
那么,当然是获取施法者的所看到的实体咯,但是这个功能块本身又输出一个实体,
那么我们还得获取一次这个实体的位置,才能提供给爆炸启动式
设置完的东西是这个样子的
让我们对准一个怪物开一枪
哦忘了说了,术士范围是焦点的周身32方块范围
关于焦点的定位,如果是普通款的子弹,也就是现在咱们用的这款,焦点就是施法者自身,如果是投射物那种的,焦点就是命中的物体
那么我们离近点再来一枪
夕阳红枪法。。。咳咳,那么我们再来改进一下,这次我们拿出一个投射型术士子弹,
我想这么多的基础讲解你们已经了解这个玩意的套路了,那么
拿出一个新的术士台,编写一个新的爆炸玩具
连接符是个好东西,他可以让我们够到其他够不到的块,
连接符输入进去啥,输出就是啥,
当然,一个块可以重复读取他的输出内容,
我们可以看到这里焦点的位置不仅被附近敌人选择符使用,也被离点最近运算符使用
但是注意,一个块,只运算一次,也就是说,第一次焦点的位置被功能块读取,
然后你程序里有一个休眠等待,这期间这个焦点走来走去走来走去,位置不定,
休眠结束有第二个功能块再去读这个实体位置块,那么还是第一次的读取时的数据
这就是最重要的两个特点
1,从左往右的启动顺序性
2,返回值的生成一次性
ps:程序最好设计成正方形
这个法术,就是子弹射击到焦点后,从这个焦点开始32范围搜索敌人,
返回一个实体表,然后从这个实体表抽出一个离焦点最近的实体,爆炸
只需要射击怪物的附近就好了,接下来介绍一下多启动式术士
{spellName:"起飞爆炸",uuidMost:-2456873739655953589L,validSpell:1b,spellList:[{data:{key:"selectorCaster"},x:1,y:0},{data:{params:{_target:1},key:"operatorFocusedEntity"},x:1,y:1},{data:{params:{_target:1},key:"operatorEntityPosition"},x:1,y:2},{data:{params:{_power:4,_position:1},key:"trickExplode"},x:1,y:3},{data:{params:{_x:0,_y:4,_z:0},key:"operatorVectorConstruct"},x:2,y:0},{data:{params:{_direction:1,_speed:4,_target:3},key:"trickAddMotion"},x:2,y:1},{data:{params:{_time:4},key:"trickDelay"},x:2,y:2},{data:{key:"constantNumber",constantValue:"3"},x:2,y:3},{data:{key:"constantNumber",constantValue:"1"},x:3,y:0},{data:{key:"constantNumber",constantValue:"6"},x:3,y:1},{data:{key:"constantNumber",constantValue:"10"},x:3,y:2}],uuidLeast:-8837667681986352571L}
这个术式使用了两个术士一个休眠
首先第一个术士附加运动在第二行被启动,把敌人带到了天上
运行到第三行休眠了10ticks (20为一秒)也就是半秒
最后运行到第四行的爆炸,把敌人放烟花
比较基础无趣的教程到此结束,下课