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

[SoC] Ковыряемся в файлах


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

Здрасьте.

 

Заметил, что иконки накопления и вывода радиации в параметрах артефактов одинаково рыжие. Хотел исправить, но уперся.

 

Ход расследования:

  1. В файле config\ui\af_params.xml, нашел секции для двух иконок: static_radiation_restore_speed и static_radiation_immunity. Методом тыка выяснил, что первая секция меняет обе иконки, а вторая не делает ничего. Для артефактов, дающих статическую защиту (Колобок, например), ссылки в секции immunity работают, но параметр радиации не статичен.
  2. В файле config\ui\ui_hud.xml также нашел описание двух иконок (ui_inv_icon_radiation_restore_speed и ui_inv_icon_radiation_immunity), из них вторая точно задействована в статах брони, так что ошибка не в имени ссылки.
  3. В файле config\misc\artefacts.ltx нашел переменную radiation_restore_speed, которая, в зависимости от знака, управляет и накоплением, и выводом радиации. Видимо, поэтому и ссылка на одну секцию управляет обеими иконками.

Как исправить/разделить иконки, не создавая новую переменную? Можно ли прямо в описание артефактов добавить модуль if … then для различения знака имеющейся переменной и подстановки ссылки на нужную иконку?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

Привет всем. Скинули мне жажду, поставил на апдейт, вылетает с таким логом:

 


Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : .\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...of chernobylмод\gamedata\scripts\bind_stalker.script:250: attempt to index global 'zhazhda' (a nil value)

script Syntax Checker указал что стоит лишняя end в:
function popit()
--if has_alife_info("mgflash_start_info") then 
update()
sendtip("Жажда")
end
--end -- лишняя end


После этого вылетает с таким уже логом:


Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : .\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...of chernobylмод\gamedata\scripts\bind_stalker.script:250: attempt to call field 'popit' (a nil value)

script Syntax Checker уже ни на что не указывает. На этом моё скриптовое мастерство заканчивается)
Кто может помочь, вот ссылка на скрипт: https://yadi.sk/d/8pG4hMVc3ZeXZs

Изменено пользователем Houdini_one
  • Сочувствую 1

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

@Houdini_one, ошибка в строке 13:

local power = db.actor:power()

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

S.T.A.L.K.E.R. CoP Objects (upd 28.10.24)

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

Доброго времени суток, уважаемые модмейкеры. Нигде не могу найти инструкции, как правильно удалить спавн НПС в SoC. Кто может помочь? Заранее спасибо.

Изменено пользователем Drevnerus
Ссылка на комментарий

@Drevnerus, создать заново локацию без спавна с другим именем - это будет 100% гарантия от будущих вылетов.

Можно топорно вырезать спавн из алспавна, но есть вероятность напороться на оставленный рестриктор с логикой вызывающий спавн.

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

andreyholkin.gif

rod_cccp.gif

 

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

@Drevnerus, можно, только имя задавай другое. Возможно есть скриптовые функции, которые по имени левела будут срабатывать. Можно и в оригинальном алсспавне вырезать спавн, если хорошо знать каждую мелочь.

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

andreyholkin.gif

rod_cccp.gif

 

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

@Expropriator, в этом и проблема. Я уже пробовал удалять секции спавна Волка из all.spawn/alife_l01_escape и словил вылет с пустым логом. Жаль, что многие туториалы по модострою не содержат конкретики и направлены на уже разбирающихся модмейкеров. Таковых мало и как раз по моей теме нет.

 

Так, значит задаём другое имя. В game_graphs.ltx я создаю в секции [location_0] новый id моей будущей локации. В моём случае id = 22.

Скрытый текст

[location_0]
  000          = "..."
  001          = "эскейп"
  002          = "свалка"
  003          = "агропром"
  004          = "агропром-подземка"
  005          = "темная долина"
  006          = "лаборатория X-18"
  007          = "даркскейп"
  008          = "Бар"
  009          = "Росток"
  010           = "Янтарь"
  011           = "лаборатория X-16"
  012           = "Милитари"
  013           = "Мертвый город"
  014           = "Радар"
  015           = "Радар бункер"
  016           = "Припять"
  017           = "станция АЭС"
  022          = "Моя локация"

 

Потом иду в game_levels.ltx, ищу секцию [levels] и добавляю туда level22. В этот же файл добавляю подсекцию локации с именем level22.

Скрытый текст

[levels]
    level01
    level02
    level03
    level04
    level05
    level06
    level07
    level08
    level09
    level10
    level11
;    level12
    level13
    level14
    level15
    level16
    level17
;    level18
    level19
    level20
;    level21
    level22

    
[level01]
 name   = L01_Escape
 caption = "L01_Escape"
 offset  = 3000.0,    1000.0,    0.0
 id   = 01

[level02]
 name   = L02_Garbage
 caption = "L02_Garbage"
 offset  = 3000.0,    1000.0,    1000.0
 id = 02

[level03]
 name   = L03_Agroprom
 caption = "L03_Agroprom"
 offset  = 2000.0,    1000.0,    1000.0
 id   = 03

[level04]
 name   = l03u_agr_underground
 caption = "l03u_agr_underground"
 offset  = 2000.0,    800.0,    1000.0
 id   = 04

[level05]
 name   = l04_darkvalley
 caption = "l04_darkvalley"
 offset  = 4000.0,    1000.0,    1000.0
 id   = 05

[level06]
 name   = l04u_LabX18
 caption = "l04u_LabX18"
 offset  = 4000.0,    800.0,    1000.0
 id   = 06

[level07]
 name   = L05_Bar
 caption = "L05_Bar"
 offset  = 3000.0,    1000.0,    2000.0
 id   = 07

[level08]
 name   = L06_rostok
 caption = "L06_rostok"
 offset  = 2000.0,    1000.0,    2000.0
 id   = 08

