Zander_driver 10 333 Опубликовано 7 Февраля 2012 Здравствуйте.У меня есть вопрос: Можно ли в игре по сюжету изменить иконку ГГ и визуал ГГ.Тоесть сначала одна иконка и визуал ГГ в диалогах, а после какого то события другая иконка и визуал.И как это реализовать?? Добавлено через 18 мин.: Сталкер версии 1.0004 Можно поверх иконки "выведенной движком" выводить свою скриптово. По каким вздумается условиям, хотите такую же, хотите - другую. В помощь - любой мод где производятся скриптовые манипуляции с текстурами на худе. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 16 Февраля 2012 CON Какой-то сумбурный хаос в посте, я если честно ничего не понял что требуется сделать. Функции проверки наличия предметов в инвентаре, в слотах, также как и дроп из инвентаря, есть в справочнике malandrinus-а... SWoBoDoWeTH Можно. Поменять модель) Или ищи готовую которую уже кто-то сделал, или изучай 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 20 Февраля 2012 Plotnick И что, лог-файл стерильно чист? странные дела, однако... Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 1 Марта 2012 С новыми изменениями, в "Скриптовании" такой вопрос задавать опасаюсь... задам тут. В многих модах есть такая штука - Элитный детектор аномалий, который ставит отметки аномалий на миникарте. Вопрос вот в чем: эти отметки ставятся движком, или есть скриптовая функция на их добавление/удаление? И если скриптовая то где искать... Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 5 Марта 2012 Всем добрый вечер. Подскажите пожалуйста в сталкере ТЧ ( я играю с модом ) вернуть дальномер или как он правильно называется, когда показывает цифры сколько осталось до цели? За раннее благодарен. Зайди в опции главного меню игры и поставь в <Игра> -> "Дистанция до цели" --/Artos Ответ не полный, да и не совсем корректный) Наличие/отсутствие прицела, так же как и разных его финтифлюшек вроде дистанции или цветового распознавания целей, может контролироваться консольными командами, на вики есть справочник по ним. И если дальномер отключается такими командами, вызываемыми из скрипта в апдейте, то никакие манипуляции в главном меню его не вернут, нужно искать тот скрипт который его убирает. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 15 Апреля 2012 Вобщем, созрел вопрос, в той области с которой я раньше дела не имел, а пришлось. С чем работаю: ТЧ 1,0004 + Пак локаций из "Сообщества мапперов", последняя из выложенных в их шапке версий, на чистую игру (т.е. не АМК) В чем состоит цель: сделать на предбаннике стоянку новой группировки, Военных нато. Группировку сделал, прописал как полагается, для теста зачислил в нее Волка - все нормально, Волк стал натовцем и пошел гулять из деревни т.к. в деревне работы для него такого нету. Теперь, создаю смарт-террейн и респавнер на предбаннике, дописываю новый гулаг в скрипт, и ничего не происходит - на предбаннике никто не появляется. [11625] ; cse_abstract properties section_name = smart_terrain name = predb_mnato_smart_terrain position = -550.030944824219,14.6607055664063,286.763793945313 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 3881 distance = 9.09999942779541 level_vertex_id = 105016 custom_data = <<END [smart_terrain] type = predb_mnato_smart_terrain capacity = 8 END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 20.5595703125 ; cse_alife_space_restrictor properties restrictor_type = 3 ; se_smart_terrain properties [11626] ; cse_abstract properties section_name = respawn name = predb_respawn_military_nato_post position = -550.030944824219,14.6607055664063,286.763793945313 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 3881 distance = 10 level_vertex_id = 105016 object_flags = 0xffffff3e custom_data = <<END [respawn] respawn_section = prb_milnato_respawn_1 max_count = 8 min_count = 4 max_spawn = 2 idle_spawn = medium conditions = 100 END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1 ; cse_alife_space_restrictor properties restrictor_type = 0 ; se_respawn properties [predb_mnato_smart_terrain_kamp] points = p0 p0:name = name00 p0:position = -559.256103515625,14.6880102157593,282.203582763672 p0:game_vertex_id = 3881 p0:level_vertex_id = 92380 [predb_mnato_smart_terrain_walker_1_walk] points = p0,p1,p2 p0:name = name00 p0:position = -557.199768066406,14.3911476135254,284.340942382813 p0:game_vertex_id = 3881 p0:level_vertex_id = 94401 p0:links = p1(1) p1:name = name01 p1:position = -538.838684082031,17.3168258666992,290.285552978516 p1:game_vertex_id = 3881 p1:level_vertex_id = 121121 p1:links = p2(1) p2:name = name02 p2:position = -552.039306640625,14.2716541290283,307.063873291016 p2:game_vertex_id = 3881 p2:level_vertex_id = 101861 p2:links = p0(1) [predb_mnato_smart_terrain_walker_2_walk] points = p0,p1,p2 p0:name = name00 p0:position = -566.4130859375,14.8234539031982,262.069152832031 p0:game_vertex_id = 3880 p0:level_vertex_id = 80983 p0:links = p1(1) p1:name = name01 p1:position = -554.135864257813,15.1366109848022,262.086944580078 p1:game_vertex_id = 3880 p1:level_vertex_id = 98577 p1:links = p2(1) p2:name = name02 p2:position = -553.250915527344,14.7384147644043,272.294494628906 p2:game_vertex_id = 3881 p2:level_vertex_id = 100733 p2:links = p0(1) if type == "predb_mnato_smart_terrain" then for i = 1, 6 do t = { section = "logic@predb_mnato_smart_terrain_kamp", idle = 0, prior = 8-i, state = {0,1}, in_rest = "", out_rest = "" } table.insert(sj, t) end for i = 1, 2 do t = { section = "logic@predb_mnato_smart_terrain_walker_"..i, idle = 0, prior = 9-i, state = {0,1}, in_rest = "", out_rest = "" } table.insert(sj, t) end end if type == "predb_mnato_smart_terrain" then return function (gulag) return 0 end end -------------------------------------------------------------------------- -- Dynamic ltx -------------------------------------------------------------------------- function load_ltx(gname, type) if type == "predb_mnato_smart_terrain" then ltx = "[logic@predb_mnato_smart_terrain_kamp]\n".. "active = kamp@predb_mnato_smart_terrain\n".. "[kamp@predb_mnato_smart_terrain]\n".. "center_point = kamp\n".. "[logic@predb_mnato_smart_terrain_walker_1]\n".. "active = walker_1@predb_mnato_smart_terrain\n".. "[walker@predb_mnato_smart_terrain_1]\n".. "path_walk = walk_1\n".. "[logic@predb_mnato_smart_terrain_walker_2]\n".. "active = walker_2@predb_mnato_smart_terrain\n".. "[walker@predb_mnato_smart_terrain_2]\n".. "path_walk = walk_2\n" return ltx end return nil end if gulag_type == "predb_mnato_smart_terrain" then return npc_community == "military_nato" end Где тут искать ошибку - не могу взять в толк. Подскажите кто разбирается в данном вопросе. Если я не всю необходимую информацию привел - поправьте. голова уже кругом идет, мог и забыть что-то, все что требуется выложу. Заранее спасибо. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 15 Апреля 2012 (изменено) Вынес гулаг в отдельный файл local t = {} local ltx = "" function load_job(sj, gname, type, squad, groups) if type == "predb_mnato_smart_terrain" then for i = 1, 6 do t = { section = "logic@predb_mnato_smart_terrain_kamp", idle = 0, prior = 8-i, state = {0,1}, in_rest = "", out_rest = "" } table.insert(sj, t) end for i = 1, 2 do t = { section = "logic@predb_mnato_smart_terrain_walker_"..i, idle = 0, prior = 9-i, state = {0,1}, in_rest = "", out_rest = "" } table.insert(sj, t) end end end function load_states(gname, type) return 0 end --'------------------------------------------------------------------------ --' Dynamic ltx --'------------------------------------------------------------------------ function load_ltx(gname, type) if type == "predb_mnato_smart_terrain" then local ltx = "[logic@predb_mnato_smart_terrain_kamp]\n".. "active = kamp@predb_mnato_smart_terrain\n".. "[kamp@predb_mnato_smart_terrain]\n".. "center_point = kamp\n".. "[logic@predb_mnato_smart_terrain_walker_1]\n".. "active = walker_1@predb_mnato_smart_terrain\n".. "[walker@predb_mnato_smart_terrain_1]\n".. "path_walk = walk_1\n".. "[logic@predb_mnato_smart_terrain_walker_2]\n".. "active = walker_2@predb_mnato_smart_terrain\n".. "[walker@predb_mnato_smart_terrain_2]\n".. "path_walk = walk_2\n" return ltx end return nil end function checkStalker(npc_community, gulag_type, npc_rank, se_obj) if gulag_type == "predb_mnato_smart_terrain" then return npc_community == "military_nato" end news_manager.send_tip(db.actor, "check_stalker", nil, nil, 12000) end function checkMonster(npc_community, gulag_type) return false end В gulag_escape.script соответственно все изменения закомментил, и вот level_gulags = {gulag_general, gulag_escape, gulag_garbage, gulag_agroprom, gulag_agroprom_underground, gulag_dark_valley, gulag_labx18, gulag_bar, gulag_military, gulag_radar, gulag_radar_u, gulag_yantar, gulag_pripyat, gulag_kishka, gulag_sarcofag, gulag_deadcity, gulag_predbannik} level_groups = {l01_escape = 1, l02_garbage = 2, l03_agroprom = 3, l03u_agr_underground = 4, l04_darkvalley = 5, l04u_labx18 = 6, l05_bar = 7, l06_rostok = 8, l07_military = 9, l08_yantar = 10, l08u_brainlab = 11, l10_radar = 12, l10u_bunker = 13, l11_pripyat = 14, l12_stancia = 15, l12u_sarcofag = 16, l12u_control_monolith = 17, l12_stancia_2 = 18, predbannik = 19} local gulag_tasks_file_name = "misc\\gulag_tasks.ltx" local gulag_tasks_ltx = ini_file( gulag_tasks_file_name ) local job_position_threshold = 120 --'50 -- расстояние до места работы при котором персонаж в онлайне считается достигшим места работы local job_idle_after_death = 600 -- в течении такого периода времени после смерти персонажа его работа будет недоступна idle_nil = nil idle_once = -1 idle_none = -2 local path_fields = { "path_walk", "path_main", "path_home", "center_point" } ----------------------------------------------------------------------- class "gulag" -- конструктор function gulag:__init(smrttrn, type, squad, groups, npc_info, capacity) self.smrttrn = smrttrn self.name = smrttrn:name() self.type = type self.squad = squad self.groups = groups or {} self.npc_info = npc_info self.capacity = capacity -- общая ёмкость гулага -- self.capacity_non_exclusive - ёмкость гулага для неэксклюзивных персонажей self.population = 0 -- Население гулага self.population_comed = 0 -- Уже пришедшее население гулага self.population_non_exclusive = 0 -- Неэксклюзивное население self.Object = {} -- объекты по id. Значения: nil-нету такого, true-есть в офлайне, game_object-есть в онлайн self.Object_begin_job = {} -- по id. true/nil достиг ли объект места своей работы self.Object_didnt_begin_job = {} -- по id. начинал ли объект хотя бы раз любую работу с момента добавления под смарт self.ObjectJob = {} -- по id. номер работы для каждого персонажа self.JobLoaded = {} -- для каждой работы загруженные из save данные self.Job_avail_in_state = nil self.state = 0 self.stateBegin = nil self.casualities = 0 end -- загрузка работ function gulag:load_jobs() self.Job = {} -- работы self.Job_avail_in_state_0 = {} gulag_tasks.loadJob( self.Job, self.name, self.type, self.squad, self.groups, self ) self:init_ltx( self.name, self.type ) table.sort( self.Job, function(a,b) return a.prior > b.prior end ) self:prepare_jobs_for_new_state() local capacity = 0 for i, job in ipairs( self.Job ) do if self:job_exists_in_state_0( job ) then table.insert( self.Job_avail_in_state_0, job ) capacity = capacity + 1 end if type( job.online ) == "string" then job.online_condlist = job.online job.online = xr_logic.parse_condlist( self.smrttrn, "gulag:setup_job_online", "job_online", job.online_condlist ) end end self.capacity = math.min( capacity, self.capacity ) self.capacity_non_exclusive = self.capacity -- printf("LOAD JOBS %s", tostring(self.name)) -- DEBUG -- self:validate_jobs() end -- проверки правильности набора работ. -- а) в любом состоянии кол-во 100-но доступных работ должно быть >= ёмкости смарта function gulag:validate_jobs() local jobs_avail_in_states = {} -- а) for i, job in ipairs( self.Job ) do if job.predicate == nil and job.idle == 0 and job.timeout == nil and job.fill_idle == nil then for j, state in ipairs( job.state ) do jobs_avail_in_states[state] = (jobs_avail_in_states[state] or 0) + 1 end end end for i, v in ipairs( jobs_avail_in_states ) do if v < self.capacity then print_table( self.Job ) abort( "[smart_terrain %s] type=%s state=%d capacity=%d: too few absolutely available jobs", self.name, self.type, i, self.capacity ) end end end -- подготовка гулага к работе function gulag:initialize() self.ObjectJobPathName = {} --' по id. имя патрульного пути места работы персонажа self.restrictors = {} --' по id. назначенные гулагом рестрикторы для каждого персонажа self:prepare_jobs() self.calculateStates = gulag_tasks.loadStates( self.name, self.type ) local ini = self.smrttrn:spawn_ini() local sect = "smart_terrain" if not ini:section_exist( sect ) then sect = "gulag1" end self.state_switch_0 = xr_logic.parse_condlist( self.smrttrn, "gulag1", "switch_0", utils.cfg_get_string(ini, sect, "switch_0", self.smrttrn, false, "", "") ) self.state_switch_1 = xr_logic.parse_condlist( self.smrttrn, "gulag1", "switch_1", utils.cfg_get_string(ini, sect, "switch_1", self.smrttrn, false, "", "") ) self.JobLoaded = nil end -- подготовить работы. -- подготовить данные о местоположении каждой работы; о объекте, который на ней занят. -- подсчитать ёмкость = min(кол-во работ в 0 состоянии, поле capacity в custom data) function gulag:prepare_jobs() local ptrl, path_name local job_loaded local empty_table = {} for i, job in ipairs( self.Job ) do job.num = i path_name = self:get_job_path_name( job ) ptrl = patrol( path_name ) job.path_name = path_name job.game_vertex_id = ptrl:game_vertex_id( 0 ) job.level_id = game_graph():vertex(job.game_vertex_id):level_id() job.position = ptrl:point( 0 ) job_loaded = self.JobLoaded[i] or empty_table job.begin = job_loaded.begin job.fill_idle = job_loaded.fill_idle job.idle_after_death_end = job_loaded.idle_after_death_end end local job for obj_id, jobN in pairs( self.ObjectJob ) do job = self.Job[jobN] job.object = obj_id self.ObjectJobPathName[obj_id] = job.path_name end end Я тут менял только первые две таблицы - где тут что еще изменить надо, не вижу... все последующее без изменений осталось. В итоге этих действий - при начале новой игры (точнее при попытке) вылет FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: error in error handling stack trace: Поставь вывод в лог строки при создании этим респавнером неписейА кстати как это сделать? Разве, используя данные респавнера, сам спавн производит скрипт? Я думал что раз в алл-спавне прописано, то этим движок занимается... Пара уточнений... Уйти своим ходом заспавненные нпс не могли, если они были. В этом паке тестовый левел-чейнджер почти от порога Сидоровича переносит на предбанник, я его настроил так чтобы переносил именно туда где должен располагаться новый гулаг. И еще одно - на локации предбанника изначально бродит некоторое количество неписей, но они все относятся к группировке одиночки. Соотв-но, места в гулаге занимать не должны, и не занимают, бродят вдалеке не проявляя интереса к этому месту. Но самих нпс более десятка. Это может как-то влиять? Изменено 15 Апреля 2012 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 15 Апреля 2012 Вы меня не так поняли. Я прекрасно знаю что переходы для ГГ и переходы для неписей - не одно и то же. Я говорил о том что своим ходом они не могли оттуда уйти, т.к. я в очень короткое время сам туда прибегаю. Вот и все. Засим, отправляюсь заниматься воплощением того что вы мне посоветовали, спасибо) надеюсь переползать в ковырялки с последующими вопросами мне уже не придется, и все благополучно разрешится. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 10 Мая 2012 Вобщем такая беда: Использую - чистая ТЧ 1.0004 + пак локаций из шапки сообщества мапперов, с патчем на расположение локаций на карте. Играя-тестируя, замечаю такую вещь, и чем дольше длится игра, тем чаще При переходе на другую локацию (не обязательно на новую, и на совершенно старых переходах тоже) - происходит безлоговый вылет. Но при этом user_avtosave создается, и запустив игру снова, его можно грузить и играть дальше. А также если гг погиб, при загрузке через "Последнее сохранение" тоже происходит вылет, но на этот раз не просто без лога - лог-файл вообще остается пуст. И при этом так же, можно запустить игру снова, загрузить то самое сохранение которое было последним, и все пойдет как по маслу. Может кто-то сталкивался, подскажите как эту проблему решить. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 11 Мая 2012 Недавно, разбираясь в спавне аномалий, сделал для себя открытие - у аномалий может быть несколько шейпов, или в шейпе может быть несколько областей - не знаю как правильнее сказать. Ну так вот возник вопрос - если спавнить телепорт с N-ным количеством шейпов, то получится сеть телепортов, переносящих в одно и то же место? Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 11 Мая 2012 Вопрос такой: у некого НПС имеем actor_dialog, генерируемый скриптом с использованием тега init_func. И в зависимости от некоторых условий, диалог генерируется разный. Если к примеру эти условия изменились, какие есть способы обновить этот диалог у нпс? т.е. заставить игру заново обратиться к скрипту генерации диалога. Пока единственное что приходит в голову - увести нпс в оффлайн и обратно в онлайн, и даже на этот счет уверенности нет. Обновится ли диалог в таком случае, есть ли другие способы? Речь идет о ТЧ. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 12 Мая 2012 P.S.E.V.D.O.G.I.G.A.N.T. Ну вроде как это говорит о том что игра не нашла бампы для соответствующих стволов, и дорисовала их самостоятельно. Причиной может быть - забыли дописать в textures.ltx, или нерадивость моделлера который эти стволы делал. Последствия - будет ствол (возможно), выглядеть чуть не так как задумывалось создателем, но различия только косметические. Вылетов или других каких проблем, насколько я знаю, такие строчки не вызывают. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 18 Мая 2012 Верес, Вурдалак в большинстве случаев нельзя разнообразные скрипты совмещать, просто вставляя файлы и ни о чем не думая. Для устранения возникших у вас проблем - надо открывать коды скриптов, вникать и думать. Пока вопросы ваши - для Кашпировских. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 26 Мая 2012 AndreySol 1. В way-файлах разобранного all.spawn параметр "name" для точек пути - что он означает ? И почему у многих точек одинаковые "name", к примеру wp00, name00 и т.п. Насколько я понял, эти имена точек - уникальными обязаны быть лишь в пределах одного пути. начали описывать новый путь - и там все сначала. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 3 Июля 2012 Starter, может я буду выглядеть глупо, но помоему такой вылет в самом деле случается только если сиды повторяются. Кто их знает, может они не в алл.спавне выданы а в скрипте каком. Попробуй просто своим неписям другие значения дать, например от 20000 до 20004. плащ обычный код --закомментированный код вот так. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 15 Июля 2012 AutoGnom, Тебе надо избавиться от использования файла ui_custom_msgs.xml. Для вывода на экран лучше пользоваться функцией get_hud():AddDialogToRender(статик) Статики генерить в самом скрипте, хранить их можно в таблице, обрабатывать в цикле. В общем, изощряться как угодно и как удобно. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 17 Июля 2012 (изменено) Scarabay Тут надо будет делать две вещи. 1. На апдейте проверять дистанцию между НПС и тем кого он ждет. (Ведь если "дождался" - значит цель достаточно близко?) 2. Сложнее... настраиваем нашего НПС против цели, если изначально не враждебен, а в хит- и деад-колбек цели ставим переключение логики нашего НПС, чтобы прекратил стрелять. Как то так. Но недостатков хватает... схема не сработает если дистанция до цели сократилась, а НПС не видит цель по каким то причинам Схема не сработает если НПС не попал в цель Да еще в колбеках цели надо будет проверять виновника - кто стрелял. А то ведь может и кто-то другой в это время по цели стрелять. Изменено 17 Июля 2012 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 19 Августа 2012 (изменено) Столкнулся с такой проблемой. Создал гулаг на предбаннике. тип - general_lager в нем несколько патрульных путей patrol и несколько "стоячих" позиций. Стоячих сначала назвал guard, но столкнулся с вылетом. Переименовал в walker - вылет остался. Вот собственно вылет: ВНИМАНИЕ! Ошибка! Информация по ошибке в строках ниже! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ERROR! Reason: object 'random_military_nato_veteran27649': path_walk 'predbannik_nato1_gulag_walker_2_walk', index <NOT_arg!>: cannot find corresponding point(s) on path_look '0' stack traceback: ...shing\s.t.a.l.k.e.r\gamedata\scripts\move_mgr.script:599: in function <...shing\s.t.a.l.k.e.r\gamedata\scripts\move_mgr.script:461> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FATAL ERROR Как на guard, так и на walker происходил одинаково - нпс идет на точку стояния, и на подходе, где то в полуметре от нее вылетает. В принципе понятно что проблема в путях, но что в них не так? Вот сами пути: [predbannik_nato1_gulag_walker_1_walk] points = p0 p0:name = name00 p0:position = -455.21432495117,2.1224491596222,-113.96678161621 p0:flags = 0x400 p0:game_vertex_id = 3903 p0:level_vertex_id = 245656 [predbannik_nato1_gulag_walker_1_look] points = p0 p0:name = name00 p0:position = -454.49639892578,2.2049999237061,-110.40372467041 p0:game_vertex_id = 3903 p0:level_vertex_id = 246671 [predbannik_nato1_gulag_walker_2_walk] points = p0 p0:name = name00 p0:position = -466.14318847656,-0.8776068687439,-182.89027404785 p0:flags = 0x400 p0:level_vertex_id = 229449 p0:game_vertex_id = 3905 [predbannik_nato1_gulag_walker_2_look] points = p0 p0:name = name00 p0:position = -448.76034545898,1.8457752466202,-114.0114440918 p0:game_vertex_id = 3901 p0:level_vertex_id = 255297 [predbannik_nato1_gulag_walker_3_walk] points = p0 p0:name = name00 p0:position = -443.42132568359,1.8096746206284,-115.85597229004 p0:flags = 0x400 p0:game_vertex_id = 3903 p0:level_vertex_id = 264114 [predbannik_nato1_gulag_walker_3_look] points = p0 p0:name = name00 p0:position = -442.78961181641,1.8587421178818,-110.92756652832 p0:game_vertex_id = 3903 p0:level_vertex_id = 264122 [predbannik_nato1_gulag_walker_4_walk] points = p0 p0:name = name00 p0:position = -442.12307739258,1.7648767232895,-128.28350830078 p0:flags = 0x400 p0:game_vertex_id = 3901 p0:level_vertex_id = 265204 [predbannik_nato1_gulag_walker_4_look] points = p0 p0:name = name00 p0:position = -449.15179443359,1.6720188856125,-127.63687133789 p0:game_vertex_id = 3901 p0:level_vertex_id = 254180 [predbannik_nato1_gulag_patrol_1_walk] points = p0,p1,p2,p3 p0:name = name00 p0:position = -452.33880615234,-0.91330599784851,-164.05223083496 p0:flags = 0x400 p0:level_vertex_id = 249711 p0:game_vertex_id = 3905 p0:links = p1(1) p1:name = name01 p1:position = -449.31735229492,1.4491782188416,-133.51445007324 p1:flags = 0x400 p1:level_vertex_id = 254171 p1:game_vertex_id = 3901 p1:links = p2(1) p2:name = name02 p2:position = -475.05606079102,1.5122009515762,-129.56201171875 p2:flags = 0x400 p2:level_vertex_id = 216251 p2:game_vertex_id = 3901 p2:links = p3(1) p3:name = name03 p3:position = -475.51699829102,-0.77906394004822,-164.97314453125 p3:flags = 0x400 p3:level_vertex_id = 216200 p3:game_vertex_id = 3905 p3:links = p0(1) Причем если неписи идут по патрульным путям patrol то все нормально. Но как только один из ново-заспавненных подходит к стоячей точке - вылет. В чем причина? Версия игры - ТЧ 1.0004 Изменено 19 Августа 2012 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 21 Августа 2012 Starter local all_pstor_keeper = { ["l01_escape"] = { . . . }, ["predbannik"] = { [1] = { section_key = "hanging_lamp", pos_x = 91.98, pos_y = 3.53, pos_z = -64.79, id = nil }, . . . }} function find_keeper(position, key_find) for b = 0, 65534 do local obj = level.object_by_id(b) if obj and (db.storage[b] ~= nil) then local sec = obj:section() if sec then if string.find(sec, key_find) then local v = obj:position() if v:distance_to(position) < 1 then return b end end end end end return nil --- возвращает ID хранителя end Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение
Zander_driver 10 333 Опубликовано 23 Августа 2012 Но ведь нередки и случаи (особенно с актором) - когда аномалия сработала, но хита никому не нанесла. К примеру карусель/мясорубку можно активировать и вырваться до завершения "закрутки" - аномалия сработает как полагается но никому вреда не нанесет. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Поделиться этим сообщением Ссылка на сообщение