登錄後如何配置短免疫?
我幫助執行經過改裝的 FTB Direwolf20 1.10.2 伺服器(Forge 12.18.3.2185)。我想在登錄後給予玩家短暫的免疫時間,例如 20 秒,以彌補延遲/登錄時間,這通常會導致玩家在實際登錄之前死亡。
我該怎麼做呢?添加一個新的模組是可以的,但如果可能的話,我更喜歡原版的解決方案。我有對伺服器的 FTP 和 multicraft 訪問權限(不是 root 訪問權限)。
謝謝!
這是高度理論化的,但是,您可以創建一個計分板虛擬目標來計算玩家線上使用的秒數(或滴答聲),
/scoreboard objectives add NAME dummy DISPLAYNAME
然後讓命令塊在該目標上的每個玩家每滴答聲或每秒一次(無論您希望它有多長)使用/scoreboard players add @a NAME 1
. 抱歉,如果命令可能稍微偏離,我正在遠離我的電腦…接下來,要應用無敵效果(吸收或再生高水平),請嘗試將其放入重複的命令塊中effect @a[score_max_NAME=20] blahblah
如果您希望持續時間設置為 1,但是多少秒由最大值定義,在本例中為 20。但是問題出現了,當他們註銷或加入時,如何將他們的分數重置為零?這就是我的專業知識的終點。我建議創建一個新執行緒,詢問如何檢測玩家何時註銷,然後對該特定玩家執行操作。希望這有幫助!
你可以使用記分牌…
有一個條件叫做stat.leaveGame,你可以用它來檢測玩家何時重新加入伺服器,並對那些得分高於或等於1的玩家執行效果命令。之後,你可以設置得分為0,等待下一次
編輯:
添加記分牌目標(檢測離開遊戲)
/scoreboard objectives add leaveGame stat.leaveGame
對加入遊戲的玩家生效(之前離開過)
/effect @a[score_leaveGame_min=1] minecraft:resistance <time> 4
清除他們的分數
/scoreboard players set @a leaveGame 0