Показано с 1 по 10 из 19

Тема: Variables Item

Древовидный режим

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

    По умолчанию Variables, Switches And Scripts Items

    Variables, Switches And Scripts Items
    Автор: HopeBree
    Версия: 1.3
    Тип: Предметы




    Описание:
    Скрипт позволяет изменить переменную или переключатель после использования предмета, и вызов скрипта, не используя общие события.

    Использование:
    Добавить в нотетаг следующие: <variable A: B C> или <switch D: E>
    A - ID переменной
    B - операция над переменной, может принимать следующие значение:
    • set - Выполняет присваивание значения начальной переменной (без дополнительных вычислений);
    • add - Выполняет сложение значения с начальной переменной и возвращает результат;
    • sub - Выполняет вычитание значения от начальной переменной и возвращает результат;
    • mul - Выполняет умножение значения на начальную переменную и возвращает результат;
    • div - Выполняет деление начальной переменной на значение и возвращает результат;
    • mod - Выполняет деление начальной переменной на значение и возвращает остаток.
    C - значение
    D - ID переключателя
    E - true или false, включить или выключить переключатель
    Для вызова скрипта использовать <script>F</script>
    F - скрипт
    Код:
    <variable 10: set 100>
    <switch 10: true>
    <script>
      SceneManager.call_ext(Scene_HistBook, :ancient_book)
    </script>
    Скрипт:
    PHP код:
    #==============================================================================#
    #  Variables, Switches And Scripts Items                                       #
    #------------------------------------------------------------------------------#
    #  Автор: HopeBree                                                             #
    #  Для: RPGMAKER VX ACE                                                        #
    #  Версия 1.4                                                                  #
    #------------------------------------------------------------------------------#
    #  13.05.2017 - Версия 1.4 - Небольшие исправления                             #
    #  04.01.2016 - Версия 1.3 - Добавлены скрипты                                 #
    #  16.11.2015 - Версия 1.2 - Добавлены переключатели                           #
    #  26.10.2015 - Версия 1.1 - Можно использовать не только числа в значении "C" #
    #  25.10.2015 - Версия 1.0 - Релиз                                             #
    #==============================================================================#
    # Скрипт позволяет изменить переменную или переключатель после использования   #
    # предмета, и вызов скрипта, не используя общие события.                       #
    #------------------------------------------------------------------------------#
    # Добавить в нотетаг следующие: <variable A: B C> или <switch D: E>            #
    #   A - ID переменной                                                          #
    #   B - операция над переменной, может принимать следующие значение:           #
    #      ● set - Выполняет присваивание значения начальной переменной (без       #
    #              дополнительных вычислений);                                     #
    #      ● add - Выполняет сложение значения с начальной переменной и            #
    #              возвращает результат;                                           #
    #      ● sub - Выполняет вычитание значения от начальной переменной и          #
    #              возвращает результат;                                           #
    #      ● mul - Выполняет умножение значения на начальную переменную и          #
    #              возвращает результат;                                           #
    #      ● div - Выполняет деление начальной переменной на значение и            #
    #              возвращает результат;                                           #
    #      ● mod - Выполняет деление начальной переменной на значение и            #
    #              возвращает остаток.                                             #
    #   C - значение                                                               #
    #   D - ID переключателя                                                       #
    #   E - true или false, включить или выключить переключатель                   #
    # Для вызова скрипта использовать <script>F</script>                           #
    #   F - скрипт                                                                 #
    #------------------------------------------------------------------------------#
    # Например:                                                                    #
    #   <variable 10: set 100>                                                     #
    #   <switch 10: true>                                                          #
    #   <script>                                                                   #
    #     SceneManager.call_ext(Scene_HistBook, :ancient_book)                     #
    #   </script>                                                                  #
    #==============================================================================#

    module HB
      module VARIABLES_AND_SWITCHES_USE_ITEM
        V_REGEX 
    = /<variable (\d+): (set|add|sub|mul|div|mod) (.*?)>/
        
    S_REGEX = /<switch (\d+): (true|false)>/
        
    C_REGEX = /<script>(.*?)<\/script>/im
      end
    end

    module RPG
      
    class Item
        def variables_items
          load_notetag_variables_items 
    if @variables_items.nil?
          return @
    variables_items
        end
        
        def switches_items
          load_notetag_switches_items 
    if @switches_items.nil?
          return @
    switches_items
        end
        
        def scripts_items
          load_notetag_scripts_items 
    if @scripts_items.nil?
          return @
    scripts_items
        end
        
        def load_notetag_variables_items
          
    @variables_items = []
          
    res self.note.scan(HB::VARIABLES_AND_SWITCHES_USE_ITEM::V_REGEX)
          
    res.each do |data|
            
    varItem VariablesSwitches.new
            
    varItem.v_id data[0].to_i
            varItem
    .v_op data[1].to_s
            varItem
    .v_va data[2]
            @
    variables_items << varItem
          end
        end
        def load_notetag_switches_items
          
    @switches_items = []
          
    res self.note.scan(HB::VARIABLES_AND_SWITCHES_USE_ITEM::S_REGEX)
          
    res.each do |data|
            
    swiItem VariablesSwitches.new
            
    swiItem.s_id data[0].to_i
            swiItem
    .s_va data[1].to_s
            
    @switches_items << swiItem
          end
        end
        def load_notetag_scripts_items
          
    @scripts_items = []
          
    res self.note.scan(HB::VARIABLES_AND_SWITCHES_USE_ITEM::C_REGEX)
          
    res.each do |data|
            
    scrItem VariablesSwitches.new
            
    scrItem.c_va data[0]
            @
    scripts_items << scrItem
          end
        end
      end  
    end

    class VariablesSwitches
      
      attr_accessor 
    :v_id
      attr_accessor 
    :v_op
      attr_accessor 
    :v_va
      attr_accessor 
    :s_id
      attr_accessor 
    :s_va
      attr_accessor 
    :c_va
      
      def initialize
        
    @v_id 0
        
    @v_op "set"
        
    @v_va 0
        
    @s_id 0
        
    @s_va false
        
    @c_va 0
      end
    end

    class Game_Battler Game_BattlerBase
      
      alias 
    :hb_variables_and_switches_use_item_consume_item :consume_item
      def use_item
    (item)
        
    hb_variables_and_switches_use_item_consume_item(item)
        
    item.variables_items.each do |varItem|
          case 
    varItem.v_op
          when 
    "set"
            
    $game_variables[varItem.v_id] = eval(varItem.v_va)
          
    when "add"
            
    $game_variables[varItem.v_id] += eval(varItem.v_va)
          
    when "sub"
            
    $game_variables[varItem.v_id] -= eval(varItem.v_va)
          
    when "mul"
            
    $game_variables[varItem.v_id] *= eval(varItem.v_va)
          
    when "div"
            
    $game_variables[varItem.v_id] /= eval(varItem.v_va)
          
    when "mod"
            
    $game_variables[varItem.v_id] %= eval(varItem.v_va)
          
    end
        end
        item
    .switches_items.each do |swiItem|
          
    $game_switches[swiItem.s_id] = swiItem.s_va
        end
        item
    .scripts_items.each do |scrItem|
          eval(
    scrItem.c_va)
        
    end
      end
    end 
    Последний раз редактировалось HopeBree; 13.05.2017 в 12:13. Причина: Версия: 1.4

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

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

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

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

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

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

Ваши права

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