lua 遊戲開發 傳送)傳送陣例項

2021-10-08 10:38:18 字數 3117 閱讀 9477

teleport

moveto

teleport:在同乙個場景裡的玩家會受到遊戲迴圈的影響,可以通過teleport的方式,在不同場景制定不同的自然法則,燈光等。

moveto: 在同乙個place下的移動

這裡將說明如何建立乙個不同的場景並傳送。也會對簡單帶

teleport的指向是place的話,玩家會在同乙個伺服器中,傳送到不同的場景裡。玩家數受到伺服器限制。也可以通過傳送到不同的伺服器,這篇文章僅介紹place間的傳送。

不同的place的指令碼,事件,workspace,是不同的.不會存在相互的影響。可以用這樣的方法來串聯使用不同地形編輯器搭建的場景,載入不同的光源。也可以通過不同的迴圈,界定不同的遊戲法則。

當乙個場景沒有玩家時,會被伺服器給登出以節約資源。當需要傳送到新場景時,伺服器內沒有新場景會建立乙個新的場景,並執行**迴圈。之後有新的傳送會被現有的場景中。所以對於大廳等待固定時常然後傳送的遊戲會有無法解決的問題。

譬如大廳等待60秒,遊戲60秒。

當第一批大廳內玩家被傳走,大廳關閉。

在30s後,有新玩家進入伺服器,開闢新的大廳,開始計時。

當遊戲中的玩家返回到大廳時,他們會發現,下一句遊戲將會在30s後開局(甚至因為載入而更少)

而這個是由於規則本身帶來的問題。所以teleport並不適合於那些對時間有要求的遊戲。反而在自由探索世界是乙個很好的資源節約。

通訊延遲

小遊戲場景切換存在載入延遲大廳

遊戲 其中最為明顯的範例是 死亡跑酷.

而另一款小遊戲則使用全隨機下乙個遊戲,來規避這一種有些不愉快的遊戲體驗: 史詩迷你小遊戲.

順應使用者遊戲習慣還是進入遊戲時候載入等待(可以用遮擋),取決於你的需求。

適合自由世界的探索,將世界地圖劃分成為小塊的載入(模擬於天龍八部/誅仙/魔獸世界/劍俠情緣3/天涯明月刀)地圖的區分

對與不計時間,玩家可以自由選擇的大遊戲是更優的選擇.

在studio中無法呼叫傳送伺服器,需要到player中測試。

此處是乙個碰觸傳送陣的dome

local placeid_0 =

5411490997

--傳送場景id

local teleportservice = game:

getservice

("teleportservice"

)--伺服器呼叫

local

function

onparttouch

(otherpart)

local player = game.players:

getplayerfromcharacter

(otherpart.parent)

if player then

local players = game:

getservice

("players"

)local human=players:

getplayers()

local success, result =

pcall

(function()

return teleportservice:

teleportpartyasync

(placeid_0,human)

end)

--pcall函式第乙個返回值是函式的執行狀態(true,false),第二個返回值是pcall中函式的返回值。

if success then

local jobid = result

print

("players teleported to "

..jobid)

else

warn

(result)

endend

endscript.parent.touched:

connect

(onparttouch)

通過pcall和之後的if success語句,可以確保執行的安全。

小遊戲一般使用

hit.parent:

moveto

(position)

的方式實現傳送

通常是在進行當前遊戲時候 載入另乙個新的地圖。(也就是說,本輪投票需要在下一輪才能玩的到)通過這樣限制的減少了進入遊戲時候的卡頓現象。

兩個相互穿越的下水蓋

local teleportpart =

local partcdlist =

local toolman

for index =1,

#teleportpart,1do

--1,2,3

teleportpart[index]

.touched:

connect

(function

(hitpart)

--碰到時

local player = game.players:

getplayerfromcharacter

(hitpart.parent)

ifnot partcdlist[index]

and player == game.players.localplayer then

if(index%2)

~=0then

--單數

toolman=index+

1else

toolman=index-

1end

game.replicatedstorage.events.teleportevent:

fireserver

(teleportpart[toolman]

.position,hitpart)

partcdlist[toolman]

=true

teleportpart[toolman]

.transparency=

1wait(1

) partcdlist[toolman]

=false

teleportpart[toolman]

.transparency=

0--不讓一直判定

endend

)end

上訴**實現了乙個互通的穿越。並設定了cd,不讓來傳送

黃龍洞傳送陣

為了更好地能將中華五千年文化融入到科技教育中,他們決定到遠古時期去走一走。他們知道杭州黃龍洞有一座傳 送陣,可以傳送到古代。那天,他們來到了黃龍洞,發現傳送陣上有四個按鈕,每個按鈕上有個算式,說出2個正 整數a和b,然後代入這個算式,計算出來的結果如果能被2整除,那麼他們將回到夏朝,如果能被3整除,...

lua 傳送http請求

概述 lua 你可以理解為又一門比較輕便的語言,他對nginx做了很好的支撐。實現方式有兩種,如下 方式一 socket.http 包使用 直接解壓安裝,需要注意的是貌似makefile裡面指定了安裝的路徑,所以安裝的時候無需再制定路徑,直接 make make install 預設應該是在 usr...

郵件傳送例項

sendemail public result sendemail string id,string toemail,string ccemail 模板郵件傳送 param mailbean 郵件類 param toemails 收件人 param ccemails 抄送人 public resul...