Skip to content

Tool và đội ​

Tool (công cụ) ​

Tool là thứ người chơi cầm và dùng: kiếm, cuốc, đuốc. Các part của nó nằm bên trong; part tên Handle được cầm trên tay, và mọi part khác nằm ngay trong Tool được vẽ cùng, đứng đúng vị trí so với Handle như lúc bạn dựng (chắn kiếm, đầu cuốc).

Làm tool trong KHIM Engine ​

  1. Chèn một Tool (Insert Object > Players > Tool) vào ReplicationService hoặc StorageService.
  2. Bên trong, dựng tool bằng các part. Đặt tên part tay cầm là Handle. Khi tay chỉ thẳng về trước, trục Y của Handle hướng lên và trục Z hướng về trước.
  3. Đưa nó cho người chơi bằng Script (bên dưới).

Một tool tối đa 32 part, mỗi part tối đa 8 unit.

Cho người chơi tool ​

Tool trong backpack (ba lô) của người chơi hiện trên thanh ở đáy màn hình; người chơi chọn bằng cách bấm hoặc phím 1-9, 0.

lua
-- Script: ai vào game cũng được một thanh kiếm
players.joined:connect(function(player)
    shared.Sword:clone().parent = player.backpack
end)

Tool trong game.starterPack được chép vào ba lô của mọi người chơi khi họ vào:

lua
shared.Sword:clone().parent = game.starterPack

Dùng tool ​

Thành viên
activatedNgười chơi bấm vào world khi đang cầm (chạy trên server)
equipped, unequippedLấy ra / cất đi
enabledTắt: bấm không làm gì
toolTipChú thích trên thanh công cụ

Cách đơn giản nhất để biết ai vung kiếm là nối event ngay lúc đưa tool:

lua
-- Script (ServerService)
players.joined:connect(function(player)
    local sword = shared.Sword:clone()
    sword.parent = player.backpack
    local lastSwing = 0

    sword.activated:connect(function()
        if time() - lastSwing < 0.5 then return end     -- thời gian hồi
        lastSwing = time()
        for _, other in players.all() do
            if other.name ~= player.name and (other.position - player.position).magnitude < 6 then
                other:damage(20)
            end
        end
    end)
end)

Từ script: player:equipTool(tool) đặt tool lên tay, player:unequipTools() cất đi.

Đội (Team) ​

Team là phe của người chơi. Nó hiện trong bảng người chơi, theo màu của đội, và tô màu tên trên đầu người chơi.

  1. Chèn các Team (Insert Object > Players > Team). Team nằm ở đâu trong world cũng là một đội của game.
  2. Đặt tên, chọn Color, và tick AutoAssignable cho những đội người chơi mới được vào.

Người chơi mới vào đội ít người nhất trong các đội auto-assignable. Từ Script:

lua
local red = world.Red                 -- một Team chèn trong World

player.team = red                     -- chuyển đội cho người chơi
player.neutral = true                 -- không thuộc đội nào

for _, p in red:getPlayers() do       -- mọi người trong một đội
    p:teleport(world.RedBase.position + vec3(0, 4, 0))
end
Thành viên
colorMàu của đội
autoAssignableNgười chơi mới được xếp vào
getPlayers()Ai đang ở đội

Cửa riêng của một đội ​

Mọi nhân vật đều trong nhóm va chạm Players, dù ở đội nào, nên cửa không thể chỉ cho một đội đi qua bằng va chạm. Hãy kiểm tra đội. Ở đây cửa căn cứ Đỏ đi xuyên được (CanCollide tắt), và ai không thuộc đội Red chạm vào sẽ bị đưa ra ngoài:

lua
local door = world.RedDoor
door.touched:connect(function(hit)
    local player = players.fromPart(hit)
    if player and (player.team == nil or player.team.name ~= "Red") then
        player:teleport(world.Lobby.position + vec3(0, 4, 0))
    end
end)