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

Справочник по функциям и классам


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

ещё три точки может означать какой либо параметр.. Без ограничений и итп. и в виде [...] и передачи на функцию может послужить вызовом по имение данных из таблицы...

Строковые функции большой раздел.. Можно из одной строки и скобок сделать нечто невообразимое.

Формат и gsub посмотри.. по ману луа который malandrinus, давал тут, посмотри со второй по четвертую страницу ..

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


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

log & wait

первое не работает, второе кажется имеет особенность класть игру в лог. CoP

Изменено пользователем Unnamed Black Wolf

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


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

self.object:position():distance_to(self.object:memory_position(self.object:best_enemy())) < self.a.radius

как можно наблюдать, тут узнается расстояние.. Сначала объекта, далее, худшего врага.. И сравнивается с радиусом...

self.object:memory_time(self.object:best_enemy())

это уже узнавание времени скорее всего времени нападение худшего врага....

 

Про остальное надо экспериментировать...

 

Примеры взяты из xr_camper.script.

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


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

Info Portions System (сокращенно принято называть, infoportions, на русском языке кто как пишет...)

 

Система сюжетной информации (ССИ) нужна для обеспечения происхождения и запоминания сюжетных событий в игре.

 

При помощи ССИ можно создавать порции сюжетной информации (info portions).

 

 

Каждая из таких порций имеет/должна иметь уникальный текстовый id и является просто флажком в реестре, который автоматически загружается и сохраняется.

 

К возможностям info_portion относится:

 

запуск функции по отношению к персонажу при получении info_portion (action)

добавления локаций на карту (location)

возможность инициирования диалогов актером (dialog)

возможность инициирования диалогов у актера (при разговоре с персонажем, который имеет info_portion) (actor_dialog)

добавления статей в энциклопедию (article)

добавление заданий и в меню заданий (task)

удаление из реестра уже известных info_portions (disable)

добавление каких-либо данных в секцию "данные"

 

И ещё не совсем уверен, give_info_portion_via_pda(info_id, who) - получить информацию по идентификатору от указанного объекта

 

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

 

Некоторые комментарии (malandrinus):

- Добавление локаций (тег location) и тег actor_dialog по всей видимости были в ранних билдах. В релизе их нет.

- вроде как можно косвенно инициировать простановку метки на карте через выдачу задания.

- Тег dialog, насколько я понял, по любому добавляет диалог к диалогам актора, поскольку стартовых диалогов может быть только один (об этом будет в следующих статьях). Впрочем, даже этот тег, хоть и работает, в оригинальной игре используется всего в одном инфопоршене (а именно global_dialogs), и то я не уверен, работает ли на самом деле.

- Что такое "добавление в секцию 'данные' ", не совсем представляю. Возможно тоже что-то из старых билдов.

- Функция give_info_portion_via_pda опять же была в билде 1935. В релизе такой нет. Могу только предположить, что она имела отношение к полносимуляционной игре, когда сталкеры были равноправными игроками наравне с актором. Возможно, с ними можно было как-то общаться через PDA. Но сейчас это уже из области фантазий.

 

Вводные слова добавлю, спасибо.

 

Также вдогонку ещё интересный пример использования инфопоршенов. Имеются специальные инфопоршены, которые выдаются актору при включении/выключении элементов пользовательского интерфейса и по специальным системным событиям:

ui_pda

ui_pda_hide - закрытия кпк

ui_pda_contacts - открытие окна контактов в кпк

ui_pda_contacts_hide - закрытие или переключения окна контактов

ui_pda_map_local

ui_pda_map_global - открытие вкладки глобальной карты

ui_pda_news - открытия вкладки новостей

ui_pda_news_hide - переключение с вкладки новостей

ui_pda_jobs_failed - окрытие вкладки проваленных задач

ui_pda_jobs_accomplished - открытие вкладки завершенных успешно задач

ui_pda_jobs_current - открытие вкладки текущих задач

ui_pda_jobs - открытие вкладки задач

ui_pda_jobs_hide - переключение с вкладки задач

ui_pda_diary - открытия вкладки дневника

ui_pda_diary_hide - закрытия=е или переключение вкладки дневника

ui_pda_encyclopedia - открытие вкладки энциклопедии

ui_pda_encyclopedia_hide - переключение с вкладки энцклопедии

ui_pda_actor_info

ui_pda_ranking - открытие вкладки рейтинга

ui_pda_events - открытие вкладки

ui_inventory открытие инвентаря

ui_inventory_hide - закрытие инвентаря

ui_talk - открытие диалога

ui_talk_hide - закрытие диалога

ui_trade - открытие торговли

ui_trade_hide - закрытие торговли

ui_car_body - открытие инвентаря трупа

ui_car_body_hide - закрытие инвенторя трупа

autojump_enabled

 

Назначение более-менее ясно из названия. Если прописать в эти инфопоршены тег action, то можно получить скриптовые колбеки на соответствующие события.

Изменено пользователем Unnamed Black Wolf
  • Нравится 1

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


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

Не думал что ты будешь упоминать рабочие/системны инфопорции, я расписал что знал.

Но на данный момент в тч, работает из инфопорций в кпк - открытие и скрытие. Остальное не было замечено, во всяком случае у меня.

