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

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


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

KitkaT.Net Автор этого пса для ТЧ - Charsi.

Leshik Можно, но для этого все равно нужен целый пак. В теме Кости V есть описание как это сделать (1-5 страница, где-то там).

 

Мой архив

Сталкером не занимаюсь.

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

Что может означать данный вылет?

[error]Expression    : assertion failed
[error]Function      : CUILine::GetLength_inclusiveWord_1
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\ui\UILine.cpp
[error]Line          : 410
[error]Description   : pos.word_1.exist()

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

Какие цвета можно использовать для маски террейна? Красный, зелёный и синий, для травы, асфальта и земли соответственно - это понятно. Интересно как добавить песок, или другую текстуру таким образом.

S.T.A.L.K.E.R.
Ссылка на комментарий

Как увеличить дальность проработки террайна? Если это движковое, то можно не разъяснять, а если это один из параметров user.ltx, то буду рад выслушать.

Примечание: это не дальность видимости и не дальность освещения.

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

ТЧ v 1.0004

Вопрос по именам(идентификаторам) уровней в конфигах.

Цитаты из

game_maps_single.ltx

[level_maps_single]

L01_escape

L02_garbage

L03_agroprom

........

........

далее

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[l01_escape]

texture = map\map_escape

bound_rect = -317.164, -633.718, 404.880, 811.627

global_rect = 355.0,2011.0, 576.0,2453.000000

weathers = default

music_tracks = l01_escape_musics

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[L02_garbage]

texture = map\map_garbage

bound_rect = -322.334, -347.225, 321.685, 318.000

global_rect = 371.0,1767.0,561.0,1963.256226

weathers = default

music_tracks = l02_garbage_musics

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[l03_agroprom]

texture = map\map_agroprom

bound_rect = -266.505, -355.611, 331.388, 213.838

global_rect = 161.0, 1834.0, 344.0,2008.293945

weathers = default

;music_tracks = l03_agroprom_musics

music_tracks = l01_escape_musics

Используется то прописная то заглавная буква L. Получается движек не различает регистра ?

Соответственно значение, которое возвращает level.name() можно проверять в любом регистре ?

Т.е. правильно работать будет и

if level.name() == "l01_escape" then
    ................
end

и

if level.name() == "L01_ESCAPE" then
    ................
end

 

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

Так как соответствующая тема ( Super AI pack 3 in 1 ) закрыта, то задаю вопрос здесь

 

Решил применить в моде замечательное творение под названием Full AI edition Super или AI пак 3 в 1. Все хорошо, все нравится. Единственный минус: сталкеры подбирают все что валяется. Но в моде есть предметы которые не нужно подбирать. Отсюда вопрос: можно ли эти два предмета поставить в исключение?

 

Заранее спасибо :) !

 

---

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

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

ЯДиск папка с крутым схроном!

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

Доброго дня Сталкеры!

Кто нибудь встречал картинки со знаками вопроса в ТЧ? и если да то в каком месте)))

Общая фотография висит на АС в штабе Свободы

 

http://i-fotki.info/11/5de3ccea836da3ae0656...015465.jpg.html

Изменено пользователем максгород

maxgorod.gif

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

максгород, они вырезаны, в оригинале их не встретиш.

 

Добавлено через 12 мин.:

У меня получилась довольно интересная штука , я установил мод "Просмотр изображений", и вот что получилось :

[doc_photo_demo]:doc_view

description = фото-документ

pos_x = 150

pos_y = 50

doc_photo_demo – это текстура

doc_view – это название самого предмета в секции

А у меня получается теперь так:

doc_view – это текстура и название самого предмета

doc_photo_demo- вообще не используется но при создании новых секций его нужно переименовывать.

 

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

Столкнулся с такой проблемой.

Создал гулаг на предбаннике. тип - general_lager

в нем несколько патрульных путей patrol и несколько "стоячих" позиций.

Стоячих сначала назвал guard, но столкнулся с вылетом. Переименовал в walker - вылет остался.

 

Вот собственно вылет:

ВНИМАНИЕ! Ошибка! Информация по ошибке в строках ниже!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR! Reason: object 'random_military_nato_veteran27649': path_walk 'predbannik_nato1_gulag_walker_2_walk', index <NOT_arg!>: cannot find corresponding point(s) on path_look '0'
stack traceback:
    ...shing\s.t.a.l.k.e.r\gamedata\scripts\move_mgr.script:599: in function <...shing\s.t.a.l.k.e.r\gamedata\scripts\move_mgr.script:461>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

FATAL ERROR

 

Как на guard, так и на walker происходил одинаково - нпс идет на точку стояния, и на подходе, где то в полуметре от нее вылетает.

В принципе понятно что проблема в путях, но что в них не так?

Вот сами пути:

 

[predbannik_nato1_gulag_walker_1_walk]
points = p0
p0:name = name00
p0:position = -455.21432495117,2.1224491596222,-113.96678161621
p0:flags = 0x400
p0:game_vertex_id = 3903
p0:level_vertex_id = 245656

[predbannik_nato1_gulag_walker_1_look]
points = p0
p0:name = name00
p0:position = -454.49639892578,2.2049999237061,-110.40372467041
p0:game_vertex_id = 3903
p0:level_vertex_id = 246671

[predbannik_nato1_gulag_walker_2_walk]
points = p0
p0:name = name00
p0:position = -466.14318847656,-0.8776068687439,-182.89027404785
p0:flags = 0x400
p0:level_vertex_id = 229449
p0:game_vertex_id = 3905

[predbannik_nato1_gulag_walker_2_look]
points = p0
p0:name = name00
p0:position = -448.76034545898,1.8457752466202,-114.0114440918
p0:game_vertex_id = 3901
p0:level_vertex_id = 255297

[predbannik_nato1_gulag_walker_3_walk]
points = p0
p0:name = name00
p0:position = -443.42132568359,1.8096746206284,-115.85597229004
p0:flags = 0x400
p0:game_vertex_id = 3903
p0:level_vertex_id = 264114

[predbannik_nato1_gulag_walker_3_look]
points = p0
p0:name = name00
p0:position = -442.78961181641,1.8587421178818,-110.92756652832
p0:game_vertex_id = 3903
p0:level_vertex_id = 264122

[predbannik_nato1_gulag_walker_4_walk]
points = p0
p0:name = name00
p0:position = -442.12307739258,1.7648767232895,-128.28350830078
p0:flags = 0x400
p0:game_vertex_id = 3901
p0:level_vertex_id = 265204

[predbannik_nato1_gulag_walker_4_look]
points = p0
p0:name = name00
p0:position = -449.15179443359,1.6720188856125,-127.63687133789
p0:game_vertex_id = 3901
p0:level_vertex_id = 254180

[predbannik_nato1_gulag_patrol_1_walk]
points = p0,p1,p2,p3
p0:name = name00
p0:position = -452.33880615234,-0.91330599784851,-164.05223083496
p0:flags = 0x400
p0:level_vertex_id = 249711
p0:game_vertex_id = 3905
p0:links = p1(1)

p1:name = name01
p1:position = -449.31735229492,1.4491782188416,-133.51445007324
p1:flags = 0x400
p1:level_vertex_id = 254171
p1:game_vertex_id = 3901
p1:links = p2(1)

p2:name = name02
p2:position = -475.05606079102,1.5122009515762,-129.56201171875
p2:flags = 0x400
p2:level_vertex_id = 216251
p2:game_vertex_id = 3901
p2:links = p3(1)

p3:name = name03
p3:position = -475.51699829102,-0.77906394004822,-164.97314453125
p3:flags = 0x400
p3:level_vertex_id = 216200
p3:game_vertex_id = 3905
p3:links = p0(1)

 

Причем если неписи идут по патрульным путям patrol то все нормально. Но как только один из ново-заспавненных подходит к стоячей точке - вылет. В чем причина?

Версия игры - ТЧ 1.0004

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

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

Анализируем, попутно подправляя ошибки:

1. Строка прерывания имеет ошибку:

abort("object '%s': path_walk '%s', index %d: cannot find corresponding point(s) on path_look '%s'",self.object:name(), tostring(self.path_walk), tostring(index), tostring(self.path_look))

измени ее на:

abort("object '%s': path_walk '%s', index %s: cannot find corresponding point(s) on path_look '%s'",self.object:name(), tostring(self.path_walk), tostring(index), tostring(self.path_look))

- тут разрабы поставив маску для числа (%d) сами переводят аргумент в стринг (tostring(index)) - вот и пишется в логе: index <NOT_arg!>, хотя должен отобразиться номер текущей точки пути ...

В общем лог должен бы выглядеть так:

Reason: object 'random_military_nato_veteran27649': path_walk 'predbannik_nato1_gulag_walker_2_walk', index '0': cannot find corresponding point(s) on path_look 'predbannik_nato1_gulag_walker_2_look'

 

2. Несложно отследить, что прерывание идет из-за невыполнения условия: if pt_chosen_idx then, т.е. не выбрана точка куда смотреть неписю ... Если проанализировать, то можно увидеть, для выбора точки она должна иметь флаг(и), чего нет в твоем конфиге пути.

Т.о. перепроверяй и подправляй конфиги твоих добавленных путей и обрати внимание в них на (отсутствие) строки типа: p0:flags = 0x400

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

krovosnork,

включи на компьютере отображение защищённых системных файлов и удали из папки textures/ui файл thumbs.db

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

Для какого типа обьектов применима схема ph_camera? И что значат следующие параметры в конфигах игры? can_trade = on наверно значит, что предмет доступен в продаже, если поставить off, значит нет. И не нужно его будет писать в каждом конфиге торговцев. can_take = true значит, что предмет можно взять, если false, то взять нельзя. Правильно ли я трактую данные параметры? Заранее спс.

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

