меченый(стрелок) 5 Опубликовано 13 Августа 2010 Поделиться Опубликовано 13 Августа 2010 (изменено) PazDim, Эти параметы точно нельзя изменить с помощью другой программы? Насколько помню - нет Главное ведь чтоб удобнее было? И каждый сам решает, что для него удобнее Это да ,но... И еще вопрос: аномалии спавнятся так-же как и обычные объекты? Я имею ввиду спавн функцией create(). Нет,тут надо нет-пакеты разбирать\собирать ...В любом моде где есть динамические аномалии смотрите Серый Волк, Конфигом никак - скрипты "наше всё". Изменено 13 Августа 2010 пользователем меченый(стрелок) Ссылка на комментарий
Malandrinus 615 Опубликовано 13 Августа 2010 Поделиться Опубликовано 13 Августа 2010 PazDim, Можно ли просто для каждой локации сделать по одному вертексу и уже их вставлять при любых координатах? Нет, нельзя. Сетка уровня - это что-то вроде невидимой альтернативной поверхности, натянутой на геометрический ландшафт. Неписи ходят по этой поверхности, а не по геометрии, и без неё не смогут передвигаться вообще. Физическим объектам эта сетка не нужна, хотя и можно сделать так, чтобы они привязывались к ней при спавне. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Monnoroch 6 Опубликовано 14 Августа 2010 Поделиться Опубликовано 14 Августа 2010 Серый Волк, Писать надо кодов много Добавлено через 1 мин.: PazDim, 2010 студия работает на отличненько,как вышла юзаю Добавлено через 1 мин.: PazDim, про анамалии - да, но им надо дополнительно дописывать нет-пакет. Добавлено через 2 мин.: PazDim, И ты уж извини, вирт машина может и мобильнее, да уж точно медленнее. Ссылка на комментарий
PazDim 0 Опубликовано 14 Августа 2010 Поделиться Опубликовано 14 Августа 2010 Насчет вирт машины - это зависит от физического компа. У меня двух-ядерный проц(по 2.6 Ггц) и 2 Гб оперативы. Виртуальной дал одно ядро и один гиг. Для ХР больше чем полагается. Зато когда нодоест - можно смело жать красную кнопку и не ждать завершения работы . А что такое нет-пакеты, я просто не знаю(тему еще не всю прочитал - каюсь, уж слишком много материала) Ссылка на комментарий
PavelSnork 3 Опубликовано 14 Августа 2010 Поделиться Опубликовано 14 Августа 2010 А кто знaeт, кaк можно добaвить обьeкты нa кaрту, типa дeрeвьeв, бeз СДК, чeрeз aлл.спaвн? Жду ли я Сталкер 2? Хм... Ссылка на комментарий
PazDim 0 Опубликовано 14 Августа 2010 Поделиться Опубликовано 14 Августа 2010 (изменено) http://stalkerin.gameru.net/wiki/index.php...B2_%D0%97%D0%9F Посмотри: пример спавна аномалии(не знаю, не пробовал менять имя объекта). Указываешь координаты и аномалия спавнится(в данном случае - "тополиный пух") Изменено 14 Августа 2010 пользователем PazDim Ссылка на комментарий
Bobenich 2 Опубликовано 14 Августа 2010 Поделиться Опубликовано 14 Августа 2010 Привет братки! Подскажите где ковырнуть Кордана? Инструмент взял а обгрейдить не хочет (ARS 0.5.2) На форуме ARS темы висят с января, на АМК тема закрыта. Все пролистал но такой байды не у кого небыло. Ссылка на комментарий
nuklia 0 Опубликовано 14 Августа 2010 Поделиться Опубликовано 14 Августа 2010 (изменено) PavelSnork, можно добаить и через олл.спавн - но все равно придется использовать СДК, вчастности Актор-эдитор - создавать каркасы моделей (ogf-файлы), затем описывать это в конфигах, как новые обьекты типа холодильнеиков, телевизоров, дизель-генераторов и т.п. А затем уж пихать в олл.спавн. Правда не представляю, как они будут смотреться. Если тебе попадался мод "Прибой" для ТЧ - там спавнилить отдельные здания, ветряки именно через олл.спавн. Но освещение этих обьектов выдавало их инородность. Еще забыл сказать - прежде всего придется в каком-ни-будь 3-д редакторе создавать хоть одну кость, дабы назначить вес модели. Изменено 14 Августа 2010 пользователем nuklia Ссылка на комментарий
Vano_Santuri 33 Опубликовано 14 Августа 2010 Поделиться Опубликовано 14 Августа 2010 (изменено) Народ, хорош тупить. Уже сколько раз выкладывали срипт пакета аномалий, еще Шокер со времен выхода ЧН. Вариант без таймингов(время работы, неработы). Готовый спавн аномалий на Затоне в количестве 150 штук function spawn_zaton_anomalies(zaton_anomalies_sect) for i=1,150 do local anomalies = {"zone_mine_acidic_weak","zone_mine_acidic_average","zone_mine_acidic_strong", "zone_mine_acidic_big","zone_mine_chemical_weak","zone_mine_chemical_average","zone_mine_chemical_strong", "zone_buzz_weak","zone_buzz_average","zone_buzz_strong","zone_mine_electric_weak","zone_mine_electric_average", "zone_mine_electric_strong","zone_witches_galantine_weak","zone_witches_galantine_average","zone_witches_galantine_strong", "zone_mine_gravitational_average","zone_mine_gravitational_weak","zone_mine_gravitational_big","zone_gravi_zone", "zone_mine_thermal_weak","zone_mine_thermal_average","zone_mine_thermal_strong","zone_mine_steam_weak", "zone_mine_steam_average","zone_mine_steam_strong","zone_zharka_static_weak","zone_zharka_static_average", "zone_zharka_static_strong"} local zaton_anomalies_sect = anomalies[math.random(#anomalies)] z_anom(zaton_anomalies_sect) end end function z_anom(zaton_anomalies_sectt) lv_new = math.random(1700000) pos_new = level.vertex_position(lv_new) create_anomalies(zaton_anomalies_sectt,3,pos_new.x,pos_new.y,pos_new.z,lv_new,0) end function create_anomalies(section,rad_anom,x,y,z,lv,gv,mode) if gv==nil then gv=db.actor:game_vertex_id() end if lv==nil then lv=db.actor:level_vertex_id() end if pos==nil then pos=db.actor:position() end local p_obj = alife():create(section,vector():set(x,y,z),lv,gv) local packet = net_packet() packet:w_begin(0) p_obj:STATE_Write(packet) packet:r_seek(2) local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local cse_alife_object__unk3_u32 = packet:r_s32() local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then local center = packet:r_vec3() local radius = packet:r_float() else local box = packet:r_matrix() end end local restrictor_type = packet:r_u8() local cse_alife_custom_zone__unk1_f32 = packet:r_float() local cse_alife_custom_zone__unk2_u32 = packet:r_s32() local on_off_mode_enabled_time = packet:r_s32() local on_off_mode_disabled_time = packet:r_s32() local on_off_mode_shift_time = packet:r_s32() local offline_interactive_radius = packet:r_float() local artefact_spawn_places_count = packet:r_u16() local cse_alife_anomalous_zone__unk1_u32 = packet:r_s32() local last_spawn_time_present = packet:r_u8() packet:w_u16(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_u32) packet:w_s32(level_vertex_id) packet:w_s32(object_flags) if mode~=nil then custom_data = mode end packet:w_stringZ(custom_data) packet:w_s32(story_id) packet:w_s32(cse_alife_object__unk3_u32) packet:w_u8(1) packet:w_u8(0) local sphere_center = vector() sphere_center:set(0, 0, 0) packet:w_vec3(sphere_center) radius = rad_anom packet:w_float(radius) packet:w_u8(restrictor_type) packet:w_float(cse_alife_custom_zone__unk1_f32) cse_alife_custom_zone__unk2_u32 = bit_not(0) packet:w_s32(cse_alife_custom_zone__unk2_u32) packet:w_s32(on_off_mode_enabled_time) packet:w_s32(on_off_mode_disabled_time) packet:w_s32(on_off_mode_shift_time) packet:w_float(offline_interactive_radius) packet:w_u16(artefact_spawn_places_count) packet:w_s32(cse_alife_anomalous_zone__unk1_u32) if mode == nil then packet:w_u8(last_spawn_time_present) end p_obj:STATE_Read(packet, packet:w_tell()-packet:r_tell()) return p_obj end Вам только нижняя часть нужна , она и спавнит... Вот с таймингами. function create_anom(section,rad_anom,x,y,z,lv,gv,mode,time1,time2) if gv==nil then gv=db.actor:game_vertex_id() end if lv==nil then lv=db.actor:level_vertex_id() end if pos==nil then pos=db.actor:position() end local p_obj = alife():create(section,vector():set(x,y,z),lv,gv) local packet = net_packet() packet:w_begin(0) p_obj:STATE_Write(packet) packet:r_seek(2) local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local cse_alife_object__unk3_u32 = packet:r_s32() local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then local center = packet:r_vec3() local radius = packet:r_float() else local box = packet:r_matrix() end end local restrictor_type = packet:r_u8() local cse_alife_custom_zone__unk1_f32 = packet:r_float() local cse_alife_custom_zone__unk2_u32 = packet:r_s32() local on_off_mode_enabled_time = packet:r_s32() local on_off_mode_disabled_time = packet:r_s32() local on_off_mode_shift_time = packet:r_s32() local offline_interactive_radius = packet:r_float() local artefact_spawn_places_count = packet:r_u16() local cse_alife_anomalous_zone__unk1_u32 = packet:r_s32() local last_spawn_time_present = packet:r_u8() packet:w_u16(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_u32) packet:w_s32(level_vertex_id) packet:w_s32(object_flags) if mode~=nil then custom_data = mode end packet:w_stringZ(custom_data) packet:w_s32(story_id) packet:w_s32(cse_alife_object__unk3_u32) packet:w_u8(1) packet:w_u8(0) local sphere_center = vector() sphere_center:set(0, 0, 0) packet:w_vec3(sphere_center) radius = rad_anom packet:w_float(radius) packet:w_u8(restrictor_type) packet:w_float(cse_alife_custom_zone__unk1_f32) cse_alife_custom_zone__unk2_u32 = bit_not(0) packet:w_s32(cse_alife_custom_zone__unk2_u32) if time1 ~= nil then packet:w_s32(time1) else packet:w_s32(on_off_mode_enabled_time) end if time2 ~= nil then packet:w_s32(time2) else packet:w_s32(on_off_mode_disabled_time) end packet:w_s32(on_off_mode_shift_time) packet:w_float(offline_interactive_radius) packet:w_u16(artefact_spawn_places_count) packet:w_s32(cse_alife_anomalous_zone__unk1_u32) if mode==nil then packet:w_u8(last_spawn_time_present) else end p_obj:STATE_Read(packet, packet:w_tell()-packet:r_tell()) return p_obj end section -секция аномалии из конфига rad_anom - радиус аномалии(3 -норма) x - перваяя координата х y - вторая координата у z - третья координата z lv - левел-вертекс gv - гейм-вертекс mode - если используете поля, то нужно писать "filed" , если обычные аномалии то nil time1 - время работы в милисекундах (1 секунда -1000 мили) time2 - время неработы (1 секунда -1000 мили) если постоянно, то в обоих ставте nil ЗЫ. Если вы еще спросите "куда ето вставить" - забейте. Идите правте вес.... бронежелетов. Изменено 14 Августа 2010 пользователем Vano_Santuri Что-то кончается, что-то начинается... Ссылка на комментарий
PazDim 0 Опубликовано 14 Августа 2010 Поделиться Опубликовано 14 Августа 2010 Прошу извинить меня за тупой и, впрочем, ненужный вопрос, но зачем в СДК создавать дополнительный виртуальный диск? все ведь и так работает(я имею ввиду редактирование музыки) Ссылка на комментарий
alexwew 0 Опубликовано 14 Августа 2010 Поделиться Опубликовано 14 Августа 2010 Это когда патчей не было на сдк, вроде он не переваривал левые пути, вот и сделали функу где сдк создает вирт диск с самим собой. я изменился. пью, курю, употребляя наркотические средства. Жизнь-говно. Бабы -консервы. Забьюсь под стол, чтоб никто не трогал. Ссылка на комментарий
PazDim 0 Опубликовано 15 Августа 2010 Поделиться Опубликовано 15 Августа 2010 (изменено) Есть функции для преобразовывания вертексов в координаты и обратно? Очень нужно Добавлено через 151 мин.: И еще вопрос: вот создал я зону "zone_field_radioactive". Визуальный эффект есть(темнеет в глазах, счетчик гейгера трещит), но сама радиация не прибавляется. Как это исправить? Заранее спасибо Изменено 15 Августа 2010 пользователем PazDim Ссылка на комментарий
alex210192 0 Опубликовано 15 Августа 2010 Поделиться Опубликовано 15 Августа 2010 А где находится и как называется файл конфигурации худа? Сообщение от модератора n6260 Поиск не помог? Ссылка на комментарий
alexwew 0 Опубликовано 15 Августа 2010 Поделиться Опубликовано 15 Августа 2010 ui hud menu , только точно не погмню, а так все файлы связанные с худом лежат в U:\Program Files\X-Ray_SDK\level_editor\gamedata\config\ui и все что начинается с ui и отвечает за худ я изменился. пью, курю, употребляя наркотические средства. Жизнь-говно. Бабы -консервы. Забьюсь под стол, чтоб никто не трогал. Ссылка на комментарий
PazDim 0 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 можно как-то узнать наименования минилокаций(Скадовск, железный лес ...) и через их имена узнать их координаты? И еще вопрос: где находится скрипт выброса и какая функция отвечает за спавн в нем? P.S. - ну можете что-нибудь посоветовать по зоне радиоктивности? создал я зону "zone_field_radioactive". Визуальный эффект есть(темнеет в глазах, счетчик гейгера трещит), но сама радиация не прибавляется. Пробовал с другими полями(пси, термо, кислота) - только визуал. Как это исправить? Заранее спасибо Ссылка на комментарий
Vano_Santuri 33 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 (изменено) PazDim, Спавнить аномалии надо пакетом, а не обычным креатом... Изменено 16 Августа 2010 пользователем Vano_Santuri Что-то кончается, что-то начинается... Ссылка на комментарий
PazDim 0 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 Вот функция: function create_anomaly(zone_name,zone_radius,lv,gv,pos) local sobj=alife():create(zone_name,pos,lv,gv) local packet=net_packet() packet:w_begin(0) sobj:STATE_Write(packet) packet:r_seek(2) local game_vertex_id=packet:r_u16() local cse_alife_object__unk1_f32=packet:r_float() local cse_alife_object__unk2_u32=packet:r_s32() local level_vertex_id=packet:r_s32() local object_flags=packet:r_s32() local custom_data=packet:r_stringZ() local story_id=packet:r_s32() local cse_alife_object__unk3_u32=packet:r_s32() local shape_count=packet:r_u8() for i=1,shape_count do local shape_type=packet:r_u8() if shape_type == 0 then local center=packet:r_vec3() local radius=packet:r_float() else local box=packet:r_matrix() end end local restrictor_type=packet:r_u8() local cse_alife_custom_zone__unk1_f32=packet:r_float() local cse_alife_custom_zone__unk2_u32=packet:r_s32() local on_off_mode_enabled_time=packet:r_s32() local on_off_mode_disabled_time=packet:r_s32() local on_off_mode_shift_time=packet:r_s32() local offline_interactive_radius=packet:r_float() local artefact_spawn_places_count=packet:r_u16() local cse_alife_anomalous_zone__unk1_u32=packet:r_s32() local last_spawn_time_present=packet:r_u8() packet:w_u16(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_u32) packet:w_s32(level_vertex_id) packet:w_s32(object_flags) if init_data~=nil then custom_data=init_data end packet:w_stringZ(custom_data) packet:w_s32(story_id) packet:w_s32(cse_alife_object__unk3_u32) packet:w_u8(1) packet:w_u8(0) local sphere_center=vector() sphere_center:set(0, 0, 0) packet:w_vec3(sphere_center) radius=zone_radius packet:w_float(radius) packet:w_u8(restrictor_type) packet:w_float(cse_alife_custom_zone__unk1_f32) cse_alife_custom_zone__unk2_u32=bit_not(0) packet:w_s32(cse_alife_custom_zone__unk2_u32) packet:w_s32(on_off_mode_enabled_time) packet:w_s32(on_off_mode_disabled_time) packet:w_s32(on_off_mode_shift_time) packet:w_float(offline_interactive_radius) packet:w_u16(artefact_spawn_places_count) packet:w_s32(cse_alife_anomalous_zone__unk1_u32) sobj:STATE_Read(packet, packet:w_tell()-packet:r_tell()) return sobj end Пробовал спавнить аномалии(электра, газировка...) - все работает. Жизни отнимаются... разве что на свароге не отображаются. А вот радиоактивные, пси и другие поля не работают(есть только визуал) Ссылка на комментарий
Vano_Santuri 33 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 PazDim, ты сам обрезал скрипт? Я давал на предыдущей странице, и кстати там был параметр mode, так вот, если ты спавнишь поля, в том числе и радиацию, то необходимо указывать mode = "field" при спавне каждого поля(куда ты пишешь координаты и верстексы). ЗЫ. Используй тот, что я дал с этим параметром. Что-то кончается, что-то начинается... Ссылка на комментарий
PazDim 0 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 (изменено) Мне его дал Shredder, вроде-бы вытащил из SGM-мода(вроде так называется), щас попробую твой(просто вроде бы пробовал - не получалось. Насчет параметра mode - если хочу заспавнить обычную аномалию, то его вообще не указывать? Или инициализировать nil-ом? И еще вопрос: Спавнил аномалии на затоне. Алгоритм дал Shredder: function respawn() local level_vertexes={ zaton = 1844793, jupiter = 1422445, pripyat = 477061 } local game_vertexes={ zaton = {0,316}, jupiter = {317,665}, pripyat = {666,856} } local lname= "jupiter" local gvn,gvx,lvx = game_vertexes[lname][1], game_vertexes[lname][2], level_vertexes[lname] for i=1,1000 do new_lv = math.random(1,lvx) local pos = level.vertex_position(new_lv) local new_gv = 0 local min_dist = 100000 for a = gvn, gvx do g1 = game_graph():vertex(a):game_point() if g1:distance_to(pos)<min_dist then min_dist = g1:distance_to(pos) new_gv = a end end alife():create("wpn_ak74",pos,new_lv,new_gv) pos = level.vertex_position(new_lv) create_anomaly("zone_mine_electric",1,new_lv,new_gv,pos) end end Если спавнить на затоне, то все работает на ура - аномалии спавнятся, как положено, на земле, в воздухе не висят, все что нужно - исключить такие области как скадовск. Но если спавнить на юпитер и при этом находясь на затоне, то аномалии будут висеть в воздухе и под землей. Как сделать спавн аномалий независимым от локаций? Изменено 16 Августа 2010 пользователем PazDim Ссылка на комментарий
Vano_Santuri 33 Опубликовано 16 Августа 2010 Поделиться Опубликовано 16 Августа 2010 Это я пример приводил.... Показал, что для Затона можно использовать ОДИН ДЛЯ ВСЕХ game vertex , 0 , для юпитера он 317, для Припяти 666. Так же я показал, как использовать таблицу из секций, передачу параметра и определение позицию левел_вертекса , кторый выбирается рандомно.... Почему они у тебя висят над землей и под , я не знаю. Что-то кончается, что-то начинается... Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти