Хорошо! Хорошо!:  0
Плохо! Плохо!:  0
Показано с 1 по 10 из 10

Тема: Экран телепорта в VX

  1. #1
    Маститый Аватар для Antberg
    Информация о пользователе
    Регистрация
    14.04.2008
    Сообщений
    1,348
    Записей в дневнике
    3
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию Экран телепорта в VX

    Давно интересует один вопрос относительно RPG Maker VX, вот хочу выяснить, решаема ли эта проблема вообще.
    Если кто хорошо знаком с RPG Maker 2000\2003, то может помните - там при телепорте с карты на карту (или в битву) можно было задавать параметры иссчезания\появления экрана. Можно было сделать, что он как-бы закрывался жалюзи, мгновенно переходил от одного к другому, и тд - несколько видов. На RPG Maker VX этой возможности не стало. Там есть только 2 вида перехода экрана - это простое затемнение при телепорте с карты на карту, и затемнение в виде спиральной воронки, когда мы телепортимся в битву. Так вот - можно ли это как-то изменить скриптовым способом? Например сделать так, чтобы никаких затемнений не было, и в обоих случаях телепорт бы происходил мгновенной сменой изображения?

  2. #2
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    [ДАННЫЕ УДАЛЕНЫ]
    Сообщений
    1,421
    Записей в дневнике
    50
    Репутация: 55 Добавить или отнять репутацию

    По умолчанию

    Решение напильником(если нужно по элегантнее потом уточни что еще надо сделать):
    Поменяй все цифры в методе update_transfer_player класса Scene_Map и ставишь там везде нули.
    Вот примерно так
    PHP код:
    class Scene_Map
    #...
      
    def update_transfer_player
        
    return unless $game_player.transfer?
        
    fade = (Graphics.brightness 0)
        
    fadeout(0) if fade
        
    @spriteset.dispose              # Dispose of sprite set
        
    $game_player.perform_transfer   # Execute player transfer
        
    $game_map.autoplay              # Automatically switch BGM and BGS
        
    $game_map.update
        Graphics
    .wait(0)
        @
    spriteset Spriteset_Map.new  # Recreate sprite set
        
    fadein(0) if fade
        Input
    .update
      end
    #... 
    Twitch <- Тут иногда делаю вид, что умею играть или работать, в прямом эфире
    GitLab <- Тут иногда делаю вид, что умею программировать
    Github <- Еще какая-то дичь, тут иногда появляется, но с мукером не связана
    Notion<- Тут иногда делаю вид что умею планировать

  3. #3
    Маститый Аватар для Antberg
    Информация о пользователе
    Регистрация
    14.04.2008
    Сообщений
    1,348
    Записей в дневнике
    3
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    О, спасибо! Работает. А при переходе в битву это как сделать? Смог пока только воронку убрать, обнулив цифры в perform_battle_transition.

  4. #4
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    [ДАННЫЕ УДАЛЕНЫ]
    Сообщений
    1,421
    Записей в дневнике
    50
    Репутация: 55 Добавить или отнять репутацию

    По умолчанию

    попробуй строку, где этот метод вызывают посто убрать(поставить # перед perform_battle_transition)
    А так же на всякий пожарный в методе perform_transition нули поставь тоже
    PHP код:
    class Scene_Map
    #....
      
    def perform_transition
        
    if Graphics.brightness == 0       # After battle or loading, etc.
          
    fadein(0)
        else                              
    # Restoration from menu, etc.
          
    Graphics.transition(0)
        
    end
      end
      
    #--------------------------------------------------------------------------
      # * Termination Processing
      #--------------------------------------------------------------------------
      
    def terminate
        super
        
    if $scene.is_a?(Scene_Battle)     # If switching to battle screen
          
    @spriteset.dispose_characters   # Hide characters for background creation
        
    end
        snapshot_for_background
        
    @spriteset.dispose
        
    @message_window.dispose
        
    if $scene.is_a?(Scene_Battle)     # If switching to battle screen
        #  perform_battle_transition       # Execute pre-battle transition
        
    end
      end 
    Последний раз редактировалось Рыб; 18.04.2010 в 18:30.
    Twitch <- Тут иногда делаю вид, что умею играть или работать, в прямом эфире
    GitLab <- Тут иногда делаю вид, что умею программировать
    Github <- Еще какая-то дичь, тут иногда появляется, но с мукером не связана
    Notion<- Тут иногда делаю вид что умею планировать

  5. #5
    Маститый Аватар для Antberg
    Информация о пользователе
    Регистрация
    14.04.2008
    Сообщений
    1,348
    Записей в дневнике
    3
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    Так, ну убрать строку таким способом не получается - уже при запуске игры вылетает и ругается на синтаксическую ошибку, причём почему-то на линии, где находится самый end уже. Если просто удалить эту функцию, то вылетает при старте битвы. perform_transition обнуляется без проблем, но изменений не видно. (кстати, затемнение осталось ведь не только при входе в битву, но и при выходе из неё)

  6. #6
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    [ДАННЫЕ УДАЛЕНЫ]
    Сообщений
    1,421
    Записей в дневнике
    50
    Репутация: 55 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Antberg Посмотреть сообщение
    Так, ну убрать строку таким способом не получается - уже при запуске игры вылетает и ругается на синтаксическую ошибку, причём почему-то на линии, где находится самый end уже. Если просто удалить эту функцию, то вылетает при старте битвы. perform_transition обнуляется без проблем, но изменений не видно. (кстати, затемнение осталось ведь не только при входе в битву, но и при выходе из неё)
    извеняйте вот так у меня сделано. Не выбивает.
    PHP код:
       #if $scene.is_a?(Scene_Battle)     # If switching to battle screen
        #  perform_battle_transition       # Execute pre-battle transition
        #end 

    edited:
    Для быстрого ухода с битвы ставим ноль в методе fodeout
    PHP код:
    class Scene_batle
    #...
     
    def battle_end(result)
        if 
    result == and not $game_troop.can_lose
          call_gameover
        
    else
          
    $game_party.clear_actions
          $game_party
    .remove_states_battle
          $game_troop
    .clear
          
    if $game_temp.battle_proc != nil
            $game_temp
    .battle_proc.call(result)
            
    $game_temp.battle_proc nil
          end
          unless $BTEST
            $game_temp
    .map_bgm.play
            $game_temp
    .map_bgs.play
          end
          $scene 
    Scene_Map.new
          @
    message_window.clear
          Graphics
    .fadeout(0)
        
    end
        $game_temp
    .in_battle false
      end
    #...
    end 
    Последний раз редактировалось Рыб; 18.04.2010 в 18:51.
    Twitch <- Тут иногда делаю вид, что умею играть или работать, в прямом эфире
    GitLab <- Тут иногда делаю вид, что умею программировать
    Github <- Еще какая-то дичь, тут иногда появляется, но с мукером не связана
    Notion<- Тут иногда делаю вид что умею планировать

  7. #7
    Маститый Аватар для Antberg
    Информация о пользователе
    Регистрация
    14.04.2008
    Сообщений
    1,348
    Записей в дневнике
    3
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    Ага, вот так всё работает. Спасибо ещё раз. Только при выходе из битвы всё равно мелькает чёрный экран на какую-то долю секунды - это уже недостаток самого мэйкера, или тоже можно как-то убрать?

  8. #8

    По умолчанию

    Господа, вы извращенцы! ^_^
    Если не нужно черного экрана, то зачем же делать fadein и fadeout, которые именного его и создают? Там где был уход во тьму, ставим Graphics.freeze. Там где выход в свет:
    Graphics.transition([duration[, filename[, vague]]])
    Выполняет переход от экрана, зафиксированного в Graphics.freeze к текущему экрану .

    Параметр duration определяет последний кадр для перехода. Если данное значение опущено, то оно устанавливает на 8.

    filename определяет имя файла с графикой перехода. Если оно не указано, то будет использован стандартный переход. Также, автоматически ведёт поиск файлов, включенных в состав RGSS-RTP и зашифрованных архивов. Расширение файла может быть опущено.

    vague устанавливает неопределённость между начальной и конечной точкой графики. Чем больше это значение, тем больше неопределённость. Если значение отсутствует, то оно устанавливается на 40.

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

    По умолчанию

    Equilibrium Keeper, вот видишь, без тебя - никуда! Так что забегай почаще!
    Кстати уж за одно: если будет лит.- конкурс, записываю тебя в участники заранее.
    А вот уже и конкурс. Записываю?
    http://rpgmaker.sk6.ru/showthread.php?t=585

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


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

  10. #10

    По умолчанию

    Отписался в соответствующей теме. А что касается забегания - вы пинайте меня почаще. Опять же, если кому нужен - аськой поделитесь. А то в почте 3 сообщения просроченных обнаружил - людям вовремя не помог. Обидно. Но сам я благополучно про форум забуду - не до того сейчас, увы. =\

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

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

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

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

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

Ваши права

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