Приветствую. Чет не думал что возникнет проблема со спавном ночных монстров :russian_ru: , но она возникла.

Сделал норм. секцию спавна монстра в алл.спавне с такой логикой:

[1532]

 

; cse_abstract properties

section_name = fracture_strong

name = gar_fracture_strong27

position = -59.8688011169434,-2.59999990463257,-203.529800415039

direction = 0,0,0

version = 118

script_version = 6

 

; cse_alife_object properties

game_vertex_id = 268

distance = 100

level_vertex_id = 136088

object_flags = 0xffffffbf

custom_data = <<END

[logic]

cfg = scripts\amk\amk_respawns\logic\amik_night_monster.ltx

END

 

; cse_visual properties

visual_name = monsters\izlom\izlom

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 0

g_group = 0

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = -59.8688011169434,-2.59999990463257,-203.529800415039

upd:o_model = 0

upd:o_torso = 0,0,0

upd:g_team = 0

upd:g_squad = 0

upd:g_group = 0

 

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_ph_skeleton properties

 

; cse_alife_monster_base properties

 

; se_monster properties

В amik_night_monster.ltx:

[smart_terrains]
none = true

[spawner]
cond = {!is_day}
check_distance = true
min_distance = 50

Все вроде бы правильно, но монстер спавнится при начале игры, а это днем, и при этом в off-line не переходит (потом).

Вот функ. из xr_conditions.script
function is_day (actor, npc)
return level.get_time_hours() >= 5 and level.get_time_hours() < 21
end

smart_terrain_choose_interval    = 22:00:00

и

DayTime_Begin    = 20; начала дня для монстра
DayTime_End    = 9; конец дня для монстра

После этого монстер спавнится в 24:00 в офф тоже не переходит.

Что делаю не так?

Спасибо.

Мой архив

Сталкером не занимаюсь.

Ссылка на комментарий
amik, секцию [spawner] лучше непосредственно пиши в all.spawn. Так как не все секции работают в логике. К примеру, если в логике нпс написать секцию [known_info], инфопоршень выдасться сразу. А не после обыска нпс. Если написать данное в спавне - всё работает. Непонятно, конечно.
Ссылка на комментарий

Я заспавнил торговца стандартным методом через скрипт, но он выкидывает свое оружие (которым торгует)

[smart_terrains]

none = true

 

[logic]

active = walker@jup_trader

trade = misc\trade_barman.ltx

use_single_item_rule = off

can_select_items = off

 

[walker@jup_trader]

path_walk = jup_trader_walk

path_look = jup_trader_look

danger = danger_condition@jup_trader

 

[danger_condition@jup_trader]

ignore_distance = 0

 

К20

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

Всем доброго времени суток. Такой вопрос: есть итем (сам его заспавнил по скрипту) знаю секцию этого итема и точное месторасположение. Скажите пожалуйста как можно узнать id этого предмета?

Заранее спасибо :)!.

ЯДиск папка с крутым схроном!

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

Подскажите где ошибка в этом коде

local time_news = 0
function test()
local act = db.actor
local time = time_global()
if db.actor ~= nil and
if has_alife_info("doctor_one_start") and
time_news < time then
time_news = time + 7000
db.actor.health = -0.05
end
end

Запускаю через апдейт дельта, если ставлю проверку на предмет всё ок, а с поршнем ловлю вылет:

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: ...g\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:324: attempt to index global 'ins_test' (a nil value)

 

 

Строгое предупреждение от модератора Cyclone
Спойлеры кто будет ставить? В соседней теме, куратор уже делал замечание.
Ссылка на комментарий

Заспавнил контролера через спавн с логикой: выдача инфопоршня при убийстве

[11227]

; cse_abstract properties

section_name = m_controller_normal

name = jup_kontrol

position = 43.8272171020508,23.94677734375,-175.714828491211

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 3727

distance = 0

level_vertex_id = 789591

object_flags = 0xffffffff

custom_data = <<END

[smart_terrains]

none = true

 

[logic]

active = mob_walker

on_death = mob_death

 

[spawner]

cond = {+controler_qvest}

 

[mob_walker]

path_look = defolt_look

path_walk = jup_kontra_walk

 

[mob_death]

on_info = %+kontroler_trup%

END

story_id = 500010

 

; cse_visual properties

visual_name = monsters\kontroler\kontroler

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 1

g_group = 2

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = 43.8272171020508,23.94677734375,-175.714828491211

upd:o_model = 0

upd:o_torso = 0,0,0

upd:g_team = 0

upd:g_squad = 1

upd:g_group = 2

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_ph_skeleton properties

 

; cse_alife_monster_base properties

 

; se_monster properties

 

 

 

Инфопоршень не выдается. Я не могу понять почему?

К20

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

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

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

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

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

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

Войти

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

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

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