Привет.
Хотел узнать, можно ли как-то добавить анимацию игроку, которую будет воспроизводить игрок при нажатии клавиши или взаимодействии с определенным энтити?
Также, как в коде указывать игрока, как это самое энтити?
hook.Add("KeyPress", "PlayBendOverAnimation", function(ply, key)
if key == IN_USE then -- "E"
local tr = ply:GetEyeTrace()
if IsValid(tr.Entity) and tr.Entity:GetClass() == "entiti_nazvanie" then
ply:AnimRestartGesture(GESTURE_SLOT_CUSTOM, ACT_GMOD_GESTURE_BOW)
end
end
end)
А у “entiti_nazvanie”, в getclass, указывать игрока как нужно? Я имею в виду написание - “entity_player”?
И можно ли использовать акты не анимационные. Под такими я имею в виду: поклон, салют и пр. А акты, которые являются перезарядкой, ударом или прочей анимацией, которые часто в SWEPах используют?
Этот код будет проигрывать анимацию на любом расстоянии от энтити. Лучше добавить в функцию ENT:Use()
функцию вызова анимации. Акты перезарядки должны быть в списке всех актов
А как использовать ent:use, если там идет activator и caller, когда для animrestartgesture требуется ply и если указать этого ply, то будет выдавать ошибку?
Узнай, что такое ИМЯ объекта
А как внутри этой функции запустить анимацию, даже если через ConCommand act dance и прочие акты не запускаются? ENT:AcceptInput(name, activator, caller, data)
То что у тебя не работает act
связано с тем что он отключен в даркрп. На эту функцию он никак не повлияет.
function ENT:AcceptInput(name, activator, caller, data)
activator:DoAnimationEvent(ACT_GMOD_TAUNT_DANCE) -- от первого лица не видно
end
Попробовал, все равно ничего не происходит, либо просто не видно от самого клиента.
Еще вопрос. Как отключить фонарик для игроков в целом, но включать возможность им пользоваться игроку, который купил определенное энтити?
Ну от первого лица, да, не видно. Поставь камеру и посмотри на себя.
Чтобы отключить фонарик:
local function boughtEnt(ply)
-- проверка на покупку энтити, если купил, то верни true
end
hook.Add('PlayerSwitchFlashlight', 'entity', function(ply, state)
if state and not boughtEnt(ply) then return false end
end)