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

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

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу.

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
47 minutes ago, hack.pavlov said:

Например: wp00|a= s= t= и т.д.

Конкретно эти в move_mgr.script

А вообще часть этих флагов размазана по многим скриптам. Нужно уже смотреть конкретно по нужному.

Ссылка на комментарий

@lordmuzer Спасибо за инфу! А вот такой флаг sl= где есть? В ЧН использовался для управления поворотом прожектора.

Добавлено  Опричник,

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

Ссылка на комментарий

Добрый день, хотелось бы проконсультироваться по скриптам ЗП и, в частности, моду СГМ.
Есть предмет (артефакт), который при условии прохождения определенной ветки побочного квеста я могу получить. Но в этом случае я должна расправиться с хорошими людьми.

Есть возможность заспавнить в рюкзаках убитых, но это просто ходить и как грибы собирать (даже при малой вероятности спавна у меня у каждого второго этот артефакт появлялся, а нужен практически в единственном варианте) - а потому это решение не подходит.
В файле task_manager,(в ЗП) нет строки reward_item = куда можно прописать данный предмет.
При попытке сделать это в обход, через выдачу тайника - добавление предмета в файле sgm_baze_treasures.ltx - результат нулевой. Предполагаю, что в этом случае еще нужно внести правки - вопрос где и какие?
Работа с all-спавном исключена.


 

Если дела идут не так, как ты хочешь - дай им пройти мимо! Это не твои дела.

Народное интервью

Ссылка на комментарий

Дополню:
В файле task_manager,(в ЗП) нет строки reward_item = куда можно прописать данный предмет.

Там есть только "reward_money = 10000", то есть оплата налом. 
Есть файлы "tm_zaton.ltx", "tm_jupiter.ltx", "tm_pripyat.ltx", там хранятся
сюжетные квесты (базовой игры), в которых встречается  искомые "reward_item = ". 

Есть файл "sgm_tasks.ltx", нет строки reward_item =, зато есть "reward_money =.
Правильно ли я поняла логику, денежные призы и предметы прописаны в разных местах за одни и те же квесты? 

Насколько для игры критично добавлю ли я предмет не из базовой игры в базовые квесты? Нарушится ли логика игры?
 

Если дела идут не так, как ты хочешь - дай им пройти мимо! Это не твои дела.

Народное интервью

Ссылка на комментарий

@Светлячок, reward_item в SGM не юзают, значит. Но его работоспособность никуда не делась. Пользуйтесь.

UPD: насчет «не сломается» уже экспериментируйте. Тут что в трупы спавнить, что любым другим способом читерить - результат будет один. :)

Добавлять можно тоже в любое место.

Изменено пользователем Overfirst
  • Спасибо 1

Ранее был известен под ником BoBaH_671.

Ссылка на комментарий
3 часа назад, Светлячок сказал:

Есть предмет (артефакт), который при условии прохождения определенной ветки побочного квеста я могу получить

А вы не пробовали прописать этот предмет кому то в продажу?  Например какому то торгашу.

%C0%EA%E5%EB%EB%EE.gif
Ссылка на комментарий
9 часов назад, Overfirst сказал:

Добавлять можно тоже в любое место.

Меня смутил факт, что награда за некоторые задания разбросана по разным файлам, предполагаю, что тогда программа сравнивает все "наградные" файлы и только затем решает "бросить кость" или проигнорировать.

Интереснее всего было бы отработать механизм выдачи тайника через скрипты. Возможно добавления предмета в файле sgm_baze_treasures.ltx мало в том случае, когда тайник выдается в качестве какой-либо награды. То есть еще где то надо правки вносить - вот и пытаюсь разобраться.
Тут опять же возникают ситуации, когда один и тот же тайник при разном прохождении выдают разные персонажи. Я сейчас не о персональных тайниках и нычках из базовой игры, про которые если вы их уже нашли ранее так и говорят - вам выданы координаты ранее найденного тайника, а именно об СГМ-тайниках. Такое ощущение, что там есть список тайников по порядку условно 1, 2, 3 и координаты выдаются по мере выполнения тех или иных заданий - то есть сделала доброе дело сначала для Шакала, и мне он выдает координаты тайника №1, а если он мною ранее был успешно обыскан, то координаты №2, А если меняю очередность выполнения побочных квестов, то эти же координаты тайника №1 может выдать совсем другой персонаж, а Шакал уже только №5.   


