Плохо! Плохо!:  0
Страница 4 из 4 ПерваяПервая ... 234
Показано с 31 по 34 из 34

Тема: Caveman's stands

  1. #31

    По умолчанию

    После всего проделанного xparams(возможно еще sparams) стали умножаться(тестилось в YA-ST menu и на мобах). Например, 20 теперь поднимает критшанс на 2000% а не на 20%, 2 на 200% и только 0.2 соответствует целевым 20%. Казалось бы, достаточно прописывать для xparams в стойках десятичные числа и проблема решена. Но тогда возникает очень неприятная проблема с неправильным отображением этих самых чисел в стойках. Как это можно исправить?

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

    По умолчанию

    Попробуй поиграться здесь
    Код:
      def xparam(xparam_id)
        sum = features_sum(FEATURE_XPARAM, xparam_id)
        if last_stand != nil
          sum += last_stand.xparam[xparam_id]
        end
        sum
      end
    
      def sparam(sparam_id)
        pi = features_pi(FEATURE_SPARAM, sparam_id)
        if last_stand != nil && last_stand.sparam[sparam_id] != 0
          pi *= last_stand.sparam[sparam_id]
        end
        pi
      end
    Проставь нечто типа sum += last_stand.xparam[xparam_id]/100.0 и pi *= last_stand.sparam[sparam_id]/100.0
    как это сделано для обычных параметров

    Либо в отображении умножай на 100 перед отрисовкой
    back to the primitive

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

  3. #33

    По умолчанию

    Благодарю, помогло. Активно тестирую, пока еще ни единого глюка. Можно потом, во избежание повторяющихся вопросов вынести в первый пост две демки. Первая - с классическим скриптом, вторая - с "процентованным".

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

    По умолчанию

    Для своих нужд внедрил небольшой аддон для стоек, и вынес его отдельно.

    Он позволяет задавать скиллам в нотетегах условия стойки, при которых он будет доступен.
    Например <stand: 1,2> - это значит, что скилл доступен при включенной стойке типа 1 уровня не меньше 2.

    Таким образом можно еще немного облагородить и расширить применение стоек.

    Skill Add-on:
    Спойлер скрипт:

    Код:
    #----------------------------------------------------------------------------
    # * [ACE] Caveman Battle Stands - Skill Addon
    #----------------------------------------------------------------------------
    # * Автор - caveman
    # * Версия: 1.1 RU
    # * Релиз: 31/08/2015
    #
    # * Описание:
    # * Добавляет возможность задать скиллы, используемые только в стойках
    # * не ниже определенного уровня.
    # * В заметках скилла пишите <stand: 1,2> - это значит, что скилл доступен
    # * при включенной стойке типа 1 уровня не меньше 2
    #----------------------------------------------------------------------------
    
    module DataManager
      
      #--------------------------------------------------------------------------
      # alias method: load_database
      #--------------------------------------------------------------------------
      class <<self; alias load_database_srs load_database; end
      def self.load_database
        load_database_srs
        load_notetags_srs
      end
      
      #--------------------------------------------------------------------------
      # new method: load_notetags_srs
      #--------------------------------------------------------------------------
      def self.load_notetags_srs
        groups = [$data_skills]
        for group in groups
          for obj in group
            next if obj.nil?
            obj.load_notetags_srs
          end
        end
      end
      
    end # DataManager
    
    class RPG::Skill < RPG::UsableItem
      attr_accessor :stand_type
      attr_accessor :stand_lvl
      
      def load_notetags_srs
        @stand_type = 0
        @stand_lvl = 0
        
        self.note.split(/[\r\n]+/).each { |line|
          case line
          when /<(?:STAND|stand):[ ](\d+)\,(\d+)>/i
            @stand_type = $1.to_i
            @stand_lvl = $2.to_i
          end
        }
      end
    end
    
    class Game_Actor
      def skill_conditions_met?(skill)
        return false if stand_restriction?(skill)
        return usable_item_conditions_met?(skill) &&
        skill_wtype_ok?(skill) && skill_cost_payable?(skill) &&
        !skill_sealed?(skill.id) && !skill_type_sealed?(skill.stype_id)
      end
      
      def stand_restriction?(skill)
         return false if skill.stand_type == 0
         return true if last_stand == nil
         return true if skill.stand_type != last_stand.type
         return true if skill.stand_lvl > last_stand.lvl
         return false
      end
    end
    back to the primitive

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

Страница 4 из 4 ПерваяПервая ... 234

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

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

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

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

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

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

Ваши права

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