Здравствуйте, друзья. Мне нужна помощь в одном деле:
Я сделал диалог, в котором получаются и отнимаются ножи(точнее объяснить не могу, будет понятно в коде)
Но уже при загрузке локации ловлю вылет:
Код:
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description : <no expression>
Arguments : LUA error: ...eu ?aeaiee\shoc\gamedata\scripts\bind_stalker.script:234: attempt to index global 'test' (a nil value)
Я знаю, что или не правильно вызвал, или ошибка именно в файле скрипта, но вызовы функций я перепроверил, а ошибку в функциях найти не могу.
Буду очень благодарен, если кто поможет.
function peredacha_in_knife_m1(first_speaker, second_speaker)
local obj = alife():create("wpn_knife_m1", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end
function peredacha_out_knife_m1(first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "wpn_knife_m1")
end
function peredacha_in_knife(first_speaker, second_speaker)
local obj = alife():create("wpn_knife", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end
function peredacha_out_knife(first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "wpn_knife")
end
function peredacha_in_knif1(first_speaker, second_speaker)
local obj = alife():create("wpn_knif1", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end
function peredacha_out_knif1(first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "wpn_knif1")
end
function peredacha_in_knif2(first_speaker, second_speaker)
local obj = alife():create("wpn_knif2", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end
function peredacha_out_knif2(first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "wpn_knif2")
end
function actor_have_knife()
if db.actor:object("wpn_knife") then
return true
end
return false
end
function actor_have_knife_m1()
if db.actor:object("wpn_knife_m1") then
return true
end
return false
end
function actor_have_knif1()
if db.actor:object("wpn_knif1") then
return true
end
return false
end
function actor_have_knif2()
if db.actor:object("wpn_knif2") then
return true
end
return false
end
function actor_havent_knife
if db.actor:object("wpn_knife") ~= true then
return true
end
return false
end
function actor_havent_knife_m1
if db.actor:object("wpn_knife_m1") ~= true then
return true
end
return false
end
function actor_havent_knif1
if db.actor:object("wpn_knif1") ~= true then
return true
end
return false
end
function actor_havent_knif2
if db.actor:object("wpn_knif2") ~= true then
return true
end
return false
end
UPD Разобрался сам, извините за беспокойство.
Сообщение было успешно отредактировано DmitriyT (25-08-2013 18:55 GMT3 часа, назад)
Всем привет ! Помогите справиться с солянкой (модом) "обитель зла" . Я хочу УБРАТЬ функцию собирательства НПСей т.е. они собирают все предметы , арты и шмонают трупов. Так вот излазил папку gamedata вдоль и поперек, но не могу найти где этот модуль находится. Походу дела что когда эту солянку собирали то некоторые модули обьединили в одном файле или закопали среди стандартных. Но никак не могу где именно... Может кто то сталкивался с подобными ситуациями и может помочь в этом деле?
Панцирь вот здесь можешь посмотреть!!!
http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B
Devastator-hunter , НИ начни. Может ещё что-то использует этот скрипт, к примеру, есть такой минимодик - заминированные тайники. Но сама привязка мародёрства несложная
dimak Спасибо что попытался помочь. Попробую еще раз пересмотреть файлы . Кстати вот в моде симбионт есть отдельная папка mods , в ней есть файл (формата ltx) отвечающий за скрипт собирательства. В нем можно вкл/выкл или даже задать дистанцию на котрой НПС начинают собирать предметы. А здесь я не нашел ничего похожего. Хотя гдето оно должно тоже задаваться наверно. Просто если нельзя удалить модуль, то почему бы не сделать НПС слепыми...
local state = wounded_by_state[math.mod(npc:id(), 3)]
def.hp_state = "40|"..state.."@help_heavy"
def.hp_state_see = "40|"..state.."@help_heavy"
...
if npc_community == "bandit" then
def.hp_state = "40|wounded_heavy@help_heavy"
def.hp_state_see = "40|wounded_heavy@help_heavy"
...
if npc_community == "monolith" then
local state = wounded_by_state[math.mod(npc:id(), 3)]
def.hp_state = "30|"..state.."@nil"
def.hp_state_see = "30|"..state.."@nil"
и
if npc_community == "zombied" then
def.hp_state = "30|wounded_zombie@nil"
def.hp_state_see = "30|wounded_zombie@nil"
Редактируй цифры, которые я выделил зелёным. Выше значение - больше раненых.
Есть на руках скрипт, когда-то мне его написал старый товарищ.
Код:
local item = nil
function antigas_update()--' функция для обычных рюкзаков
if item and type(item) == "number" then
local armor = db.actor:item_in_slot(6)
if (not level.object_by_id(item)) and armor and not string.find(armor:section(), "_gas") and armor:section()~="exo_outfit" and armor:section()~="military_outfit" and armor:section()~="scientific_outfit" and armor:section()~="specops_outfit" then--' Тут можно изменить проверку на костюм.
alife():release(alife():object(armor:id()), true)
alife():create(armor:section().."_gas", db.actor:position(),db.actor:level_vertex_id(), db.actor:game_vertex_id(),db.actor:id())
else
alife():create("antigas", db.actor:position(),db.actor:level_vertex_id(), db.actor:game_vertex_id(),db.actor:id())
end
item = nil
end
if item and type(item) == "userdata" then
item = item:id()
else
item = nil
end
end
function antigas_drop(obj)
if obj:section() == "antigas" then
item = obj
end
end
Замысел таков, у ГГ есть предмет (в данном случаи это противогаз) и когда мы его используем, то получаем костюм, который у нас был, но только с противогазом. Т.е. это что-то вроде апгрейда костюмов за счёт определённых предметов. Хотелось бы расширить функционал, добавить возможность установки ещё одного апгрейда (рюкзака например) с проработкой вариантов установки, т.е.
Сначала рюкзак, потом противогаз
И наоборот
Сначала противогаз, потом рюкзак.
Обращаюсь не потому что не хочу делать, а потому что не знаю как.
P.S. ColR_iT если читаешь мой пост - помоги пожалуйста, ты в этом деле мастер.
P.S.S. И ещё есть у функции один косяк - если мы выбросим противогаз, он будет валяться на земле, и автоматом вернётся к нам в инветарь, таким образом у нас уже будет 2 противогаза, и так до бесконечности.
Большая просьба, может кто сталкивался. Мне интересно раскопать информацию о всех параметрах игры на данный момент.
Как я понимаю, а может ошибаюсь, все это заипсано в файлах "*.sav".
Я нашел "save_unpacker_v_0_2", но он выдает файл "output.bin" (что и должен делать, согласно скрипту).
Но как открыть этот бин? Или я вообще ошибаюсь. Конкретно на сей момент мне хотелось бы иметь файл
с заданиями ПДА. Активными, выполненными и проваленными.
rust13 , не правильно ты понял. Или я тебя... Задания в ПДА: gamedata\config\gameplay файлы - tasks_локация.xml
Вот это: "интересно раскопать информацию о всех параметрах игры на данный момент" - не понятно, какие именно "все параметры" имеются ввиду? Там их - море!
Fagot, ты меня неправильно пронял. Все что записано в статичных файлах gamedata меня не интересует.
Меня интересует состояние ПДА на момент текущего сохранения.
Fantom2323 твоя функция рудиментарна уже как 2-3 года, все давно используют use колбек.
По поводу твоего вопроса, тут все упирается в написание кучи условий(я давно не занимался моддингом, может че новее придумали, но напишу как знаю), типа "если есть костюм и на нем нет нифига, и мы подобрали противогаз, то меняем на костюм с противогазом, если есть костюм с рюкзаком, то меняем на костюм с рюкзаком и противогазом" и т.д....работа простая и муторная, а примеров куча в любом моде с апгрейдами пушек/костюмов.
ЦитатаПо поводу твоего вопроса, тут все упирается в написание кучи условий
Это мне было известно и без тебя.
Цитатаа примеров куча в любом моде с апгрейдами пушек/костюмов.
Видишь ли, искать эти примеры можно месяцами, я лично могу над одной фишкой дня 3 зависать, только от того что не имею примера, а некоторым так сложно просто показать и объяснить код.
ЦитатаВроде доходчиво написал, удачи!
Доходчиво. Всё равно что спросить из чего состоит машина? - Ответ: из запчастей, а каких, и где они расположены, за что отвечают и как функционируют - хер его знает.
Ладно проехали, другой вопрос наболел.
Как мне сделать так, чтобы пленного во вражеском лагере не расстреливали враги. (аля шустрый с кордона) Кстати хотел именно с ним сделать по аналогии, но ничего конкретного не нашел. Можно бы было прописать комбат игнор обеим сторонам, но тогда будет глупо что ГГ придёт во вражеский лагерь и просто расстреляет всех, без вреда себе. Игнор на хит - тоже глупо, т.к. пленного враги всё равно могут расстрелять.
ColR_iT ага, спасибо. А еще такой вопрос: в путях вертух можно задавать флаги flame и die. Но я не знаю например в какой именно точке будет находиться данный вертолет в нужный мне момент. Т.е. по сюжету он начинает гоняться за ГГ и мне нужно в определенный момент его "убить"(повторюсь - неизвестно в какой точке он окажется). Можно ли как-то это проделать именно через его логику?
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.