На ЗП не надо мучиться с action, достаточно открыть actor_menu и вписать функцию или вызов в нужном действие. У нпс есть аналогичный скрипт, но действие мной не проверялось. (Не замечено работоспособность с моей стороны.)

Изменено пользователем Unnamed Black Wolf
  • Нравится 1

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


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

биография в ТЧ отображалась, и в ЗП кажется тоже. Это что написано про сталкера. Посмотри примеры на квестовых нпс.

Если не путаю ничего.

Кст, где нашел npc_config?

Чтение такого тега есть в той-же функции, где и чтение остальных тегов (CSpecificCharacter__load_shared). В IDA в отладочном билде это хорошо видно. Но в игре этот тег никак не задействован, возможно и не используется вовсе. Самое странное, что он читается и в ЗП и так же никак не используется. Вот глядя на это просто удивляюсь, убивать полезный функционал у GSC времени хватает, а вот этот явно никак не используемый мусор почистить - это видимо религия не позволяет.

(Malandrinus)

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

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


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

<!-- id - уникальный в пределах диалога номер фразы --> 
<phrase id="6"> 

<!-- текстовое представление фразы --> 

<text>Sorry, but I have to go.</text> 

<!-- или скриптовая функция которая возвращает строку текста --> 

<script_text>info_test1.test_text</script_text> 

<!-- минимальный уровень благосклонности персонажа, чтоб он смог сказать фразу --> 

<goodwill>60</goodwill> 

<!-- cкриптовые предикаты, если они все вернут true то фраза станет доступной --> 

<precondition>info_test1.test_action</precondition> 

<precondition>info_test1.test_action1</precondition> 

<!-- особые предикаты проверяют наличие/отсутствие порций информации у того кто говорит фразу --> 

<has_info>info_name1</has_info> 

<dont_has_info>info_name1</dont_has_info> 

<!-- cписок тех id фраз которые станут доступны собеседнику после того как будет сказана эта фраза --> 

<next>7</next> 

<next>5</next> 

<!-- cкриптовые функции, которые могут быть вызваны --> 

<action>info_test1.test_action</action> 

<action>info_test1.test_action1</action> 

<!-- особые функции, которые дают/убирают порции информации тому кто говорит фразу --> 

<give_info>info_name1</give_info> 

<disable_info>info_name1</disable_info> 

</phrase>

Все вызываемые скриптовые функции (как action так и precondition) задаются своим ПОЛНЫМ именем: NAMESPACE.FUNC_NAME, NAMESPACE - обычно просто имя файла скрипта с функцией.

 

Все скриптовые функции получают на вход 2 параметра: собеседник1 и собеседник2. Эти параметры представляют собой объекты персонажей ведущих диалог (актер, сталкеры, торговцы). Причем первым параметром идет тот, кто говорит фразу. (Я не ловил диалога ид, ты уверен в диалоге ида? )

 

pda="1"/"0" - аттрибут указывающий на то что диалого будет использоваться исключительно при связи по PDA (модеррам билдов. В оффе нету такого.)

priority="-1" - целое число (может быть отрицательным), чем меньше число тем ниже диалог появится при выборе из меню актера

 

Особой фразой является "пустышка" - фраза в которой отсутствует тег <text>. Фразы - пустышки, полезны, если мы хотим пропустить очередь говорить одного из собеседников. Также с помощью пустышек можно делать стартовые "развилки", то есть нужно сделать возможность начинать диалог не с одной, а со списка различных фраз (в таком случае делается 2 пустышки с id 0 и 1).

 

Кстати функция возврата строки в диалог, может быть совсем и перемененной.

 

P.S. Поправь, раскидай, покритикуй (но не сильно бей головой об стену). (Мог что-то повторить)

Изменено пользователем Unnamed Black Wolf
  • Полезно 1

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


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

local dt = game.CTime()
local year, month, day, hour, minutes, seconds, ms = dt:get()
dt:set(year, month, day+1, hour+3, minutes, second, ms)
dt:add(game.get_game_time():get())

Не очень уверен, первое в голову пришло...

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


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

Думаю писали именно 31 января, поэтому и под алкоголем сместилось.... ))))))

А в общем, можно нагородить отдельную проверку с ручным выставлением в случае с 31 январем....

 
(получения дня == 31) and функция or обычная функция. 
-----
if день == 31 then 
код функции 
else 
код функции 
end

Ну к примеру.. А в сете выставить полную дату, ручками....

 

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

Изменено пользователем Unnamed Black Wolf

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


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

malandrinus, какой ты скучный.. Нет, покритиковать немного.. Повеселится над багом/пасхалкой.... Я вот к примеру до второго третьего, в отключке.. Поэтому не знаю что есть 32 или нет.. Мб календарь в действительности почему-то имеет странные 31-30 дней и за редкостью 29 и в обычностью 28.... А у меня в НГ чудо.

Обидел речью про криворукость и безмоглость? (Как будто сам так не считаешь....)

Ну кстати смотря чем мерить время в сталке, если мне память не изменяет, то в сталке есть и запрос обычного времени.. Которое яко-бы реальное....

Суть вопроса, а что есть реальное? Почему к примеру это все не игра? То так буит весело..... (Бушь отвечать, аргументируй.. Я сперва начну. (Реинкорнация и перерождение это вид сейв/лоад))

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


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

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

×
×
  • Создать...