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

Судьба Зоны: Ковыряемся в файлах

Рекомендуемые сообщения

 

 

А можно примерчик?

Вопрос выглядит так, будто вы сомневаетесь в том что это легко делается. Или в том что я могу этот пример написать? о_О :)

Знаете, это забавно вообще-то.

 

Начнем с того, что в примере @CRAZY_STALKER666, дан блок кода на ОДНОГО уник.нпс. И его несчастный объект получают на каждом апдейте. Спрашивается зачем? это что, каждый апдейт другой нпс? Во вторых, логично предположить что такая штука потребуется не для одного-единственного нпс, а для многих. И что тогда? На каждом апдейте получать кучу объектов нпс и так далее...

А кроме того. Этот код не гарантирует бессмертия нпс. Если кто-то или что-то его убьет одним ударом, за один хит - он все равно умрет.

У вас еще остались сомнения в том что это полный бред? тогда вы неисправимый оптимист. Эта конструкция будет тормозить игру лютым образом.

 

Если бы была задача сделать всех уник.нпс постоянно-лечащимися (я не могу ЭТО называть бессмертием т.к. это не оно), и мне было бы не лень чуть-чуть подумать над тем как это делать, то получилось бы что-то такое:

В bind_stalker.script ближе к началу

local story_npc_table = {}
function add_story_npc(story_id, obj)
    story_npc_table[story_id] = obj
end
function remove_story_npc(story_id)
    story_npc_table[story_id] = nil
end

в bind_stlker.script в actor_binder:update(delta)

    for story_id, npc_obj in pairs(story_npc_table) do
        if npc_obj~=nil and npc_obj:alive() and npc_obj.health <= 0.9 then --- если жив и здоровье его меньше 0.99
           npc_obj.health=1.0 --- лечим
        end
    end

В xr_motivator.script:

в motivator_binder:net_spawn(sobject)

    local sid = self.object:story_id()
    if sid and sid > 0 and sid < 65535 then
        bind_stalker.add_story_npc(sid, self.object)
    end

в motivator_binder:net_destroy()

    local sid = self.object:story_id()
    if sid and sid > 0 and sid < 65535 then
        bind_stalker.remove_story_npc(sid)
    end

 

 

 

 

Просили пример - ну вот он. Написать это можно за минуту, каких-то исключительных знаний тут не требуется. Просто не относиться наплевательски к юзерам...

Вообще же, делать нпс псевдобессмертными это само по себе топорный метод. Нпс живущий в стае химер это такой же бред, как и эта стая химер что ворвалась на базу сталкеров и вынесла ее всю. Проблемы можно решать гораздо более геймплейно-правильными и элегантными решениями.

Вот вам другой пример: видел ли кто-нибудь, чтобы Болотного доктора загрызли мутанты? а ведь он один живет, в доме на болотах. И двери этого дома всегда открыты...


@Алексеич,

 

 

events.script, function actor_update_100mc

Это и есть ответ на вопрос "где это".

А выражение в строке означает - если скорость актора больше 0.05 м/с, значит вычисляем, сколько выносливости он при этом теряет. Там ниже этой строки, все эти вычисления есть.

Если актор не движется - значит отдыхает, и выносливость не теряет.

  • Спасибо 1
  • Нравится 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.

Ссылка на комментарий
будто вы сомневаетесь в том что это легко делается. Или в том что я могу этот пример написать? о_О

Да ни в коем случае! Просто моих познаний в lua хватает только на else ...if...then...end. А бессмертных мне проще сделать через алспавн и секцию Сахарова. Хотя

Нпс живущий в стае химер это такой же бред

Вот тут полностью согласен. Все в округе дохлые - и один Дункан Мак'Лауд с мЯчом наперевес... Бредово... 

Зы. Может, сумбурно написал, прошу прощения, просто вывожу радиацию...

И ещё зы. А разве Болотный Доктор не нейтрален ко всем. в том числе и к монстрам?...

Изменено пользователем nasar75

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

Ссылка на комментарий

Ну вообще "как бы нет". Надо бы ему потом в будущих патчах дальность обзора уменьшить :) а то когда зверей видит из окна своей избушки, кричит и за оружие хватается :)

А еще при всех косяках настроек респавна... я вот практически совсем уверен, что на Скадовске все тамошние хакеры торговцы и прочие, живы-здоровы. В отличие от АТП и МГ.

Скорее всего я потом просто сделаю на АТП и на МГ так же как на Затоне.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Ссылка на комментарий

 

 

Но я помню что делать нормально - не принято

 

Выскажи это автору кода - он сделал Sigerous Mod.

Я, для таких целей, использую совсем другие методы, не связанные со скриптами.

Не соответствует правилам.

Ссылка на комментарий

Изменение расхода выносливости.

 

Файл events.script
В начале файла три строчки. Их и редактируйте в свое удовольствие. Меньше - меньше отнимается выносливости.

local pow_koef_1 = 0.000030
local pow_koef_2 = 0.000020
local pow_koef_3 = 0.000045

 

  • Спасибо 1
  • Полезно 3
Ссылка на комментарий

Всем доброго!

Подскажите пожалуйста, как отключить дождь??? Это невозможно!! Даже на минимальной статике все фризит и вылетает!! :dash2: :dash2:  Я по Ч-4 от входа со Старой Свалки до городка уже полтора часа дойти не могу!

Железо: IC i5-7500 CPU 3.40 GHz, ОЗУ 16 Гб, NVIDIA GeForce GTX 750. Win10 64-бит

Ссылка на комментарий

 

 

Выскажи это автору кода

1. Мне совершенно безразлично кто автор этого кода, и какие ДРУГИЕ работы он сделал. я говорю о данном конкретном куске кода, который для данной поставленной задачи, представляет собой полное убожество.

2. А я вообще не ставлю перед собой такие цели. Ибо бессмертные нпс это бред, и не важно как их реализовывать, со скриптами или без.

 

@Niko971, поставить rain_density = 0 в каждой секции погоды. Хотя думается мне, на это можно убить немало времени. Как вариант, можно погоду оригинала поставить, + облегченные паки текстур вроде где-то были.

  • Спасибо 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.

Ссылка на комментарий

 

 

1. Мне совершенно безразлично кто автор этого кода, и какие ДРУГИЕ работы он сделал. я говорю о данном конкретном куске кода, который для данной поставленной задачи, представляет собой полное убожество. 2. А я вообще не ставлю перед собой такие цели. Ибо бессмертные нпс это бред, и не важно как их реализовывать, со скриптами или без.

 

Хорошо...

1. Сочтемся на том, что пример неудачный, и не гарантирует full-бессмертия.

2. На самом деле не бред, как сказал один интересный человек - сталкер "казуалочка", и иногда для полной проходимости мода бессмеритие нпц нужно.

3. Извини, что делаю мозги ;)

  • Согласен 1

Не соответствует правилам.

Ссылка на комментарий

Всем провет!!!

 

...В корневой папке config есть файл hud_settings.ltx...

Перелопатил на 20 рядов - не вроде все логично - но искал тока одно.

В этом файле должен быть параметр прозрачности инвентаря...

Не нашел.

Может кто ткнет в строчки где и как это прописано?

(т.е. фон под стволами и рюкзаком - по моим подсчетам - там ингридиент-

значение от и до - в цифрах примерно от 10 до 100) 

Изменено пользователем BFG

Самое гениальное - это самое простое - но чтобы сделать простое - нужно быть гениальным...

Ссылка на комментарий

;;;;;;;;;;НОЖ;;;;;;;;;;;;;;;;;;;;;;

slot1_textures            = invslot_scr_r,invslot_scr_rb,invslot_scr_b2,invslot_scr_lb,invslot_scr_l,invslot_scr_lt,invslot_scr_t2,invslot_scr_rt,inv_scr_back

 

