BossBoroda 7 Опубликовано 12 Сентября 2017 Поделиться Опубликовано 12 Сентября 2017 23 часа назад, dsh сказал: @BossBoroda если нет уборщика трупов, то движок убирает, ориентируясь на эти параметры corpse_remove_game_time_interval = 12 ; in hours stay_after_death_time_interval = 12 ; in hours А не подскажешь в каких файлах их искать? Ссылка на комментарий
Pir@t@s 36 Опубликовано 12 Сентября 2017 Поделиться Опубликовано 12 Сентября 2017 @BossBoroda ищи тут : gamedata\config\creatures\monsters.ltx Ссылка на комментарий
Pir@t@s 36 Опубликовано 12 Сентября 2017 Поделиться Опубликовано 12 Сентября 2017 Всем добра! У меня вопрос: Недавно в одном моде увидел такую функцию в bind_stalker.script Скрытый текст --------------------------------------------------------------------------- function actor_binder:net_spawn(data) -- Случайный спавн мутантов при заходе на локацию: spawn_sluchainji.random_spawn() printf("actor net spawn") level.show_indicators() self.bCheckStart = true self.weapon_hide = false-- спрятано или нет оружие при разговоре. weapon_hide = false-- устанавливаем глобальный дефолтовый флаг. if object_binder.net_spawn(self,data) == false then return false end db.add_actor(self.object) if self.st.disable_input_time == nil then level.enable_input() end self.weather_manager:reset() -- game_stats.initialize () if(actor_stats.add_to_ranking~=nil)then actor_stats.add_to_ranking(self.object:id()) end --' Загружаем настройки дропа death_manager.init_drop_settings() ogsm_funcs.on_game_load() --================================================================== if level.name() == "l03u_agr_underground" then get_console():execute("start_my_script_level_name_=_"..level.name()) spawn_sluchainji.podz_agro_rats() end if level.name() == "l10u_bunker" then get_console():execute("start_my_script_level_name_=_"..level.name()) spawn_sluchainji.podz_vjzhigatelya_rats() end --=============================================================== return true end ----------------------------------------------------------------------- Подскажите возможно ли вынести эту функцию в отдельный скрипт или она должна быть именно здесь? Если это возможно, то как это делать что бы не поймать вылет? Платформа ТЧ 1.004. Заранее большое спасибо за ответ Ссылка на комментарий
BFG 7 582 Опубликовано 12 Сентября 2017 Поделиться Опубликовано 12 Сентября 2017 @Pir@t@s Она у тебя уже вынесена в отдельный скрипт, вроде как. Смотри в скрипте spawn_sluchainji.script функцию random_spawn() Здесь она только опрашивается постоянно. И лишь в подземках в самом низу прописан спавн крыс, почему-то отдельно. Скорее всего это доспавн. 1 "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
Pir@t@s 36 Опубликовано 12 Сентября 2017 Поделиться Опубликовано 12 Сентября 2017 13 минут назад, BFG сказал: Она у тебя уже вынесена в отдельный скрипт, вроде как. Смотри в скрипте spawn_sluchainji.script функцию random_spawn() Вы совершенно правы, так и есть. Просто,я хотел при помощи этой функции аномалии на локациях заспавнить. Потому что, у меня получается так. Скрытый текст Если я спавню аномалию через скрипт на болоте, то при переходе к примеру на кордон эта аномалия появляется так же на кордоне. А по планам, хотелось бы заспавнить конкретные аномалии на конкретных локациях. К примеру "Туман" только на болотах и янтаре, а не по всей зоне. Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 13 Сентября 2017 Поделиться Опубликовано 13 Сентября 2017 @AndreySol Цитата Сделать вместо файла, как я понял, из которого идет выборка имен и погонял, табличку, которую заполнять именами и прозвищами реальных неписей. Затем выборку делать уже из этой таблички. Прости за долгий ответ и за мою приставучесть. Я понял о чем ты только сейчас. когда перечитал переписку. Сделать руками табличку существующих ИМЯ+ПРОЗВИЩЕ нпсей. Но в таком случае получается, что автором отправленных сообщений является великий рандом, случайно выдергивая ИМЯ+ПРОЗВИЩА из таблички. Как вариант... Но все равно немного не то. А вот я имел в виду, чтобы игра сама подставляла имя+прозвища реальных существующих нпс. Я проштудировал насклько мог скрипт news_main соляночный. Там существующие неписи спамят в чат о событиях. Там все ясно. Если в радиусе от нпс было событие, он спамит. Однако была функция, описывающая спам от нпс, которые кидали предложения о продаже в чат. То есть рядом с ними не было никаких событий. То есть игра сама как-то выбирает рандомно СУЩЕСТВУЮЩЕГО нпс и отправляет от его имени сообщение. Пробовал перебрать его функцию и из нее слепить свою, но вместо имени и прозвища была пустота. То есть в теории как-то сделать можно, но моих мозгов на это не хватает. Ссылка на комментарий
AndreySol 215 Опубликовано 13 Сентября 2017 Поделиться Опубликовано 13 Сентября 2017 @_Sk8_AsTeR_ Игра(а правильнее - движок) ничего подобного сам не делает. Насчет рандомности - есть луа-ф-ция, доступная в скриптах, которая является генератором случайных значений(ну почти случайных). Соответственно, скрипт, отвечающий за эту самую имитацию чата, дергает эту ф-цию, и используя полученное случайное значение выдергивает по нему попавшего "под раздачу" непися из вышеозначенных таблиц. Насчет нехватки мозгов - ты вот написал. что пытался переработать что-то под свои нужды. Вот и выложи, то что сделал, а уж кто смогет\захочет - поправят\подскажут\и т.д. Ссылка на комментарий
Pir@t@s 36 Опубликовано 13 Сентября 2017 Поделиться Опубликовано 13 Сентября 2017 Всем привет! Подскажите пожалуйста есть ли функция для SoC позволяющая поссорить между собой 2 нейтральные группировки через скрипт? Я нашел что то подобное в интернете, но только для Зова Припяти. Скрытый текст источник : http://st-md.ru/viewtopic.php?id=317 ------------------------------------------------- Николай ввёл несколько новых группировок в дополнение к имеющимся: bandit_alies - бандиты из группы Чапая killer_alies - Юпитерские наймы rasvet - Рассвет monolith_alies - Монолит в кинотеатре на Припяти alfa_force - Альфа Старые группировки: actor - единственный член группировки - ГГ dolg - Долг freedom - Свобода bandit - бандиты killer - наймы stalker - сталкеры monolith - Монолит Кроме того Николай прописал функцию изменения взаимоотношений между группировками. set_faction_to_faction_relation(from_faction,to_faction,type_relation) где from_faction - наименование группировки, которая будет менять отношение to_faction - наименование группировки, к которой будет изменяться отношение type_relation - отношение. Можно задавать следующие значения: "e" - установить вражеские отношения "n" - установить нейтральные отношения "f" - установить дружеские отношения Тут возникает широкое поле деятельности. Например, геймерам, истомлённым Альфой поссорить её с бандитами. Рисуем: set_faction_to_faction_relation("bandit","alfa_force","e") После выполнения функции, при встрече бандитов с Альфой "Кушай лимончик, падла!" - гарантирую. Но мы о краснухе. Краснуха возникает при отстреле члена группировки, заступе на территорию группы без разрешения и глючков игры. Вот этот последний случай и попробуем лечить. Рисуем лечение отношений между Чапаевцами и ГГ: set_faction_to_faction_relation("bandit_alies","actor","n") После выполнения функции Чапа и его команда станут жёлто-равнодушными к ГГ. Всё? Неа...А куда вписать эту функцию и как её запустить? Не буду изобретать паровоз: в файл меню, забиндив её на F6. Открываем \scripts\ui_main_menu.script Ищем elseif db.actor~=nil and dik==DIK_keys.DIK_F5 then self:mod_options() Ниже вставляем elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then set_faction_to_faction_relation("bandit_alies","actor","n") Сохраняем, закрываем, запускаем игру. В игре Esc-F6-Esc Что мы сделали? Теперь все вновь рождённые бандиты на Лесничестве (неудачный пример: эти не спавнятся) будут нейтральны к ГГ. А эти, уже рождённые? Будут красными. А их надо примирять с ГГ персонально. Надо перебрать все объекты на уровне, отфильтровать сталкеров с нужной группировкой и каждого примирить с ГГ. Постреляем, к примеру в Долговцев - они стали красными. Лечим. Находим в томже файле меню: elseif db.actor~=nil and dik == DIK_keys.DIK_F5 then self:mod_options() --после вставляем фрагмент: elseif db.actor~=nil and dik == DIK_keys.DIK_F6 then local id, obj, kto for id=0, 65535 do obj = level.object_by_id(id) if obj and IsStalker(obj) then kto = obj:character_community() if (kto == "dolg") then obj:force_set_goodwill(0, db.actor) --0 - нейтрал, 5000 - друг, -5000 - враг end end end Видим красных долговцев - жмём Esc-F6-Esc Можно перекрашивать и другие кланы, заменив "dolg" на, например "bandit" Всё! Ссылка на комментарий
naxac 2 445 Опубликовано 14 Сентября 2017 Поделиться Опубликовано 14 Сентября 2017 (изменено) @_Sk8_AsTeR_, тебе же написали: В Tuesday, September 12, 2017 в 01:37, AndreySol сказал: перебрать все объекты в игре, которые являются сталкерами, и заполнить таблицу реально существующими(заспавненными) неписями Только таблицу заполняй не неписями, а их именами, получить которые можно из их нет-пакетов. Изменено 15 Сентября 2017 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 14 Сентября 2017 Поделиться Опубликовано 14 Сентября 2017 (изменено) Господа, выручайте! Подскажите, знатоки, как через функцию get_npc_name в скрипте news_main, например, вернуть имя абсолютно любого рандомного СУЩЕСТИВУЮЩЕГО нпс? Онлайнового или оффлайнового... Сама функция: Скрытый текст function get_npc_name(obj) local m_s_name = "" if (obj) then if (isGameObject(obj)) then if (obj.character_name) then m_s_name = obj:character_name() end else local ob = get_obj(obj.id) if (ob and ob.character_name) then m_s_name = ob:character_name() else if (amk and amk.read_stalker_params and IsNpcStalker(obj)) then local tbl = amk.read_stalker_params(obj) if(tbl and tbl.charname) then m_s_name = tbl.charname end end end end end if (m_s_name == nil) then m_s_name = "" end if (m_s_name == "") then --m_s_name = get_npc_community(obj) end return m_s_name end Посмотрел много примеров, как имена возвращаются из этой функции для разных других функций. Это все касается сообщений от НПС в чат. Торговля, увидели кого-то, увидели как мы сделали что-то и тдтп. Везде идет обращение к этой функции. У меня была идея сделать так, чтобы через эту функцию имя возвращалось для любого нпс, который находится от нас на определенном радиусе. Но по идее это будет касаться только онлайновых НПС, да и то у меня имена так и не возвращались. Вместо отправителя на экране была пустота. Приходило пустое сообщение ни от кого. Есть идеи, хорошие мои? Изменено 14 Сентября 2017 пользователем _Sk8_AsTeR_ Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 15 Сентября 2017 Поделиться Опубликовано 15 Сентября 2017 В 14.09.2017 в 10:53, naxac сказал: @_Sk8_AsTeR_, тебе же написали: Только таблицу заполняй не неписями, а их именами, получить которые можно из их нет-пакетов. Черт, да, понял. Блин, это будет наверное слишком сложно для моих мозгов, тк я только погружаюсь в пучину скриптования. А жаль, вышла бы неплохая фишка. Ладно, спасибо Ссылка на комментарий
Pir@t@s 36 Опубликовано 15 Сентября 2017 Поделиться Опубликовано 15 Сентября 2017 Всем привет! Скажите,возможно ли поссорить две нейтральных клана с помощью этого: function limansk(community1, community2) relation_registry.set_community_goodwill ("bandit", "killer", -500) end Или это работает только относительно актера? Ссылка на комментарий
aka_sektor 1 464 Опубликовано 17 Сентября 2017 Поделиться Опубликовано 17 Сентября 2017 Написали такую фразу: Цитата опасный объект заносится в дэнжер менеджер Я так понимаю, связано с xr_danger.script ? Как это в игре выглядит? Тут имеется ввиду реакция AI на звук. Предполагаю, что NPC начинает искать врага, пока не убьет. Так ли это? Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
KERABITE 2 Опубликовано 17 Сентября 2017 Поделиться Опубликовано 17 Сентября 2017 Привет нужна помощь STALKER Clear Sky remake v 1.1.5.7 . Переносимый вес изменил везде и в system и в actor и в античит файле . Но не знаю как отключить ограничение по переносимому обьему инвентаря . как сделать какой скрипт? Пожалуйста помогите памагите. Прошу вас 2 Ссылка на комментарий
Akcok 164 Опубликовано 22 Сентября 2017 Поделиться Опубликовано 22 Сентября 2017 Заранее предупреждаю, я ноль в скриптах и могу не знать обычных нюансов. В чём проблема. В скрипте есть тонна local. Например: local wave_bloodsucker1_l4 = { mob = {"bloodsucker_game1", "bloodsucker_game2", "bloodsucker_game3"}, pos = {39,-2.13,7.9,20578,3232} } Всё это нужно думаю понятно зачем. Однако при большом количестве таких штуковин появляется вот такая ошибка: main function has more 200 local variables И как бороться с этой дичью? 1 Ссылка на комментарий
aka_sektor 1 464 Опубликовано 22 Сентября 2017 Поделиться Опубликовано 22 Сентября 2017 В 17.09.2017 в 13:19, KERABITE сказал: как отключить ограничение по переносимому обьему инвентаря Объём инвентаря это скриптовый мод. В скрипте очевидно будет выключатель вида: true/false Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
naxac 2 445 Опубликовано 23 Сентября 2017 Поделиться Опубликовано 23 Сентября 2017 (изменено) Цитата main function has more 200 local variables ...как бороться...? @power-cat, написано же: главная функция имеет более 200 локальных переменных. Уменьшай их количество. Изменено 23 Сентября 2017 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
AndreySol 215 Опубликовано 23 Сентября 2017 Поделиться Опубликовано 23 Сентября 2017 (изменено) 12 часов назад, power-cat сказал: main function has more 200 local variables - как выше подсказали - уменьшай кол-во локальных переменных; - распределить функционал в несколько скрипт-файлов, соответственно +200 переменных с каждым файлом. А вообще, чтоб дать тебе дельный совет, необходимо видеть код скрипта\тов, чтоб понять на кой там объявляется 200+ локальных таблиц и как они потом используются... Изменено 23 Сентября 2017 пользователем AndreySol Ссылка на комментарий
naxac 2 445 Опубликовано 23 Сентября 2017 Поделиться Опубликовано 23 Сентября 2017 @AndreySol , похоже, для спавна зверья.. Раз так много маленьких табличек и все они одинаковой структуры, то можно просто собрать их все в один большой массив. Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Akcok 164 Опубликовано 23 Сентября 2017 Поделиться Опубликовано 23 Сентября 2017 Так это... Они могут и не использоваться. Допустим с окончанием до l3 юзаются, а если скопировать, заменить на l4,l5..., и просто вставить в скрипт (опять таки никакая функция их не подхватывает) всё равно вылет. P.S. Если что можно в ЛС. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти