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

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

 
 

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

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\LR_Engine-master\xray\xrServerEntities\script_storage.cpp
Line : 680
Description : ... Зов Припяти 102.08.20\gamedata\scripts\bind_crow.script:139: attempt to index global 'packet' (a nil value)

 

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


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

Как нибудь можно сделать магазинное питание оружия?

Абакан с магазинным питанием


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

svi_042
1. Нет ничего проще получить разрушение объекта - достаточно нанести ему хит необходимого уровня и он разрушиться.
2. Нет проблем в функцию из xr_effects первым параметром передается объект-актор, вторым объект - из логики которого вызвана функция:
 

Спойлер

[logic]
active = ph_idle@1

[ph_idle@1]
on_info = {=dist_to_actor_le(10)} ph_idle@nil %=create_parasite%

[ph_idle@nil] 

function create_parasite(actor, object, p)
	local spawn_pos, lv_id, gv_id = object:position(), object:level_vertex_id(), object:game_vertex_id()
	local h = hit()
	h:bone("имя сустава куда нанести хит")
	h.power = уровень хита
	h.impulse = импульс хита
	h.direction = vector():sub(object:position(), actor:position())
	h.draftsman = actor
	h.type = hit.wound
	object:hit(h)
	alife():create("секция мутанта", spawn_pos, lv_id, gv_id)
end

 

 


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

Stgs Судя по логу у вас модифицирован биндер ворон bind_crow.script. Открываете его ищите строку 139 и смотрите почему переменная packet не определена (равна nil).

Изменено пользователем denis2000
  • Мастер! 2
  • Спасибо 1

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

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


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

Как задать логику мутантам? Можно ли в логике мутанта задать приоритет - нападение на игрока? В интернете ничего не нашел.

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


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

Как задать логику мутантам? Можно ли в логике мутанта задать приоритет - нападение на игрока? В интернете ничего не нашел.

Регистрация логики та же, что и для НПС. В строке suitable, как правило, прописывается сквад:
suitable = {=target_squad_name(ид_сквада_мутантов)}
Само наполнение несильно отличается, например:
[mob_walker] - движение мутантов, строится по тем же принципам, что и для НПС.
[mob_home] - такая зона, где тусуются мутанты, параметры: 

path_home = путь_way
aggressive = true ; приоритет атаки
home_min_radius = 5
home_max_radius = 25

 

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

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


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

Есть ли условие при котором НПС или рестриктор выполнял действие только ночью?

Как задавать логику обычных нпc c обычной работой, как guard?

Изменено пользователем Крим

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


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

Есть ли условие при котором НПС или рестриктор выполнял действие только ночью?

Проверка:

on_info = {=is_dark_night}

8 минут назад, Крим сказал:

Как задавать логику обычных нпc c обычной работой, как guard?

Создание смарта

  • Спасибо 1

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


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

Как задать логику мутантам? Можно ли в логике мутанта задать приоритет - нападение на игрока? В интернете ничего не нашел.

combat_ignore_cond = {=check_enemy_name(sim_default)} true, {=check_enemy_name(actor)} false
combat_ignore_keep_when_attacked = {=check_enemy_name(sim_default)} true, {=check_enemy_name(actor)} false

либо поставить  target = story | actor

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

spacer.png

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


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

Дайте скрипт на отбирание денег у ГГ, а то есть только на выдачу.

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


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

Каким образом создаются концовки, в зависимости от исхода некоторых квестов?(как в оригинальном ЗП)

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


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

Machete Если по простому функция которая занимается проигрыванием гейм-туториалов выбирает нужные туториалы в зависимости от инфопорций полученных при прохождении.

  • Мастер! 1

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

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


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

denis2000 такие фокусы можно провернуть во всех частях серии, или только в ЗП?

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


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

Machete На любой версии, никаких специфических движковых правок там не используется, только скрипты и конфиги. Нет, к сожалению я ошибся function_check_start есть только в ЗП!

Спойлер

Файл: game_tutorials.xml
<outro_game>
    ....
<!------ outro_4a -->
		<item>
			....
      		<function_check_start>outro_cond.degterev_live_sesa_live</function_check_start>
      		....
		</item>
<!------ outro_4b -->
		<item>
			....
      		<function_check_start>outro_cond.degterev_live_sesa_not_live</function_check_start>
     		....
		</item>
  </outro_game>

Файл: outro_cond.script
-- 4a
function degterev_live_sesa_live()
	return ( not has_alife_info("degterev_is_dead") ) and ( not has_alife_info("sesa_is_dead") )
end
-- 4b
function degterev_live_sesa_not_live()
	return ( not has_alife_info("degterev_is_dead") ) and ( has_alife_info("sesa_is_dead") )
end

 

 


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

Но принцип сохраняется: можно создать несколько туториалов и стартовать их последовательно выбирая нужные развилки скриптами.

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

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

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


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

За что отвечает параметр "idle" в конфигах script_sound? Это задержка между звуками? Но каким образом она определяется?

Например:

idle = 5,15,100

 

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


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

idle = 5,15,100

5 - минимальное время, 15 - максимальное время паузы в мсек. 100 - читается, да не используеться.

Смотри файл sound_theme.script


Дополнено 5 минуты спустя
1 час назад, Igor_Misery сказал:

Дайте скрипт на отбирание денег у ГГ

Файл: xr_effects.script
function remove_actor_money( actor, obj )
	local money_num = actor:money()
	actor:give_money(-money_num)
end

 

Изменено пользователем denis2000
  • Мастер! 1

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

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


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

Проблемы две. Во первых в профиле прописал ровно - 0 рублей, но почему при старте игры у игрока 15 000 рублей. 

Вторая проблема вот:

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : ..\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...e.r. call of pripyat\gamedata\scripts\xr_meet.script:630: attempt to index local 'meet' (a nil value)
 

stack trace:

Подскажите в чем проблемы?

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


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

...почему при старте игры у игрока 15 000 рублей. 

Движек странно относиться к нулю в этом параметре, ставьте min="1"  max="1" или обнуляйте деньги при старте игры.


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

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


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

Можно сделать, чтобы при взятии предмета был видео-ролик?

И как сделать, чтобы при затрагивании триггера активировался видео-ролик?

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


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

Объясните мне тупому, в чем проблема:

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : ..\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...r. call of pripyat\gamedata\scripts\state_mgr.script:247: C stack overflow
 

stack trace:

Вылет произошел, когда я засунул в личный ящик игрока вещь. Кстати, ранее когда попытался поспать. Игра вылетела пожаловалось на то, что отсутствует ui текстура меню сна, после перезагрузки исчезло - с чем такое связано?

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


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

Решил сделать тестовую функцию.

Спойлер

Функция происходит при использовании предмета.
Сама функция:
function on_use_item(sect)
local actor = db.actor
local item_name = sect:section()
local torch = actor:object("device_torch")

if item_name=="battery_torch_1" and actor:object("device_torch"):condition() < 0.99 then
torch:set_condition(torch:condition()+0.1)
end
end
В bind_stalker вызов есть.
    if obj~=nil then
          icomplex.on_use_item(obj)


При новой игре она работает, но вот после сохранения и загрузки функция перестаёт работать. Почему так?
----- Есть ещё один скрипт который даёт устанавливать фонарику % состояния.

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


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

В чем причина?

FATAL ERROR
 
[error] Expression    : !m_error_code
[error] Function      : raii_guard::~raii_guard
[error] File          : C:\projects\xray-16\src\xrScriptEngine\script_engine.cpp
[error] Line          : 569
[error] Description   : E:\Behind A Side\gamedata\scripts\bind_stalker.script:202: '<eof>' expected near 'end'

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


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

Нужно сделать жесткий баг-репорт в _g.script, тогда вылет будет показывать точную причину

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

Нужно убрать две тире в error_log(reason)

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

spacer.png

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


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

RoboCat ничего не поменялось.

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


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

Мой вопрос актуален. Вот:

 

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : ..\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...r. call of pripyat\gamedata\scripts\state_mgr.script:247: C stack overflow
 

stack trace:

Жалуется на этою, конкретнее выделено фиолетовым:

 

function eva_state_mgr_end:evaluate()


    if self.mgr == nil then
        self.mgr = self.object:motivation_action_manager()
    end
    if self.combat_planner == nil then
        self.combat_planner =  cast_planner(self.mgr:action(stalker_ids.action_combat_planner))
    end

Подскажите в чем проблема?

Изменено пользователем Крим

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


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

В движковый метод был передан NIL.  Ищите ошибку в скриптах.


Терпение... И все получится.

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


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

Пожалуйста скажите, как активировать квест, взятием предмета?

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


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

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

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

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

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

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

Войти

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

Войти

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