Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Отслеживание применения скиллов (RM XP)

Отслеживание применения скиллов (RM XP) 8 года 10 мес. назад #82187

Можно ли отслеживать их применения в бою и вне боя?
Например человек применил скилл, у меня переменная увеличилась на 1
Администратор запретил публиковать записи гостям.

Отслеживание применения скиллов (RM XP) 8 года 10 мес. назад #82190

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • Учитель3 местоВетеранПисатель 3 местоОрганизатор конкурсовПроект месяца 1 местоПроект месяца 2 местоПрограммист Ruby1 место в Готв
Нужно очень серьезно копать скрипты для этого. Я нашел по крайней мере одну реальную возможность повлияет на это, переписав метод make_skill_action_result в скрипте Scene_Battle 4. Так как в скриптах боевых систем я не сильно разбираюсь, то пока не рисковал переписывать. Если сделаю это - сообщу тут же.
Администратор запретил публиковать записи гостям.

Отслеживание применения скиллов (RM XP) 8 года 10 мес. назад #82191

понятно, спасибо) а я думал уже все найдено и все сделано))
щас сценарий допишу и буду кодить, мб хоть диплом пригодится)))
Администратор запретил публиковать записи гостям.

Отслеживание применения скиллов (RM XP) 8 года 10 мес. назад #82193

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • Учитель3 местоВетеранПисатель 3 местоОрганизатор конкурсовПроект месяца 1 местоПроект месяца 2 местоПрограммист Ruby1 место в Готв
Рискнул, написал. Кратко - меняешь номер переменной в VARCHANGE_AFTERSKILLUSE на номер той переменной, в которой ты будешь хранить значение, также можешь поменять значение VARCHANGE_VALUE, которое определяет, насколько увеличивается значение переменной (или уменьшается, если вписать отрицательное значение).
class Scene_Battle
  # Номер переменной, число которой должно быть изменено
  # после использования скилла
  VARCHANGE_AFTERSKILLUSE = 100
  # Число, на которое увеличиться значение переменной
  # Может быть отрицательным для операции вычитания
  VARCHANGE_VALUE = 1
 
  def make_skill_action_result
    # Get skill
    @skill = $data_skills[@active_battler.current_action.skill_id]
    # If not a forcing action
    unless @active_battler.current_action.forcing
      # If unable to use due to SP running out
      unless @active_battler.skill_can_use?(@skill.id)
        # Clear battler being forced into action
        $game_temp.forcing_battler = nil
        # Shift to step 1
        @phase4_step = 1
        return
      end
    end
    # Use up SP
    @active_battler.sp -= @skill.sp_cost
    # Refresh status window
    @status_window.refresh
    # Show skill name on help window
    @help_window.set_text(@skill.name, 1)
    # Set animation ID
    @animation1_id = @skill.animation1_id
    @animation2_id = @skill.animation2_id
    # Set command event ID
    @common_event_id = @skill.common_event_id
    # Set target battlers
    set_target_battlers(@skill.scope)
    # Apply skill effect
    for target in @target_battlers
      target.skill_effect(@active_battler, @skill)
    end
 
    # Изменение переменной происходит вот здесь
    $game_variables[VARCHANGE_AFTERSKILLUSE]+=VARCHANGE_VALUE
  end
end

Хотел еще дописать, чтобы можно было менять значение после применения только определенных скиллов, но самое простое решение не красиво и неудобно, а универсальное долго писать.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Ren310
Время создания страницы: 0.190 секунд