迷你世界腳本腳本常見問題

腳本常見問題
?彼得兔
更新時間: 2024-05-22 17:54:44
在查閱開發者學院中的腳本API時,若有任何問題或建議,歡迎通過問卷進行反饋!【點我填寫問卷】
1.Block中的data在什么地方使用
data使用有具體需求,此處不建議開發者使用。開發者盡可能使用已封裝過的沒有data的新接口

?

?
2.自定義的Block和Item應該如何獲取ID (或 data?)(用于 setBlock、spawnItem 等)
有兩種辦法可以獲取到自定義類型的ID,<1>使用手持觸發器去點擊獲取 <2>依賴相關的觸發事件去打印ID 比如,如果是自定義的方塊或者生物,可以將其放置在地圖里然后用手持觸發器去點擊獲取信息,也可以通過觸發相關事件去打印出ID。 代碼示例如下:

Callback_ClickBlock = function(event_args)
? ?local blockid = event_args['blockid']
? ?Chat:sendSystemMsg('點擊的方塊ID為'..blockid)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], Callback_ClickBlock)
Lua
?

?

3.Block 接口中的 setBlockAllForNotify/setBlockAllForUpdate 方法的參數 flag 需要更多信息
setBlockAllForNotify/setBlockAllForUpdate方法中的flag和data參數對開發者來說都是不可用的,新版wiki描述上已修正

?

?

4.ObjectLib 方法里的 uuid 該如何獲取
目前開發者暫時沒法直接獲取到,我們會在下一版里迭代更新,詳情請關注更新通知

?

?

5.World:playSoundEffectOnPos 方法的 soundId 參數需要更多信息
最新一期Wiki會放出soundId[2]表,與觸發器內的音效庫同步

?

?

6.World 類中可否提供一個獲取有所有 Actor 的方法,或者歷遍其的方法 (非 World:getActorsByBox)
由于游戲機制及效率考慮的原因,此功能不給予提供。但我們會提供觸發器生物庫的ActorId[3]表

?

?

7.Event 需要更詳細的用法及參數解釋
Event即為開發者事件,是指玩家在游戲內進行了某些操作后觸發的對應事件。比如玩家點擊了某個方塊, 這時就會觸發玩家的點擊方塊事件,即名為"Player.ClickBlock"的事件,開發者只要注冊監聽該事件就能進行點擊方塊后的對應操作。 注冊監聽事件的方法如下:ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], function(event_args) ... end)。 而開發者事件在進行回調時會傳回來一些對應的參數,每個開發者事件對應的參數可參考wiki中的事件系統[4]部分。

?

?

8.UI 接口中的 setGBattleUI/setShapeLine/setShapeCircle 方法的參數 name 及 uiname 需要更多信息
1)setGBattleUI方法的參數name是string類型的枚舉值,可選值有如下幾種情況:

name?? ?value type?? ?value describe
'left_title'?? ?string?? ?左標題(第1)
'right_title'?? ?string?? ?右標題(/40)
'left_desc'?? ?string?? ?左描述(大吉大利,我是第一)
'left_little_desc'?? ?string?? ?左簡述(排名1)
'right_little_desc'?? ?string?? ?右簡述(戰勝4)
'battle_btn'?? ?boolean?? ?比分導航欄面板按鈕顯示
'result'?? ?boolean?? ?比賽結果顯示
'result_bkg'?? ?boolean?? ?比賽結果底板顯示
'reopen'?? ?boolean?? ?再來一局按鈕顯示
?

2)setShapeLine及setShapeCircle這兩個接口目前暫時無效果,可不用理會。后面自定義用戶界面(Custom UI)完成后可將其替代

?

?

9.UI:ShowScreenEffect 方法的 type 需要更多信息
該接口是用于顯示屏幕特效,其中type的值為1表示speedline,2表示powerline,3表示fog

?

?

10.Game:addRenderGlobalEffect 方法的 path 參數需要更多信息
path即為全局特效的路徑,目前可用的是path只有"particles/Fog.ent",詳情可參考范例集合[5]里面給出的例子

?

?

11.Game:getDefString 方法的 id 需要更多信息
不提倡開發者使用上述接口,鼓勵開發者使用自己定義的字符串

?

?

12.Player:setActionAttrState 方法的 actionattr 參數需要更多信息
setActionAttrState是設置玩家特殊屬性的狀態(例如可移動、可攻擊等)的接口,actionattr參數可參考PLAYERATTR_ENABLE[6]

?

?

13.Team 接口中的 teamid 參數需要更多信息
目前我們游戲中最多支持六個隊伍,六個隊伍的ID及顏色對應如下:?

? 隊伍?? ? ?對應顏色?? ? TeamID
?隊伍1?? ? 紅色?? ? 1
?隊伍2?? ? 藍色?? ? 2
?隊伍3?? ? 綠色?? ? 3
?隊伍4?? ? 黃色?? ? 4
?隊伍5?? ? 橙色?? ? 5
?隊伍6?? ? 紫色?? ? 6
?觀戰隊?? ? 無?? ? 999
Team相關接口中,可以teamid使用-1表示全部隊伍。玩家或生物如果不設置隊伍的話默認teamid是為0,也是無隊伍的一種

?

?

14.appendSpeed 接口中的x,y,z參數信息
該接口的參數x,y,z表示設定一個移動距離,需要傳入整數。

案例:假設把Z設定為5,當執行一次該接口后,那么objid就會向+z軸移動5格的距離

寫法:appendSpeed(objid,0,0,5)

?

?

15.getBlockPowerStatus 接口中的pos的使用方法
假設想判斷坐標為(7、7、7)位置的方塊通電狀態

正確的寫法:

local pos = {x=7,y=7,z=7}
Block:getBlockPowerStatus(pos)
Lua
常見錯誤寫法:

local pos = {7,7,7}
Block:getBlockPowerStatus(pos)
Lua
?

?

16.UI接口為什么沒有效果?
ui相關的接口暫時不能用,等后續更新。

?

?

17.如何讓游戲開始5秒后,每隔5秒生成一批生物?
--5秒后開始刷怪 每隔5秒刷一次 坐標(0,7,0) 怪物id3400 生成5只
local function r(e)
? ? local t=e.second
? ? if t>5 and (t-20)%5==0 then
? ? ? ? World:spawnCreature(0,7,0,3400,5)
? ? end
end
ScriptSupportEvent:registerEvent("Game.RunTime",r)
Lua
?

?

18.游戲坐標(x,y,z)分別指什么?
x:橫坐標,y:豎坐標,z:縱坐標;

(x,y,z)代表:坐標(x,z)高度y的位置,如圖:

?

?

19.如何查看某個方塊的坐標?
--點擊方塊顯示坐標
local function f2(e)
? ? local x,y,z=math.floor(e.x),math.floor(e.y),math.floor(e.z)
? ? Chat:sendSystemMsg("( "..x.." , "..y.." , "..z.." )")
? ? print(x,y,z)
end
ScriptSupportEvent:registerEvent('Player.ClickBlock',f2)
Lua
?

?

20.輸出的聊天框消息為什么會是星號(*)?
數字太多會被屏蔽,可以使用print輸出,然后打開“測試”,在運行日志里查看:

?

?

21.可以自定義NPC的AI嗎?
目前沒有相關接口。可以使用插件里自帶的一些AI。

?

?

22.為什么生成方塊接口那么卡?
不要一次性生成太多方塊,不同設備性能不同,一般盡量不要超過100。

?

?

23.如何修改玩家的血量和飽食度?或者跳躍高度、移動速度等屬性?
使用Player:setAttr(uid,attr,value)接口。

?

?

24.如何不允許玩家放置某種特定方塊?
--不允許放置的方塊id為1
local function f3(e)
? ? if e.blockid==1 then
? ? ? ? Block:destroyBlock(e.x,e.y,e.z)
? ? end
end
ScriptSupportEvent:registerEvent('Block.PlaceBy',f3)
Lua
?

