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

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

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

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

    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 в 15:13.
    back to the primitive

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

  2. #2
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    Маленькая гордая стана в центре Европы[точка]
    Сообщений
    1,381
    Записей в дневнике
    49
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    Идея скрипта - интересная. Но
    по идее, common events смогут активироваться только свитчами
    есть же команда "Call Common Event" которая единожды запускает любой Common Event без какого либо свитча.
    Конференция со свободным входом:

    но Я БЫ ВЫБРАЛ РЕСЛИНГ"

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

    По умолчанию

    Это значит, что тебе надо вставить в каждое событие, меняющее переменную, проверку и вызов.
    Суть была в том (в деме, например), что тебе не нужно было вписывать проверку на переменную и вызов события везде (там, в каждый цветочек). Это syntax sugar в рамках евентов в ХП.

    Впрочем это неважно, это лишь одно применение идеи, может быть кто-то на основе скрипта придумает и более интересные штуки, когда понадобится.
    back to the primitive

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

  4. #4

    По умолчанию

    А можно с помощью этого сделать, чтобы при достижении переменной нужного числа персонажу давался навык? Типа бьешь какую-нибудь грушу и, когда набиваешь 10 ударов дается какой-нибудь сильный удар?

  5. #5

    По умолчанию

    Можно, делай.
    Я знаю, как лучше.

  6. #6

    По умолчанию

    Дельный скрипт.

  7. #7

    По умолчанию

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

  8. #8

    По умолчанию

    А можно такой же скриптик на MV версию?

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

    По умолчанию

    http://cavescripts.blogspot.ru/2016/...events-mv.html

    Для мультилайна в окне скрипта можно писать так (перенос на +), либо жаваскриптеры подскажут перенос строки толковый.

    $gameVariables.setEvent(1,
    "var a = $gameVariables.value(1); " +
    "if (a == 5) {$gameSwitches.setValue(1, true);}");
    Последний раз редактировалось caveman; 05.09.2016 в 23:49.
    back to the primitive

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

  10. #10
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    783
    Репутация: 63 Добавить или отнять репутацию

    По умолчанию

    Ничего себе! Пещерный жЫф!)
    Вопрос из разряда фантастики, если тебя так же попросить портнуть твой выдиратель и импортер текстов - это сработает? :D
    Последний раз редактировалось dirge; 05.09.2016 в 23:28.

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

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

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

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

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

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

Ваши права

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