Clayman 104 Опубликовано 10 Мая 2012 Поделиться Опубликовано 10 Мая 2012 ihatetoregister, в ЗП логика персонажам (которые включены в сквады) подключается через конфиги смарт-террейнов в секции [exclusive], где задаются секции логики и ссылки на них в конфиг-файлах. Конфиги с логикой обычно лежат в gamedata\configs\scripts\локация. Всю эту информацию можно было найти и на сталкервики и здесь. Ссылка на комментарий
Аномальный 5 Опубликовано 10 Мая 2012 Поделиться Опубликовано 10 Мая 2012 Кто подскажет, как заспавнить сквад через скрипт, только не пишите через функцию create. К Богу не доходят ваши молитвы, так как, они похожи на спам! Ссылка на комментарий
Akella-96 aka SvD 35 Опубликовано 11 Мая 2012 Поделиться Опубликовано 11 Мая 2012 Народ, подскажите. Сделал абсолютно новую модель арта, вставил в игру, а когда выбрасываю из рюкзака, то модель не видно. Что делать? Добавлено через 1 мин.: Аномальный, а что тебе мешает заспавнить сквад через смарт? AWRP : Re - Load 0.2 © Ссылка на комментарий
Clayman 104 Опубликовано 11 Мая 2012 Поделиться Опубликовано 11 Мая 2012 Аномальный, а чем не устраивает стандартная функция create_squad в xr_effects? Akella-96 aka SvD, ну в ЗП вообще арты нужно детектором засвечивать, чтобы они появились. На сталкервики есть статья, как новый арт регистрировать, дабы детекторами засвечивался. Ссылка на комментарий
Akella-96 aka SvD 35 Опубликовано 11 Мая 2012 Поделиться Опубликовано 11 Мая 2012 Clayman, можешь кинуть ссылку на эту статью? AWRP : Re - Load 0.2 © Ссылка на комментарий
Аномальный 5 Опубликовано 11 Мая 2012 Поделиться Опубликовано 11 Мая 2012 (изменено) Clayman, наведи пример скрипта, может что неправильно описал, пробовал, но она у меня не работает. И можно ли как-то бес заморочёк переупаковывания, скриптово проверить наличие определённого количества патронов у ГГ, а потом передать его НПЦ? Изменено 11 Мая 2012 пользователем Аномальный К Богу не доходят ваши молитвы, так как, они похожи на спам! Ссылка на комментарий
Clayman 104 Опубликовано 11 Мая 2012 Поделиться Опубликовано 11 Мая 2012 (изменено) Парни, мне не трудно, но что мешало самим поискать на сталкервики?? Akella-96 aka SvD, тебе сюда. Аномальный, тебе сюда, там есть описание этой функции, которую можно вызывать из логики и ничего не мешает ее вызвать из другого скрипта. Изменено 11 Мая 2012 пользователем Clayman Ссылка на комментарий
Аномальный 5 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 Clayman, звеняй за назойливость, но что-то никак не выходит. Функция спавна, не в xr_effects.script, в новом файле, вызывается через диалог. function create_fox_squad() =create_squad(zat_gen_provodnik_squad:zat_b7) end Пробывал и бес равно, и такую форму писал xr_effects.create_squad Зарегистрированный сквад: [zat_gen_provodnik_squad]:online_offline_group faction = stalker sympathy = 1 npc = zat_gen_provodnik target_smart = zat_b7 spawn_point = zat_b7_stalker_raider_1_attack_walk story_id = zat_gen_provodnik_squad При инициализации скрипта выбрасывает с таким логом: stack trace: 001B:0235105B lua.JIT.1.1.4.dll Через такую функцию, всё работает нормально function create_fox_squad() alife():create("zat_gen_provodnik",vector():set(0.317,-0.441,42.258),944008,19) end единственное что бес таргета он не подхватывает логику смарттерраинов. Я знаю что логику нпц можно прописать и кастомдате. Но в данном случае это не совсем подходит. Ты сам пробовал пользоваться функцией create_squad? К Богу не доходят ваши молитвы, так как, они похожи на спам! Ссылка на комментарий
ХОВАН 3 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 Аномальный, Ух ты ж... Неправильно вызываешь функцию из xr_effects: xr_effects.create_squad(db.actor, nil, {"zat_gen_provodnik_squad","zat_b7"}) Ссылка на комментарий
Clayman 104 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 Аномальный, да, я этой функцией пользовался, все работает как надо. Да и еще, ты не забыл, что в смарте должен быть вей-поинт спавна, прописанный в конфиге смарта? Ссылка на комментарий
Аномальный 5 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 Clayman, как видишь использую оригинальный смарт, пробывал и zat_b7_spawn_point в скваде прописывать, просто каето чертовщина. Ну да ладно вот столкнулся ещё с такой несуразицой. Диалог как диалог, обычная проверочка на наличие предмета, а при попытки поговорить вот такая лажа, и лог понятный, но и вродь всё правильно: 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 : ...- Зов Припяти\gamedata\scripts\dialogs_barter.script:48: attempt to compare number with userdata stack trace: Часть скрипта на которую ругается лог: function actor_has_conserva_x2(first_speaker, second_speaker) return db.actor:object("conserva") >= 2 --48 строка. end Проверка как положено стоит в диалоге ГГ. Предыдущая проверка на наличие автомата проходит нормально(идет проверка на наличиее 7 предметов с вариаций которые есть у ГГ сплывают дальнейшые варианты, каждый вид предметов отдельная линия), а вот тут просто лажа, что уже не подставлял. В чём может быть причина? Правда грешок, новую игру не начинал, но сейв загружаю ещё до спавна НПЦ, обнуление структуры диалогов вродь проходит на все изменения реагируют, но вот эту проверочку ну не как не хочет, уже несколько раз и предметы проверки менял и сам скрипт переписовал и в другой файл его выносил. В общем, спасибо за помощь ранее и за дальнейшую! К Богу не доходят ваши молитвы, так как, они похожи на спам! Ссылка на комментарий
Clayman 104 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 Аномальный, вот ты когда статьи читаешь, ты их читаешь? По поводу спавна сквада, цитирую со сталкервики: !ВНИМАНИЕ! Эта функция создаст сквад только в том случае, если в настройках смарт террейна указана точка way, в которой мы должны спаунить отряд. Более того, я тебе об этом в предыдущем посте и написал. В смарте должна быть way-поинт и должна она быть прописана в конфиге смарта. В zat_b7 такой точки нет (придется добавлять ее в аллспавне или сдк, чтобы заработало). По поводу скриптов я не спец, пусть знающие люди напишут, но вроде такая проверка return db.actor:object("conserva") должна возвращать true или false, а не количество. Ссылка на комментарий
Artos 99 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 (изменено) Дополню (поправлю) Clayman'а: Применение метода db.actor:object("conserva") - возвращает об'ект (консервы, первой попавшейся в рюкзаке актора), а не кол-во банок (иль булево значение). Т.о. сравнение об'екта с числом и приводит к фатальной ошибке. Аномальный Постарайся повнимательнее читать материалы по моддингу и побольше думать, прежде чем делать. Метод "тыка" в скриптах отнимает больше времени и у тебя и у других. Изменено 14 Мая 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Аномальный 5 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 (изменено) Это стандартная функция на проверку истинности выражения. То есть, если выражение истинное, то оно создает условное тру (в моём случае, если в базе актёра 2-е или больше консервы, то оно истинное) и условие прекондишина выполняется, или наоборот. Не какие расчётов там не видётся, по скобкам видно, что берём стринговское название обьекта находим его db.actor и смотрим есть ли оно или нет, если да то проверяем количество на истину. Изменено 14 Мая 2012 пользователем Аномальный К Богу не доходят ваши молитвы, так как, они похожи на спам! Ссылка на комментарий
Artos 99 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 (изменено) Аномальный, дальнейшие бездумные вопросы/утверждения будут удаляться, дабы не захламлять топик! Тебе было сказано, что применяемый тобою метод возвращает об'ект (юзердату) и попытка сравнения с числом однозначно приводит к фатальной ошибке. Ни о какой тут проверки на истинность не может быть и речи. Вот это: return db.actor:object("conserva") ~= nil - вернет булево значение: есть ли у актора хотя бы одна банка консервы. О каком-то кол-ве банок в данном случае также не может идти речь. Изменено 14 Мая 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Akella-96 aka SvD 35 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 Ребят, как добавить в игру абсолютно нового монстра? Я его сделал на основе снорка, с его анимациями. Вот только в статистике монстр так же показывается снорком. Мне надо, чтобы монстр был со своей "аватаркой" AWRP : Re - Load 0.2 © Ссылка на комментарий
Аномальный 5 Опубликовано 14 Мая 2012 Поделиться Опубликовано 14 Мая 2012 (изменено) В скрипте pda.script после строк killed_monsters_tbl = допиши по аналогии с существующими свою ссылку на текстуру монстра, Добавляещь картиночку нового монстрика в textures/ui/ui_actor_monsters_pda_2.dds. Саму ссылку регестрируешь в configs/ui/textures_descr/ui_monsters_pda.xml. Ещё такой вопросик, есть ли функция на получение группировки НПЦ? Функция character_community, для объекта класса game_object, возвращает имя группировки (stalker, dolg, military и т.д.). ColR_iT Изменено 14 Мая 2012 пользователем ColR_iT К Богу не доходят ваши молитвы, так как, они похожи на спам! Ссылка на комментарий
Akella-96 aka SvD 35 Опубликовано 15 Мая 2012 Поделиться Опубликовано 15 Мая 2012 Аномальный, спасибо конечно, но мне нужен полный тутор. Про pda.script - я уже добавил, но монстр все равно отображается снорком.Он ведь у меня на классе снорка сделан. AWRP : Re - Load 0.2 © Ссылка на комментарий
Clayman 104 Опубликовано 15 Мая 2012 Поделиться Опубликовано 15 Мая 2012 Akella-96 aka SvD, вот урок с известного сайта по добавлению вырезанных монстров в статистику, возможно тебе это поможет: Понадобятся следующие файлы из распакованной оригинальной игры: Code gamedata\scripts\_g.script gamedata\scripts\class_registrator.script gamedata\scripts\lua_help.s cript gamedata\scripts\pda.script gamedata\scripts\xr_conditions.script gamedata\scripts\xr_sta tistic.script gamedata\configs\ui\textures_descr\ui_monsters_pda.xml gamedata\textures\ui\ui_actor_monsters_pd a_1.dds gamedata\textures\ui\ui_actor_monsters_pda_1.thm В файле _g.script раскоментировать строку: Code [clsid.zombie_s] = true, после строки Code [clsid.gigant_s] = true, Убедиться в наличии строки в файле class_registrator.script Code cs_register(object_factory, "CZombie", "se_monster.se_monster", "SM_ZOMBI", "zombie_s") после Code cs_register(object_factory, "CPseudoGigant", "se_monster.se_monster", "SM_GIANT", "gigant_s") Убедиться в наличии строк в файле lua_help.script Code const zombie = 38; const zombie_s = 124; в таблице C++ class clsid В файле pda.script после строки Code tushkano = {back = "ui_inGame2_Tushkan", icon = ""}, вставить строку Code zombie = {back = "ui_inGame2_Zombie", icon = ""}, В файл xr_conditions.script вставить функцию Code function is_monster_zombie(actor, npc) return npc:clsid() == clsid.zombie_s end В файл xr_statistic.script после строки Code [clsid.snork_s ] = "snork", вставить Code [clsid.zombie_s ] = "zombie", В файл ui_monsters_pda.xml в секцию Code <file name="ui\ui_actor_monsters_PDA_1"> ... </file> вставить строку Code <texture id="ui_inGame2_Zombie" x="0" y="800" width="393" height="200" /> Отредактировать текстуру ui_actor_monsters_pda_1.dds вставив картинку монстра в соответствующее место указанное в файле ui_monsters_pda.xml Для того, чтобы зомби отличались по ранжиру, нужно ввести ранг для каждого вида зомби описанного в файле m_zombie.ltx, затем проверять ранг зомби в файле xr_statistic.script в функции function set_best_monster(obj) кодом типа Code elseif(community=="zombie") then if(rank==6) then community = community.."_strong" else community = community.."_weak" end Соответственно для каждого из видов зомби можно сделать свою картинку в файле pda.script добавив Code zombie_strong = {back = "ui_inGame2_Zombie_1", icon = ""}, zombie_weak = {back = "ui_inGame2_Zombie_2", icon = ""}, и определив картинки для них в файле ui_monsters_pda.xml и отредактировав сами файлы текстур. Ссылка на комментарий
Akella-96 aka SvD 35 Опубликовано 15 Мая 2012 Поделиться Опубликовано 15 Мая 2012 (изменено) Clayman, я этот тутор пробовал. По - моему, он с SGM сайта. Вылет : Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....А.Л.К.Е.Р. - Зов Припяти\gamedata\scripts\_g.script:555: table index is nil Потрудись, если тебе нужно, задавать именно вопрос(ы), а не кидать в топик ... вот мол вылет. И по данной "ошибке" (строкам лога) сотни раз давались ответы - воспользуйся поисковиками. --/Artos [x] Изменено 15 Мая 2012 пользователем Artos AWRP : Re - Load 0.2 © Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти