phalcor 60 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 3 часа назад, AndrewMor сказал(а): бывает обидно: лежит труп, а подобраться никак - переход мешает. Я решил эту проблему временным отключением перехода (привожу пример для перехода Бар-АС): (Можно подвесить на кнопочки и пользоваться) local lev_ch --level-changer id - брать в allspawn (те, что есть изначально) или в sak.script (те, что даются по ходу игры) local dir --направление синей стрелочки (для переходов из sak.script) local levchm --наименование (для переходов из sak.script) --ПРИМЕР: Параметры для перехода Бар-АС (взято в sak.script) lev_ch=592 --если надо заспавнить lev_ch=-1 * lev_ch --если надо удалить (выбери что-то одно, другое закомментарь) dir=1 --направление стрелочки levchm="to_military" if lev_ch<0 then --удаляем левел-чейнджер lev_ch=-1 * lev_ch local lc = alife():story_object(lev_ch) alife():release(lc, true) else --создаём local spawn_id = alife():spawn_id(lev_ch) alife():create(spawn_id) --создаём указатель (синюю стрелочку для переходов полученных во время игры (в отличие от тех, которые взяты из allspawn - там стрелка сама создастся!) if levchm then local obj = story_object(lev_ch) map_spot(obj.id, "level_changer"..tostring(dir),levchm) end end Ссылка на комментарий
mole venomous 3 396 Опубликовано 13 Февраля 2021 Поделиться Опубликовано 13 Февраля 2021 По поводу артефактов. С самого начала использую скрипт art_mgr и всё мне нравится, кроме того, что порой арты спаунятся где-нибудь в недоступности для ГГ (за колючкой, например). ГГ их взять не может, мобы тоже там не ходят, вот и лежит артефакт там всё время. Но по легенде, на открытом воздухе он "тратится" и когда его condition менее нижнего предела, попросту удаляется. И вот тут моих знаний не хватает, что бы пользоваться стандартными ф-иями, банальные методы condition() и set_condition() приводят к вылету. Пришлось средствами m_netpk через биндер net_spawn отнимать у валяющихся артов понемногу кондиции (плюс-минус рандом) каждые несколько часов. 1 Здесь могла быть ваша реклама. Ссылка на комментарий
AndrewMor 527 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 10 часов назад, phalcor сказал(а): Я решил эту проблему временным отключением перехода Можно и так, конечно. @ted.80 Кстати, там из скриптов только bind_ggun.script. Как же его тогда игра увидит? Сталкер - наше всё! Ссылка на комментарий
ted.80 252 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 18 часов назад, AndrewMor сказал(а): Кстати, там из скриптов только bind_ggun.script. Как же его тогда игра увидит? А что, ещё что-то нужно? Попробуй это запустить - как есть и заспавни - "wpn_gravigun" 1 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
ARTLantist 14 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 А можно как-то на оригинальном движке изменить вес предмета через скрипт? И ещё вопрос: как можно реализовать объединение двух предметов при перетаскивании одного на другой, как прицел на автомат? Ссылка на комментарий
AndreySol 215 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 @ARTLantist Ответ на оба твоих вопроса - только движковые правки. 1 Ссылка на комментарий
I am Dead 912 Опубликовано 14 Февраля 2021 Поделиться Опубликовано 14 Февраля 2021 Кто знает как запомнить активный слот, а после выполнения функции вернуть слот который запомнили? Ссылка на комментарий
AndrewMor 527 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 9 часов назад, ted.80 сказал(а): А что, ещё что-то нужно? Потому и спрашиваю. Если никаких других скриптов не затрагивалось, как игра видит новый биндер? Сталкер - наше всё! Ссылка на комментарий
mole venomous 3 396 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 @AndrewMor так из конфигурации ствола, вроде, биндинг Здесь могла быть ваша реклама. Ссылка на комментарий
AndreySol 215 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 @I am Dead Есть ф-ции, которые позволяют получить и установить активный слот: int active_slot(); // текущий активный слот void activate_slot(number); // выбрать слот текущим А как сохранить - зависит от ситуации, ее только ты знаешь. Ссылка на комментарий
Marafon6540 760 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 2 часа назад, AndrewMor сказал(а): Если никаких других скриптов не затрагивалось, как игра видит новый биндер? Конфиг ствола ты прописываешь в weapons.ltx: #include "твой_ствол.ltx". В самом этом когфиге у тебя должна быть строка со сылкой на биндер, например script_binding = название_файла_биндера.init 1 Трилогия Апокалипсис. Упавшая звезда. Честь наемника. v. 1.2 УЗЧН v.1.3 + ОГСРх64 Последний сталкер v. 1.2 ПС v. 1.3 + ОГСРх64 Ссылка на комментарий
AndrewMor 527 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 (изменено) @mole venomous , @Marafon6540 Аа, сообразил... Биндер аномалий таким же образом будет работать? Изменено 15 Февраля 2021 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
I am Dead 912 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 @AndreySol Ситуация такая, делаю анимационные предметы для тч. Объясняю ситуацию:допустим активен у нас 1,2,3 слот и при использовании аптечки удаляется бинокль в 4 слоте,спавнится аптечка на базе бинокля и попадает в 4 слот, в котором мы заранее удалили бинокль, далее я делаю активным 4 слот, запускается таймер на удаление анимационного предмета и спавн бинокля обратно в слот, так вот, хочу сделать чтобы после выполнения всего ставился обратно тот слот который был до использования аптечки? Ссылка на комментарий
AndreySol 215 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 @I am Dead Может не стоит такой огород городить? Мне не интересно было такое, но вроде как имеется возможность отыграть нужную анимацию. Значит проще будет, по факту использования аптечки, задисаблить ввод(чтоб игрок не дергал ГГ), спрятать предмет текущего активного слота, отыграть анимацию и весрнуть все в исходное состояние. Но это лишь мое мнение, может кто более адекватное предложит... 1 Ссылка на комментарий
Zander_driver 10 334 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 @I am Dead уточни, для ТЧ или для OGSR-Engine? Во втором случае, нет никакой нужды обращаться к костылям. Можно использовать движковый script_vars_storage. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
I am Dead 912 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 @Zander_driver OGSR Engine, можно поподробней про этот самый script_vars_storage? @AndreySol Хмм, тогда уже другой вопрос, как отыграть анимацию не прибегая к такой схеме как у меня? Ссылка на комментарий
Colder 12 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 Как можно проверить что актор находиться в какой либо группировке? Ссылка на комментарий
mole venomous 3 396 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 @Colder function check_community(community) if db.actor then return db.actor:character_community() == community end return false end Скрытый текст if check_community("actor") then action 1 else action 2 end 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 15 Февраля 2021 Поделиться Опубликовано 15 Февраля 2021 3 часа назад, I am Dead сказал(а): можно поподробней про этот самый script_vars_storage? Конечно можно Это ведь, ты ТТ2 на OGSR переносил? Удивительно для меня, что этого не видел. Оно и год назад было там же. Ссылка оттуда. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
I am Dead 912 Опубликовано 16 Февраля 2021 Поделиться Опубликовано 16 Февраля 2021 (изменено) @Zander_driver Да, это я переносил тайные тропы, как раз таки войдет в обновление использование анимационных предметов. Возврат слота сделал немного иначе: Скрытый текст Пришлось сию конструкцию лепить через таймер, если без него то либо восстанавливается слот через который использовали предмет, либо устанавливается слот который был до использования предмета с невозможностью переключится на другой. Не знаю, правильно или нет, но функция работает и лагов,багов не вызывает. -- Таймер восстановления слота local slot_restore_timer = nil -- Запоминаем активный слот перед использованием предмета ogse.save_var( "store_slot", db.actor:active_slot() ) db.actor:give_info_portion("slot_restore") -- Восстанавливаем активный слот после использования предмета local loaded_slot = ogse.load_var_safe( "store_slot" ) local check_slot = db.actor:active_slot() if loaded_slot and check_slot ~= loaded_slot and db.actor:has_info("slot_restore") then db.actor:activate_slot( loaded_slot ) end -- Запускаем таймер на удаление поршня if slot_restore_timer ~= nil then slot_restore_timer:stop() end slot_restore_timer = slot_timer() slot_restore_timer:start() end function slot_restore_func() slot_restore_timer = nil db.actor:disable_info_portion("slot_restore") end -- Конструктор таймера удаления поршня class "slot_timer"(ogse_qt.quick_timer) function slot_timer:__init() super() self.limit = time_global()+3000 end function slot_timer:condition() return time_global() >= self.limit end function slot_timer:action() slot_restore_func() end Изменено 16 Февраля 2021 пользователем I am Dead 2 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти