Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
AndrewMor 527 Опубликовано 16 Апреля 2015 Поделиться Опубликовано 16 Апреля 2015 @Карлан, на примере было бы понятнее. А в общих чертах - непонятно. Сталкер - наше всё! Ссылка на комментарий
Elz 343 Опубликовано 16 Апреля 2015 Поделиться Опубликовано 16 Апреля 2015 Возможно ли сделать питание оружия по схеме "N патронов в магазине + 1 в стволе?" Просто добивает, что такого до сих пор не увидел! Первый опыт в С++ (WinAPI) - небольшой текстовый редактор.Сборник книг по C++ | DX | WinAPI | Other на ЯДе Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Апреля 2015 Поделиться Опубликовано 16 Апреля 2015 Поскажите, возможно ли отловить показ фразы с конкретным идентификатором, скажем, dm_cool_info_58? И если можно, то как? тег action позволяет задать функцию, которая выполнится после того, как будет сказана фраза. Функция действия должна иметь вид: function phrase_action(first_speaker, second_speaker, dialog_id, phrase_id) ...end здесьfirst_speaker - кто говорит эту фразу, second_speaker - соответственно, другой собеседникdialog_id - имя текущего диалогаphrase_id - имя сказанной фразы Это подойдет ? Ссылка на комментарий
AndrewMor 527 Опубликовано 16 Апреля 2015 Поделиться Опубликовано 16 Апреля 2015 фрагмент из Справочника по ф-циям и классам тег action позволяет задать функцию, которая выполнится после того, как будет сказана фраза. Функция действия должна иметь вид:function phrase_action(first_speaker, second_speaker, dialog_id, phrase_id) ... endздесь first_speaker - кто говорит эту фразу, second_speaker - соответственно, другой собеседник dialog_id - имя текущего диалога phrase_id - имя сказанной фразы Это подойдет ? Даже и не не знаю. Мне нужно выдать инфопорцию в момент, когда НПС говорит нужную фразу из раздела "Что можешь интересного рассказать". Иды фраз я знаю, но поскольку в dialog_manager.script толком не понимаю, тот куда ткнуться и каким образом - не знаю. Сталкер - наше всё! Ссылка на комментарий
Карлан 1 049 Опубликовано 16 Апреля 2015 Поделиться Опубликовано 16 Апреля 2015 @UnLoaded, это если только нужно в единичном случае, и то на мой взгляд крайне убого, тут если делать напрямую то проще по имени получить, все же списки сделаны. @AndrewMor, я же говорю, в ЗП есть явный пример как подключить дополнительный ключ, сейчас глянул оригинальный менеджер - и вот прямо там есть готовая функция cool_info_treasure которая кстати должна выдавать тайники, но это не задействовано в оригинале, хотя вполне себе правильно работает. Вот в нее можно просто врезать проверку, и выполнять действия в зависимости от имени фразы (именно имени, а не айди, если ты не любитель поплясать с бубном), но это как-то совсем не по христиански . @Elz, так вроде такого наделали в те времена когда выстрел отлавливали, я в смысле к тому, что можно, но если делать на скриптах, то много костылить придется. Методы что-то типа set_ammo_elapsed/get_ammo_in_magazine. 1 Ссылка на комментарий
UnLoaded 313 Опубликовано 16 Апреля 2015 Поделиться Опубликовано 16 Апреля 2015 (изменено) Иды фраз я знаю, но поскольку в dialog_manager.script толком не понимаю, то куда ткнуться и каким образом - не знаю. В dialog_manager.script смотри ф-цию init_cool_info_dialog(dlg). Там для всех фраз этого "типового" диалога добавляется action(ф-ция) phrase_action_cool_info. Она прописана ниже, в этом-же файле. Там и проверяй, что за фраза сказана и выдавай свою и-п. Elz Действительно много костылить - ловить презарядку, смотреть есть ли еще патроны, добавлять один в оружие, вычитать его из оставшегося(т.е. переспавнивать)... И все это ради чего ? Неуж-то люди будут заморачиваться, что у них вместо 30 патронов в калаш можно зарядить аж 31 ? Изменено 16 Апреля 2015 пользователем UnLoaded 2 Ссылка на комментарий
Карлан 1 049 Опубликовано 16 Апреля 2015 Поделиться Опубликовано 16 Апреля 2015 (изменено) @UnLoaded, и, собственно, причем здесь phrase_action_cool_info? Ты хочешь два раза по таблице итерироватся? Еще раз говорю, сравнивать айди - мазохизм, надо сравнивать имя. cool_info_treasure (в оригинале кстати можно вырезать) для этого идеально подходит, пишешь "если имя сказанной фразы совпадает с именем нужного, то заспавнить 100 собак на крыше". Строка кода против копии этой-же самой cool_info_treasure в phrase_action_cool_info...это не разумно , при всем уважении. Изменено 16 Апреля 2015 пользователем Карлан Ссылка на комментарий
Zander_driver 10 333 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 @Elz, Ну на моей базе, скажем, это элементарно просто можно бы сделать, у меня практически все что для этого нужно, и так уже сделано и работает. Если о самостоятельной реализации говорить, то смотреть в сторону вышеназванных методов, тут все верно... Только на этот раз я тоже не могу понять, чего ради этот огород городить. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
AndrewMor 527 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 @Карлан, а если фраза длинная, писанины сколько? И если ид фразы остался прежний, а текст поменялся, что же, в скриптах копаться и текст переписывать? Сталкер - наше всё! Ссылка на комментарий
Карлан 1 049 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 @AndrewMor, ты можешь отличить имя фразы от ее описания? Ты вообще понимаешь о чем я говорю? Айди фраз не совпадают с именами, идентификация по айди - танцы с бубном, но если тебе хочется, то делай, так тоже можно . Если так хочется по айди, то сделай ассоциативный массив имени и айди, и вычисляй. Имя фразы это ее личный константный параметр, айди - абстрактный идентификатор, который от изменения конфига тоже может меняться, и вся твоя проверка благополучно рухнет, и скрипт начнет глючить. Ссылка на комментарий
stalk9r 135 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 (изменено) Приветствую всех!У актора в инвентаре некий предмет (варианты: съедобный, несъедобный), на предмет повешен биндер.Требуется отследить использование предмета и выполнить действия.Можно отследить потерю предмета (съел) аналогично ручным телепортам, либо (для несъедобного предмета) назначить кнопку в hotkeys.script с выдачей поршня и выполнением действий при наличии поршняМожно повесить предмет на пояс или в слотВопрос: есть ли другие варианты использования предмета (желательно съел - действие), или это всё что доступно? Все равно это читать ни кто не будет, видимо, из принципа, но на всякий случай: http://www.amk-team.ru/forum/index.php?showtopic=13054Или надо что-то другое ? dc То что надо, извините за мою невнимательность ... Изменено 17 Апреля 2015 пользователем stalk9r Есть хабар - пойдёт базар Ссылка на комментарий
Карлан 1 049 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 Если оффтоп - удалите. Добавил RW управление иконкой на человеческих методах, работает, как видно, и для нпс и для актора (монстрам мне кажется это не нужно, хотя можно если надо). Метод не заставляет перерисовывать фреймы и окна "на ходу", но если нужно то и это можно сделать, просто я не представляю в какой ситуации это может потребоваться. character_icon() - возвращает строку в виде "ui_npc_u_trader", т.е. type(obj:character_icon()) == 'string'. set_character_icon(string) - устанавливает иконку по описателю из xml, например: obj:set_character_icon('ui_npc_u_trader') Вопрос, какие еще RO параметры есть для НПС? Как мне кажется из xml-описателей нечего экспортировать кроме иконки, биографии и списка диалогов (его можно экспортировать в виде луа-массива для более удобной работы в скриптах). Как все сделаю - залью если кому-то надо будет. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 (изменено) Гм, как я недавно с удивлением выяснил, гэйм-объект вообще не позволяет что-либо добавить или изменить, кроме того, что дано свыше. То есть, в смысле, self.что-то_там - пожалуйста, но это будет экземпляр, доступный только самому себе. Впрочем, уже не больно-то и хотелось, ибо сама идея зарекомендовала себя как Чистое Зло. В смысле, не только по-этому, а по совокупности. Эрго, достаточно лишь вменяемой альтернативы нетпакетам для серверных, и вменяемого управления интерфейсами. А эти уродцы - ну их... О, возможно, был бы небесполезен офлайновый инвентарь. Изменено 17 Апреля 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
7.9 174 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 (изменено) Добавил RW управление иконкой на человеческих методах Здорово... Всегда хотелось, что-бы: чем больше у Меченого денег, тем "жирнее" его рожа (на иконке) Есть одна поправочка-хотелка. Сначала думалось: надо-бы хоть в шрифты смайлы добавить, но потом передумал: лучше в диалогах фразам НПС иконки прикрутить. Можно это RW-управление сразу в диалог-менеджер добавить? Изменено 17 Апреля 2015 пользователем 7.9 всё легко Ссылка на комментарий
Карлан 1 049 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 (изменено) @Dennis_Chikin, добавить/изменить что ты имеешь ввиду? Добавить у меня получилось, а вот изменить я так и не смог, при попытке замены у меня все равно объект юзал движковые методы. Если ты об этом конечно. Управление интерфейсами экспортировать довольно долго, проще что-то альтернативное написать как мне кажется, т.е. не долго экспортировать только то, что конкретно нужно, а вот все и сразу... Я вот хочу что-нибудь с диалогами сделать, но моих кривых рук только на альтернативу хватит, т.е. история например может идти как и с тасками, можно создание перенести на скрипт, в оригинале правда совсем с нуля создать нельзя, т.е. все-таки надо писать <game_task id="task"></game_task>, но в целом можно это все (включая само создание) альтернативно перевести на скрипты (и вообще целиком и полностью отвяжемся от xml), и если в скриптах завести массив (даже читаемый из лтх, типа как во всех супер-менеджерах оригинала) как хранилище то можно будет даже ничего не сохранять имея полный доступ к управлению. Только я боюсь что этим будут злоупотреблять, все-таки по возможности лучше пользоваться xml . Ладно, это - есть. Но есть ещё одна хотелка (для постановки). Сначала думал: надо в шрифты смайлы добавить, но потом передумал: лучше в диалогах фразам НПС иконки прикрутить. Это можно? Немного не понял, есть же метод give_talk_message, который выводит картинку с текстом под текущей фразой.В любом случае я думаю можно добавить еще один атрубит в <phrase>, что-то вроде icon =, который будет выводить картинку рядом с текущей фразой, смайлы я пока не знаю как сделать. Изменено 17 Апреля 2015 пользователем Карлан Ссылка на комментарий
7.9 174 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 (изменено) Рядом с фразой не надо, у НПС, в окне диалога, иконка уже есть. А "смайлы в шрифтах" - их тогда и не надо - это была старая (первая) идея. Иконка - это и есть - то, что надо... Изменено 17 Апреля 2015 пользователем 7.9 всё легко Ссылка на комментарий
Карлан 1 049 Опубликовано 17 Апреля 2015 Поделиться Опубликовано 17 Апреля 2015 Под ночь бред всякий в голову лезет, но может кто-то что-то для себя полезное увидит . http://pastebin.com/3B5ES8vT Ссылка на комментарий
Zander_driver 10 333 Опубликовано 18 Апреля 2015 Поделиться Опубликовано 18 Апреля 2015 Можно отследить потерю предмета (съел) аналогично ручным телепортам Жуть какая... когда же это прекратится блин. Расскажите мне границы применения Seq-файлов текстур. их на что угодно можно вешать или все же нет? Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Карлан 1 049 Опубликовано 18 Апреля 2015 Поделиться Опубликовано 18 Апреля 2015 Итак, продолжаю свои ковыряния. На этот раз добавил функции для перезагрузки ин-гейм xml файлов, протестировал пока только инфопоршни, работает вроде не так медленно, как я ожидал. Перезагружает только когда есть актор, добавил в level, хотя можно и в другое место засунуть. Функция может примерно так выглядеть: function t() --// в начале изменяем xml файл, добавляем туда нужную информацию с помощью пространства io level.reload_info() --// функция перезагружает все инфопоршни, можно сделать в виде level.reload_xml(const) --// оперируем со свежедобавленным инфопоршнем end Может это дикое зло со стороны оптимизации, я не знаю, просто ковыряюсь . Так же беспрепятственно можно перезагружать профили, диалоги, статьи, таски (вроде) и споты (вроде) (ну и вывести в режим RW все их параметры вроде как у тасков). Правда как это будет со стороны оптимизации мне неведомо, но переделывать по другому я не могу, туп. Если это окажется нормально работающим, то собственно эти функции дадут возможность формировать квесты прямо ингейм, т.е. формировать таск и диалог автоматически из скрипта. Это как пример. 1 1 Ссылка на комментарий
qvvxvvq 111 Опубликовано 18 Апреля 2015 Поделиться Опубликовано 18 Апреля 2015 Прошу помощи. В игре один Сидорович сидит и никого кроме мутантов нет. Какой файл отвечает за спавн всех НПС? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти