Перейти к контенту

Jekyll

Проверенные
  • Число публикаций

    189
  • Регистрация

  • Последнее посещение

  • AMKoin

    1,234 [Подарить AMKoin]

Весь контент пользователя Jekyll

  1. Jekyll

    СТАЛКЕР - Call of Chernobyl [Demosfen]

    Если без всяких примочек с экономикой и т.п. играешь, то почти на каждом 3-4 трупе должна быть вода. В чем-чем, а в воде у меня лично недостатка никогда не было... Даже на Кордоне (с него начинал всегда). Вообще, тут от удачи все зависит - лут рандомный абсолютно. У меня в первый раз спустя 3 или 4 часа игры - на Кордоне, из заурядного бандита - выпала рубиновая душа бенгала...
  2. Jekyll

    СТАЛКЕР - Call of Chernobyl [Demosfen]

    @Won-Won , делаем потихоньку.
  3. Jekyll

    СТАЛКЕР - Call of Chernobyl [Demosfen]

    @Dushess74 , скриншот п. 1 в студию можно? Скачивал по ссылкам из этой темы?
  4. Jekyll

    Все о партиклах

    @НаноБот , вот, склепал тебе простенький пример. Если нужен именно хвост (для снарядов), то смотри партикл "particle_hvost_1_1". Сам пример представляет собой группу, состоящую из эмиттера и хвоста к нему (для аномалий и т.п.). В основном нужно играться с такими параметрами как: макс. количество партиклов (Max Particles), время их жизни (Killold-> Age Limit), частота их появления (Source -> Rate). Чем больше Rate, тем плотнее будет хвост, но тогда надо и Max Particles ставить больше. Также плотность хвоста будет зависеть от скорости движения эмиттера (снаряда). Надеюсь, я тебя правильно понял. Используй как основу оригинальные партиклы взрывов, просто замени текстуры своими, уменьши их и увеличь Max Particles.
  5. Jekyll

    Скриптование

    Здравствуйте. Как определить, принадлежит ли определенный гейм-вертекс текущей локации? ЗП.
  6. Jekyll

    Ищу файлы / моды / аддоны

    Здравствуйте. Нужен снежок (заменяет болт) на Зов Припяти (из какого-нибудь зимнего мода). Или хотя бы название мода, в котором он точно есть.
  7. Здравствуйте. Подобный вопрос уже когда-то задавался в этой теме, но с тех пор много воды утекло. Кто-нибудь проверял соотношения свойств артефактов ТЧ и ЗП? Например, ожог +10% (в ТЧ) равен термозащите +10 в ЗП? То же самое касается "восстановительно-накопительных" свойств.
  8. Jekyll

    Все о партиклах

    Нда... Как там в поговорке... "Правильно поставленный вопрос - это уже половина ответа". Еще было неплохо, если бы вопрошающий понимал, о чём именно он вопрошает:)
  9. Jekyll

    Все о партиклах

    Слабое - можно попробовать. Смотри как сделаны партиклы с "_glow" в названии и экспериментируй. А реальное свечение, как у аномалий или артефактов (свет), сделать вряд ли получится. Конечно. Particle Editor в SDK для этого и создан.
  10. Jekyll

    Скриптование

    Считать какой-либо параметр в секции монстра можно через system_ini():r_string(секция,"параметр"), но как установить новое значение нужного параметра скриптом? На некоторые параметры есть свои функции (например, eye_range - set_range()). А как быть с остальными? Только править движок?
  11. Здравствуйте! Возможно, вопрос не совсем в тему. Сейчас, наверное, в каждом моде реализована вампирская способность кровососа. Пока что мне попадались моды, где это работает только против ГГ. Есть ли какие-нибудь моды, где данная фича реализована по отношению и к неписям (а то и другим монстрам)? Меня интересует не то, как это сделать, а то, сделано ли такое на данный момент хоть где-нибудь.
  12. Jekyll

    Ищу файлы / моды / аддоны

    Здравствуйте. У кого-нибудь есть пак холодного оружия для ЗП? Интересуют мачете, кукри, катана, вакидзаси и фомка.
  13. Здравствуйте! Заспавнил труп сталкера таким способом: alife():create("new_stalker",[координаты]):on_death(). Как теперь его отследить? И как получить его ID? Проверки по имени или секции не срабатывают.
  14. Это во всех секциях (_weak, _normal, _strong etc.) одни и те же цифры? Или только в базовой для каждого монстра? Я точно знаю, что в оригинальном ТЧ чем выше panic_threshold, тем более трусливые монстры. Только что проверил на псах. При 0.0 ни один не удрал в бою, при 0.7 удирают едва завидев ГГ. Кроме того, паника зависит и от тяжести ранения монстра. Возможно есть какая-то логика у "стайных" монстров типа тех же собак, но мне к ней прибегать не приходилось - хватало конфигов.
  15. Попробуй поиграться с параметром panic_threshold. Вроде чем он ниже, тем "бесстрашнее" монстры.
  16. Jekyll

    Скриптование

    И правда... Вернул на место - все заработало как надо... Не представлял даже, что отсутствие этого параметра так важно и может сломать нанесение хита неписям... Урок усвоен.
  17. Jekyll

    Скриптование

    Не понял, где в функции указано, что там 0? Если bit_not(0), то, по словам @naxac , это -1, но не 0... Ну ладно, ID аномалии я-то получил, а как его присвоить для owner_id? В нет_спавне биндера кусок нет-пакета перебрать? Таких вариантов, как self.object.owner_id или self.object:owner_id(), не существует...
  18. Jekyll

    Скриптование

    Здравствуйте! При попадании в аномалию, заспавненную скриптом, неписи агрятся на ГГ. Видимо, неписи воспринимают хит от аномалии как хит от актора. Функция спавна аномалии: Скрытый текст function create_anom(section,x,y,z,lv,gv,rad_anom,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 distance = packet:r_float() local direct_control = 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 spawn_story_id = 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 max_power = packet:r_float() local owner_id = packet:r_s32() local enabled_time = packet:r_s32() local disabled_time = packet:r_s32() local start_time_shift = packet:r_s32() local offline_interactive_radius = packet:r_float() local artefact_spawn_count = packet:r_u16() local artefact_position_offset = packet:r_s32() local last_spawn_time_present = packet:r_u8() packet:w_u16(game_vertex_id) packet:w_float(distance) packet:w_s32(direct_control) 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(spawn_story_id) 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) owner_id = bit_not(0) packet:w_s32(owner_id) if time1~=nil then packet:w_s32(time1) else packet:w_s32(enabled_time) end if time2~=nil then packet:w_s32(time2) else packet:w_s32(disabled_time) end packet:w_s32(start_time_shift) packet:w_float(offline_interactive_radius) packet:w_u16(artefact_spawn_count) packet:w_s32(artefact_position_offset) 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 Грешил на owner_id, но его изменение или даже удаление строки owner_id = bit_not(0) не отменяет агрессию неписей; при удалении всех упоминаний owner_id аномалия вообще не спавнится. В чем может быть проблема? P.S. Что означает bit_not(0) в данном случае?
  19. Jekyll

    Скриптование

    Мало ли, сейвы начнут биться или еще что в таком же духе. Просто так, потому что вертекс вдруг невалидный. Это же Х-рэй как-никак:) Вроде бы, если арты спавнятся в невалидных вертексах (например, за пределами игровой зоны локации - не помню, как это правильно называется), будет вылет, или я что-то путаю?
  20. Jekyll

    Скриптование

    Здравствуйте. Такой вопрос, для общего развития: может ли привести скриптовый спавн аномалий по "невалидным" координатам к проблемам впоследствии? Под "невалидными" координатами подразумеваются, например, крыши зданий, вышек, транспорт и т.п., когда при снятии позиции известным способом выводится инфа valid = false. Кто-нибудь так экспериментировал? Аномалии-то спавнятся и работают без проблем, но хотелось бы знать наверняка.
  21. Jekyll

    Скриптование

    Здравствуйте! Пытался заспавнить аномалию с визуалом ("zone_burning_fuzz") с помощью такого кода: Скрытый текст function spawn_bf(section,position,lvid,gvid) local sobj = alife():create(section,position,lvid,gvid) repack_visual_zone_bf(sobj) end function repack_visual_zone_bf(sobj) -- burning_fuzz if sobj == nil then return sobj end local data = read_zone_visual_params(sobj) data.shapes[1]={} data.shapes[1].shtype=1 data.shapes[1].v1 = vector():set(1.70797920227051,0,0.0645924285054207) data.shapes[1].v2 = vector():set(0,9.54259395599365,0) data.shapes[1].v3 = vector():set(-0.0645924285054207,0,1.70797920227051) data.shapes[1].offset = vector():set(-0.119056679308414,-2.79967045783997,-0.000208642595680431) data.max_power = 1 data.idle_animation = "idle" data.attack_animation = "idle" write_zone_visual_params(data,sobj) return sobj end function parse_shape_packet(t,stpk,uppk) local shape_count = stpk:r_u8() t.shapes={} for i=1,shape_count do local shape_type = stpk:r_u8() t.shapes[i]={} t.shapes[i].shtype=shape_type if shape_type == 0 then -- sphere t.shapes[i].center = stpk:r_vec3() t.shapes[i].radius = stpk:r_float() else -- box t.shapes[i].v1 = stpk:r_vec3() t.shapes[i].v2 = stpk:r_vec3() t.shapes[i].v3 = stpk:r_vec3() t.shapes[i].offset = stpk:r_vec3() end end end function fill_object_packet(ret,stpk,updpk) stpk:w_u16(ret.gvid) stpk:w_float(ret.obf32u1) stpk:w_s32(ret.obs32u2) stpk:w_s32(ret.lvid) stpk:w_s32(ret.oflags) stpk:w_stringZ(ret.custom) stpk:w_s32(ret.sid) stpk:w_s32(ret.obs32u3) end function fill_shape_packet(t,stpk,updpk) stpk:w_u8(table.getn(t.shapes)) for i=1,table.getn(t.shapes) do stpk:w_u8(t.shapes[i].shtype) if t.shapes[i].shtype == 0 then stpk:w_vec3(t.shapes[i].center) stpk:w_float(t.shapes[i].radius) else stpk:w_vec3(t.shapes[i].v1) stpk:w_vec3(t.shapes[i].v2) stpk:w_vec3(t.shapes[i].v3) stpk:w_vec3(t.shapes[i].offset) end end end function fill_visual_packet(ret,stpk,updpk) stpk:w_stringZ(ret.visual) stpk:w_u8(ret.vsu8u1) end function parse_object_packet(ret,stpk,updpk) ret.gvid=stpk:r_u16() ret.obf32u1=stpk:r_float() ret.obs32u2=stpk:r_s32() ret.lvid=stpk:r_s32() ret.oflags=stpk:r_s32() ret.custom=stpk:r_stringZ() ret.sid=stpk:r_s32() ret.obs32u3=stpk:r_s32() return ret end function parse_visual_packet(ret,stpk,updpk) ret.visual=stpk:r_stringZ() ret.vsu8u1=stpk:r_u8() return ret end function read_zone_visual_params(sobj) local stpk=net_packet() local uppk=net_packet() stpk:w_begin(0) uppk:w_begin(0) sobj:STATE_Write(stpk) sobj:UPDATE_Write(uppk) local size=stpk:w_tell() local size1=uppk:w_tell() stpk:r_seek(2) uppk:r_seek(2) local t={} parse_object_packet(t,stpk,uppk,size) parse_shape_packet(t,stpk,uppk,size) t.restrictor_type = stpk:r_u8() t.max_power = stpk:r_float() t.owner_id = stpk:r_s32() t.enabled_time = stpk:r_s32() t.disabled_time = stpk:r_s32() t.start_time_shift = stpk:r_s32() t.effective_radius = stpk:r_float() t.offline_interactive_radius = stpk:r_float() t.artefact_spawn_count = stpk:r_u16() t.artefact_position_offset = stpk:r_s32() parse_visual_packet(t,stpk,uppk) t.idle_animation = stpk:r_stringZ() t.attack_animation = stpk:r_stringZ() return t end function write_zone_visual_params(t,sobj) local stpk=net_packet() local uppk=net_packet() fill_object_packet(t,stpk,uppk) fill_shape_packet(t,stpk,uppk) stpk:w_u8(t.restrictor_type) stpk:w_float(t.max_power) stpk:w_s32(t.owner_id) stpk:w_s32(t.enabled_time) stpk:w_s32(t.disabled_time) stpk:w_s32(t.start_time_shift) stpk:w_float(t.effective_radius) stpk:w_float(t.offline_interactive_radius) stpk:w_u16(t.artefact_spawn_count) stpk:w_s32(t.artefact_position_offset) fill_visual_packet(t,stpk,uppk) stpk:w_stringZ(t.idle_animation) stpk:w_stringZ(t.attack_animation) local size=stpk:w_tell() local size1=uppk:w_tell() stpk:r_seek(2) uppk:r_seek(2) sobj:STATE_Read(stpk,size) sobj:UPDATE_Read(uppk) end Собственно спавн осуществляется через function spawn_bf(section,position,lvid,gvid). Получаю такой лог вылета: Скрытый текст FATAL ERROR [23:25:07.207] [23:25:07.207] [error] Expression : <no expression> [23:25:07.207] [error] Function : CModelPool::Instance_Load [23:25:07.207] [error] File : I:\Demosfen\src\Layers\xrRender\ModelPool.cpp [23:25:07.207] [error] Line : 99 [23:25:07.207] [error] Description : fatal error [23:25:07.207] [error] Arguments : Can't find model file 'Зz№.ogf'. [23:25:07.207] [23:25:07.207] [23:25:07.207] stack trace: [23:25:07.207] [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrCore.dll at 00007FFF131DD81A xrDebug::Fatal() + 122 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrRender_R4.DLL at 00007FFEFCC7ED3B [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrRender_R4.DLL at 00007FFEFCC7F326 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB7BAFAD [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB7BC03A [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB9ECD5D [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB767971 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFBB5E0C2 xrFactory_Destroy() + 40914 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB832534 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB825417 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrGame.DLL at 00007FFEFB8256FC [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBBF2F CRenderDevice::CSecondVPParams::IsSVPFrame() + 179 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBB83D CRenderDevice::FrameMove() + 317 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBB08D CRenderDevice::on_idle() + 269 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBB41F CRenderDevice::message_loop() + 127 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23DBB625 CRenderDevice::Run() + 501 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23E1E244 Startup() + 516 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.dll at 00007FFF23E1E9B6 RunApplication() + 1446 byte(s) [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.exe at 00007FF7250F12C7 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.exe at 00007FF7250F1384 [23:25:07.220] D:\Games\Call_of_Chernobyl_dev.1.05\bins\xrEngine.exe at 00007FF7250F162E [23:25:07.220] C:\Windows\System32\KERNEL32.DLL at 00007FFF3F777974 BaseThreadInitThunk() + 20 byte(s) [23:25:07.220] C:\Windows\SYSTEM32\ntdll.dll at 00007FFF3FC7A261 RtlUserThreadStart() + 33 byte(s) [23:25:07.220] [23:25:07.220] Lua Stack Вместо названия модели кракозябры. Кто-нибудь может подсказать, чего этой заразе не хватает? Понимаю, что это не чистая ЗП, но специфика наверняка та же.
  22. @Bak Это движок так скривили? Как отключить эту "фишку"? Хотелось бы посмотреть на результат. А в ТЧ как происходила отрисовка оружейных партиклов?
  23. Здравствуйте. Решил вот проверить, как ведут себя партиклы гильз в разных частях сталкера. Ниже приведу несколько видео, где демонстрируется некоторая (неприятная) разница между ТЧ и ЗП (в т.ч. СоС). Партиклы гильз могут показаться необычными, но это для наглядности демонстрации непотребства. Сразу говорю - партиклы имеют абсолютно одинаковые конфигурации что на ТЧ, что на ЗП, в обеих версиях включена коллизия. Скрытый текст https://yadi.sk/i/UJhZMu5QRtHnzQ Тут все ОК - партиклы ложатся на землю. Скрытый текст ЗП СоС В принципе, партиклы в ЗП и СоС ведут себя одинаково - как бы "летают", в чем, собственно, и состоит проблема. Т.к. это проявляется уже в ЗП, то авторы сборки СоС явно ни при чем. Кто-нибудь может объяснить подобную разницу? Это такое улучшение движка по мнению GSC? Или это проблема в СДК07 при переносе партиклов с ТЧ на ЗП? Просто в ТЧ можно было сделать "реалистичные" партикловые гильзы за счет коллизии, что видно на соответствующем видео - там обычные партиклы гильз могут отскакивать от стен и других поверхностей при должной настройке. Если нужно, запишу видео. В ЗП же это, видимо, уже невозможно сделать? Upd. Партикл этот используется в аномалии и проверялся и на ТЧ, и на ЗП - у аномалии работает как надо.
  24. @AndreySol меня интересует, как реализовано срабатывание (частота подачи звукового сигнала) прибора в зависимости от расстояния до интересующей зоны.
  25. Здравствуйте! Какой скрипт/скрипты отвечают за пищалку детектора при приближении к аномалии и треск радиометра возле зон с радиацией? Или это в движок зашито?

AMK-Team.ru

×
×
  • Создать...