?

25.為什么我用腳本生成的生物,離一定距離的話,隔段時間就消失了?
這是bug,已經提交修復,等待后續更新。

?

?

26.如何在游戲開始30秒后,從(0,7,0)到(15,10,15)范圍內隨機生成一些生物?
--30:游戲開始30秒后 (0,7,0)和(15,10,15):生成范圍 {{3400,5},{3401,6},{3402,7}}:生成的生物id和數量
local st=30
local x0,y0,z0=0,7,0
local x1,y1,z1=15,10,15
local actors={{3400,5},{3401,6},{3402,7}}
local function r(e)
? ? local t=e.second
? ? if t==st then
? ? ? ? local i=0
? ? ? ? for i=1,#actors do
? ? ? ? ? ? World:spawnCreature(math.random(x0,x1),math.random(y0,y1),math.random(z0,z1),actors[i][1],actors[i][2])
? ? ? ? end
? ? end
end
ScriptSupportEvent:registerEvent("Game.RunTime",r)
Lua
?

?

27.如何更改玩家模型?
修改狀態插件,在“效果”里選擇“更改玩家模型”。需要改模型的時候使用Actor:addBuff(objid,buffid,bufflv)接口給玩家添加這個狀態即可。

?

?

28.能否讓玩家在某個區域范圍內,自動向前加速?
local x0,y0,z0=0,7,0
local x1,y1,z1=15,10,15
local function r()
? ? local r,n,ps=World:getAllPlayers(1)
? ? local i=0
? ? for i=1,n do
? ? ? ? local r2,x,y,z=Player:getPosition(ps[i])
? ? ? ? if x>x0 and x<x1 and y>y0 and y<y1 and z>z0 and z<z1 then
? ? ? ? ? ? local r3,dx,dy,dz=Actor:getFaceDirection(ps[i])
? ? ? ? ? ? Actor:appendSpeed(ps[i],dx/math.abs(dx+dz),0,dz/math.abs(dx+dz))
? ? ? ? end
? ? end
end
ScriptSupportEvent:registerEvent("Game.Run",r)
Lua
?

?

29.如何查看生物id?
--點擊生物,輸出id
local function c(e)
? ? local r,id=Creature:getActorID(e.toobjid)
? ? Chat:sendSystemMsg(id)
end
ScriptSupportEvent:registerEvent('Player.ClickActor',c)
Lua
?

?

30.如何清空玩家背包?
使用Backpack:clearAllPack(uid)接口。

?

?

31.為什么使用Player:setPosition(uid,x,y,z)接口,玩家會卡在虛空無法移動?
如果設置的坐標距離過遠,不在玩家加載的區塊范圍內(視野范圍),就會導致玩家卡在虛空。可以使用“復活玩家到指定坐標”代替,即Player:reviveToPos(uid,x,y,z)接口。

?

?

32.如何修改生物屬性,比如血量、速度等?
使用Creature:setAttr(objid,attr,value)接口。

?

?

33.如何等待1秒后繼續執行?
threadpool:wait(1)
Lua
?

?

34.如何在指定位置生成生物?
使用World:spawnCreature(x,y,z,actorid,num)接口。

?

?

35.如何攻擊生物時,在生物頭頂顯示剩余血量?
local function Eath(e)
? ? local p,a=e.eventobjid,e.toobjid
? ? local r=Actor:isPlayer(a)
? ? if r~=0 then
? ? ? ? local r1,maxhp=Creature:getAttr(a,1)
? ? ? ? local r2,hp=Creature:getAttr(a,2)
? ? ? ? Actor:shownickname(a,true)
? ? ? ? Actor:setnickname(a,"#G"..math.floor(hp).."#R/"..math.floor(maxhp))
? ? end
end
ScriptSupportEvent:registerEvent('Player.AttackHit',Eath)
Lua
?

?

36.能否監聽玩家放置生物蛋的事件?
可以,玩家放置生物蛋會觸發“生物生成”事件。

?

?

37.如何實現玩家長按Shift加速?
監聽“長按按鍵事件”,判斷事件中的按鍵如果是Shift,就增加玩家速度。

?

?

38.如何獲取玩家手持道具的id?
使用Player:getCurToolID(uid)接口。

?

?

39.為什么計時器窗口會消失?
打開背包后計時器的文字會消失,目前不能解決。可以把顯示計時器放在“游戲運行”事件里。

?

?

40.如何設置玩家坐標?
使用Actor:setPosition(objid,x,y,z)或Player:setPosition(objid,x,y,z)接口。

?

?

41.能否在游戲運行中更改地圖游戲人數上限?
不能。但是可以監聽玩家進入游戲事件,然后判斷當前游戲人數是否大于某個值,是的話就傳送玩家到地圖外面。

?

?

42.能否把玩家踢出游戲?
可以設置玩家游戲結果為負,或者在“游戲運行”事件里設置玩家坐標的高度為負,讓玩家在地圖下方無法移動。

?

?

43.為什么設置了方塊無法被破壞,但還是會被炸掉?
目前“方塊無法被破壞”無法避免炸彈、激光等的破壞,只能在插件設置方塊抗性為-1,或者監聽方塊被破壞事件,破壞后重新生成。

?

?

44.玩家離開一定距離后,NPC會消失,這個bug可以解決嗎?
已經提交,等待后續更新。目前可以改成“玩家進入區域,生成NPC;玩家離開區域,移除NPC”來代替。

?

?

45.如何改變生物模型?
目前沒有這種接口。只能先移除再創建。

?

?

46.能否獲取整個地圖的生物數量?
無法獲取整個地圖的,但是可以獲取指定區域的生物數量。

?

?

47.如何清除某個生物?
使用World:despawnCreature(objid)或Actor:killSelf(objid)接口。

?

?

48.能否獲取指定坐標上的生物id?
不能從坐標獲取生物。可以從范圍獲取,獲取到的是整個區域內的生物。

?

?

49.如何讓生物出現幾秒后消失,如何再出現,一直循環?
as={}
function r2(e)
? ? if e.second%4==0 then
? ? ? ? _,as=World:spawnCreature(0,7,0,3400,5)
? ? elseif e.second%4==2 then
? ? ? ? for _,a in pairs(as) do
? ? ? ? ? ? World:despawnActor(a)
? ? ? ? end
? ? end
end
ScriptSupportEvent:registerEvent([=[Game.RunTime]=],r2)
Lua
?

?

50.能否移除家園寵物?
local function depet(e)
? ? local p,a=e.eventobjid,e.toobjid
? ? if Actor:isPlayer(p)==1001 then a=p end
? ? local _,id=Creature:getActorID(a)
? ? if id>10000 then
? ? ? ? World:despawnActor(a)
? ? end
end
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=],depet)
ScriptSupportEvent:registerEvent([=[Actor.Collide]=],depet)
Lua
?

?

51.如何設置生物的隊伍?
--玩家點擊生物,設置生物隊伍
--當點擊生物時會執行此函數
local function Player_ClickActor(event)
?? ?--設置生物所屬的隊伍
?? ?--第一個參數為要設置的生物在存檔中的id
?? ?--第二個參數為要設置為的隊伍id
?? ?Creature:setTeam(event.toobjid,1)
?? ?--在聊天框顯示
?? ?Chat:sendSystemMsg("objid為"..event.toobjid.."的生物被設置到了隊伍1")
end
--注冊監聽器,點擊生物時執行Player_ClickActor函數
ScriptSupportEvent:registerEvent([=[Player.ClickActor]=],Player_ClickActor)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76074.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76074.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76074.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

四、Appium Inspector

