2015-01-08 4 views
0

Хорошо, я только что узнал о Lua несколько дней назад, и я попытался создать очень простой скрипт, который, конечно же, не Работа.Ошибка Gmod - Lua- 'Попытка индексировать поле' GM '(значение nil)

function GM:OnNPCKilled(victim, killer, weapon) 
local noise = Sound("sadviolin.wav")  
end  

Я получаю ошибку:

Attempting to index field 'GM' (a nil value)

Все, что я хочу сделать, это играть звук, когда NPC погибает.

+0

Почему каждый зовет, что бедный язык «LUA» во всех заглавных букв? В Википедии даже упоминается, что название языка - «Lua (/ luːə/loo-ə, от португальского: lua [lu. (W) ɐ] означает moon; ** явно не« LUA »[1]) * * "(выделение мое) –

+1

Это означает, что' GM' не существует в этом контексте кода. – greatwolf

+0

@Greatwolf Да, я это знаю. Я не знаю, как это изменить. – mysterypancake1

ответ

1

Вы используете только «GM: OnNPCKilled», когда вы создаете режим игры с нуля Используйте это вместо:

function FOnNPCKilled(victim, killer, weapon)

local noise = Sound("sadviolin.wav")
end
hook.Add("OnNPCKilled", "UniqueIdentifier1", FOnNPCKilled)

Btw, я установил вашу функцию, и я понимаю, что вы пытаетесь сделать, но код, который не будет воспроизводить звук при смерти игроков, вы создали только var со звуком по значению.

Для этого используется вместо этого:

function FOnNPCKilled(victim, killer, weapon)

surface.PlaySound("sadviolin.wav", victim:GetPos())

end

hook.Add("OnNPCKilled", "UniqueIdentifier1", FOnNPCKilled)

Смежные вопросы