[level09]
 name   = l08_yantar
 caption = "l08_yantar"
 offset  = 1000.0,  1000.0, 2000.0
 id   = 09

[level10]
 name   = l08u_brainlab
 caption = "l08u_brainlab"
 offset  = 1000.0,   800.0, 2000.0
 id   = 10

[level11]
 name   = L07_Military
 caption = "L07_Military"
 offset  = 3000.0,     1000.0, 3000.0
 id   = 11

[level12]
 name   = L09_Deadcity
 caption = "L09_Deadcity"
 offset  = 1000.0, 1000.0,    3000.0
 id   = 12

[level13]
 name   = l10_radar
 caption = "l10_radar"
 offset  = 3000.0, 1000.0,    4000.0
 id   = 13

[level14]
 name   = L11_Pripyat
 caption = "L11_Pripyat"
 offset  = 3000.0,     1000.0,   5000.0
 id   = 14

[level15]
 name   = L12_Stancia
 caption = "L12_Stancia"
 offset  = 2000.0, 1000.0, 8000.0
 id   = 15

[level16]
 name   = L12U_Sarcofag
 caption = "L12U_Sarcofag"
 offset  = 2000.0,  1200.0,    8000.0
 id   = 16

[level17]
 name   = l12u_control_monolith  
 caption = "l12u_control_monolith"
 offset  = 2000.0,   1400.0,    8000.0
 id   = 17

[level18]
 name   = k01_darkscape
 caption = "k01_darkscape"
 offset  = 4000.0,     1000.0,  0.0
 id   = 18

[level19]
 name   = L12_Stancia_2
 caption = "L12_Stancia_2"
 offset  = 2000.0, 1000.0, 9000.0
 id   = 19

[level20]
 name   = l10u_bunker
 caption = "l10u_bunker"
 offset  = 3000.0, 800.0,    4000.0
 id   = 20

[level21]
 name   = l23_final_battle
 caption = "l23_final_battle"
 offset  = 2000.0, 800.0, 9000.0
 id   = 21
 
 [level22]
 name   = L01_Escape
 caption = "Моя локация"
 offset  = 2000.0, 800.0, 9000.0
 id   = 22

 

В game_maps_single.ltx я ничего не трогаю, т.к. L01_Escape там уже есть. Я всё правильно сделал? Ничего не пропустил? Стоит ли переименовывать саму папку l01_Escape или можно оставить прежней?

Изменено пользователем Drevnerus
Ссылка на комментарий

@Drevnerus, какое-то изнасилование. Все эти действие приведут только к вылету, чем к результату. Куда проще уже помучаться и почистить all.spawn от ненужных секций, главное, чтобы номера по порядку шли в файле. Или еще потратить время и изучить SDK.

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

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

@Возрождённый, так номера секций должны быть по порядку? Возьму на заметку. Спасибо. Можете скинуть мне ссылку на уроки по SDK, по которым Вы изучали его сами?

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

@Drevnerus, это я зря тебя надоумил менять имя локации, (хотя это можно в далёком будущем, когда мы вымрем, сделать). Просто в переименовке локации заложено, то самое спасение, от 0,0001% случаев с вылетами. Если не шаришь, то лучше не переименовывать. Там дофига работы потребуется переворошить, вплоть до скриптов.

 

Чисть алспавн пока через https://yadi.sk/d/yOqoIyKasfMYX

 

Или посмотри этот мод, там алспавн почищен (почти), правда там одна новая локация подцеплена, может пригодится.

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

andreyholkin.gif

rod_cccp.gif

 

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

В стулкире вообще реально сделать так, чтобы НПС был стойким (или даже бессмертным) к одному типу повреждений, но уязвим к другим? Пытаюсь сделать защиту от укусов/царапин, но чтобы сохранялось повреждение от пуль, так при настройке дамага и иммунитетов НПС либо дохнет от всего сразу, либо сразу от всего становится крепким (а-ля 5 магазинов в голову чтобы его убить и т.д). Это вообще никак не отбалансировать, третьего не дано, я так понимаю?

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

@HellRatz, а damage зачем трогаешь? Он используется при пулевых повреждениях. Тебе наверное достаточно immunities_sect покрутить.

 

Ссылка на комментарий
16 часов назад, dsh сказал:

Тебе наверное достаточно immunities_sect покрутить.

Что-то нет. Крутил я. Это не работает как у ГГ, т.е выставление какого-то хита в нули не дает совершенно никакой стойкости к этому хиту, дохнет как обычно (ну, возможно, на долю покрепче становится)

Ссылка на комментарий
17 минут назад, Expropriator сказал:

а у брони покрутить?

Так вот либо крепок от всего, либо дохнет от всего. Третье никак не могу выкрутить.

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

Такая ситуация: допустим, я вызвал сообщение актору такой вот функцией.

Скрытый текст

function podskaska_1()
    news_manager.send_tip(db.actor, "текст сообщения", 0, "default", 17000)
end

И хотелось бы прикрепить к этому сообщению озвучку. В этом собственно и вопрос - как вызвать какой либо звук/озвучку во время отсылания сообщения актору?

p.s. пользовался поиском, не помогло, возможно вопрос неправильно поставил или ещё что, но если ответ на мой вопрос уже есть, то попрошу тыкнуть в него моим носом))

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

Добавляешь следующей строкой функцию воспроизведения

function podskaska_1()
    news_manager.send_tip(db.actor, "текст сообщения", 0, "default", 17000)
    local snd_obj = xr_sound.get_safe_sound_object([[ambient\new\alarm_jantar_2]])
    snd_obj:play(db.actor, 0, sound_object.s2d)
end

 

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

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

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

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

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

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

Войти

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

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

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