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

Скриптование


Svoboда

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

Подскажите, что делать: добавил уникального персонажа в НС 2016 на Кордоне. Задал ему логику стоять на месте. Всё работает, но после его спавна, происходят постоянные вылеты с непонятным для меня логом:
FATAL ERROR
 
[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: ...ogrammes\s.t.a.l.k.e.r\gamedata\scripts\_util.script:20: attempt to perform arithmetic on local 'a' (a nil value)
 
Что это за ошибка?

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Вот что в этой строчке:

    local a ; a = 1/a; get_console():execute( "quit" )

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение
1 час назад, AndreySol сказал:

Открой редактором, у которого есть нумерация строк, файл gamedata\scripts\_util.script и смотри, что в нем на 20-й строке прописано.

 

local a ; a = 1/a; get_console():execute( "quit" ) - не знаю что это означает. Пробовал удалить эту строку - получаю вылет с ссылкой на другой фаил

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

При каких обстоятельствах при вылете, по которому движок не может открыть секцию, не указывается эта секция?

Вот такой непонятный лог:

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CInifile::r_section
[error]File          : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
[error]Line          : 342
[error]Description   : <no expression>
[error]Arguments     : Can't open section ''

P.S.: вылет происходит при подходе к шахте, где нужно спасти Дениса по квесту Клыка в НС 2016. В тех. поддержку писать не буду, т.к. играю со своим оружейным паком. Сам профиль Дениса я вообще не трогал.

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Доброго времени суток! Подскажите как реализовать "Звук при отрезании частей монстров" как в ОП 2

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Здравствуйте! Как через ALL.SPAWN сделать нпс бессмертным? Например Волка. Пробовал ставить ему секцию Сахарова - не помогает. Подскажите

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Что не так с функцией: 

function spawn_monstr_1()
if db.actor and level_id.l02_garbage then
alife():create("m_bloodsucker_e",vector():set(145.85691833496,-2.7371287345886,253.02215576172),302432,368)
end
end

Вылет: [error]Arguments     : LUA error: ...\s.t.a.l.k.e.r\gamedata\scripts\spawn_new.script:2: attempt to index global 'level_id' (a nil value)
 

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение
20 минут назад, TIGER_VLAD сказал:

@Fenrir02 Вот так попробуй: if level.name() == "l02_garbage" then

 

Да работает)

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Тогда ещё вопросик.

    if level.name() == "l04_darkvalley" then
    get_console():execute("start_my_script_level_name_=_"..level.name())
    alife():create("m_boodsucker_e",vector():set(27.416481018066,1.3818007707596,-476.2585144043),207244,950)
    end

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

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Значит вот так:

if level.name()=="l04_darkvalley" and not has_alife_info("info") then

alife():create("m_boodsucker_e",vector():set(27.416481018066,1.3818007707596,-476.2585144043),207244,950)

db.actor:give_info_portion("info")

end

???

И функцию эту вешать на net_spawn?

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

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Да, уже разобрался. Просто побольше хочется узнать. Если что прошу прощение за флуд и "глупые вопросы".

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

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Не подскажите как сделать убор оружия при обыске мёртвых неписей/монстров/тайников? Не могу понять каким скриптом вызвать действия при обыске перечисленных предметов.

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

А где приблизительно нужно копать, чтобы найти эти инфопоршни? Может в bind_monster.script?

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Да с поршнями всё работает. Но вот ещё одна проблема: чёрт меня дернул - повесил на скрипт взятия предмета вот такое условие 
          if time_global() > userObj[1] + userObj[2] then
          end
end

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

 

Прошу прощения за флуд. Проблему решил - перезапуском компа):blush:

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Насчёт порчи артов... 

С помощью этой функции:

function degrad_art(obj)
    if obj:section() == "af_medusa" then
        obj:set_condition(0.5)
        -- alife():release(alife():object(obj:id()))
    end
end

баловался с состоянием арта - всё работает.

Но вот как это реализовать в игре? Денис говорил, что через net_packet можно не меняя движок это сделать. 

Скачал DSH, нашёл там полный скрипт порчи: dsh_art_degrad.script. Где он подключается?

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Доброго времени!

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

Пример: экзоскелет работает только с аккумулятором (это я сделал), но через некоторое время аккумулятор разряжается и удаляется из рюкзака.

Подайте идею.

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение
3 часа назад, Graff46 сказал:

пстор

Не совсем понял что это

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение
33 минуты назад, Graff46 сказал:

Хранилище данных

А возможно ли при этом ещё и запоминать состояние аккумулятора (condition), чтобы прямо из инвентаря видеть сколько осталось зарядки?

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

И снова здравствуйте!

Подскажите, можно ли реализовать запрет на обыск трупов\рюкзаков\ящиков, когда у ГГ заняты руки?

В NLC 7 есть такая фишка.

P.S.: условие "занятых рук" задать могу - if weapon_hide == false then

А дальше...

Заранее спасибо.

  • Полезно 1

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение

Доброго времени!

Помогите составить таблицу.

	if box:is_inv_box_empty() then
	  if box:section()=="box" then
		level.start_stop_menu(level.main_input_receiver(), true)
		alife():create("treasure_item", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
		alife():release(alife():object(box:id()))
	  end
	end

Другими словами, нужна таблица секций рюкзаков, составленная в примерно таком виде:

local box = {

"box",

"box_2",

"box_3"

}

Заранее спасибо.

Важнейшая задача цивилизации - научить человека мыслить.

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...