mole venomous 3 262 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 1 минуту назад, Muzafir сказал: delta-update работает Таки будет работать, и не только там. Только процессор нагружает. Здесь могла быть ваша реклама. Ссылка на комментарий
Zander_driver 10 325 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 Только что, Muzafir сказал: Если вешаю на нет_спаун, выше, строчек --' Загружаем настройки дропа death_manager.init_drop_settings() Как только в перестрелке кого-либо убивают, получаю вылет с руганью на этот death_manager. script Если после него просто ничего не происходит. А может быть, death_manager не возвращает управление вызвавшей его функции, и где-то там внутре себя глухо виснет?.. Маловероятно, но сия дичь все бы объяснила. А таки попробуй свой код поставить выше death_manager-a. Ничего ему от этого сделаться не должно, если у него все нормально. А как вылетит - лог вылета в студию, т.е. сюда. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Muzafir 19 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 3 минуты назад, mole venomous сказал: Только процессор нагружает. Я это понимаю, поэтому и хочу сделать по-человечески. Только что намеренно написал название локации неправильно. Никаких вылетов. Выходит это условие не проверяется? Ссылка на комментарий
Zander_driver 10 325 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 Только что, Muzafir сказал: написал название локации неправильно. Никаких вылетов. Дык он "написанное" сравнивает с тем, что возвращает level.name(). В "написанном" что угодно может быть, вылета от этого не будет. Ты все же проверь так как я тебе написал. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
mole venomous 3 262 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 1 минуту назад, Muzafir сказал: Выходит это условие не проверяется Проверяется, но здесь вылета не получишь. Запроси выдачу ложного поршня после проверки локи и поймёшь. Здесь могла быть ваша реклама. Ссылка на комментарий
Muzafir 19 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 2 минуты назад, Zander_driver сказал: Дык он "написанное" сравнивает с тем, что возвращает level.name(). В "написанном" что угодно может быть, вылета от этого не будет. Ты все же проверь так как я тебе написал. ок, сейчас догнал Если поставить выше деф-менеджера вылет такой: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...a.l.k.e.r. soc\gamedata\scripts\death_manager.script:135: bad argument #1 to 'pairs' (table expected, got nil) Ссылка на комментарий
Zander_driver 10 325 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 Вот теперь интересно, а что у него в 135 строке. И нынешний код в net_spawn покажи) Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Muzafir 19 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 (изменено) Нынешний код: function actor_binder:net_spawn(data) 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 if (level.name() == "simeiz") and not has_alife_info("keep_base_defend_started") then self.object:give_info_portion("keep_base_defend_started") end --' Загружаем настройки дропа death_manager.init_drop_settings() return true end death_manager - стандартный. Я только в конце одной строки дописал новую группировку. На количество строк это не повлияло 135 строка - это for k,v in pairs(spawn_items) do --' Доспавниваем необходимое количество итемов: --' Необходимо составить список объектов которые могут быть заспавнены для персонажа local spawn_items = item_by_community[self.npc:character_community()] for k,v in pairs(spawn_items) do --' По каждому объекту необходимо получить зависимости if check_item_dependence(self.npc, k) == true then --' По каждому объекту необходимо получить количество local number = math.ceil(math.random(count_by_level[k].min, count_by_level[k].max)) --' Необходимо заспавнить нужное количество. create_items(self.npc, k, number, v) end end end Изменено 20 Августа 2020 пользователем Muzafir для наглядности Ссылка на комментарий
mole venomous 3 262 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 7 минут назад, Zander_driver сказал: а что у него в 135 строке Подозреваю, что у него в конфигах что-то не так по итемам на этой локации Здесь могла быть ваша реклама. Ссылка на комментарий
Zander_driver 10 325 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 Только что, Muzafir сказал: дописал новую группировку. Только что, Muzafir сказал: local spawn_items = item_by_community[self.npc:character_community()] А в настройки дропа эту группировку занес? Или заноси, или перед for добавляй проверку if spawn_items and type(spawn_items) == 'table' then Он же пытается получить настройки дропа для группировки... а потом их перебрать. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Muzafir 19 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 Вносил, точно помню. Сейчас перепроверю, может накосячил там где-то На всякий, настройки дропа - это death_items_by_communities.ltx? Проверил, как ты сказал - и название локации и инфопорция точно правильны Ссылка на комментарий
Zander_driver 10 325 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 Только что, Zander_driver сказал: if spawn_items and type(spawn_items) == 'table' then Проверку добавь тогда. 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. Ссылка на комментарий
Muzafir 19 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 В death_items_by_communities.ltx косяка нет. Я просто скопировал секцию и переименовал. Добавлю твою проверку. Еще раз спасибо. Ссылка на комментарий
Norman Eisenherz 279 Опубликовано 21 Августа 2020 Поделиться Опубликовано 21 Августа 2020 Здрасьте. Проблема при определении ячейки карты для спавна предмета. Читаю текущие координаты и позицию ячейки вот таким скриптом: Spoiler function sms(text) news_manager.send_tip(db.actor, text) end function coords(cell) local act = db.actor local pos = act:position() pos.x = math.modf(pos.x) pos.y = math.modf(pos.y) pos.z = math.modf(pos.z) sms("xyz = " .. pos.x .. ", " .. pos.y .. ", " .. pos.z) if cell then local lvid = act:level_vertex_id() local gvid = act:game_vertex_id() sms("lvid, gvid = " .. lvid .. ", " .. gvid) end end ТЧ, Кордон, крыша вагона над Кузнецовым: lvid = 359827, gvid = 97. Объект с такими параметрами ячейки спавнится в указанном месте. ЧН, Кордон, крыша элеватора: lvid = 310050, gvid = 571. Объект с такими параметрами ячейки обнаруживается на сервере, но остается невидимым. Если задать lvid = 25 и gvid = 472, как в секции [all.spawn] для Кордона, объект отспавнится правильно. Что изменилось в расчете позиций ячеек в ЧН и как получить действующие значения lvid и gvid? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
DibokDibokin 1 Опубликовано 21 Августа 2020 Поделиться Опубликовано 21 Августа 2020 (изменено) Здравствуйте. Я опять насчёт меток на ящиках. Способ по визуалу работает, но частично. В Кордоне например, метки не ставятся, в лог пишет "alife():object(id) ! invalid id specified". Но в Баре всё работает, в лог выводится: box object [physic_destroyable_object:1063] detected. visual=dynamics\box\box_metall_01 С способом по логике drop_box получше. Отображаются везде, но есть две мини-проблемы: 1) Если нажать ЛКМ или подвигаться, то метки пропадают. 2) После уничтожения ящика, метка всё еще остается. Исчезают после перезагрузки сейва. Изменено 21 Августа 2020 пользователем DibokDibokin Ссылка на комментарий
Капрал Хикс 500 Опубликовано 22 Августа 2020 Поделиться Опубликовано 22 Августа 2020 Что-то не едут у меня лыжи... Есть у меня скрипт на проверку статика заклинивания оружия: function jamupdate() local snd = sound_object([[actor\wpn_jammed\stalker_1]]) if get_hud():GetCustomStatic("weapon_jammed_static") and not snd:playing() then snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d) end end Который должен воспроизводить звук ГГ при заклинивании ствола... Куда его вешать на апдейт, чтобы статик отлавливался, в биндер актора? P.S. функция в _g.script: function on_actor_weapon_jammed() if has_alife_info("esc_trader_newbie") then game.start_tutorial("part_9_weapon") end if not has_alife_info("encyclopedy_tutorial_weapon") then db.actor:give_info_portion("encyclopedy_tutorial_weapon") end end Вообще рабочая в оригинале, там вроде туториал выводиться должен? Пробовал повесить туда функцию проигрывания звука - не работает. 1 Ссылка на комментарий
Zander_driver 10 325 Опубликовано 22 Августа 2020 Поделиться Опубликовано 22 Августа 2020 @Капрал Хикс, а на каком движке эти движенья делаются? Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Капрал Хикс 500 Опубликовано 22 Августа 2020 Поделиться Опубликовано 22 Августа 2020 @Zander_driver, ТЧ с X-ray extentions portable 232. Ссылка на комментарий
Zander_driver 10 325 Опубликовано 22 Августа 2020 Поделиться Опубликовано 22 Августа 2020 Только что, Капрал Хикс сказал: X-ray extentions На нем, если надобно отловить заклинивание ствола, делается это примерно так: -- вешать на апдейт local act_item = db.actor:active_item() if act_item then local wpn_state = act_item:get_wpn_int(nil, 652) if wpn_state == 7 then -- тут воспроизводить звуки. Состояние 7 - это заклинившее оружие. end end 1 3 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Капрал Хикс 500 Опубликовано 22 Августа 2020 Поделиться Опубликовано 22 Августа 2020 @Zander_driver, отлично всё работает, благодарствую, сейчас буду модифицировать под звуки в костюме с противогазом. А вот вопрос посложнее - как сию фишку с руганью реализовать для ЧН? OGSM CE 1.8, если что. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти