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

Тема: Flashlight & Darkness

  1. #1
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    28.03.2013
    Сообщений
    1,201
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию Flashlight & Darkness

    Flashlight & Darkness
    Автор: HopeBree
    Версия: 1.3
    Тип: Графика



    Описание:
    Скрипт позволяет использовать фонарик и уменьшение радиуса обзора.

    Особенности:
    • Включение и выключение фонарика с помощью кнопки
    • Использовать любые скрипты на освещение для создания фонарика
    • Использовать батарейки для фонарика


    Использование:
    Изменение графики для Darkness осуществляется через скрипт darkness("image")
    Изменение дальности обзора Darkness осуществляется через скрипт darkness_zoom(value)

    Создание фонарика на примере VE - Light Effects
    В Comment Event создать следующие:
    Код:
         Conditional Branch: Script: $game_system.flashlight_visible == true
           Comment: <actor lantern 1: 255>
         else
           Comment: <actor lantern 1: 0>
         end
    Демо-версия:
    Скачать - Версия 1.2

    Скрипт:
    PHP код:
    #==============================================================================#
    #  Flashlight & Darkness                                                       #
    #------------------------------------------------------------------------------#
    #  Автор: HopeBree                                                             #
    #  Для: RPGMAKER VX ACE                                                        #
    #  Версия 1.3                                                                  #
    #------------------------------------------------------------------------------#
    #  06.01.2016 - Версия 1.3 - Багфикс                                           #
    #  13.11.2015 - Версия 1.2 - Добавлена дальность обзора                        #
    #  12.11.2015 - Версия 1.1 - Багфикс                                           #
    #  10.10.2015 - Версия 1.0 - Релиз                                             #
    #==============================================================================#
    # Скрипт позволяет использовать фонарик и уменьшение радиуса обзора.           #
    #   ● Включение и выключение фонарика с помощью кнопки                         #
    #   ● Использовать любые скрипты на освещение для создания фонарика            #
    #   ● Использовать батарейки для фонарика                                      #
    #------------------------------------------------------------------------------#
    # Изменение графики для Darkness осуществляется через скрипт darkness("image") #
    # Изменение дальности обзора Darkness осуществляется через скрипт              #
    #                                                         darkness_zoom(value) #
    #------------------------------------------------------------------------------#
    # Создание фонарика на примере VE - Light Effects                              #
    #   В Comment Event создать следующие:                                         #
    #     Conditional Branch: Script: $game_system.flashlight_visible == true      #
    #       Comment: <actor lantern 1: 255>                                        #
    #     else                                                                     #
    #       Comment: <actor lantern 1: 0>                                          #
    #     end                                                                      #
    #==============================================================================#
    module HB                                                                      #
      
    module FLASHLIGHT                                                            #
    #================================#=============================================#
    # Настройки                      # Описание                                    #
    #================================#=============================================#
        
    FLASHLIGHT  1              # ID фонарика                                 #
        
    BUTTON      = :A             # Кнопка вкл/выкл фонарика                    #
        
    ONOFFSE     "Cursor1"      # Звук вкл/выкл фонарика                      #
        
    USE_BATTARY true           # Использовать батарейки                      #
    #--------------------------------#---------------------------------------------#
        
    VANILLA_FL  false          # Создание фонарика без скриптов на освещение #
    #--------------------------------#---------------------------------------------#
        
    ZF_OVERLAY  296            # Z слоя фонарика                             #
        
    ZD_OVERLAY  302            # Z слоя Darkness                             #
    #--------------------------------#---------------------------------------------#
        
    F_SWITCH    90             # Перелючетль активности фонарика             #
        
    F_VARIABLE  90             # Переменная для енергии в фонарике           #
        
    D_SWITCH    91             # Перелючетль активности Darkness             #
    #--------------------------------#---------------------------------------------#
        
    C_EVENT     1              # ID Comment Event                            #
    #================================#=============================================#
      
    end                                                                          #
    end                                                                            #
    #==============================================================================#
    class Game_System
      attr_accessor 
    :flashlight_visible
      attr_accessor 
    :darkness_visible
      attr_accessor 
    :darkness
      attr_accessor 
    :darkness_zoom
      
      alias hb_flashlight_initialize initialize
      def initialize
        hb_flashlight_initialize
        
    @flashlight_visible false
        
    @darkness_visible false
        
    @darkness "darkness"
        
    @darkness_zoom 1
      end
    end

    class Spriteset_Map
      
      alias hb_create_flashlight initialize
      def initialize
        hb_create_flashlight
        create_flashlight 
    if HB::FLASHLIGHT::VANILLA_FL == true
        create_darkness
      end
      def create_flashlight
        
    @flashlight Sprite.new(@viewport1)
        @
    flashlight.opacity 200
        
    @flashlight.blend_type 
        
    @flashlight.HB::FLASHLIGHT::ZF_OVERLAY 
        
    @flashlight.visible $game_system.flashlight_visible
      end
      def create_darkness
        
    @darkness Sprite.new(@viewport1)
        @
    darkness.bitmap Cache.system($game_system.darkness)
        @
    current_darkness $game_system.darkness
        
    @darkness.opacity 200
        
    @darkness.blend_type 
        
    @darkness.HB::FLASHLIGHT::ZD_OVERLAY
        
    @darkness.visible $game_system.darkness_visible
      end
      
      alias hb_update_flashlight update
      def update
        hb_update_flashlight
        update_flashlight
        update_darkness
      end
      def update_flashlight
        
    return if !@flashlight
        
    return if $game_switches[HB::FLASHLIGHT::F_SWITCH]
        return if 
    HB::FLASHLIGHT::VANILLA_FL == false
        
    if !$game_party.has_item?($data_items[HB::FLASHLIGHT::FLASHLIGHT])
          
    $game_system.flashlight_visible false
          
    @flashlight.visible true
        end
        
    return if !$game_party.has_item?($data_items[HB::FLASHLIGHT::FLASHLIGHT])
        if 
    HB::FLASHLIGHT::USE_BATTARY == true
          
    if @flashlight.visible == true && $game_variables[HB::FLASHLIGHT::F_VARIABLE] > 0
            $game_variables
    [HB::FLASHLIGHT::F_VARIABLE] -= 1
          end
          
    if $game_variables[HB::FLASHLIGHT::F_VARIABLE] == 0
            
    @flashlight.visible false
            $game_system
    .flashlight_visible false
          end
        end
        
    if Input.trigger?(HB::FLASHLIGHT::BUTTON)
          
    Audio.se_play("Audio/SE/" HB::FLASHLIGHT::ONOFFSE70100)
          if 
    HB::FLASHLIGHT::USE_BATTARY == true
            
    return if $game_variables[HB::FLASHLIGHT::F_VARIABLE] == 0
          end
          
    if @flashlight.visible == true 
            
    @flashlight.visible false
            $game_system
    .flashlight_visible false
          
    else
            @
    flashlight.visible true
            $game_system
    .flashlight_visible true
          end
        end
        filename 
    "flashlight_"
        
    filename += $game_player.direction.to_s
        
    @flashlight.bitmap.dispose if @flashlight.bitmap
        
    @flashlight.bitmap Cache.system(filename)
        @
    flashlight.ox = @flashlight.bitmap.width 2
        
    @flashlight.oy = @flashlight.bitmap.height 2
        
    @flashlight.$game_player.screen_x
        
    @flashlight.$game_player.screen_y 16
      end
      def update_darkness
        
    return if !@darkness
        
    if $game_system.darkness != @current_darkness
          
    if !$game_system.darkness.nil?
            @
    darkness.bitmap Cache.system($game_system.darkness)
            @
    current_darkness $game_system.darkness
          end
        end
        
    if $game_switches[HB::FLASHLIGHT::D_SWITCH] == false
          
    @darkness.visible false
          $game_system
    .darkness_visible false
        
    else
          @
    darkness.visible true
          $game_system
    .darkness_visible true
        end
        
    @darkness.ox = @darkness.bitmap.width 2
        
    @darkness.oy = @darkness.bitmap.height 2
        
    @darkness.$game_player.screen_x
        
    @darkness.$game_player.screen_y 16
        
    @darkness.zoom_x $game_system.darkness_zoom
        
    @darkness.zoom_y $game_system.darkness_zoom
      end

      
      alias hb_dispose_flashlight dispose
      def dispose
        hb_dispose_flashlight
        dispose_flashlight
        dispose_darkness
      end
      def dispose_flashlight
        
    return if !@flashlight
        
    @flashlight.bitmap.dispose if @flashlight.bitmap
        
    @flashlight.dispose
      end
      def dispose_darkness
        
    return if !@darkness
        
    @darkness.bitmap.dispose if @darkness.bitmap
        
    @darkness.dispose
      end  
    end

    class Scene_Map

      alias hb_update_flashlight update
      def update
        hb_update_flashlight
        update_flashlight
      end
      
      def update_flashlight
        
    return if $game_switches[HB::FLASHLIGHT::F_SWITCH]
        return if 
    HB::FLASHLIGHT::VANILLA_FL == true
        
    if !$game_party.has_item?($data_items[HB::FLASHLIGHT::FLASHLIGHT])
          
    $game_system.flashlight_visible false
          $game_temp
    .reserve_common_event(HB::FLASHLIGHT::C_EVENT)
        
    end
        
    return if !$game_party.has_item?($data_items[HB::FLASHLIGHT::FLASHLIGHT])
        if 
    HB::FLASHLIGHT::USE_BATTARY == true
          
    if $game_system.flashlight_visible == true && $game_variables[HB::FLASHLIGHT::F_VARIABLE] > 0
            $game_variables
    [HB::FLASHLIGHT::F_VARIABLE] -= 1
          elsif $game_system
    .flashlight_visible == true && $game_variables[HB::FLASHLIGHT::F_VARIABLE] == 0
            $game_system
    .flashlight_visible false
            $game_temp
    .reserve_common_event(HB::FLASHLIGHT::C_EVENT)
          
    end
        end
        
    if Input.trigger?(HB::FLASHLIGHT::BUTTON)
          
    Audio.se_play("Audio/SE/" HB::FLASHLIGHT::ONOFFSE70100)
          if 
    HB::FLASHLIGHT::USE_BATTARY == true
            
    return if $game_variables[HB::FLASHLIGHT::F_VARIABLE] == 0
          end
          
    if $game_system.flashlight_visible == true 
            $game_system
    .flashlight_visible false
            $game_temp
    .reserve_common_event(HB::FLASHLIGHT::C_EVENT)
          else
            
    $game_system.flashlight_visible true
            $game_temp
    .reserve_common_event(HB::FLASHLIGHT::C_EVENT)
          
    end
        end
      end
    end

    class Game_Interpreter
      def darkness
    (image)
        
    $game_system.darkness image
      end
      def darkness_zoom
    (value)
        
    $game_system.darkness_zoom value
      end
    end 
    Последний раз редактировалось HopeBree; 08.01.2016 в 10:16. Причина: Версия 1.3

  2. #2
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    28.03.2013
    Сообщений
    1,201
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

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

  3. #3
    Хранитель Аватар для Paranoid
    Информация о пользователе
    Регистрация
    22.12.2014
    Сообщений
    2,629
    Записей в дневнике
    33
    Репутация: 24 Добавить или отнять репутацию

    По умолчанию

    Я так понял скрипт делает чисто фонарик и требует какой-нибудь скрипт на освещение.
    Может тогда выложить еще и VE - Light Effects, а то с сайта Виктора ничего не скачать уже.
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

  4. #4
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    28.03.2013
    Сообщений
    1,201
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

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

  5. #5
    Хранитель Аватар для Paranoid
    Информация о пользователе
    Регистрация
    22.12.2014
    Сообщений
    2,629
    Записей в дневнике
    33
    Репутация: 24 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от HopeBree Посмотреть сообщение
    так же работает и без каких-либо доп скриптов.
    Т.е. он делает фонарик даже без темноты? Эм, это как вообще?
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

  6. #6
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    28.03.2013
    Сообщений
    1,201
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    как-то вот так

    фонарик создается с помощью спрайта, на скриншоте используется стандартное изменение цвета экрана через "Tint Screen"

  7. #7
    Хранитель Аватар для Paranoid
    Информация о пользователе
    Регистрация
    22.12.2014
    Сообщений
    2,629
    Записей в дневнике
    33
    Репутация: 24 Добавить или отнять репутацию

    По умолчанию

    Тогда жду демку. А светильники как светят?
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

  8. #8
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    28.03.2013
    Сообщений
    1,201
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Paranoid Посмотреть сообщение
    Тогда жду демку. А светильники как светят?
    послойный параллакс же, светильники работают точно так же, как и фонарик
    точнее делал фонарик на их основе
    демку скорее всего выложу, как додумаю сделать изменяемый радиус обзора без доп графики
    Последний раз редактировалось HopeBree; 12.11.2015 в 15:22.

  9. #9
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    28.03.2013
    Сообщений
    1,201
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    Шапку обновил
    Версия 1.1 - Багфикс
    Добавил демку

  10. #10
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    28.03.2013
    Сообщений
    1,201
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    Шапку обновил
    Версия 1.2 - Добавлена дальность обзора
    Демка обновлена

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

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

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

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

Ваши права

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