Перейти к содержанию

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

 
 

Доброго времени суток читающим. Делаю небольшую катсцену, в логике сначала создаю сквады в смарте, в котором происходит сцена, а потом их телепортирую по точкам через =teleport_npc_by_story_id. Сцена запускается, но тут же вылетает со следующим логом:

Спойлер

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...nicles\mod-guns\gamedata\scripts\xr_motivator.script:161: attempt to index local 'smart_task' (a nil value)

Перепробовал уже всё что можно, но результат выше. Возможно подскажет кто-нибудь где я накосячил?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Deputy Sheriff Можешь прислать конфиг смарта и работ в нём?


Мод в разработке - X-7: Эпицентр

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Prostomod в нём работ как таковых нет, только точки путей для неписей, участвующих в сцене, конфиг вот:

Спойлер

 

[smart_terrain]
squad_id = 13
max_population = 2

[exclusive]
lost_bandit_brom = lost_village\logic\lost_bandit_brom.ltx
lost_bandit_brom_brigada_1 = lost_village\logic\lost_bandit_brom_brigada_1.ltx
lost_bandit_brom_brigada_2 = lost_village\logic\lost_bandit_brom_brigada_2.ltx
lost_stalker_feder = lost_village\logic\lost_stalker_feder.ltx

 

Спойлер

Screenshot_3.png.85673b640fdb0db40ac26f1864c61f5e.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
19 часов назад, Prostomod сказал:

Потом можешь отключить свой радиационный очаг функцией =anomaly_turn_off(имя твоей аномальной зоны из *) и включить через =anomaly_turn_on(имя твоей аномальной зоны из *).

Спойлер

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : .... call of pripyat\gamedata\scripts\xr_effects.script:2617: attempt to index local 'anomal_zone' (a nil value)
 

stack trace:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
5 минут назад, Deputy Sheriff сказал:

lost_bandit_brom = lost_village\logic\lost_bandit_brom.ltx
lost_bandit_brom_brigada_1 = lost_village\logic\lost_bandit_brom_brigada_1.ltx
lost_bandit_brom_brigada_2 = lost_village\logic\lost_bandit_brom_brigada_2.ltx
lost_stalker_feder = lost_village\logic\lost_stalker_feder.ltx

Ну всё равно, пришли пж конфиги этих работ


Дополнено 2 минуты спустя

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


Мод в разработке - X-7: Эпицентр

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Prostomod 

Спойлер

[logic@lost_bandit_brom]
active = walker@brom_wait
suitable = {=check_npc_name(lost_bandit_brom) } true
prior = 200

[walker@brom_wait]
path_walk = bandit_brom_wait
path_look = bandit_brom_wait_look
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_signal = feder_active_zasada | remark@brom_atack

[remark@brom_atack]
path_walk = bandit_brom_on_pos
path_look = bandit_look_feder
def_state_moving1 = patrol
def_state_standing = threat_danger
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

[danger]
ignore_distance = 0

Спойлер

[logic@lost_bandit_brom_brigada_1]
active = walker@bandit_1_brom_wait
suitable = {=check_npc_name(lost_bandit_brom_brigada_1) } true
prior = 200

[walker@bandit_1_brom_wait]
path_walk = bandit_1_brom_wait
path_look = bandit_1_brom_wait_look
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_signal = feder_active_zasada | remark@bandit_1_brom_atack

[remark@bandit_brom_1_atack]
path_walk = bandit_1_brom_on_pos
path_look = bandit_look_feder
def_state_moving1 = patrol
def_state_standing = threat_danger
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

[danger]
ignore_distance = 0

Спойлер

[logic@lost_bandit_brom_brigada_2]
active = walker@bandit_2_brom_wait
suitable = {=check_npc_name(lost_bandit_brom_brigada_2) } true
prior = 200

[walker@bandit_2_brom_wait]
path_walk = bandit_2_brom_wait
path_look = bandit_2_brom_wait_look
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_signal = feder_active_zasada | remark@bandit_2_brom_atack

[remark@bandit_brom_2_atack]
path_walk = bandit_2_brom_on_pos
path_look = bandit_look_feder
def_state_moving1 = patrol
def_state_standing = threat_danger
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

[danger]
ignore_distance = 0

Спойлер

[logic@lost_stalker_feder]
active = walker@feder_wait
suitable = {=check_npc_name(lost_stalker_feder) } true
prior = 200

[walker@feder_wait]
path_walk = feder_start_point
path_look = feder_look
def_state_moving1 = patrol
def_state_standing = threat_danger
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_signal = feder_start_pos | remark@feder_point_1

[remark@feder_point_1]
path_walk = feder_way_point_1
path_look = feder_look
def_state_moving1 = patrol
def_state_standing = threat_danger
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_signal = feder_say_snd | remark@feder_point_2 %=play_sound(lost_nolan_hello)%

[remark@feder_point_2]
path_walk = feder_way_point_2
path_look = feder_look
def_state_moving1 = patrol
def_state_standing = threat_danger
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_signal = feder_active_zasada | remark@feder_point_3

[remark@feder_point_3]
path_walk = feder_way_point_3
path_look = feder_look
def_state_moving1 = patrol
def_state_standing = threat_danger
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_signal = feder_hands_up | remark@feder_point_4

[remark@feder_point_4]
path_walk = feder_way_point_3
path_look = feder_look
anim = hands_up
meet = no_meet
combat_ignore_cond = true
danger = danger
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

[danger]
ignore_distance = 0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Prostomod 

Спойлер

val_a3_fabric_smart_again_psy_anomal_zone

Спойлер

[sr_idle@1]
on_info = sr_idle@2 %=anomaly_turn_off(val_a3_fabric_smart_again_psy_anomal_zone)%

 


Дополнено 2 минуты спустя

Prostomod Я дс скинул фото аномальной зоны

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Deputy Sheriff Честно скажу, я затрудняюсь ответить, что не так: не вижу чего то проблемного.

Попробуй-ка в _g.script на 480 строке раскоментировать

--error_log(reason)

Чтобы получилось:

-- Крешнуть игру (после вывода сообщения об ошибке в лог)
function abort(fmt, ...)
	local reason = string.format(fmt, ...)
	error_log(reason)
end

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


Мод в разработке - X-7: Эпицентр

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

У меня есть вопрос! У проигрываемого звука есть ограничение по времени? Допустим у меня есть звук на 10 минут, игра будет его воспроизводить? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Prostomod уже вручную перебирая логику нашел причину:
в логике феди (feder) точка look указана как feder_look, а в сдк нужная точка подписана как feder_walk.

Вывод: не делайте моды под пиво, а то потом плохо будет:u1F601:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
42 минуты назад, Крим сказал:

У проигрываемого звука есть ограничение по времени? Допустим у меня есть звук на 10 минут, игра будет его воспроизводить? 

Вот этой прогой заголовок обработать, и нормально.
https://disk.yandex.ru/d/fSsyBPf2EixTmg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Крим , выкинь ЗП и канай в ЧН.  Я тебе стелс ЧН продемонстрирую. В ЗП ты такого не увидишь.

 

 

  • Клоун 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Skala Ок. Еще раз:

5 часов назад, denis2000 сказал:

zat_b7_is_late_attack_time - пример функции проверки времени из xr_conditions.script

 


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

denis2000 Извините, не заметил


Дополнено 0 минут спустя

Как забрать деньги у игрока через диалог? Поисковик выдаёт только способы заработать много денег в начале игры

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Skala Попробуй так:

Спойлер

function val_rob_actor_reloc_money(actor, npc)
    dialogs.relocate_money(npc, 800, "out")
end

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Skala Пример:

function jup_a10_actor_give_outfit_money(first_speaker, second_speaker)
	dialogs.relocate_money_from_actor(first_speaker, second_speaker, 5000)
end

 


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

@Skala, в ванили есть примеры. Гном забирает деньги на складе контейнеров, какие-то бандиты требуют деньги по квесту с Корягой.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Спойлер

 

1320529060_.thumb.PNG.3c58e4ae675ac47625e81583f3e11dae.PNG

Они говорят мне, говорят: «Вас! Вас! Кого, бл*дь, ты выберешь — их или нас? Нас или их?»

Как, как знаешь, как будто, бл*дь, мне еще, с*ка, надо выбирать!

 


Дополнено 5 минуты спустя

denis2000 На второй строчке мои полномочия всё

 return db.actor ~= nil and (level.get_time_hours() >= 23 or level.get_time_hours() < 9)

Изменено пользователем Skala
  • Смех 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Skala Логическое выражение:
Игрок есть и время больше/равно 23 часа или меньше 9 часов

  • Лайк 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

denis2000 Добавил такую функцию и она не работает

Спойлер

function posilny_pribil_time (actor, npc)
    return db.actor ~= nil and (level.get_time_hours() >= 8 or level.get_time_hours() < 10)
end

Мне нужно, чтобы она работала с 8:00 по 10:00.

Спойлер

[sr_idle@time]
on_info = {+timer_start -timer_stop =posilny_pribil_time} sr_idle@spawn %+timer_stop%

После этой функции должна придти смска, заспавниться сквад и появиться диалог, но ничего не происходит

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Skala нужно просто сделать проверку по времени? Тогда поставьте if форму и в условия загоните проверку (level.get_time_hours() >= 8 or level.get_time_hours() < 10). При соблюдении условий делайте return true, а в else - return false. 

В логике объектов проверки из xr_conditions требуют значений true или false.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
41 минуту назад, Mawrak сказал:

нужно просто сделать проверку по времени?

Да

Mawrak А как это должно выглядеть? Я в скриптах 0 и ничего не понимаю всё равно.

function posilny_pribil_time (actor, npc)
    if return true db.actor (level.get_time_hours() >= 8 or level.get_time_hours() < 10)
end

Должно быть вот так?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Skala это выглядит совсем неправильно. Тут нужно просто как в lua написать if else: https://www.cronos.ru/kb-1523.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Skala функция рабочая, не были выполнены предыдущие условия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн