Плохо! Плохо!:  0
Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 19 из 19

Тема: Выстрелы на событиях

  1. #11
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,420
    Записей в дневнике
    44
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию

    Продолжаем извращаться с АБС

    ИНТЕРФЕЙС

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

    1 ШАГ
    Для отображения интерфейса нам во-первых надо его нарисовать. Что-то типа такого.
    Спойлер нг:



    1) "фон" на которой будут нужные иконки,цифры. В демке это "НАЧ" - т.е. начальный пустой интерфейс. На нём слева большое поле для отображения там оружия которое у нас экипировано (красная стрелка на рисунке указывает на это окошко). Правее него два нбеольших окошка,в которых у нас будет показано то оружие,которое у нас есть в инвентаре (зеленая стрелка).
    2) иконки оружия. Требуется большие иконки для экипированного оружия ("ГЛ ИК ДРОБ" - главная иконка дробовик" и "ГЛ ИК ПИСТ" - главная иконка пистолет", отмеченные желтой стрелкой) и небольшие иконки для отображения в окошках инвентаря - "пистолет" и "дроб"(фиолетовая стрелка)
    3) цифры,показывающее кол-во патронов. Пока сделаем чтоб у нас цифры были только однозначные. (П 0 - П 9) - синий квадратик
    4) цифры,показывающие кол-во обойм(магазинов) (ОБ 0 - ОБ 9) - черный квадратик

    2 ШАГ


    1) Создаем общее событие "интерфейс". Для удобства сделаем его параллельным и запускаяющимся от переключателя "интерфейс".
    2) Создаем ветвление "интерфейс включен",чтобы при привязке выключении переключателя "интерфейс" к кнопке все картинки удалились с экрана
    3) Внутри ветвления - "показать изборажение". и,собственно говоря,показываем изображение "нач"
    4) Далее создаем ветвления следующие друг за другом проверяющие какое оружие в экипировке. Внутри них показывает изображение. ID (номер) изображений должно быть у них ОДИНАКОВОЕ и при этом БОЛЬШЕ ID изображения "нач", дабы иконки изображались сверху окошка а не под ним.

    Спойлер кнглкнл:


    5) Создаем для удобства оружие "пусто", которое означает то,что в руках героя ничего нет. Создаем ветвление проверяющее экипировку оружием "пусто",а внутри него - удалить изображение с ID которое было у изображений в предыдущем пункте

    6) делаем подобное для отображения иконок в окошках,проверяющих какое оружие есть в инвентаре. Т.е. когда мы возьмем оружие из сундука то оно сразу же отобразиться в этих окошках. ID изображений должно быть больше ID изображений "нач" и не совпадать с ID изображений,рассметоренны в предыдущих двух пунктах

    Получится что-то типа этого.

    Спойлер нглкнл:


    3 ШАГ

    1) создаем ветвление "если герой экипирован "пусто". В этом случае мы удаляем изображения которые у нас будут обозначать обоймы.
    2) ИНАЧЕ - ветвления проверяющие чему равны переменные "обойма" и "патроны" и отображение кратинки с соответствующим номером.
    ID картинок в ветвлениях с "патронами" должны быть одинаковыми и не совпадать с ID кратинок с иконками и окошками
    То же самое с "обоймами"

    Спойлер клн:


    4 ШАГ

    Во втором пункте 2-ого шага в ветвлении "или" УДАЛЯЕМ ВСЕ картинки,использованные выше

    Спойлер кнглк:


    ПЕРЕЗАРЯДКА

    1 ШАГ
    1) Во-первых,вернемся в общему событию "управление."
    Стрелять на Энтер а менять оружие на "отмена "(ESC) очень неудобно.
    Меняем кнопки на Q и W, т.е. в скрипте пишем Input.isTriggered('pagedown') и Input.isTriggered('pageup')
    2) Внутри них ссылаемся на общие события "выстрел" и "смена оружия"

    Спойлер кнлн:


    3) смену оружия пока не трогаем,а во выстрел изменим.

    2 ШАГ

    Когда оружие надо перезарядить? Когда патронов нет,т.е. они равны нулю, а обойм(магазинов) НЕ ноль
    1) создаем ветвление "переменная "патроны" = 0",а внутри него - ветвление "если переменная обоймы = 0"
    2) если патронов НОЛЬ а обойм ИНАЧЕ чем НОЛЬ - происходит перезарядка.
    3) если патронов НОЛЬ и обойм НОЛЬ,то воспроизводим звук разряженного оружия, напрмиер звук "key" подходит для этого
    4) если патронов НЕ НОЛЬ происходит выстрел,а потому запускаем общее событие "выстрел".
    5) раскидываем всё это для разных видов оружия. То есть ссылаемся на общее событие "выстрел пистолета и "перезарядка пистолета" вместо просто "перезарядка" и "выстрел"
    Спойлер кнглкн:



    3 ШАГ

    Собственно,сама перезарядка
    Спойлер кнглкн:



    1) делаем два звуковых сигнала. Один для начала перезарядки а второй - для окончания перезарядки. Между ними вставляем команду "ждать",равную стольким кол-во кадров,сколько вы хотите чтобы длилась перезарядка. Очевидно,что для пистолета она будет намного меньше чем для дробовика, а для базуки еще намного больше.

    2) создаем переменную "патроны пистолета" и приравниваем ее к такому числу,сколько вы хотите патронов в обойме. Пусть будет 8. Будем считать что это старый несовременный пистолет.

    3) приравниваем переменную "патроны",которая у нас будет выводится на экране интерфейса, к переменной "патроны пистолета"

    4) ОТНИМАЕМ обойму, так как при перезарядки кол-во магазинов уменьашется на один

    5) Ну и приравниваем кол-во обойм к числу обойм пистолета в интветаре

    То же самое делаем для других оружий,меняя кол-во патронов в магазине, время перезарядки, обоймы в инвентаре и переменные "патроны пистолет" на "патроны нужного оружия"
    Спойлер нлкн:



    ВЫСТРЕЛЫ

    Помните общее событие "выстрелы" из прошлого урока? Теперь его надо чуть подправить для того,чтобы учитывалось кол-во патронов

    Для этого перед каждым звуком в ветвлениях для КАЖДОГО патрона доабвляем команды "переменная"патроны такого-то оружия-1", а затем приравниваем переменную "патроны" к этой переменной.

    Спойлер нлк:


    Ну и не забываем при доабвлении оружия добавлять страницы в событиях "патроны" на карте.
    Также там меняем урон от врагов вычитай из переменной "враг здоровье" нужное число. У меня эти числа одинаковые,но заменив двойка на 4 у дробовика он станет наносить больше урона.
    Также в маршруте события регулируем дальность выстрела кол-вом команд "вперед"

    Спойлер нл:


    СМЕНА ОРУЖИЯ

    Сделаем следующий алгоритм:
    - если у героя нет НИЧЕГО в руках и НИЧЕГО в инвентаре то при кнопку на смену оружия НИЧЕГО не происходит
    - если у героя нет НИЧЕГО в руках и есть пистолет в инвентаре то при кнопку на смену оружия экипируется пистолет
    - если у героя есть ПИСТОЛЕТ в руках и больше НИЧЕГО в инвентаре то при кнопку на смену оружия НИЧЕГО не происходит. То есть возврат к пустым рукам не происходит,так как нам это не надо.
    - если у героя есть ПИСТОЛЕТ в руках и ДРОБОВИК в инвентаре то при кнопку на смену оружия экипируется дробовик
    - если у героя есть ДРОБОВИК в руках то при кнопку на смену оружия экипируется пистолет

    1 ШАГ

    1) Просто делаем всё это ветвлениями и добавлением команд "экипировать". При ветвлении "имеет пистолет" не забываем поставить галочку "включая экипировку"
    2) Не забываем приравнять кол-во патронов в кол-ву патронов пистолета/дробовика/другого оружия. А кол-во обойм пистолета приравнят к кол-во обойм в инвентаре

    Спойлер лнк:


    Вот вроде и всё,надеюсь ничего не забыл.
    Теперь при нажатии на W игрок стреляет, а на кнопку Q - меняет оружие.

    Шпаргалка для настройки оружия:
    - дальность оружия в маршруте событий "патрон 1 - патрон 4" кол-вом команд "вперед"
    - урон оружия в этом же событии, внутри ветвлений с врагами,то есть отнимает из "враг здоровье" число,равное урону
    - время перезарядке в общем событии "перезарядка" в "ждать"
    - кол-во патронов в магазине также в общем событии "перезарядка"

    ДЕМКА

    Берем пистолет у того нпс,что выше и правее. При втором нажатии берем дробовик. Стреляем,радуемся, [strike]ловим баги[/strike] багов вроде нет

    ссыль

  2. #12
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,006
    Записей в дневнике
    3
    Репутация: 166 Добавить или отнять репутацию

    По умолчанию

    Нашел я бой Виля. Демка ( 2003 ):

    http://файлообменник.рф/gysjgegbjsl2.html

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/vbdownloads.php?d...downloadid=106

  3. #13
    Пользователь Аватар для Sheo
    Информация о пользователе
    Регистрация
    09.01.2014
    Адрес
    Сибирь, берлога
    Сообщений
    31
    Репутация: 1 Добавить или отнять репутацию

    По умолчанию

    Полезный урок, спасибо, товарищ Yuryol ! Хотелелось год назад запробовать боевку для высадки на планету, ставил сапфир и другую(не помню, но знаете) но разбираться муторновато таки оказалось (сапфир правда еще ничего, как помнится) и в итоге как обычно - потом как всегда опосля... в итоге упор на другое, мозги заленились, новый год, нужды нет прямой.... а тут вот вам - и внезапно готовый пример! прямо почти +100500 и спасибо за тему)
    Последний раз редактировалось Sheo; 12.05.2016 в 23:48.

  4. #14
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,420
    Записей в дневнике
    44
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Sheo Посмотреть сообщение
    Полезный урок, спасибо, товарищ Yuryol ! Хотелелось год назад запробовать боевку для высадки на планету, ставил сапфир и другую(не помню, но знаете) но разбираться муторновато таки оказалось (сапфир правда еще ничего, как помнится) и в итоге как обычно - потом как всегда опосля... в итоге упор на другое, мозги заленились, новый год, нужды нет прямой.... а тут вот вам - и внезапно готовый пример! прямо почти +100500 и спасибо за тему)
    главное не забывай что надо пули копировать на все карты и что врагов всех там пропистаь.
    Рекомендую заранее врагов копировать на событиях чтоб у них были одни и те же ID

  5. #15
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    3,940
    Записей в дневнике
    6
    Репутация: 132 Добавить или отнять репутацию

    По умолчанию

    Юри, может тему перенести в Школу макера? В ивенты.
    Под статью чтот не очень подходит.

  6. #16
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,420
    Записей в дневнике
    44
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от peter8031983 Посмотреть сообщение
    Юри, может тему перенести в Школу макера? В ивенты.
    Под статью чтот не очень подходит.
    Я в чатике тебя об этом просил в тот же день,но ты видимо прпоустил.
    переноси,ага

  7. #17
    Местный Аватар для Axel_Key
    Информация о пользователе
    Регистрация
    26.03.2017
    Адрес
    Горно-Алтайск
    Сообщений
    155
    Записей в дневнике
    3
    Репутация: 2 Добавить или отнять репутацию

    По умолчанию

    "2) В первом событии (НЕ общем) добвляем переменную "здоровье врага". и пусть она будет равна 10".

    В первом событии, это в каком?

    П.С.

    Я попробовал этот метод, не сработало. Вроде всё делал правильно и Syntax error.
    Наверное, надо было раньше спросить... В какой версии мейкера это сделано?
    Последний раз редактировалось Axel_Key; 30.03.2017 в 19:27.

  8. #18
    Познающий Аватар для 100500
    Информация о пользователе
    Регистрация
    22.05.2011
    Сообщений
    351
    Записей в дневнике
    15
    Репутация: 28 Добавить или отнять репутацию

    По умолчанию

    В какой версии мейкера это сделано?
    RPG Maker MV. Только в нем это всё и сработает.

  9. #19
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,420
    Записей в дневнике
    44
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Axel_Key Посмотреть сообщение
    "2) В первом событии (НЕ общем) добвляем переменную "здоровье врага". и пусть она будет равна 10".

    В первом событии, это в каком?
    В событии с id=1. Если делашеь по порядку - на скрине он отмечен синим прямоугонльиком.

    Я попробовал этот метод, не сработало. Вроде всё делал правильно и Syntax error.
    Наверное, надо было раньше спросить... В какой версии мейкера это сделано?
    да,это мв. Для того,чтобы понять какие скрипты можно вставлять в эйсе есть таблица соответствия скриптов МВ и эйса https://docs.google.com/spreadsheets...OHs/edit#gid=0

    также есть для эйса моя демка трехгодичной давности с выстрелами на событиях,упрощенная. Если трудно начни с нее https://yadi.sk/d/AkvEbRS1dDBCQ

Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Выстрелы на событиях