一、介紹 Appium Inspector 是一個用于移動應用自動化測試的圖形化工具&#xff0c;主要用于檢查和交互應用的 UI 元素&#xff0c;幫助生成和調試自動化測試腳本。類似于瀏覽器的F12(開發者工具),Appium Inspector 的主要作用包括&#xff1a;? 1.?檢查 UI 元素? …

android11通過白名單卸載安裝應用

目錄 1.源碼路徑: 2.準備文件package.conf: 3.安裝方法installPackagesLI 4.卸載方法deletePackageX 1.源碼路徑: frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java public static final String WHITELIST_PATH="/data/misc/pa…

qt mapFrom返回的QPoint和event->pos()區別和globalPos區別

mousePressEvent 和 eventFilter 里 event.pos 不一樣&#xff0c;一定要注意 eventFilter里event.pos 直接返回相對于label左上角的坐標&#xff0c;就不要再mapFrom mousePressEvent 里event.pos 返回是相對于窗口左上角的坐標&#xff0c;需要用mapFrom返回label左上角的…

Hadoop四 Hive語法

一 數據庫操作 Hive數據庫操作&#xff0c;與MySql有很多都是一致的 創建數據庫 create database if not exists myhive; use myhive;查看數據庫詳細信息 desc database myhive;數據庫本質上就是在HDFS之上的文件夾&#xff0c;是一個以.db結尾的目錄&#xff0c;默認存…

前端VUE框架理論與應用(10)

1、記住全局注冊的行為必須在根 Vue 實例 (通過 new Vue) 創建之前發生。 2、要注意,以 / 開頭的嵌套路徑會被當作根路徑。 這讓你充分的使用嵌套組件而無須設置嵌套的路徑。 3、注意:在 Vue 實例內部,你可以通過 $router 訪問路由實例。因此你可以調用 this.$router.push…

leetcode-單調棧26

關于單調棧的順序總結&#xff1a; 尋找右邊第一個比我大的&#xff1a;從左到右遍歷&#xff0c;棧單調遞減 尋找左邊第一個比我小的&#xff1a;從左到右遍歷&#xff0c;棧單調遞增 尋找右邊第一個比我小的&#xff1a;從右到左遍歷&#xff0c;棧單調遞增 尋找左邊第一個比…

Linux:安裝 CentOS 7(完整教程)

文章目錄 一、簡介二、安裝 CentOS 72.1 虛擬機配置2.2 安裝CentOS 7 三、連接遠程服務器&#xff08;擴展&#xff09;3.1 獲取虛擬機 IP 地址3.2 連接遠程服務器 四、結語 一、簡介 CentOS&#xff08;Community ENTerprise Operating System&#xff09;是一個基于 Linux 的…

Nautilus 正式發布:為 Sui 帶來可驗證的鏈下隱私計算

作為 Sui 安全工具包中的強大新成員&#xff0c;Nautilus 現已上線 Sui 測試網。它專為 Web3 開發者打造&#xff0c;支持保密且可驗證的鏈下計算。Nautilus 應用運行于開發者自主管理的可信執行環境&#xff08;Trusted Execution Environment&#xff0c;TEE&#xff09;中&a…

Git完全指南:從入門到精通版本控制 ------- Git 工作流程 (3)

Git工作流程完全指南&#xff1a;從入門到高效協作 引言 Git作為分布式版本控制系統的行業標準&#xff0c;其高效的分支管理能力是團隊協作的基石。本文將深入解析標準Git工作流程&#xff0c;助你掌握從代碼提交到團隊協作的全鏈路實踐。 一、Git核心概念速覽 三大工作區域 …

Distortion, Animation Raymarching

這節課的主要目的是對uv進行操作&#xff0c;實現一些動畫的效果&#xff0c;實際就是采樣的動畫 struct texDistort {float2 texScale(float2 uv, float2 scale){float2 texScale (uv - 0.5) * scale 0.5;return texScale;}float2 texRotate(float2 uv, float angle){float…

《vue3學習手記3》

標簽的ref屬性 vue3和vue2中的ref屬性&#xff1a; 用在普通DOM標簽上&#xff0c;獲取的是DOM節點 ref用在組件標簽上&#xff0c;獲取的是組件實例對象 區別在于&#xff1a; 1.vue3中person子組件中的數據父組件App不能直接使用&#xff0c;需要引入并使用defineExpose才可…

List基礎與難度題

1. 向 ArrayList 中添加元素并打印 功能描述&#xff1a; 程序創建一個空的 ArrayList 集合&#xff0c;用于存儲字符串類型的元素。向該 ArrayList 中依次添加指定的字符串元素。使用增強型 for 循環遍歷 ArrayList 中的所有元素&#xff0c;并將每個元素打印輸出到控制臺。 …

樓宇自控系統如何為現代建筑打造安全、舒適、節能方案

在科技飛速發展的當下&#xff0c;現代建筑對功能和品質的要求日益提升。樓宇自控系統作為建筑智能化的核心技術&#xff0c;宛如一位智慧的“管家”&#xff0c;憑借先進的技術手段&#xff0c;為現代建筑精心打造安全、舒適、節能的全方位解決方案&#xff0c;讓建筑真正成為…

綠算輕舟系列FPGA加速卡:驅動數字化轉型的核心動力【2】

工業與醫療&#xff1a;精準化的幕后推手 在工業4.0與智慧醫療領域&#xff0c;綠算輕舟FPGA加速卡通過實時信號處理與高精度控制&#xff0c;推動關鍵場景的技術升級。 工業自動化&#xff1a;在機器視覺質檢中&#xff0c;實現亞像素級缺陷檢測&#xff0c;產線檢測速度大幅…

uniapp-商城-22-頂部模塊

這里其實很復雜.我們在前面已經說了這個組件 shop-headbar ,這里來繼續說。 該組件實現一個高度的顯示以及圖片展示,包含logo 名稱 后臺管理以及避讓 導航欄 和 手機的狀態欄。 1 整體 代碼如下: <template><view class="headr" :style="{ hei…

利用Global.asax在ASP.NET Web應用中實現功能

Global.asax文件&#xff08;也稱為ASP.NET應用程序文件&#xff09;是ASP.NET Web應用程序中的一個重要文件&#xff0c;它允許您處理應用程序級別和會話級別的事件。下面介紹如何利用Global.asax來實現各種功能。 Global.asax基本結構 <% Application Language"C#&…

ReportLab 導出 PDF(頁面布局)

ReportLab 導出 PDF&#xff08;文檔創建&#xff09; ReportLab 導出 PDF&#xff08;頁面布局&#xff09; ReportLab 導出 PDF&#xff08;圖文表格) PLATYPUS - 頁面布局和排版 1. 設計目標2. 開始3. Flowables3.1. Flowable.draw()3.2. Flowable.drawOn(canvas,x,y)3.3. F…

Ubuntu下安裝Intel MKL完整指南

&#x1f9e0; Intel MKL 安裝指南&#xff08;Ubuntu 完整版&#xff09; 適用平臺&#xff1a;Ubuntu 18.04 / 20.04 / 22.04 更新時間&#xff1a;2025 年最新版&#xff08;適配 Intel oneAPI 2024&#xff09; ? 一、安裝方式選擇 安裝方式適合用戶群體特點推薦程度&…

HackMyVM Gigachad.

Gigachad 信息搜集 ┌──(root?kali)-[/home/kali] └─# nmap 192.168.214.85 Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-16 07:42 EDT Nmap scan report for 192.168.214.85 Host is up (0.00011s latency). Not shown: 997 closed tcp ports (reset) PORT S…

大模型全景解析:從技術突破到行業變革

目錄 一、引言&#xff1a;人工智能的新紀元 二、大模型發展歷史與技術演進 1. 早期探索期&#xff08;2015-2017&#xff09;&#xff1a;從"人工智障"到初具規模 RNN/LSTM架構時代&#xff08;2013-2017&#xff09; Transformer革命&#xff08;2017&#xf…