Доброго времени суток! Решил открыть отдельную тему для своих авторских мини-уроков. Заказы принимаются, но я не даю 100% гарантию, что сделаю такой тутор. В случае отказа причину укажу. Записки с различными практичными фишками и способами их реализации. Много того, что когда-то лично мне пригодилось и запомнилось. Все заметки делаются специально для текстовых редакторов с подсветкой синтаксиса! Я использую Notepad++.
Скрипты - разные функции, действия, разборы и т. д. (в формате lua)
Логика - различные действия, сценки, эффекты и т. д. (в формате ini, ранее - properties)
Некоторые заметки будут нести и то, и другое, так как многие конфигурационные, логические и скриптовые темы связаны
- Заметки можно читать - Заметки можно для начала скачать - Можно не читать - Можно тупо копипастить - С пищей не принимать! - Легко читается - Не косноязычно - Предназначено не для самых зеленых новичков - Есть пояснения - Рассмотрены более интересные и практические вопросы реализации различных элементов
По привычке в этом разделе уже думал зайти сюда и увидеть что-то типа "спавним НПС через скрипт", но, действительно полезная тема Надеюсь будет периодически обновляться. Спасибо FantomICW
FantomICW, это понятно, но объёмы текста маленькие и читать удобнее прямо онлайн.
Мне лично понравился урок по стрельбе NPC в NPC. Думаю, схема пригодится. Хочется побольше уроков по скриптовым сценкам, так как с оригинальной логикой я почти не работал, а пользовался схемой xr_move. Это, если интересны пожелания)
Добавлено (17.02.2014, 10:33) --------------------------------------------- А синтаксис можно и самому выставить - это в любом случае делать приходится при постоянной работе со скриптами. Жаль, что Notepad++ не сохраняет ассоциации синтаксиса с расширениями.
Сообщение отредактировал Max_Warlock - Понедельник, 17.02.2014, 10:31
Друг мой, ты ничего не перепутал? Такой схемы нет.
ЦитатаMax_Warlock ()
Жаль, что Notepad++ не сохраняет ассоциации синтаксиса с расширениями.
Это почему же не сохраняет? Заходишь в "Опции -> Определение стилей...". В колонке "Язык" выбираешь нужный тебе ассоциированный язык для нужного тебе расширения (для .script это Lua). "Жмякаешь" на название языка и в появившемся поле "Польз. расширение:" добавляешь расширение нужного тебе файла, в данном примере это script (без точки). Всё. Закрываешь всё и пере запускаешь Notepad++. Тоже самое можно сделать и для .ltx файлов, они ассоциируются с ini file.
Добавлено (17.02.2014, 13:08) --------------------------------------------- Посмотрел выложенный материал и могу сказать, что автору нужно быть осторожнее с тем, что он предлагает новичкам. Пойдём по порядку:
Не то, чтобы не правильно или ошибки есть, просто можно в половину сократить код:
function random_reward(first_speaker, second_speaker) --# Рандомно выбираем один из наборов. local reward = rewards[math.random(#rewards)] --# Трансферим выбранный набор актору. for item = 1, #reward, 2 do dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, reward[item], reward[item+1]) end end
Может случится неприятный момент, когда на ГГ вдруг не окажется никакого бронежилета, тогда вот эта проверка:
Код
if db.actor:item_in_slot(7):section() == "scientific_exo" then
вызовет вылет.
Забыл добавить level и game vertex'ы в функции create.
Второй сбособ не сработает и вероятнее всего вызовет вылет. Дело в том, что kiill метод класса game_object и применяется только для онлайновых объектов, а метод create возвращает серверный объект.