Unnamed Black Wolf 4 Опубликовано 3 Марта 2010 ещё три точки может означать какой либо параметр.. Без ограничений и итп. и в виде [...] и передачи на функцию может послужить вызовом по имение данных из таблицы... Строковые функции большой раздел.. Можно из одной строки и скобок сделать нечто невообразимое. Формат и gsub посмотри.. по ману луа который malandrinus, давал тут, посмотри со второй по четвертую страницу .. Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 25 Марта 2010 (изменено) log & wait первое не работает, второе кажется имеет особенность класть игру в лог. CoP Изменено 25 Марта 2010 пользователем Unnamed Black Wolf Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 14 Апреля 2010 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. Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 10 Июля 2010 (изменено) 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, то можно получить скриптовые колбеки на соответствующие события. Изменено 11 Июля 2010 пользователем Unnamed Black Wolf 1 Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 11 Июля 2010 (изменено) Не думал что ты будешь упоминать рабочие/системны инфопорции, я расписал что знал. Но на данный момент в тч, работает из инфопорций в кпк - открытие и скрытие. Остальное не было замечено, во всяком случае у меня. На ЗП не надо мучиться с action, достаточно открыть actor_menu и вписать функцию или вызов в нужном действие. У нпс есть аналогичный скрипт, но действие мной не проверялось. (Не замечено работоспособность с моей стороны.) Изменено 11 Июля 2010 пользователем Unnamed Black Wolf 1 Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 12 Июля 2010 (изменено) биография в ТЧ отображалась, и в ЗП кажется тоже. Это что написано про сталкера. Посмотри примеры на квестовых нпс. Если не путаю ничего. Кст, где нашел npc_config? Чтение такого тега есть в той-же функции, где и чтение остальных тегов (CSpecificCharacter__load_shared). В IDA в отладочном билде это хорошо видно. Но в игре этот тег никак не задействован, возможно и не используется вовсе. Самое странное, что он читается и в ЗП и так же никак не используется. Вот глядя на это просто удивляюсь, убивать полезный функционал у GSC времени хватает, а вот этот явно никак не используемый мусор почистить - это видимо религия не позволяет. (Malandrinus) Изменено 15 Июля 2010 пользователем malandrinus Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 17 Июля 2010 (изменено) <!-- 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. Поправь, раскидай, покритикуй (но не сильно бей головой об стену). (Мог что-то повторить) Изменено 17 Июля 2010 пользователем Unnamed Black Wolf 1 Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 22 Июля 2010 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()) Не очень уверен, первое в голову пришло... Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 23 Июля 2010 (изменено) Думаю писали именно 31 января, поэтому и под алкоголем сместилось.... )))))) А в общем, можно нагородить отдельную проверку с ручным выставлением в случае с 31 январем.... (получения дня == 31) and функция or обычная функция. ----- if день == 31 then код функции else код функции end Ну к примеру.. А в сете выставить полную дату, ручками.... ХЗ, эти великие отмазывальщики, скажут все что угодно.. Но не признаются в кривых руках, и безмозглостью .... Изменено 23 Июля 2010 пользователем Unnamed Black Wolf Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 23 Июля 2010 malandrinus, какой ты скучный.. Нет, покритиковать немного.. Повеселится над багом/пасхалкой.... Я вот к примеру до второго третьего, в отключке.. Поэтому не знаю что есть 32 или нет.. Мб календарь в действительности почему-то имеет странные 31-30 дней и за редкостью 29 и в обычностью 28.... А у меня в НГ чудо. Обидел речью про криворукость и безмоглость? (Как будто сам так не считаешь....) Ну кстати смотря чем мерить время в сталке, если мне память не изменяет, то в сталке есть и запрос обычного времени.. Которое яко-бы реальное.... Суть вопроса, а что есть реальное? Почему к примеру это все не игра? То так буит весело..... (Бушь отвечать, аргументируй.. Я сперва начну. (Реинкорнация и перерождение это вид сейв/лоад)) Поделиться этим сообщением Ссылка на сообщение
Unnamed Black Wolf 4 Опубликовано 23 Июля 2010 по самому луа, у меня все в порядке выдает.... Поделиться этим сообщением Ссылка на сообщение