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

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


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

@NonGrande, почти так.

obj:unload_magazine() - обнуляет кол-во патронов в уже заспавненном оружии (патроны при этом теряются; если надо их положить рядом, следует использовать дополнительный спавн пачки патронов).

Аналогом является метод obj:set_ammo_elapsed(0).

if sobj then - если серверный объект существует (спавн прошёл успешно).

level.client_spawn_manager():add(...) - добавляем коллбэк на выход нашего заспавненного оружия в онлайн (появление клиентского объекта). Как только оружие будет в онлайне, автоматически сработает коллбэк, то есть объявленная для этого ранее функция unload_magazine().

 

 

А вообще, все необходимые сведения есть тут, на форуме - см. описание использованных функций, например, в теме «справочник по функциям и классам».

Изменено пользователем Kirgudu
  • Спасибо 2
Ссылка на комментарий

 

 

В смысле одинаковые идентификаторы? у каждого нпс в character_desc_simulation.xml должна быть своя отдельная иконка чтоб не вылетать?
ИД вида
<specific_character id="sim_default_duty_0_default_1" team_default = "1">
или
<specific_character id="zat_b5_stalker_raider_3" team_default="1">

в character_desc_general.xml и прочих описателях. Вроде бы. ТЧ нету под рукой, взял из ЗП пример. Но там аналогично.

Шаман - СисАдмин

Всяко-разно: для ЧН

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

@Romz, Проблема не в этом точно, я кучу вариантов перепробовал, ничего не помогает.

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

Вылеты начинались после того как поменял иконки. Пробовал даже так - убирал все моды, из распакованных gamedata.db... доставал character_desc_simulation.xml и в профиле сталкеров новичков поставил всем иконку бандита (только поменял, ничего больше не трогал и не добавлял). Запустил новую игру, на кордоне у входа на свалку сижу, жду. 1й сталкер появился, жму на контакты - всё нормально, там отобразилась иконка бандита, вылета небыло. Ещё несколько прошло без вылета, потом когда уже думал что всё работает, заходит ещё один новичок, жму на контакты, бац, вылет(

 

Так же заметил что, что бы я ни делал в конфигах тех кто изначально спавнится на локациях (character_desc_escape.xml, character_desc_garbage.xml, character_desc_bar.xml и т.д.) вылета не происходит, например на армейских складах стандартно только 1 вид свободовца-мастера, я их сделал 8 видов и выдал оружие и бронь как в ЧН и ЗП, так же когда тестировал, поменял им имена:

вместо <name>GENERATE_NAME_stalker</name> сделал <name>тест_1</name>, <name>тест_2</name>, <name>тест_3</name>.

Потом 2 раза пробежался о всем локациям, проверил всех, профили все работали, внешний вид, иконки, оружие имена и т.д.. поменялось как надо мне, вылетов небыло, всё работало нормально.

 

Дальше решил ещё вот что проверить, в spawn_sections.ltx попробовал поменять все спавны с новичками. Например:

[gar_stalker_respawn_1]:stalker

$spawn = "respawn\gar_stalker_respawn_1"
character_profile = sim_stalker_novice
spec_rank = novice
community = stalker
 

[esc_stalker_respawn_1]:stalker
$spawn =  "respawn\esc_stalker_respawn_1"
character_profile = sim_stalker_novice
spec_rank = novice
community = stalker

 
Решил поменять из симуляции на профили с кордона (ведь они то у меня не вылетали ниразу), получилось так:

[gar_stalker_respawn_1]:stalker

$spawn  = "respawn\gar_stalker_respawn_1"
character_profile = esc_stalker_novice
spec_rank = novice
community = stalker
 

[esc_stalker_respawn_1]:stalker
$spawn =  "respawn\esc_stalker_respawn_1"
character_profile = esc_stalker_novice
spec_rank = novice
community = stalker

 

и опять же безлоговый вылет когда новичок пришёл на кордон и я нажал на контакты.

 

Как и что дальше тестировать, я уже не знаю.

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

NFSNeedForSpirt.gif

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

Подскажите, пожалуйста, какой параметр отвечает за капли крови на земле, при кровотечении у ГГ.

Пробовал крутить это:

start_blood_size 	= 0.01  ;размер раны чтоб начала капать кровь
stop_blood_size 	= 0.001 ;размер раны чтоб кровь остановилась (должно быть меньше start_blood_size)
blood_drop_time 	= 0.1
blood_drop_time_min 	= 0.3
blood_drop_time_max 	= 2.0
blood_drop_size 	= 0.2   ;размер капли (м) крови, которая упала

Не капает из ГГ кровь, даже при красном индикаторе. :(

---------------------------------

www.amk-zone.de

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

Есть такой древний вылет:

[error]Expression    : assertion failed
[error]Function      : CTrade::GetTradeInv
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\trade2.cpp
[error]Line          : 129
[error]Description   : TT_NONE != owner.type

У нас на АМК, в справочнике, про него 0 инфы.

Однако Гугл помнит, что подобное было и в Соли и в LWR, возможно в иных модах. Происходит вылет при торговле с НПСом ИМЕННО на Агропроме. Более нигде. По ходу баг тянется с оригинала, но очень редкий.

Ответов на устранение этого вылета получено не было ни от Солянщиков, ни от Ирбиса.

 

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

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

"Кругом зомби.....у меня кончаются патроны...."

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

@BFG, торговал с кем? Точно со сталкером? ;) Если ты торгуешь не с торговцем и не со сталкером, то кирдык, этот вылет и будет.


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

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

Привет всем.
Не знал, в какую тему написать, но это показалась мне наиболее подходящей.
В общем, я заметил в игре такую вещь: масса предметов указывается до определённого разряда, а точнее до десятков грамм, то есть 2 цифры после точки (*.00). Если после точки написать 3 цифры, то игра (движок или скрипт) округляет значение до тех же десятков.

Вопрос: как заставить игру отображать массу до единиц грамм?

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

 

 

Скрытый посыл тут в том

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

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

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

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


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

Садись, пять :). КО.
  • Спасибо 1
Ссылка на комментарий

@Карлан, не-не-не, она именно округляет. Я как-то редактировал. Округляет игра согласно стандартам математики (или программирования?).
Но спасибо за ответ. Просто, я что в скриптах, что в программировании - 0,0. Надеюсь хотя бы скриптам хоть немного научиться.

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

@Vadyanchikus, посчитай в ручную массу всех предметов, выведи в например лог с округлением хоть до десяти знаков, и сам убедись :).


В общем игра не округляет, я при своем мнении, и могу пруфануть ;).

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

вопрос, где найти скрипт который выдаёт гг оружие на арене?

Xr_effect.script, в папке gamedata/scripts .

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

Столкнулся с проблемой: анимация sprint ведет себя странно, непись должен быстро бежать в денжере, а не полубежать, ну не могу более ярко объяснить. Вот логика:

 

 

[smart_terrains]
none = true

[logic]
active = walker@1
on_death = death

[walker@1]
path_walk = zhabon2_walk_1
path_look = zhabon2_look_1
meet = meet
on_info = {+volk_zhabon_strela} walker@2

[walker@2]
path_walk = zhabon2_walk_2
path_look = zhabon2_look_2
def_state_moving1 = sprint
def_state_moving2 = sprint
def_state_moving3 = sprint
meet = no_meet
combat_ignore_cond = always
on_death = death
on_signal = wolfenemy| %=relation_volk_zhabon%
on_signal2 = delzhabon| %=del_zhabon_esc%


[meet]
use = true
use_wpn = false
meet_talk_enabled = true

[death]
on_info = %+zhabon2_death%

 

 

Вот walk и look:

 

 

[zhabon2_walk_2]
points = p0,p1
p0:name = name00|sig=wolfenemy
p0:position = -208.77569580078, -19.800821304321, -135.66622924805
p0:game_vertex_id = 61
p0:level_vertex_id = 44630
p0:links = p1(1)


p1:name = wp01|sig=delzhabon
p1:position = -37.370750427246, -14.731424331665, -155.85919189453
p1:game_vertex_id = 108
p1:level_vertex_id = 240893


[zhabon2_look_2]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = -17.352735519409, -16.484334945679, -158.20565795898
p0:game_vertex_id = 108
p0:level_vertex_id = 259312

 

 

Короче нужно чтобы непись бежал как от гранаты, а sprint - вроде и есть быстрый бег.

 

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

Ранее был известен под ником BoBaH_671.

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

 

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

А вот тут 100 % что участник у меня был. Это сталкер их группы Одиночек в первом бою с вояками, на Северном комплексе Агропрома.

Он остался без оружия, видать потерял в бою или вояка выбил в рукопашной из рук, не знаю - не видел.

Я решил вооружить его и сначала продал автомат АК-74. Потом вспомнил что не продал патроны.

Снова открыл торговлю с ним и вот когда я положил ему патрончиков и щёлкнул на кнопочку, тогда и произошёл этот вылет.

Крот к тому времени был спасён, ждал диалога, а его ребята просто ходили шмонали трупы.

 

Может быть отсутствие оружия у НПСа каким то образом вызвало этот вылет ?

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

"Кругом зомби.....у меня кончаются патроны...."

Ссылка на комментарий
@BoBaH_671, у меня была подобная проблема, когда заставлял сталкера спринтовать из логики. Решил её, прописав sprint сталкеру в пути way...
Ссылка на комментарий

 

 

Решил её, прописав sprint сталкеру в пути way...

Тоже самое, пробовал, но мне надо из логики, а то пока он к первой точке подойдет уже и год пройдет...

Ранее был известен под ником BoBaH_671.

Ссылка на комментарий
@BoBaH_671, пропиши ему доп.секцию от точки спавна до первого твоего walkera и в этот путь вставь спринт.
  • Спасибо 1
Ссылка на комментарий

 

 

пропиши ему доп.секцию от точки спавна до первого твоего walkera

Попробовал. Ноль толку. :(

Ранее был известен под ником BoBaH_671.

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

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

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

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

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

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

Войти

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

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

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