我的世界关于psi的补充—巨图慎入

我会尽量精简语言,如何玩耍这个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为一秒)也就是半秒

最后运行到第四行的爆炸,把敌人放烟花

比较基础无趣的教程到此结束,下课

Copyright © 2018-2023 PHP源码网 版权所有
PHP源码网 » 我的世界关于psi的补充—巨图慎入

提供最优质的资源集合

立即查看 了解详情