Сергей Шубин
Сталкеры-
Публикаций
95 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Календарь
Новости
Моды
Весь контент Сергей Шубин
-
Добрый вечер. Тестирую функции передачи от игрока квестовых предметов. В оригинальном Зове Припяти происходит трансферт предметов. Когда мы приносим Тесаку 6 банок тушенки, то они у него и остаются. Если грохнуть Тесака, то в этом можно убедиться. Пробую функции для диалога, удаляющие квестовые предметы из игры. Получилось следующее. Для одиночного предмета работает отлично. Но если предметов два или несколько, то удаляется только один. Чтобы убрать два предмета, нужно в диалоге делать два экшена. Нашел такую функцию. Эта функция убирает все предметы с данным именем. Есть в рюкзаке 10 автоматов, то уберет все подчистую. Вопрос такой. Как доработать первую функцию? function relocate_object_ot_actor(item) local obj = db.actor:object(item) if obj ~= nil then alife():release(alife():object(obj:id()), true) end news_manager.relocate_item(db.actor,"out",item) end Чтобы можно было задать число удаляемых предметов.
-
Доброе утро. Возник вопрос. В файле xr_statistic обрабатываются переменные статистики ГГ. Как использовать эти значения в игровом процессе. 1. Как составить функцию - прекондишион для диалога? Должна возвращать true, если ГГ убил, например, 20 монстров. 2. Как составить функцию для xr_conditions в общем виде? Вызывается из логики рестриктора. Если ГГ выполнил, допустим, 5 квестов, то рестриктор переключается на следующую секцию.
-
Добрый день. Возник такой вопрос. У ГГ есть бустер - сканер телепортов. При использовании (активации) бустер подменяется другим предметом. Эта задача несложная. Но по моей задумке для успешной активации бустера нужен артефакт третьего ранга в рюкзаке ГГ. Как правильно написать функцию в общем виде? Функция должна вызываться из bind_stalker при использовании бустера. Функция должна проверить, есть ли в рюкзаке ГГ хотя бы один артефакт из списка (артефакт третьего ранга) и удалить этот артефакт из рюкзака. Если таких артефактов в рюкзаке несколько одинаковых или разных, то рандомно удалить один из них. Как правильно написать функцию в общем виде? Мне пока только последовательный перебор артефактов приходит в голову.
-
Игра не может найти предмет ammo 12x76. Проверяйте файлы мода. Где-то должен упоминаться этот "коварный" патрон. В инвентаре НПС, в награде за квест, в тайнике, в качестве боеприпаса для оружия. Проверяйте везде. Когда найдете, исправьте ошибку, заменив патрон на ammo 12x76_zhekan. И вылет прекратится. Если лень искать, то можно добавить в игру патрон ammo 12x76.
-
Добрый вечер. Я подключил к Зову Припяти локацию Кордон. Заселил её. Организовал симуляцию. Сделал, как в оригинале. Чтобы сталкеры утром уходили на прогулку а вечером шли на базу. Все работает как нельзя лучше. НПС утром дружно идут гулять, к ночи возвращаются на базы и ложатся в кроватки. Воодушевился успехом и решил в этом же скрипте запретить монстрам заходить на базовые смарты. И получил зеленое насекомое. 107 строка -- smart = { territory= { prec = function() return in_time_interval(6, 19) and target:name() ~= "esc_b1" and target:name() ~= "esc_b2" and target:name() ~= "esc_b4" and target:name() ~= "esc_b6" and target:name() ~= "esc_b7" end }, Чем то движку не приглянулось указание смартов. Вопрос - чем? Можно ли запретить в sim_board конкретным фракциям лезть на конкретные смарты?
-
Предложили идею для сценария. Сделать локацию, какой она может быть. Со множеством трупов, сгоревшей техникой. И такую же локацию с нормальным заселением. Это пока так на уровне - наметки и прикидки. Если бы речь шла об одноразовом случае, то было бы просто. Расставил бы в СДК, то что надо. Потом убрал. А как спавнить то, что надо в процессе игры? Возможно, несколько раз. С другой стороны, разрабы мода Связь Времен два Лиманска делать не стали. У них там ГГ попадает в параллельную реальность. Вот и возник вопрос. Даст ли СДК собрать локпак с двумя одинаковыми локами, поймет ли этот фокус движок игры.
-
Добрый день. Возник вопрос по правильной работе этих диалогов. Скрипт, контролирующий диалог, в файле dialog_manager Добавил к традиционным для Зова Припяти пятую фракцию - военных. При попытке активации диалога с воякой ловлю жука. Со сталкерами диалог работает нормально. Где еще нужно прописать вояк, чтобы не вылетало?
-
В таком виде проверка не сработает. Надо разделить. Как то так. function has_item_task(first_speaker, second_speaker) -- проверка если у игрока есть предмет return db.actor:object("vodka") ~= nil end А поршень выдать отдельно. function has_item_task_1(first_speaker, second_speaker) db.actor:give_info_portion("plateau_quest_autobus_has_item") end Через рестриктор, например.
-
Для начала. Во втором диалоге на передачу водки предусмотрено разветвление. Водка есть - водки нет А вот перехода на 4 фразу с первой нет. <phrase id="0"> <text>Насчет водки...</text> <next>1</next> </phrase> Должно быть что то вроде. <phrase id="0"> <text>Насчет водки...</text> <next>1</next> <next>4</next> </phrase>
-
Добрый вечер. В Зове Припяти есть возможность скриптом задать ориентацию ГГ. Что то вроде. db.actor:set_actor_direction(0.035) Для НПС есть такая возможность? Нужно принудительно заставить НПС смотреть в заданном направлении. Логика валкер не подходит, НПС стоит не на сетке. Что нужно прописать в скрипте? Функция вызывается из логики этого самого НПС.
-
Добрый вечер. В свойствах артефактов в вашем моде есть параметр. max_health_add = 0.00 ; Изменение величины здоровья 1 еденица = 0.01 (+ увеличение/- уменьшение) У артефакта af_black_angel он равен max_health_add = 0.15 ;+15 Здоровье должно вроде восстанавливаться. Но при помещении артефакта в слот разом отнимается 15% здоровья. Затем оно постепенно восстанавливается. Параметр в какую сторону работает?