Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
BFG 7 582 Опубликовано 12 Августа 2016 Поделиться Опубликовано 12 Августа 2016 У меня получилось несколько omf файлов. Как мне их запихнуть в один общий?Можешь попробовать назначить их в СДК. Посмотри как сделаны стандартные анимки для ТЧ. Положи свой .omf в папку \gamedata\meshes\actors\и в СДК назначь галочку. После компила оно впишется в модель. "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
Kondr48 314 Опубликовано 12 Августа 2016 Поделиться Опубликовано 12 Августа 2016 Возрождённый, мб имеет смысл извлечь из всех анимаций -skl потом в сдк append в одну модель их и export to omf? Ссылка на комментарий
Карлан 1 049 Опубликовано 12 Августа 2016 Поделиться Опубликовано 12 Августа 2016 Зачем их пришивать к модели по отдельности? Я сразу делаю один файл из нужных анимок, stalker_animation.omf, и все модели сразу имеют все добавленные анимации, это самый удобный способ. В противном случае получается жутко неудобно, когда ты на модель будешь шить несколько файлов, это надо все модели перебирать, а с таким чудо-софтом, как сдк, лучше лесом ходить от таких операций и не выглядывать. Ссылка на комментарий
Kondr48 314 Опубликовано 12 Августа 2016 Поделиться Опубликовано 12 Августа 2016 (изменено) Как спавнить вещь в тайник, который находится на другой локации (или на одной локации с Актором, но не факт что в онлайне), имея story id? Изменено 12 Августа 2016 пользователем Kondr48 Ссылка на комментарий
Карлан 1 049 Опубликовано 12 Августа 2016 Поделиться Опубликовано 12 Августа 2016 @Kondr48, а ты в treasure_manager никогда не смотрел? 1 Ссылка на комментарий
Возрождённый 355 Опубликовано 12 Августа 2016 Поделиться Опубликовано 12 Августа 2016 Спасибо за советы, кое в чем разобрался. Пока разбирался понял, что упустил пару моментов. Начал переделывать, но выскакивает такая ошибка. Вообще рандомная, может появится, а может и нет. Но если появилась, фиг избавишься и СДК из-за неё зависает. Гуглил, ничего не нашел. Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять: Customization Pack 0.83 [Beta4] - SoC - Тема модификации. Customization Pack CoP [Beta] - CoP - Тема модификации. Ссылка на комментарий
WizziGun 376 Опубликовано 13 Августа 2016 Поделиться Опубликовано 13 Августа 2016 Не подскажите ли, можно ли в тч сделать отметки нпс в пда как в ЧН? ☭- Пролетарии всех стран, соединяйтесь! Ссылка на комментарий
Ximera_1999 3 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 Хотел вот узнать, как реализована система изменения рангов нпс в народной солянке?(например когда нпс новичок у него один визуал, но через некоторое игровое время, он становится по рангу ветераном и у него сменяется визуал на соответствующий) Ссылка на комментарий
Карлан 1 049 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 @WizziGun, по моему нет. В ЧН метки ставятся на сквады, в ТЧ такого понятия нет, разве что дописать в гулаги механизм выбора лидера по каким-то параметрам (н-р самая крутая пушка) и ставить на него метку, как он помрет искать далее в этом гулаге мужика, снимать с первого и ставить на второго, и так пока все не вымрут, примерно так в ЧН и ЗП делается, если я не ошибаюсь, только там, разумеется, все проще. Я очень давно с этим разбирался, возможно кто-то другой подскажет точнее. Так, навскидку, не сильно нагрузит, на самом первом старте переберем всех и поставим стартовые сохраняемые метки (или просто врезки в функции наполнения гулагов сделать), далее, перед отрегистрацией трупа от смарта перебираем его смарт и переназначаем метку гулага другому неписю (новому "главарю" гулага), проще прямо по рангу. Какое поведение меток будет в оффлайне не берусь сказать, в ТЧ скорее всего все будет абсолютно статично, в ЧН по моему тоже они двигаются только на текущей локации, но точно не помню. Можно просто поставить метки на гулаги, если там кто-то есть, но это будет так себе, так как метки будут статичны, и если там намечается какой-то движняк, то этого будет не видно. 1 Ссылка на комментарий
ed_rez 16 109 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 @WizziGun, я уже слегка забыл ЧН. Это динамичные отметки НПС на карте в самом ПДА, так и на карте с заданиями? Ссылка на комментарий
AndrewMor 527 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 Кто подскажет, что за фигня: Из диалога передаю три одинаковых предмета неписю. function give_accumulators_azot(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "akkum", "out")dialogs.relocate_item_section(second_speaker, "akkum", "out")dialogs.relocate_item_section(second_speaker, "akkum", "out")end В момент трансфера - вылет: Expression : e_entity->ID_Parent == id_parentFunction : xrServer::Process_event_rejectFile : E:\stalker\sources\trunk\xr_3da\xrGame\xrServer_process_event_reject.cppLine : 23Description : akkum56258Arguments : single_player Что за вылет такой, никогда ничего подобного не видел, всегда функции передачи предметов работали. Сталкер - наше всё! Ссылка на комментарий
dsh 3 824 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 Сдается мне, что твои функции пытаются передать один и тот же предмет. Мой тебе совет, выбрось эту вредную затею, "передачу", из головы. Она бредовая. У актора просто удали и если тебе прям так надо - у непися заспаунь. И всех делов. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
dPlayer 499 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 @AndrewMor, мб через цикл, что то типа function give_accumulators_azot(first_speaker, second_speaker) for i=1, 3 dodialogs.relocate_item_section(second_speaker, "akkum", "out")end end Ссылка на комментарий
Silver Raven 197 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 Прибил наконец вылет игры, при адаптации к своей сборке и движковым правкам (растягивающим интро текстуры на весь экран) скрипта автопаузы после загрузки левела аля ЗП от Charsi. Теперь стал вопрос, как заставить заглохнуть музыкальную тему из главного меню, во время работы скрипта. Сначала, добавил по классике level.set_snd_volume(0), а после нажатия игроком любой кнопки level.set_snd_volume(1) - почему-то не катит. Да и вообще ситуация со звуком в скрипте не очень понятна: function on_mm_init(mm) if level.present() and _G.press_any_key_on_start then _G.press_any_key_on_start = false level.hide_indicators() mm.start_btn = CUIStatic() mm.start_btn:SetStretchTexture(true) mm.start_btn:SetWndRect(Frect():set(0,0,1024,768)) mm.start_btn:InitTexture("intro\\intro_"..level.name()) mm.start_btn:SetText("Нажмите любую клавишу для перехода к игре") mm.start_btn:SetTextAlign(CGameFont.alCenter) mm.start_btn:SetTextY(695) mm.start_btn:SetFont(GetFontGraffiti22Russian()) mm.alpha = 255 mm:AttachChild(mm.start_btn) mm:Show(false) --mm.sv = level.get_snd_volume() <--------- Исходник. Получаем текущую громкость звука? А где его отключение? level.set_snd_volume(0) <--------- Не работает. ХЗ mm.tmr = profile_timer() -- Создаем таймер mm.tmr:start() -- Запускаем его mm.last_time = 0 -- Инициализируем время последнего апдейта _G.ui_main_menu.main_menu.__init = _G.ap_mm_init end end function mm_on_kbd(mm,dik, keyboard_action) if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if mm.start_btn then level.show_indicators() level.set_snd_volume(1) <--------- Не работает. ХЗ --level.set_snd_volume(mm.sv) <---------- Исходник. Возвращаем громкость звука из mm.sv = level.set_snd_volume()? _G.ui_main_menu.main_menu.OnKeyboard = _G.ap_mm_on_kbd _G.ui_main_menu.main_menu.Update = _G.ap_mm_upd get_console():execute("main_menu off") end end return mm.start_btn~=nil end З.Ы. И да, точно нет способа запихнуть в скрипт скрытие курсора? (хоть подменой текстуры) aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Kondr48 314 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 Silver Raven, подмена текстуры есть на 7 патче. Звук попробуйте так: выкл: _G.mus_vol = get_console():get_float("snd_volume_music") _G.amb_vol = get_console():get_float("snd_volume_eff") get_console():execute("snd_volume_music 0") get_console():execute("snd_volume_eff 0") вкл: get_console():execute("snd_volume_music "..tostring(_G.mus_vol)) get_console():execute("snd_volume_eff "..tostring(_G.amb_vol)) _G.amb_vol = 0 _G.mus_vol = 0 Ссылка на комментарий
Silver Raven 197 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 @Kondr48, угу, так работает. Остается только вопрос с курсором и... З.Ы. Функция, проверяющая текущую сложность игры по пресетам (новичек, сталкер и т.п.) и возвращающая true или false в зависимости от результата проверки. Нашел похожую в оригинале, но не понял как допилить ее. aka Stalker_AleX333 Мои проекты - ЯндексДиск | Я на Gamer-Mods.ru Ссылка на комментарий
Ximera_1999 3 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 Извините, если данный вопрос уже задавался. Допустим, что я собрал необходимые мне локации в одну gamedata, теперь сам вопрос, как мне эти локации перенести на амк мод? Как я понял нужно добавить секции в all.spawn, если да, то какие? Ссылка на комментарий
Expropriator 2 118 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 @Ximera_1999, тебе надо подшить геймграф, собрать весь спавн воедино. Тебе нужно найти инфу по прогам acdc и gg_editor. Еще надо добавить левел-ченджеры в алсспавн для переходов. Где то на просторах инета есть инфа. Вот тут кое - что есть Ссылка на комментарий
Kober(BRUC) 99 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 (изменено) @Ximera_1999, создание переходов скриптом. Автор - не я. function create_level_changer( -- Спавн переходов между локациями p_story_id, -- STORY_ID нового level_changer (понадобится нам позже) p_position, -- вектор, координаты точки, в которой будет располагаться центр нового level_changer p_lvertex_id, -- level_vertext_id - идентифицируют уровень, на котором будет создан level_changer p_gvertex_id, -- game_vertext_id p_dest_lv, -- level_vertex_id - идентифицируют уровень, на который level_changer будет перебрасывать игрока p_dest_gv, -- game_vertex_id p_dest_pos, -- координаты точки, в которой на новом уровне окажется игрок p_dest_dir, -- направрение взгляда игрока p_dest_level, -- название уровня, например "L11_Pripyat" p_silent -- следует задать 1, чтобы подавить вопрос о смене уровня (автоматический переход) ) local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id) level.map_add_object_spot(obj.id, "level_changer", "") local packet = net_packet() obj:STATE_Write(packet) -- свойства cse_alife_object local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_u32() local level_vertex_id = packet:r_u32() local object_flags = packet:r_u32() local custom_data = packet:r_stringZ() local story_id = packet:r_u32() local spawn_story_id = packet:r_u32() -- свойства cse_shape local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then -- sphere local center = packet:r_vec3() local radius = packet:r_float() else -- box local axis_x_x = packet:r_float() local axis_x_y = packet:r_float() local axis_x_z = packet:r_float() local axis_y_x = packet:r_float() local axis_y_y = packet:r_float() local axis_y_z = packet:r_float() local axis_z_x = packet:r_float() local axis_z_y = packet:r_float() local axis_z_z = packet:r_float() local offset_x = packet:r_float() local offset_y = packet:r_float() local offset_z = packet:r_float() end end -- свойства cse_alife_space_restrictor local restrictor_type = packet:r_u8() -- свойства cse_level_changer local dest_game_vertex_id = packet:r_u16() local dest_level_vertex_id = packet:r_u32() local dest_position = packet:r_vec3() local dest_direction = packet:r_vec3() local dest_level_name = packet:r_stringZ() local dest_graph_point = packet:r_stringZ() local silent_mode = packet:r_u8() packet:w_begin(game_vertex_id) -- game_vertex_id packet:w_float(cse_alife_object__unk1_f32) packet:w_u32(cse_alife_object__unk2_u32) packet:w_u32(level_vertex_id) -- level_vertex_id packet:w_u32( bit_not(193) ) -- object_flags = -193 = 0xFFFFFF3E packet:w_stringZ(custom_data) packet:w_u32(p_story_id) -- story_id packet:w_u32(spawn_story_id) packet:w_u8(1) -- количество фигур packet:w_u8(1) -- тип фигуры: box packet:w_float(2) -- axis_x_x packet:w_float(0) -- axis_x_y packet:w_float(0) -- axis_x_z packet:w_float(0) -- axis_y_x packet:w_float(4) -- axis_y_y packet:w_float(0) -- axis_y_z packet:w_float(0) -- axis_z_x packet:w_float(0) -- axis_z_y packet:w_float(4) -- axis_z_z packet:w_float(0) -- offset_x packet:w_float(0) -- offset_y packet:w_float(0) -- offset_z packet:w_u8(3) -- restrictor_type packet:w_u16(p_dest_gv) -- destination game_vertex_id packet:w_u32(p_dest_lv) -- destination level_vertex_id packet:w_vec3(p_dest_pos) -- destination position packet:w_vec3(p_dest_dir) -- destination direction (направление взгляда) packet:w_stringZ(p_dest_level) -- destination level name packet:w_stringZ("start_actor_99") -- some string, always const packet:w_u8(p_silent) -- 1 for silent level changing packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) end function Название_функции() create_level_changer(31410, vector():set( 917.35, 0.419, -316.35 ), 403866, 2401, 73868, 2117, vector():set( 31.3, 3.0, 240.0 ), vector():set( 0.0, 0.0, -1.0 ), "L11_Pripyat", 0) end Отметка на карте: --Находим файл level_tasks.script и в функции add_lchanger_location пишим: obj = sim:story_object(11410) if obj then level.map_add_object_spot(obj.id, "level_changer", "To Pripyat") end Здесь 11410 - story_id нашего level_changer Криво и косо описал. Но надеюсь поймешь. Если нет, то в ЛС. Изменено 14 Августа 2016 пользователем Kober(BRUC) 1 Ссылка на комментарий
AndrewMor 527 Опубликовано 14 Августа 2016 Поделиться Опубликовано 14 Августа 2016 (изменено) Сдается мне, что твои функции пытаются передать один и тот же предмет. Да я таким способом сколько раз передавал предметы, и не по одному, а помногу. Опытным путем выяснил, что передача одного (!) предмета проходит на ура, передача двух и более (именно этих!) предметов - вылет. При том, что любые другие предметы (патроны, например) передаются кучами без вылета. Собсно, не может ли это быть связано с массой предмета (в районе 4 кг)? мб через цикл, что то типа У меня была такая мысль, но я уже отказался от всей этой затеи. Изменено 14 Августа 2016 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти