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

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


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

Всем привет! Помогите разобраться с ситуацией, что не так я делаю (ТЧ 1.0004 +АМК 1.4.1): 

 

В бинд сталкере под апдейдом прописываю след.:
if self.object.satiety >= 0.7 then
db.actor:give_info_portion("satiety_critical")
end
else
if self.object.satiety <= 0.69 then
db.actor: disable_info_portion("satiety_critical")
end
else
if self.object.satiety >= 0.9 then
local gg = db.actor
gg:kill(gg)
end


То получаю вылет при загрузке:
Arguments : LUA error: ...er Тени Чернобыля\gamedata\scripts\se_respawn.script:483: attempt to index field 'actor' (a nil value)

 

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

 

 

 

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

if self.object.satiety >= 0.7 then

db.actor:give_info_portion("satiety_critical")

end

else

 

Что-нибудь одно. Или if ... end; if ... end; if ... end - если речь идет о разных вещах, или, если проверяем одно и то же if ... elseif ... elseif ... end

 

И вообще, идем на lua.org, качаем оттуда компилятор, и если что-где меняем - сначала пробуем через компилятор пропустить. Луа-чеккер не предлагаю, по тому что просто лишняя надстройка, и там хочет еще кучу всего.

Изменено пользователем Dennis_Chikin
  • Спасибо 1
  • Не нравится 1
Ссылка на комментарий

@Outfater, что ты делаешь? Сытость в другую сторону работает. Попробуй так, а то я с начала игры умер):

if db.actor.satiety <= 0.3 then


 db.actor:give_info_portion("esatiety_critical)
 end
 if db.actor.satiety >= 0.31 then
 db.actor:disable_info_portion("esatiety_critical)
 end
 local gg = db.actor
 if db.actor.satiety <= 0.1 then
 gg:kill(gg)
 end

 

 

По крайней мере в игре работает.

  • Спасибо 1

Изображение погибло, снес. Ссылка на канал остается пока в виде >>>ссылки<<<. HellRatz

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

Ну, может, человек хочет сделать смерть от обжорства... ;)

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

@Morder07,

Вольная цитата  от балды из отзывов к большинству модов...

**Неписи видят ГГ через всю локацию и суперметко стреляют, убивая его одной пулей**

Ну а так...Вот тут почитай.

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

Ребят, подскажите как на айтеме сделать эффект уменьшения здоровья, что-то типа бустеров из ЗП, на определённое время?

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

Всем привет, опять приходится поднимать вопрос по условию:

if db.actor.satiety <= 0.3 then

 db.actor:give_info_portion("esatiety_critical)
 end

Пробовал в любом месте (и перед последним end, как советовали) это прописать под функцией function actor_binder:update(delta), но получаю вылет при загрузке:

[error]Expression    : fatal error

[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ... Тени Чернобыля\gamedata\scripts\bind_stalker.script:664: attempt to compare nil with number
Только сточка 664 меняется, и она указывает всё время на if db.actor.satiety <= 0.3 then (при варианте if self.object.satiety <= 0.3 then - тоже самое)
Могу только догадываться (т.к. не знаю языка LUA), что причина либо в самом условии (какой-то неверный параметр), либо в отсутствии какой-то строчки с параметром nil. Если кто может, помогите пожалуйста с этим.
З.Ы. Вопрос решен.
Изменено пользователем Outfater

 

 

 

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

@Outfater, на 4 патче в db.actor нет параметра satiety. Поэтому db.actor.satiety это nil и к нему операция <= не применяется.

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

Возник ряд вопросов относительно некоторых параметров в конфигах оружия. Что оно такое и на что влияет?
вот эти параметры:

  • max_radius - ???
  • min_radius - ???
  • launch_speed - вразумительные значения видел только у гранатометов, но зачем этот параметр присутствует и у другого оружия, и почему у стволов оснащенных подствольником - равен нулю...
  • $prefetch - на что именно это влияет, конфиги же грузятся в порядке подключения их к system.ltx и подклченных к нему файлов?

По первым двум - наиболее вразумительная подборка постов сведена вот здесь http://www.amk-team.ru/forum/index.php?showtopic=13148&p=971188
То есть, надо проверять. На чистом ТЧ. dc

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

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

 

min_rаdius - минимальное расстояние, на котором нпц будет использовать этот вид оружия (актуально для гранат, снайперок и гранатометов, допустим min_rаdius = 30 значит если цель находится ближе 30 метров - нпц сменит (например снайперку) на пистолет))

 

mаx_rаdius - максимальное расстояние, на котором нпц будет использовать данный вид оружия, допустим 

mаx_rаdius = 50 значит если цель находится дальше 50 метров, то нпц не будет стрелять из этого оружия (слишком маленький mаx_rаdius является причиной весьма распространенного глюка: наверняка у каждого был такой момент, когда враги прекрасно видели гг, но не стреляли и просто ходили из стороны - в сторону)

 

для пистолетов и автоматов рекомендую выставлять min_rаdius = 0

для снайперок и гранатометов min_rаdius = 30 и больше

 

mаx_rаdius можно тупо поставить всем  стволам значение 200 (больше смысла не имеет, можно меньше, допустим 100)

  • Нравится 1

Мы по аномалиям зону разберём!

Сидора повесим, а Бармена убьём!

Ну а вояк мы смоем в унитаз!

Пускай плывет в канализации спецназ!

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

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

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

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

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

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

mzarkas,

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

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

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

Возможно пишу не сюда, уж простите.

 

Вопрос по поводу OGSM 2.3.1 Ultimate, возможно ли пофиксить проблему с таймерами как в Чистом Небе, когда через месяц игрового времени герой не хочет есть, спасть, выбросы не происходят и т.д.?

 

Если не трудно опишите подробно метод исправления данной ситуации.

Добавлено Kirgudu,

Перенёс из http://www.amk-team.ru/forum/index.php?showtopic=5412

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

@Возрождённый, на Янтаре и Радаре пси-излучение сделано через рестрикторы со схемой sr_psyantenna.

Можно сделать на базе аномалии - ZS_RADIO (вроде, так класс называется) - радиоактивная зона, просто тип хита поменять. Так в ЗП пси-аномалии сделаны.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@Возрождённый, дополню naxac-a: 

 

 

Один из рестрикторов на Радаре:

; cse_abstract properties
section_name = space_restrictor
name = rad2_space_restrictor_0000
position = -5.87346267700195, -0.711700439453125, 14.6107597351074
direction = -0.0772645771503448, 1.9053154609594e-009, 2.46841782569618e-008
id = 65535
version = 118
script_version = 6
spawn_id = 7034


; cse_alife_object properties
game_vertex_id = 1862
level_vertex_id = 197671
object_flags = 0xffffff3e
custom_data = <<END
[logic]
active = sr_psy_antenna@no_helmet


[sr_psy_antenna@no_helmet]
eff_intensity = 20
hit_intensity = 30
on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_helmet, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_helmet
on_info2 = {+bar_deactivate_radar_done} nil
phantom_prob = 40
min_phantom_idle = 15000
max_phantom_idle = 20000


[sr_psy_antenna@bad_helmet]
eff_intensity = 40
hit_intensity = 0
on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_helmet, {=actor_has_item(bad_psy_helmet)}, sr_psy_antenna@no_helmet
on_info2 = {+bar_deactivate_radar_done} nil
phantom_prob = 30
min_phantom_idle = 15000
max_phantom_idle = 20000


[sr_psy_antenna@good_helmet]
eff_intensity = 20
hit_intensity = 0
on_info = {=actor_has_item(good_psy_helmet)}, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_helmet, sr_psy_antenna@no_helmet
on_info2 = {+bar_deactivate_radar_done} nil
phantom_prob = 20
min_phantom_idle = 15000
max_phantom_idle = 20000
END


; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 130.301193237305


; cse_alife_space_restrictor properties
restrictor_type = 3

 

 

 

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

Привет! Не подскажите мне, почему скрипт не корректно работает с предметом на классе артефакта? Вот скрипт

 

 

function use_bread_oz( obj )
if obj == nil then return end
if obj:section() ~= "bread" then return end
local s_obj = alife():create( "ПРЕДМЕТ_НА_КЛАССЕ_АРТА", vector(), 0, 0, db.actor:id() )
snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
local Timer_zrems = time_global() + 5000
local effect_start = function()
if s_obj.online and Timer_zrems < time_global() then
return true
end
end
local effect_stop = function()
if snd:playing () then
snd:stop ()
end
alife():release( s_obj, true )
end
level.add_call( effect_start, effect_stop )
end

 

 

Вот конфиг предмета

 

 

[medaid_activation]
starting = 0.5, detectors\geiger_click3, 0, 0, 0, 0, "","idle"
flying = 0, detectors\geiger_click3, 0, 0, 0, 0, "","idle"
idle_before_spawning = 9, detectors\bomb_timer, 0, 0, 0, 0, "","idle"
spawning = 0.5, detectors\geiger_click3, 0, 0, 0, 0, "","idle"


[medaid_b]:identity_immunities
GroupControlSection = spawn_group
$spawn = "weapons\mine\medaid_b"
hud = medaid_b_hud
animation_slot = 11
allow_inertion = true
slot = 1
attach_angle_offset = 0,0,0
attach_position_offset = -0.1,-0.1,0
attach_bone_name = bip01_r_hand
belt = false
af_actor_properties = off
actor_properties = on

$prefetch = 64
cform = skeleton
class = ARTEFACT
visual = huds\item_aptechka.ogf
description = "Пустая Аптечка"
inv_name = "Пустая Аптечка"
inv_name_short = "Пустая Аптечка"
inv_weight = 0.0

inv_grid_width = 2
inv_grid_height = 1
inv_grid_x = 6
inv_grid_y = 14
cost = 50

jump_height = 0
lights_enabled = false

snd_draw = weapons\pm_draw
snd_holster = weapons\generic_holster
snd_shoot = weapons\t_pm_shot ;pm_shoot
snd_empty = weapons\pistol_empty
snd_reload = weapons\pm_reload, 0.8
snd_close = weapons\generic_close
snd_idle_sprint = weapons\generic_close
snd_hide = weapons\generic_close
snd_show = weapons\generic_close
snd_activate = weapons\generic_close
snd_idle = weapons\generic_close


;скорости увеличения (уменьшения)
health_restore_speed = 0.0
radiation_restore_speed = 0.0
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = medaid_absorbation

artefact_activation_seq = medaid_activation

[medaid_b_hud]
orientation = 0, 0, 0
position = 0, -0.155, 0
visual = huds\medaid.ogf


anim_idle_sprint = using
anim_activate = using
anim_show = using
anim_hide = using
anim_idle = using


[medaid_absorbation]
burn_immunity = 1.0 ;коэффициенты иммунитета
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity = 1.0

 

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

При открытии инвентаря следующий вылет:

FATAL ERROR
[error]Expression    : 0
[error]Function      : CUICellContainer::FindFreeCell
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\ui\UIDragDropListEx.cpp
[error]Line          : 508
[error]Description   : there are no free room to place item

 

 

 

С чего бы это?
Изменено пользователем HellRatz

Мы по аномалиям зону разберём!

Сидора повесим, а Бармена убьём!

Ну а вояк мы смоем в унитаз!

Пускай плывет в канализации спецназ!

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

@mzarkas, иконка предмета больше чем слот. Проще говоря размер иконки не сходится с размером слота. К примеру если попытаться оружие с иконкой от 3-го слота засунуть во второй, пистолетный слот, то будет такой вылет.

 

А вообще этот вылет очень старый и давно разобранный. Лучше погуглить, прежде чем спросить. Ответ быстрее найдется, нежели ждать на форуме.

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

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

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

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

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

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

Войти

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

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

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