Nazgool 250 Опубликовано 20 Июня 2016 Поделиться Опубликовано 20 Июня 2016 @PTB, В файле xr_effects.script смотри две первые функции. function disable_ui_elements function enable_ui_elementsТам всё предельно ясно. 1 Ссылка на комментарий
Romann 623 Опубликовано 20 Июня 2016 Поделиться Опубликовано 20 Июня 2016 А вообще для полетов камеры по локациям есть level.add_cam_effector2. Только тут нужно делать кат-сцену в X-ray SDK. Я делал кат-сцену, таким образом, вешал на рестриктор, это не помогло, остаётся худ и пушка в руках. Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 (изменено) @Romann, Ты наверное использовал функцию level.add_cam_effector() вместо level.add_cam_effector2(). Изменено 21 Июня 2016 пользователем TIGER_VLAD Ссылка на комментарий
Romann 623 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 Ты наверное использовал функцию level.add_cam_effector вместо level.add_cam_effector2. Вот функция: function blya_desant() level.add_cam_effector2("camera_effects\\blya_desant.anm", 30, false, "") local snd_obj = xr_sound.get_safe_sound_object([[helicopter\see_enemy_3]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end Вот так это выглядит: (кат-сцена с 2м.50с.) Чтобы снять видео, я скрыл худ, и убрал пушку вручную. 1 Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Romann 623 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 Кто может помочь написать биндер к оружию? Я начал делать, но т.к. я не скриптер много чего не могу понять. Чтоб тут лишнего не расписывать, у кого есть желание помочь пишите в личку. Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Kober(BRUC) 99 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 Добрый вечер. Был заспавнен предмет через скрипт, самым обычным способом: alife():create(section,position,lv,gm) Предмет в игре один. То есть не как хлеб или колбаса, которых много, а один. Как мне удалить этот предмет из игры? Ссылка на комментарий
Overfirst 631 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 @Romann, если ты вызывал из логики рестриктора фунцкию, то это не является правильным. Нужно юзать схему sr_cutscene, подробнее о ней можно узнать тут. 1 Ранее был известен под ником BoBaH_671. Ссылка на комментарий
PTB 8 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 @Kober(BRUC), Вот есть фу-ии в уроках: function del_pusto() local sim = alife() local se_obj = sim:story_object(888) --номер обьекта в game_stori_ids if se_obj then sim:release(se_obj, true) end end Незнаю подойдёт или нет, не проверял. В жизни много плохих моментов. Пытайся избавляться от них ! Ссылка на комментарий
dsh 3 824 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 Не подойдет. Что бы подошло, нужно после создания, ручками, назначить объекту story_id. А так, перебирать все объекты в цикле и встретив подходящую секцию, удалять и прерывать цикл. Самый простой вариант. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
ins33 16 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 (изменено) С помощью string.find получаю таблицу в которой есть строки с индексом _delet.Затем table.remove(tbl, _delet) пытаюсь очистить таблицу от всех строк _deletи ловлю вылет bad argument #1 to 'foreach' (table expected, got table) -- вместо таблицы получена таблица table.remove(obj, "_flame") --> bad argument #1 to 'remove' (table expected, got userdata) for a=10,65635,1 do local obj =level.object _by_id ( a ) if obj and string.fi nd ( obj:nam e(),"search_") then table.remove ( obj, _delete) По сути надо из таблицы:a_*, а_*2, а_*_3, а_delet, а_*_delet, а_*_конец_таблицыудалить все вхождения в delet.Или произвести действие только с:a_*, а_*2, а_*_3, а_*_конец_таблицыисключая а_delet, а_*_delet Или может надо вообще по другому получать таблицу? @dsh, local sObj = alife():object("esc_wolf") Изменено 21 Июня 2016 пользователем ins33 Ссылка на комментарий
dsh 3 824 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 local sObj = alife():object("esc_wolf") И чего? esc_wolf сидит в all.spawn, поэтому его можно достать по имени. А вот если ты его скриптово заспаунишь по секции, то имя у него будет не "esc_wolf", а какое-нибудь "esc_wolf12345". dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Eugen81 1 008 Опубликовано 21 Июня 2016 Поделиться Опубликовано 21 Июня 2016 (изменено) Предмет в игре один. Как мне удалить этот предмет из игры? Секция уникальная? Вот как @dsh говорит: function del_item() local obj for i=1,65534 do obj = alife():object(i) if obj and obj:section_name() == "секция_предмета" then -- ищем предмет alife():release(obj) -- удаляем break -- прерываем цикл end end end Изменено 21 Июня 2016 пользователем Eugen81 Ссылка на комментарий
naxac 2 447 Опубликовано 22 Июня 2016 Поделиться Опубликовано 22 Июня 2016 @ins33, а какая у тебя таблица? Непрерывная последовательность или ассоциативный массив? И вообще как-то странно все у тебя и непонятно. В первом случае можно сделать так: for i, v in ipairs(tbl) do if v:find("_delete") then table.remove(tbl, i) end endВо втором - так (если ключи - это строки) for k in pairs(tbl) do if k:find("_delete") then tbl[k] = nil end end table.remove(obj, "_flame") --> bad argument #1 to 'remove' (table expected, got userdata)Для table.remove первым аргументом передается таблица (последовательность), вторым - индекс, по которому надо удалить поле со смещением последующих индексов. Ты же передаёшь серверный объект и строку, для чего это вообще делается - не ясно.Почитай документацию по Луа. Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
dsh 3 824 Опубликовано 22 Июня 2016 Поделиться Опубликовано 22 Июня 2016 Я бы посоветовал, всем, никогда не удалять из таблицы изнутри цикла по ipairs. Во избежание граблей. Очень, очень плохая практика. Да, я знаю, что я Капитан Очевидность. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 22 Июня 2016 Поделиться Опубликовано 22 Июня 2016 (изменено) Не, на Капитана это не тянет. По тому что сейчас прибегут с новейшей сборкой lua 6.666, и будут доказывать, что в ней все работает как надо. Тем более что граблей здесь более чем одни, так что и с pairs() экспериментировать тоже не стоит. upd: мда, вот буквально сейчас переписываю очередное гениальное: for k, v in pairs( t ) do v:update() end blabla:update() if ... then t[self.object:id()] = nil end end Изменено 22 Июня 2016 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
abramcumner 1 159 Опубликовано 22 Июня 2016 Поделиться Опубликовано 22 Июня 2016 upd: мда, вот буквально сейчас переписываю очередное гениальное:А что не так? Луа запрещает только добавлять новые элементы во время итерирования по pairs, изменять и удалять можно. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 22 Июня 2016 Поделиться Опубликовано 22 Июня 2016 Который именно ? Сферический в вакууме ? Так в том и со взятием размера все хорошо после вообще любых операций. И где в нем написано про то, в какой именно момент и что он меняет в таблице ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Nazgool 250 Опубликовано 22 Июня 2016 Поделиться Опубликовано 22 Июня 2016 (изменено) t=nil не удаляет поле, а изменяет его значение (хоть и nil, но тоже ведь значение)А вот table.remove выполняет pop, т.е. именно удаляет поле. Или я вообще не понял о чем тут идет речь? Изменено 22 Июня 2016 пользователем Nazgool Ссылка на комментарий
Malandrinus 615 Опубликовано 22 Июня 2016 Поделиться Опубликовано 22 Июня 2016 @Nazgool, с точки зрения стандарта Lua запись nil в поле эквивалентно его удалению. Детали реализации могут отличаться, но это уже поведение стандартом никак не регламентируемое. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 22 Июня 2016 Поделиться Опубликовано 22 Июня 2016 А в какой момент срабатывает уборщик, который, собственно, и удаляет ? Или ВО ВСЕХ без исключения реализациях lua все эти nil в таблицах лежат пожизненно ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти