Zander_driver 10 333 Опубликовано 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 394 Опубликовано 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 333 Опубликовано 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 394 Опубликовано 20 Августа 2020 Поделиться Опубликовано 20 Августа 2020 7 минут назад, Zander_driver сказал: а что у него в 135 строке Подозреваю, что у него в конфигах что-то не так по итемам на этой локации Здесь могла быть ваша реклама. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 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 333 Опубликовано 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 309 Опубликовано 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 Ссылка на комментарий
Капрал Хикс 522 Опубликовано 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 333 Опубликовано 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. Ссылка на комментарий
Капрал Хикс 522 Опубликовано 22 Августа 2020 Поделиться Опубликовано 22 Августа 2020 @Zander_driver, ТЧ с X-ray extentions portable 232. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 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. Ссылка на комментарий
Капрал Хикс 522 Опубликовано 22 Августа 2020 Поделиться Опубликовано 22 Августа 2020 @Zander_driver, отлично всё работает, благодарствую, сейчас буду модифицировать под звуки в костюме с противогазом. А вот вопрос посложнее - как сию фишку с руганью реализовать для ЧН? OGSM CE 1.8, если что. Ссылка на комментарий
aromatizer 4 429 Опубликовано 22 Августа 2020 Поделиться Опубликовано 22 Августа 2020 (изменено) 19 минут назад, Капрал Хикс сказал: буду модифицировать под звуки в костюме с противогазом Как сделаешь, выложи пожалуйста: давненько сам подумывал о такой полезной фиче. Кстати, что думаешь на счет озвучки необходимости перезарядки оружия, когда закончились патроны в магазине? Изменено 22 Августа 2020 пользователем aromatizer 1 Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
Lieutenant Novikov 15 Опубликовано 22 Августа 2020 Поделиться Опубликовано 22 Августа 2020 Здравствуйте. Столкнулся с такой проблемой: в COC (мод на ЗП) решил отредактировать рупоры, чтобы было как в ТЧ (выключались на ночь, а при нападении противника на базу играли сигналы тревоги), и вообщем-то прописал логику и т.д. Но натолкнулся на такую проблему: необходимо в логике прописать info_portion, ну чтобы менялись звуковые дорожки, но для этого его нужно выдать, насколько я понял через функцию. И вот какую функцию необходимо использовать, чтобы при нападении на отряд/базу выдавался info_portion? Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 24 Августа 2020 Поделиться Опубликовано 24 Августа 2020 Здрасьте. Можно ли прочитать параметры из секции конфига в том порядке, в котором они указаны, или результат перебора for i = 0, ini:line_count(section) -1 всегда выдается в случайном порядке? Задача в том, чтобы вывести полную специализацию механика в заданном порядке (оружие общее, оружие частное, броня): https://drive.google.com/file/d/15OmIOK-H2J2ryp60PAOSUT77FR9fxBmd/view?usp=sharing Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти