PLAYER = FindMetaTable 'Player'
function PLAYER:pupsik()
return 'что-то вернули'
end
--не важно как вызывается (пример)
for k,v in pairs(player.all()) do
v:pupsik()
end
--мне нужно что бы оно возвращало мне того кто активировал
--без хука тут явно не обойтись.
Более подробно:
Мне нужно чтобы когда игрок как либо(не важно) активировал pl:pupsik() мне вернуло не кого он активировал (pl) а кто активировал
наглядный пример
Игрок Player [2][Player2] активировал pupsik
Player [1][Player]:pupsik()
и ему вернуло Player [2][Player2] хоть он и указал Player [1][Player]
Хука вызова функции нет, но есть возможность ее переписать.
local PLAYER = FindMetaTable 'Player'
local oldpupsik = PLAYER.pupsik
function PLAYER:pupsik()
print(tostring(self)..' юзанул пупсик')
oldpupsik(self) -- вызов ply:pupsik() аналогичен ply.pupsik(ply)
end
Я не совсем понял, что значит “игрок активировал :pupsik()”. Ты имеешь в виду то, что игрок будет каким-то образом запускать на сервере :pupsik() на другом игроке?
В таком случае тебе придется использовать net-сообщения или консольные команды, в которых у тебя есть переменная, отвечающая за того, кто вызвал команду и тебе не нужно что-то менять в :pupsik(), а просто использовать ее. Или передавать в качестве аргумента к :pupsik() игрока, который вызвал его