Akello, разумеется прописала в продажу торговцам, но он у них так и не появился. Единственно, есть еще надежда на Бороду - может еще у него появится одновременно с продажей прочих артефактов. 

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

Изменено пользователем Светлячок
отправила сообщение раньше времени, не закончив

Если дела идут не так, как ты хочешь - дай им пройти мимо! Это не твои дела.

Народное интервью

Ссылка на комментарий
2 часа назад, Светлячок сказал:

прописала в продажу торговцам, но он у них так и не появился

Вы прямо заинтересовали этим модом, а не скажете точнее, полное название мода, и что это за артефакт? 

%C0%EA%E5%EB%EB%EE.gif
Ссылка на комментарий

Зов Припяти + Сигероуз-мод-1,6 + Сборка Браза
Там несколько Артефактов - Монолит, Исполнитель желания, Адский камень.
Исполнитель желания мы подбираем с трупа Грифа в случае прохождения ветки "Сделка" за Сыча/Долговца. Остальные два иногда находятся у Монолитовцев.
Меня больше заинтриговала, пока искала где и что скриптовать - информация о награде за выполнение квеста (название точно не запомнила) "поиск медальона".
Лично мне он в этом моде никогда такое задание не встречалось. Варианта 3:
1) разрабы планировали, но не доделали;
2) создатели мода дали такое название в скриптах условно, а по факту - это другое задание (например, принести фотоаппарат дядьке Яру) или целая группа заданий;

3) все галопом пробежали мод, и не попав на нужную ветку диалога просто такое задание не получили. 

Я еще тот хакер, ориентировалась в основном на то, что находила в сети для скриптования ТЧ.  Не все срабатывает для ЗП.

Изменено пользователем Светлячок
неправильно Сборку указала
  • Спасибо 1

Если дела идут не так, как ты хочешь - дай им пройти мимо! Это не твои дела.

Народное интервью

Ссылка на комментарий

@Akello, вы можете проверить, например в файле "trade_zat_a2_barmen", папка configs/misk/trade:
af_monolit - Монолит
af_blackstone - Адский камень

af_wish - Исполнитель желания.

 

Если дела идут не так, как ты хочешь - дай им пройти мимо! Это не твои дела.

Народное интервью

Ссылка на комментарий
42 минуты назад, Светлячок сказал:

вы можете проверить

Из вашего списка, есть арт монолит, ну и есть василиск, я такой не встречал пока ещё. Поищем ещё. Там есть неизвестные артефакты, может оно потом сгенерирует что то новое.

%C0%EA%E5%EB%EB%EE.gif
Ссылка на комментарий

Здрасьте.

 

Пытаюсь прикрутить сообщение при спавне предметов в инвентарь.

Spoiler

[bind_stalker.script]
function actor_binder:on_item_drop (obj)
    level_tasks.proceed(self.object)
    new.drop_check(obj)
end


[new.script]
-- // спавн заданного предмета в инвентарь // --
function spawn(item)
    local act = db.actor 
    alife():create(item, act:position(), act:level_vertex_id(), act:game_vertex_id(), act:id())
end


-- // проверка сброшенного предмета // --
function drop_check(obj)
    if obj:section() == "hand_radio" then
    new.spawn("bandage")
    news_manager.send_tip(db.actor, "test", nil, nil, 10000)
    end
end


В указанном виде ("test") сообщение в игре выводится без проблем.
С текстом "тест", вставленным через Notepad++, сообщение выводится с битой кодировкой.
С текстом "тест", вставленным через обычный блокнот, вызов сообщения в игре приводит к вылету со ссылкой на строку "drop_check(obj)" в "bind_stalker.script". Судя по сообщению об ошибке, то, что читалось как ссылка на название скрипта, теперь читается как необъявленная переменная. Как кодировка могла на это повлиять?

 

Spoiler

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:186: attempt to index global 'new' (a nil value)

 

Вижу, что в файлах оригинальной ТЧ все тексты в подобных сообщениях даны ссылками на папку "config\text\rus\". Точно могу сказать, что "Солянка 2010" понимает прямую вставку текста через оба блокнота и даже кириллицей. Что надо исправить в оригинальной ТЧ, чтобы добиться такого же эффекта?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@Светлячок, несуществующий предмет, вписанный в конфиг торговца (или еще куда-либо, где делается попытка его ИСПОЛЬЗОВАНИЯ) отнюдь не приводит к появлению этого предмета в игре.

Вот к вылетам - да, приводит.

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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