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
- Chèn một Tool (Insert Object > Players > Tool) vào ReplicationService hoặc StorageService.
- 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.
- Đư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.
-- 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:
shared.Sword:clone().parent = game.starterPackDùng tool
| Thành viên | |
|---|---|
activated | Người chơi bấm vào world khi đang cầm (chạy trên server) |
equipped, unequipped | Lấy ra / cất đi |
enabled | Tắt: bấm không làm gì |
toolTip | Chú 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:
-- 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.
- Chèn các Team (Insert Object > Players > Team). Team nằm ở đâu trong world cũng là một đội của game.
- Đặ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:
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 | |
|---|---|
color | Màu của đội |
autoAssignable | Ngườ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:
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)