setmetatable(Object, {
__index = function(self, key)
if key == 'Add' then
return function(Tag, modelId, pos, scale, rotate, heading, nocollision)
-- ...
if key == value then
превратить метаметод __index в таблицу с методами.local NewObject_mt = {}
NewObject_mt.__index = NewObject_mt
function NewObject_mt:Delete()
for k, v in ipairs(Object.Pool) do
if v.Handle == self.Handle then
table.remove(Object.Pool, k)
end
end
deleteObject(self.Handle)
end
function NewObject_mt:SetHeading(angle)
setObjectHeading(self.Handle, angle)
end
function NewObject_mt:SetRotation(rotationVector)
setObjectRotation(self.Handle, rotationVector.x, rotationVector.y, rotationVector.z)
end
function NewObject_mt:GetPos()
local result, x, y, z = getObjectCoordinates(self.Handle)
return result and Vec3(x, y, z) or Vec3(0, 0, 0)
end
local Object_mt = {}
Object_mt.__index = Object_mt
setmetatable(Object, Object_mt)
function Object_mt:Add(Tag, modelId, pos, scale, rotate, heading, nocollision)
local Result, Handle = pcall(createObject, modelId, pos.x, pos.y, pos.z)
assert(Result, 'Error creating object with tag "'..Tag..'": '..Handle)
if Result then
if scale then setObjectScale(Handle, scale) end
if rotate then setObjectRotation(Handle, rotate.x or 0, rotate.y or 0, rotate.z or 0) end
if heading then setObjectHeading(Handle, heading) end
if nocollision then setObjectCollision(Handle, not nocollision) end
local NewObject = { Handle = Handle, Tag = Tag or '__none__', Pos = pos }
setmetatable(NewObject, NewObject_mt)
table.insert(Object.Pool, NewObject)
return Object.Pool[#Object.Pool]
else
print('ERROR CREATING OBJECT:', Handle)
end
end
function Object_mt::DestroyAll()
-->> Delete objects
for k, v in ipairs(getAllObjects()) do
for ind, data in ipairs(Object.Pool) do
if v == data.Handle then
table.remove(Object.Pool, ind)
deleteObject(v)
break
end
end
end
-->> Delete bot
if doesCharExist(Map.Bot) then
deleteChar(Map.Bot)
end
end
function Object_mt::GetByTag(tag)
local result = {}
for k, v in ipairs(Object.Pool) do
if v.Tag:find(tag) then
table.insert(result, v)
end
end
return result
end
function Object_mt::GetByFullTag()
local result = {}
for k, v in ipairs(Object.Pool) do
if v.Tag == tag then
return v
end
end
return nil
end
У своего домашнего тигра спрашивает, а как же ты думал он идеи на ≈300 скриптов находитЧап, тебе как идея пришла такой скрипт то создать? 😃
для работы нужен только мунлоадер и его стандартные библиотеки (vector3d, memory и inicfg идут вместе с мунлоадером)киньте ссылки на либы плисс
сегодня пофикшуПосмотреть вложение 175403
как зайти в забвей сёрф то? не подключаеться при реконекте
Что происходит когда подрубаешь это? ты стоишь на месте или afk?Subway-CJ - скрипт с помощью которого вы можете отдохнуть от заебавшего сампа и хорошо провести свое время!
Скрипт позволяет вам играть в игру Subway Surfers в SA:MP!
Активация:
/subwaycj
Установка:
СКАЧАТЬ АРХИВ
- скачать файл
Subway-CJ.lua
из вложений- переместить файл
Subway-CJ.lua
в папкуmoonloader
- скачать архив (ссылка ниже)
- переместить архив в папку moonloader (с заменой, если она потребуется)
(!) Скрипт отлично работает с ConnectSandbox
(!) Препятствия генерируются рандомно
(!) Во время игры в мини игру вы встаете в афк для других игроков
Делитесь своими результатами!Все звуки хранятся в папкеmoonloader\resource\Subway-CJ by chapo
.
Дефолтные звуки:
MAIN_PLAY.mp3
- фоновая музыка
SOUND_COIN.mp3
- звук поднятия монеты
SOUND_LOBBY_PLAY_CLICK.mp3
- звук начала игры (когда игрок нажимает на пробел)
Рандомные звуки:
Рандомные звуки проигрываются когда игрок подбирает "наушники". Звук выбирается рандомно, однако название файла должно быть "SOUND_RAND_*ЦИФРА*.mp3
"