五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Crafttweaker(1.12.2)基礎(chǔ)1:ZenGetter,ZenSetter,ZenMethod

2022-11-20 13:50 作者:IChixiao  | 我要投稿

哈,熬過了入門部分,好玩的來啦!


zs腳本有三個特有的術(shù)語:ZenGetter,ZenSetter與ZenMethod。ZenGetter用于獲取特定對象的某種信息,ZenSetter用于設(shè)定特定對象的某種數(shù)據(jù),ZenMethod其實就是方法,既可能獲取信息又可能設(shè)定數(shù)據(jù)。


么說可能還是過于抽象了,我們跟著wiki慢慢來看:


、ZenGetter

https://docs.blamejared.com/1.12/en/Vanilla/Variable_Types/IIngredient#command-string

這里介紹的commandString就是典型的ZenGetter,在wiki中看到此類用法一要注意對什么對象使用,二要注意返回了什么類型——以此處的commandString為例,可以看到其位于IIngredient頁面下,因此顯然要對一個材料對象使用,形如:

舉個例子(如wiki所示):

那么返回了什么類型呢?wiki也講得很清楚了,返回的是一個字符串。


、ZenSetter

https://docs.blamejared.com/1.12/en/Vanilla/Items/IItemStack#zengetterszensetters

這里則用表格的形式展示了一系列ZenGetter,ZenSetter。我們先關(guān)注ZenSetter,在wiki中看到此類用法一要注意對什么對象使用,二要注意賦值為什么類型——以表內(nèi)的maxStackSize為例,可以看到其位于IItemStack頁面下,因此顯然要對一個物品堆對象使用,形如:

舉個例子:

那么賦值為什么類型呢?wiki也講得很清楚了,賦值為一個整型。


、ZenMethod

而關(guān)于ZenMethod,我們在之前的章節(jié)其實已經(jīng)多次見過了,入門2列出的一系列方法都是ZenMethod,在wiki中看到此類用法一要注意對什么對象使用;二要注意有無傳入?yún)?shù),若有參數(shù)則要注意需要多少參數(shù)、參數(shù)的類型是什么、參數(shù)是否可省略以及省略后默認是什么值,無參數(shù)則一定要注意不要忘了結(jié)尾的那對括號;三要注意有無返回值,若有返回值則要注意返回了什么類型,無返回值則說明這個ZenMethod可能用于設(shè)置數(shù)據(jù)(類似于ZenSetter),也可能用于引發(fā)一些“變化”或“事件”。


像……還是少了點什么?想必有人在看wiki時已經(jīng)敏銳的注視到了,maxStackSize既是ZenSetter,又是ZenGetter,那么用起來的時候不會搞混嗎?

答案是不會:

這里的前一個鐵錠.最大堆疊數(shù)是ZenSetter,后一個鐵錠.最大堆疊數(shù)是ZenGetter,在賦值時等號右邊的ZenGetter先返回值64(即鐵錠原本的最大堆疊數(shù)),等號左邊的ZenSetter再賦值為32(即64-32),兩者雖然同名但不會發(fā)生邏輯上的悖論。當然了,實際寫的時候大可不必這么麻煩,直接寫成:

即可,最終進入游戲后就可以發(fā)現(xiàn)鐵錠的最大堆疊數(shù)變了。


,那么接下來我們簡單地實戰(zhàn)一下:

如何修改某種方塊使之無法被左鍵采掘(已知這樣的方塊硬度為-1)?

首先既然要改方塊,那當然是在wiki > Vanilla > Blocks里尋找(不會還有人以為Vanilla是香草的意思吧),最終不難在IBlockDefinition處找到:

根據(jù)https://docs.blamejared.com/1.12/en/Vanilla/Blocks/IBlockDefinition#zengetterszensetters

不難發(fā)現(xiàn)有hardness這一ZenSetter,于是有:

但是這里的對象需要我們得到一個IBlockDefinition的實例,怎么獲得呢?我們需要找找有沒有相關(guān)的ZenGetter或ZenMethod能夠返回一個IBlockDefinition。

根據(jù)https://docs.blamejared.com/1.12/en/Vanilla/Blocks/IBlock#zengetters

不難發(fā)現(xiàn)有definition這一ZenGetter,于是有:

但是這里的對象需要我們得到一個IBlock的實例,所以我們還得找找有沒有相關(guān)的ZenGetter或ZenMethod能夠返回一個IBlock。

根據(jù)https://docs.blamejared.com/1.12/en/Vanilla/Items/IItemStack#block-casting

不難發(fā)現(xiàn)有asBlock()這一ZenMethod,于是有:

怎么返回一個IItemStack,相信你已經(jīng)熟得不能再熟了吧。假設(shè)我們要修改的方塊是仙人掌(仙人掌好扎手的),那么最終的答案就是:

進入游戲后就發(fā)現(xiàn)仙人掌無法再用左鍵采掘了(其實可以通過挖掉根部的沙子獲得)。


么基礎(chǔ)1就到此為止了,到此為止你已經(jīng)能夠脫離本系列直接根據(jù)wiki寫腳本了,請根據(jù)自己的需求大膽嘗試吧。

Crafttweaker(1.12.2)基礎(chǔ)1:ZenGetter,ZenSetter,ZenMethod的評論 (共 條)

分享到微博請遵守國家法律
临沧市| 衡阳县| 岑巩县| 徐州市| 方山县| 麻栗坡县| 连州市| 腾冲县| 大石桥市| 高雄市| 东丽区| 邵阳市| 思茅市| 上虞市| 嘉鱼县| 博白县| 靖西县| 德钦县| 当阳市| 文成县| 定远县| 新绛县| 福鼎市| 丽水市| 弋阳县| 陈巴尔虎旗| 金山区| 秀山| 西畴县| 邵武市| 芮城县| 塔河县| 察隅县| 英德市| 台中市| 泊头市| 佛学| 云龙县| 株洲市| 武川县| 新巴尔虎左旗|