我的枪有什么问题?

我得到的错误是

[ERROR] addons/armory station pack/lua/weapons/money_test.lua:31: attempt to call field 'Create' (a nil value)

1. unknown - addons/armory station pack/lua/weapons/money_test.lua:31

我的枪械代码在这里。

SWEP.PrintName      = "Money Test"
SWEP.Author     = "(Justin Yates)"
SWEP.Instructions   = "Left click to make it rain."

SWEP.Spawnable = true
SWEP.AdminSpawnable = true

SWEP.Primary.ClipSize   = -1
SWEP.Primary.DefaultClip  = -1
SWEP.Primary.Automatic    = false
SWEP.Primary.Ammo   = "none"

SWEP.Secondary.ClipSize   = -1
SWEP.Secondary.DefaultClip  = -1
SWEP.Secondary.Automatic  = false
SWEP.Secondary.Ammo   = "none"

SWEP.Weight     = 2
SWEP.AutoSwitchTo   = false
SWEP.AutoSwitchFrom   = false

SWEP.Slot     = 1
SWEP.SlotPos      = 2
SWEP.DrawAmmo     = true
SWEP.DrawCrosshair    = true

SWEP.ViewModel      = "models/weapons/v_pistol.mdl"
SWEP.WorldModel     = "models/weapons/v_hands.mdl"

function SWEP:PrimaryAttack()
  local money = ents.Create("spawned_money")
  money:SetPos(self:GetPos())
  money.dt.amount = 500
  money:Spawn()
  money:Activate()
end

它能工作,但会在控制台中不断出现 lua 错误。

点赞
用户1009655
用户1009655

如果我理解您的描述正确的话,您在客户端方面遇到了这个错误。

ents.Create() 是一种服务器端函数。要创建客户端实体,您需要使用 ents.CreateClientProp()

阅读有关我的 GMod(已经有一段时间,我编写了 GMod Lua..)尝试这样做:

function SWEP:PrimaryAttack()
  if SERVER then
    local money = ents.Create("spawned_money")
    money:SetPos(self:GetPos())
    money.dt.amount = 500
    money:Spawn()
    money:Activate()
  end
end
2014-05-10 18:53:09