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

Тема: Автособытия

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Бывалый Аватар для caveman
    Информация о пользователе
    Регистрация
    15.02.2013
    Сообщений
    766
    Записей в дневнике
    47
    Репутация: 85 Добавить или отнять репутацию

    По умолчанию Автособытия

    AutoEvents
    Авторы: caveman
    Версия: 1.0
    Тип: работа с переменными и свитчами




    Описание:
    Написал небольшой скриптик, который позволяет подвешивать события - в виде куска скрипта - на изменения свитчей и переменных. Возможно, кому-то, у кого фантазии побольше, чем у меня, пригодится.

    Например, можно использовать для того, чтобы не забыть выполнить некоторые действия или не копипастить по похожим событиям операции проверки.

    В приложенной демке скрипт используется для вызова Common Event по достижению переменной некоторого значения (по идее, common events смогут активироваться только свитчами). Соберите 5 цветочков на двух картах, и вызовется событие. Да, можно было в каждый цветок вставить проверку, но в моем случае - меньше кода и возможностей забыть эту проверку.

    Скрипт:
    Спойлер скрипт:

    Код:
    #===============================================================================
    =begin
                                    Autoevents
     
      Скрипт позволяет подвесить вызов события (кусок скрипта) 
      на изменение переменных и свитчей.
      Автор: caveman
      История версий: 
        1.01 - Реализация для свитчей и переменных
      Пример использования:
        - проставление события переменной. пишем где-нибудь в autorune
        $game_variables.set_event(1, "if $game_variables[1] == 5 
        $game_switches[1] = true
        end")
        это означает, что в игре, при получении переменной 1 значения 5,
        свитчу 1 автоматически присвоится true
    =end
     
    class Game_Switches
      def initialize
        @data = []
        @events = []
      end
     
      def set_event(switch_id, value)
        if switch_id <= 5000
          @events[switch_id] = value
        end
      end
     
      def []=(switch_id, value)
        if switch_id <= 5000
          if @data[switch_id] != value
            @data[switch_id] = value
            if @events[switch_id] != nil
              eval(@events[switch_id])
            end
          end
        end
      end
    end
     
    class Game_Variables
      def initialize
        @data = []
        @events = []
      end
     
      def set_event(variable_id, value)
        if variable_id <= 5000
          @events[variable_id] = value
        end
      end
     
      def []=(variable_id, value)
        if variable_id <= 5000
          if @data[variable_id] != value
            @data[variable_id] = value
            if @events[variable_id] != nil
              eval(@events[variable_id])
            end
          end
        end
      end
    end


    Демо про цветочки
    http://yadi.sk/d/3hBMYvX-6yMU6

    Если интересно, можно добавить ту же фичу для selfswitches
    Последний раз редактировалось Arnon; 19.07.2013 в 14:13.
    back to the primitive

    http://cavemangame.blogspot.ru/ - разные идеи и новости
    http://cavescripts.blogspot.ru/ - мои скрипты
    http://cavecrusader.blogspot.ru/ - текущий проект

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

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

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

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

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

Ваши права

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