道具发射器
这段示例代码修改了武器,使其发射道具而不是普通子弹
此代码片段使用了来自 default-weapons 包的 AR4 武器。将其添加到 Package.toml 的 packages_requirements 中,以便在你的包之前加载:
Package.toml
[script]
# ...
packages_requirements = [
"default-weapons",
]
Server/Index.lua
-- 从 default-weapons 包生成一把武器,靠近地图原点
local my_weap = AR4(Vector(200, 0, 100), Rotator())
my_weap:SetDamage(0)
my_weap:Subscribe("Fire", function(weapon, shooter)
local control_rotation = shooter:GetControlRotation()
local forward_vector = control_rotation:GetForwardVector()
local spawn_location = shooter:GetLocation() + Vector(0, 0, 40) + forward_vector * Vector(200)
-- CollisionType.StaticOnly 使茶壶仅与世界碰撞,因此不会击中射手
local prop = Prop(spawn_location, control_rotation, "nanos-world::SM_TeaPot_Interior", CollisionType.StaticOnly)
prop:AddImpulse(forward_vector * Vector(10000), true)
-- 10 秒后清理它
prop:SetLifeSpan(10)
end)