;;;;;;;;;;;;ПИСТОЛЕТ;;;;;;;;;;;;;;;;;;;;

slot2_textures            = invslot_scr_r,invslot_scr_rb,invslot_scr_b2,invslot_scr_lb,invslot_scr_l,invslot_scr_lt,invslot_scr_t2,invslot_scr_rt,inv_scr_back

 

;;;;;;;;;;;;БИНОКЛЬ/ДЕТЕКТОР;;;;;;;;;;;;;;;;;;;;

slot5_textures            = invslot_scr_r,invslot_scr_rb,invslot_scr_b1,invslot_scr_lb,invslot_scr_l,invslot_scr_lt,invslot_scr_t1,invslot_scr_rt,inv_scr_back

 

;;;;;;;;;;;;АВТОМАТ;;;;;;;;;;;;;;;;;;;;

slot3_textures            = invslot_scr_r,invslot_scr_rb,invslot_scr_b3,invslot_scr_lb,invslot_scr_l,invslot_scr_lt,invslot_scr_t2,invslot_scr_rt,inv_scr_back

 

;;;;;;;ОКНО СЕТКИ ИНВЕНТАРЯ (РЮКЗАК) ;;;;;;;;;;;

inv_grid_textures        = inv_scr_r,inv_scr_rb,inv_scr_b,inv_scr_lb,inv_scr_l,inv_scr_lt,inv_scr_t,inv_scr_rt,inv_scr_back

 

;;;;;;;;; ОКНО СЕТКИ ИНВЕНТАРЯ ЯЩИКА ИЛИ ТРУПА ;;;;;;;;;

inv_grid_2_textures        = inv_scr_r,inv_scr_rb,inv_scr_b,inv_scr_lb,inv_scr_l,inv_scr_lt,inv_scr_t,inv_scr_rt,inv_scr_back

 

;;;;;;;;;ОКНО С ФИГУРОЙ ГГ ;;;;;;;;;;;;;;

equip_window_textures        = empty_texture,inv_scr_back

 

 


    <file_name>ui\ui_script</file_name>
    
* * *    
    <texture id="inv_scr_back" x="0" y="490" width="20" height="20" />  

 

 

 

  • Полезно 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.

Ссылка на комментарий

Всем доброго!

 

 

+ облегченные паки текстур
поставил самые легкие из тех, что здесь выкладывали - не помогло. Стена осталась на прежнем месте и идет через всю локацию - вчера пытался пробратся со стороны котельной и между базой и болотом, сегодня заходил от хутора Крохобора - бесполезно... Отчет в "техничке". Как менять погоду я не знаю, пойду попробую поспать, может поможет как на Ст. свалке.

Железо: IC i5-7500 CPU 3.40 GHz, ОЗУ 16 Гб, NVIDIA GeForce GTX 750. Win10 64-бит

Ссылка на комментарий

Zander_driver
 
...slot1_textures = invslot_scr_r,invslot_scr_rb,invslot_scr_b2,invslot_scr_lb,invslot_scr_l,invslot_scr_lt,
invslot_scr_t2,invslot_scr_rt,inv_scr_back...
 
Вот веришь нет - для меня это китайский язык...
Не вот с цифрами я то понял прозрачность - а тут...!
Я те уже говорил - мы на одно и тоже смотрим разными глазами...
Вот это все - расчитано - на более-менее подготовленных людей.
Но ни как на простых смертных.
 
Не если ты бы написал - заменить выделенное inv_scr_back - на чень еще - это понятно.
К ста - сделал первый нашлепок...

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 

Tech_Vampire

 

...Файл events.script.В начале файла три строчки. 

Их и редактируйте в свое удовольствие. Меньше - меньше отнимается выносливости.
local pow_koef_1 = 0.000030
local pow_koef_2 = 0.000020
local pow_koef_3 = 0.000045...

 

Попробовал - изминений нет...

Даже тут уменьшил:

if act_speed > 0.0000005 then --- расчет потери выносливости

И ничего..!

Изменено пользователем Алексеич
Добавлено BFG,

Строгое Предупреждение !

Цвет поста - ЧЁРНЫЙ !

И никакой иной. за исключением цветовой гаммы в тэге "code".

Красный цвет - Модератора.

Синий цвет - Куратора, в СВОЕЙ теме.

Самое гениальное - это самое простое - но чтобы сделать простое - нужно быть гениальным...

Ссылка на комментарий

Попробовал - изминений нет...

 

Гмм. Не может не работать. Там все просто.

Формула уменьшения выносливости:

local power_lost = (e_w * speed_koef * speed_koef * pow_koef_1) + ((c_w + s_w) * math.sqrt(speed_koef) * pow_koef_2) + (ruk_w * speed_koef * pow_koef_3)
db.actor.power = -power_lost   

pow_koef_1, pow_koef_2 - если не ошибаюсь влияние веса костюма и разгрузки

pow_koef_3 - влияние веса рюкзака

if ruk_w > 25 then
      ruk_w = ruk_w + ((ruk_w - 25) * (ruk_w - 25) * 0.12)
end

каждый килограмм в рюкзаке свыше 25 тяжелее на 12% от квадрата

 

Даже тут уменьшил: if act_speed > 0.0000005 then --- расчет потери выносливости И ничего..!

А вот это зря. Это условия входа в расчет.

 

 

Ссылка на комментарий

Tech_Vampire

 

Я поставил так:

local pow_koef_1 = 0.00000030
local pow_koef_2 = 0.00000020
local pow_koef_3 = 0.00000045

А насчет - if act_speed  - ты прав не разобрался - вернул все на свое.

Ща начну игру заного и протестирую.

...local power_lost.....

Вот для меня - это китайский язык...

Ну не волоку я в этом - да и не мое - не занимался никогда...

Я воятель.

Изменено пользователем Алексеич

Самое гениальное - это самое простое - но чтобы сделать простое - нужно быть гениальным...

Ссылка на комментарий

 

 

для меня это китайский язык...

Ну блин.

 

В моем посте выше, выделенное жирным - это имя текстуры которая используется для заполнения рамки. т.е. для вот того самого полупрозрачного безобразия, оно во всех окнах (нож, пистолет, рюкзак, и т.д.) использует одну и ту же текстуру. С именем inv_scr_back. а если быть точным, это "вырезанный кусочек" текстурного файла.

<texture id="inv_scr_back" x="0" y="490" width="20" height="20" /> 

 

Вот тут указано, КАКОЙ это кусочек. начиная с координат 0, 490, квадрат 20 х 20 пикселов. В файле-текстуре textures\ui\ui_script.dds

Можно вот в этом кусочке поменять альфа-канал. Можно в xml-файле, в котором это описано, описать другой кусок текстуры. Можно наконец, inv_scr_back заменить на что-то свое. Можно делать как угодно, и для этого не требуется лезть в скрипты и понимать их.

  • Полезно 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.

Ссылка на комментарий

Zander_driver

 

Вооо - это я сразу понял - есть:

и путь и координаты...

...Путь - файле-текстуре textures\ui\ui_script.dds

Можно вот в этом кусочке поменять альфа-канал -

начиная с координат 0, 490, квадрат 20 х 20 пикселов...

Результат: (хотя и с третьего раза поймал но квадрат альфы сделал в два раза больше...

иначе вылазил ингридиент)

 

 

8285228m.jpg

 

Но теперь вылезли все огрехины скриптования - см. сам...

И нет сетки.

(хотя иконки кторые уже поправил смотрятся прилично - тока вот координаты и размеры их надо поменять...)

...Можно наконец, inv_scr_back заменить на что-то свое. Можно делать как угодно...

честно скажу ну вот не представляю как.

inv_scr_back - вообще первый раз вижу и что то есть еще - непредставляю...

Изменено пользователем Алексеич

Самое гениальное - это самое простое - но чтобы сделать простое - нужно быть гениальным...

Ссылка на комментарий

 

 

И нет сетки.

Сетка точно так же собирается из кусочков текстур, просто на не-прозрачном фоне ее хуже видно (точнее, совсем не видно :) ) надо делать ее заметнее.

А прозрачные полосы между "задним фоном" и границей окна, это на самом деле текстура границы окна. Если ее поправить (убрать прозрачность с внутренней стороны), то станет нормально.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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

 

координаты сетки?

Самое гениальное - это самое простое - но чтобы сделать простое - нужно быть гениальным...

Ссылка на комментарий

@Алексеич,

В том же файле ui_script.dds

 

    <texture id="inv_grid_line_x" x="50" y="460" width="40" height="40" />    
    <texture id="inv_grid_line_y" x="50" y="510" width="40" height="40" />  

 

т.е. куски текстур размером 40х40, в координатах 50,460 (горизонтальные линии), и 50,510 (вертикальные линии). При отображении в инвентаре, эти текстуры сжимаются до двух пикселов поперек своего направления, и растягиваются до размеров рюкзака, по своей основной длине.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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
 
Не это я ща найду - спасибо за координаты.
Но я сделал вариант просче - где не надо ничего натягивать...
Ну кроме сетки - я не знаю как ее делать.
Если влепить в текстуру - то тогда нельзя будет поменять квадраты в maingame.xml.
А тут уже есть текстуры фона и нет просветов...
Тем более можно сделать любую альфу от полностью прозрачного
рюкзака до глухого тона...Кучу вриантов - на любой вкус.
К тому же -  все элементы выставлены по сетке и есть место
под новые кнопки...

8318020m.jpg   8314948m.png

 

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

    Zander_driver

И так мои поиски истины:.
на рисунке:
1 рис. = 0.00 2 рис. = 0.00 3 рис. - попал...

 

8279131m.jpg

 

1 рис. - родная толщина
2 рис. - увеличил в 2 раза
3 рис. - увеличил в 3 раза появилась сетка...
Но как тока появилась сетка...
Возникла куча - не большая куча вопросов...
(для админов - да это про графику - но тут скриптами устанавливают параметры
графики - поэтому я в теме - "Ковыряемся в файлах"...)
Вот что получил:

 

8287321m.jpg

 

Вопросы:
*- нет сетки на оружии - весь верх
*- М 1:1 - зачем иконки иквинтума размазывать? Ведь увеличивая иконку
(тем более на такой размер) резкость иконки падает минимум на 30%...
*- пистолет 3х2 - поменял 2х1... Ты говорил - полоса жизни ствола - просто подтянется к иконке.
См. что получилось...
Иконка уменьшилась и растянулась - опять с большой потерей резкости...
Чет Вы намудрили с картинками.

А я иквинтум шерстил насчет резкости - а проблема то в скриптах..!

Пожелание : - может стоит показать иконку рюкзака - на ГГ.
Так как может быть - бронька - новичка - а рюкзак - ну крутейший..!?

 

Выскочила в игре иконка (какой то мешок) - что это - не понял.
Может стоит скинуть все значки и расписать - что каждый обозначает.
Есть куча значков в игре тут:

 

8299608m.jpg

 

и над здоровьем ГГ - там где кровать высвечивается.

(тут у меня мешок и появился)


/////////////////////////////////////////////////////////////////////

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Еще вопросы:

надо путь - где прописаны параметры - ТТД - пистолетов ОС33 и Вальтер Р38 ?

Есть ли файл с начальной экипировкой ГГ. (путь)

 

К ста - исходя из последних данных:

нельзя будет поменять квадраты в maingame.xml.

Изменено пользователем Алексеич
  • Спасибо 1

Самое гениальное - это самое простое - но чтобы сделать простое - нужно быть гениальным...

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

  • Куратор(ы) темы:

AMK-Team.ru

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