Страница 4 из 17 ПерваяПервая ... 2345614 ... ПоследняяПоследняя
Показано с 31 по 40 из 170

Тема: Боевые системы

  1. #31
    Бывалый Аватар для А.С.
    Информация о пользователе
    Регистрация
    23.04.2010
    Адрес
    Лисаковск, Казахстан.
    Сообщений
    767
    Репутация: 9 Добавить или отнять репутацию

    По умолчанию

    Проблема в том, что некоторые сайты требуют регистрации для просмотра их контента, а не все это желают...
    Предлагаю альтернативное решение - давать ссылки на тему поддержки вместе с ссылкой на скачку. Если человеку нужна будет помощь, он может легко зайти туда и найти то, что ему нужно.
    Спойлер ФЛИ:
    Саката "Адский Сосед" Гинтоки
    HP: 19 MP: 7 Статус: Чувствует привязанность к Эа
    Уровень: 4 Опыт: 30\50

    Сила: 4 Выносл: 4 Ум: 4 Мутац: 0 Реакц: 5 Удача: 5 Джед: 1

    Вооружение:
    Спойлер Оружие Гинтоки:
    Никкоу (Меч Святого) - Меч, урон 1d8, защита врага - -50%
    Хаос (Меч Демона) - Меч, урон 1d8, ярость Гинтоки в битвах - +25%.
    Чёрный коготь - метательный нож (бесконечное кол-во использований), урон 1d4, можно использовать для притяжения объекта или врага, радиус - 4 м.
    Бокутоу Гинтоки - Меч, урон 1d4.


    Защита:
    Спойлер Доспех Гинтоки:

    Доспех Белого Хранителя - неразрушим, защита 1d6, полный комплект (без шлема). Класс - лёгкий доспех.


    Способности
    Спойлер Мастер на все руки:
    Гинтоки может использовать любое оружие или вещь, находящуюся у него под рукой, против врага.

    Мутация: Метание предмета до 1кг на расстояние 10м с площади 5м.
    Мутация: метнуть мелкий мусор в лицо врага - до 5м, собравшийся с радиуса 5м.- расход 2МР.
    Мутация: Притяжение - Может поднять и притянуть к себя предмет массой до 99г расположенный в радиусе 10м, предмет будет медленно двигаться на высоте 0,3-0,5м.


    Владение оружием:
    Спойлер Навык:

    Мечи: +1
    Метательное оружие: +1


    Эа Суекииттай
    HP: 12 MP: 11 Статус: Здорова
    Уровень: 3 Опыт: 20\30

    Сила: 3 Выносл: 3 Ум: 4 Мутац: 0 Реакц: 4 Удача: 3 Джед: 2

    Вооружение:
    Спойлер Оружие Эа:
    Зубы Змей - когти, урон 1d6, контактный бой, защита в ближнем бою +25%
    Алая Змея - меч, урон 1d8, кровотечение противника - +50%
    Посох Чаровниц - боевой посох, урон 1d4, бой на средней дистанции, защита в дальнем бое - +25%
    Ритуальный кинжал алхимика - Кинжал, урон 1d4, серебряный.


    Защита:
    Спойлер Доспех Эа:

    Доспехи Хранительниц - женские доспехи, неразрушимы, защита 1d6, класс: лёгкие доспехи


    Способности
    Спойлер Молящаяся за жизни:
    Эа может манипулировать неизвестными силами, вызвающими регенерацию пораженных тканей организма, способна вылечивать даже самую тяжёлую травму или болезнь, правда ей для этого требуется достаточное время на подготовку.

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


    Инвентарь
    Деньги: 8000
    Спойлер Открыть:

    Кольцо Ведьмы
    Особые зелья:
    ********************
    "Святая граната Антиоха"
    "Золотой феникс"
    "Исцеляющее дыхание"
    "Кровавая роза"
    "Порог Смерти"
    ********************


    И если ты не сможешь нас побить, присоединяйся! Вступай в лентяйскую команду!


    Заповеди профессионального автора.
    Спойлер Заповеди Профессионального мэйкера:

  2. #32

    По умолчанию

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

  3. #33

  4. #34

    По умолчанию

    Могу сделать маленький апдейт, пока только по VX, надо кому нэ?

  5. #35
    Маститый Аватар для Nalia
    Информация о пользователе
    Регистрация
    18.09.2009
    Адрес
    Пенза
    Сообщений
    1,371
    Записей в дневнике
    104
    Репутация: 78 Добавить или отнять репутацию

    По умолчанию

    Сделай. Я хоть в ВХ не работаю, но собираю всё, до чего могу дотянуться.
    Я отрицаю вашу реальность и заменю её своей. (c) Джон Адам Севидж

    Надо работать, работать надо. Ремешки под касками затянуть потуже, шинели в порядок привести, в кобуру засунуть трудолюбие 36 калибра и марш за мейкер! (с) Tall Men

  6. #36

    По умолчанию

    Ок, завтра сегодня выложу.

  7. #37
    Маститый Аватар для Элрик
    Информация о пользователе
    Регистрация
    09.09.2010
    Сообщений
    1,265
    Записей в дневнике
    47
    Репутация: 23 Добавить или отнять репутацию

    По умолчанию

    Ну все... моя клавиатура залита слюной и теперь слюна стекает на пол. Таких вкусностей я еще не видел нигде... насчет модерства Эгоиста - я только за! Только пусть побольше вкусностей притащит!

  8. #38

    По умолчанию

    Апдейт!
    Спойлер VX:

    Battle Action
    Боевка японская, но это не проблемма, единственное чего я пока не нашел так это юзания магии, в остальном мне понравилось.
    Спойлер Скрин:

    Скачать


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

    Скачать


    barrage shooting
    Этакий галаксиан на VX
    Спойлер Скрин:

    Скачать


    Block break
    Напоминает игру с тетриса
    Спойлер Скрин:

    Скачать


    Kai VX_ action RPG Maker
    Что-то вроде платформера...
    Спойлер Скрин:

    Скачать
    Последний раз редактировалось aisuuw; 24.10.2010 в 12:49.

  9. #39

    По умолчанию

    Есть еще, сейчас не очень хочется делать скрины и вкладывать все это, так что ждите

  10. #40

    По умолчанию

    Еще апдейт, ибо не надо делать скрины так что вот:
    Спойлер VX:

    Visualização Legend of Heroes
    Спойлер Скрин:

    Скачать


    Cozziekuns Battle System V 1.0
    Спойлер Скрин:

    Спойлер Скрипт!:
    Код:
    #===============================================================================
    # 
    # Cozziekuns Earthbound-ish Battle System
    # Last Date Updated: 8/22/2010
    # 
    # My first battle system, so I hope it's a half-decent one. It basically a 
    # remade version of the different Earthbound battle systems. Features from both
    # Earthbound and Earthbound 2 come in this battle system, and maybe one or two 
    # things snuck in from Earthbound Zero. The rest of the battle system is purely
    # custom.
    #
    # There might be a bit of lag from the odometer, but it shouldn't be too bad.
    #===============================================================================
    # Updates
    # -----------------------------------------------------------------------------
    # o 08/22/10 - Fixed some bugs, like not seeing HP and MP when using skills.
    # o 08/20/10 - Fixed a major error
    # o 08/13/10 - Started Script.
    #===============================================================================
    # What's to come?
    # -----------------------------------------------------------------------------
    # o What's not to come. Any feature that you suggest.
    #===============================================================================
    # Instructions
    # -----------------------------------------------------------------------------
    # To install this script, open up your script editor and copy/paste this script
    # to an open slot below ¥ Materials but above ¥ Main. Remember to save. You can
    # edit the modules as you wish.
    #===============================================================================
    
    $imported = {} if $imported == nil
    $imported["CozOithbound2BattleSystem"] = true
    
    module COZZIEKUNS
      module EARTHBOUND_2_BATTLE_SYSTEM
        USE_SPRITES = true # Whether you want to use sprites or not.
        REFRESH_SPRITES = true # Whether you want your sprites to refresh or not.
        INANIMATE_SPRITES_WHEN_DEAD = true # Whether you want your sprites to refresh when dead.
        NORM_REFRESH_RATE = 20 # How fast you want your sprite to walk.  
        RUN_REFRESH_RATE = 10 # How fast you want your sprite to escape.
        ATTACK_TURN = true # Do you want your sprite to turn when attacking?
        BLACKBACK_TRANSPARENCY = 100 # Transparency for the message window. 
        ESCAPE_ANIMATION = true # Do you want the characters to run off screen escaping?
        ESCAPE_ANIMATION_RATE = 5 # How fast do you want the characters to escape?
        ATTACK_ICON = 3 # Icon you want for the attack button
        SKILL_ICON = 21 # Icon you want for the skill button
        GUARD_ICON = 52 # Icon you want for the guard button
        ITEM_ICON = 144 # Icon you want for the item button
        ESCAPE_ICON = 48 # Icon you want for the escape button
        USE_ODOMETER = true # Do you want to use the Odometric system at all?
        LAG_TIME = 15 # Higher number, less lag. But the HP Bar refreshes slower.
        HP_DECREASE = 1 # How fast you want the HP to decrease. Formulas using the actor class are also applicable.
        MP_DECREASE = 1 # How fast you want the MP to decrease. Formulas using the actor class are also applicable. 
        ROLL_SOUND = RPG::SE.new("Shop", 80, 100) # The sound you want to make when the odometer rolls.
      end
    end
    
    #==============================================================================
    # ** Game_Battler
    #------------------------------------------------------------------------------
    #  This class deals with battlers. It's used as a superclass of the Game_Actor
    # and Game_Enemy classes.
    #==============================================================================
    
    class Game_Battler
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_accessor :norm
      attr_accessor :odometric_hp
      attr_accessor :odometric_mp
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      alias coz_eartbound_gb_initialize initialize
      def initialize
        @norm = false
        @odometric_hp = 0
        @odometric_mp = 0
        coz_eartbound_gb_initialize
      end
    end
    
    #==============================================================================
    # ** Game_Actor
    #------------------------------------------------------------------------------
    #  This class handles actors. It's used within the Game_Actors class
    # ($game_actors) and referenced by the Game_Party class ($game_party).
    #==============================================================================
    
    class Game_Actor < Game_Battler
      #--------------------------------------------------------------------------
      # * Use Sprites?
      #--------------------------------------------------------------------------
      def use_sprite?
        return COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::USE_SPRITES
      end
      #--------------------------------------------------------------------------
      # * Get Screen X-Coordinates
      #--------------------------------------------------------------------------
      def screen_x
        case $game_party.members.size
        when 1
          n = 272
        when 2
          if $game_party.members[0].name == @name
            n = 208
          else
            n = 336
          end
        when 3
          if $game_party.members[0].name == @name
            n = 112
          elsif $game_party.members[1].name == @name
            n = 240
          else
            n = 368
          end
        when 4
          if $game_party.members[0].name == @name
            n = 80
          elsif $game_party.members[1].name == @name
            n = 208
          elsif $game_party.members[2].name == @name
            n = 336
          else
            n = 464
          end
        end
        return n
      end
      #--------------------------------------------------------------------------
      # * Get Screen Y-Coordinates
      #--------------------------------------------------------------------------
      def screen_y
        return 292
      end
      #--------------------------------------------------------------------------
      # * Get Screen Z-Coordinates
      #--------------------------------------------------------------------------
      def screen_z
        return 100
      end
      #--------------------------------------------------------------------------
      # * Damage Reflection
      #     user : User of skill or item
      #    @hp_damage, @mp_damage, or @absorbed must be calculated before this
      #    method is called.
      #--------------------------------------------------------------------------
      def execute_damage(user)
        if @hp_damage > 0           # Damage is a positive number
          remove_states_shock       # Remove state due to attack
        end
        if COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::USE_ODOMETER 
          @odometric_hp += @hp_damage
          @odometric_mp += @mp_damage
          if @absorbed                # If absorbing
            @odometric_hp -= @hp_damage
            @odometric_mp -= @mp_damage
          end
        else
          self.hp -= @hp_damage
          self.mp -= @mp_damage
          if @absorbed                # If absorbing
            user.hp += @hp_damage
            user.mp += @mp_damage
          end
        end
      end
    end
    
    #==============================================================================
    # ** Sprite Battler
    #------------------------------------------------------------------------------
    #  Summary of Changes:
    #    aliased method - update_effect
    #==============================================================================
    
    class Sprite_Battler
      #--------------------------------------------------------------------------
      # * Stop Effect
      #--------------------------------------------------------------------------
      alias coz_eartbound_spb_update_effect update_effect
      def update_effect 
        if @battler.norm
          @effect_duration = 1
          @battler.norm = false
        end
        coz_eartbound_spb_update_effect 
      end
    end
    
    #==============================================================================
    # ** Sprite_BattleActor
    #------------------------------------------------------------------------------
    #  This displays a walking sprite. You know, a sprite that walks?
    #==============================================================================
    
    class Sprite_BattleActor < Sprite
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_accessor :enabled              
      attr_accessor :pos2
      attr_accessor :running
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(actor_id, index, viewport)
        super(viewport)
        @actor_id = actor_id
        @char_name = $game_party.members[actor_id].character_name 
        @char_index = $game_party.members[actor_id].character_index
        @index = index
        @pos = 1
        @pos2 = 0
        @frames = 0
        @enabled = false
        @running = false
        update
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        if @running
          self.oy -= (COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ESCAPE_ANIMATION ? COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ESCAPE_ANIMATION_RATE : 0)
        end
        case $game_party.members.size
        when 1
          self.x = 256
        when 2
          self.x = @index * 128 + 192
        when 3
          self.x = @index * 128 + 128
        when 4
          self.x = @index * 128 + 64
        end
        self.y = 260
        self.bitmap = draw_character(@char_name, @char_index)
        if @frames >= (@running ? COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::RUN_REFRESH_RATE : COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::NORM_REFRESH_RATE)
          return if COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::REFRESH_SPRITES == false
          return if $game_party.members[@actor_id].dead? and COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::INANIMATE_SPRITES_WHEN_DEAD
          @pos += 1
          @pos %= 3
          @frames = 0
        end
        @frames += 1
      end
      #--------------------------------------------------------------------------
      # * Draw Character Graphic
      #     character_name  : Character graphic filename
      #     character_index : Character graphic index
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #--------------------------------------------------------------------------
      def draw_character(character_name, character_index, enabled = @enabled)
        return if character_name == nil
        return if COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::USE_SPRITES == false
        bitmap = Cache.character(character_name)
        sign = character_name[/^[\!\$]./]
        if sign != nil and sign.include?('$')
          cw = bitmap.width / 3
          ch = bitmap.height / 4
        else
          cw = bitmap.width / 12
          ch = bitmap.height / 8
        end
        n = character_index
        src_rect = Rect.new((n % 4 * 3 + @pos) * cw, (n / 4 * 4 + @pos2) * ch, cw, ch)
        bitmap2 = Bitmap.new(32, 32)
        bitmap2.blt(0, 0, bitmap, src_rect, enabled ? 255 : 128)
        return bitmap2
      end
    end
    
    #==============================================================================
    # ** Sprite_BlackBack
    #------------------------------------------------------------------------------
    #  Waaasteful Sprite, but I had no other way to do this.
    #==============================================================================
    
    class Sprite_BlackBack < Sprite
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_accessor :dummy_height             
      #--------------------------------------------------------------------------
      # * Object Initialization
      #     viewport : viewport
      #     picture  : picture (Game_Picture)
      #--------------------------------------------------------------------------
      def initialize(viewport)
        super(viewport)
        @dummy_height = 132
        update
      end
      #--------------------------------------------------------------------------
      # * Dispose
      #--------------------------------------------------------------------------
      def dispose
        if self.bitmap != nil
          self.bitmap.dispose
        end
        super
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        super
        self.x = 0
        self.y = 0
        self.bitmap = Bitmap.new(544, @dummy_height)
        self.bitmap.fill_rect(0, 0, 544, @dummy_height, Color.new(0, 0, 0))
        self.opacity = COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::BLACKBACK_TRANSPARENCY
      end
    end
        
    #==============================================================================
    # ** Spriteset_Battle
    #------------------------------------------------------------------------------
    #  This class brings together battle screen sprites. It's used within the
    # Scene_Battle class.
    #==============================================================================
    
    class Spriteset_Battle
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_accessor :showing_battle_message     
      attr_accessor :active_battler
      attr_accessor :running
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        @showing_battle_message = false
        @running = false
        create_viewports
        create_battleback
        create_battlefloor
        create_enemies
        create_actors
        create_pictures
        create_timer
        create_blackback
        create_characters
        update
      end
      #--------------------------------------------------------------------------
      # * Create Black Background Sprite
      #--------------------------------------------------------------------------
      def create_blackback
        @blackback_sprite = Sprite_BlackBack.new(@viewport2)
      end
      #--------------------------------------------------------------------------
      # * Create Character Sprites
      #--------------------------------------------------------------------------
      def create_characters
        @character_sprites = []
        for i in 0...$game_party.members.size
          sprite = Sprite_BattleActor.new(i, i, @viewport2)
          @character_sprites.push(sprite)
        end
      end
      #--------------------------------------------------------------------------
      # * Dispose
      #--------------------------------------------------------------------------
      alias coz_earthbound_ssb_dispose dispose
      def dispose
        coz_earthbound_ssb_dispose
        dispose_blackback
        dispose_characters
      end
      #--------------------------------------------------------------------------
      # * Dispose of Black Background Sprite
      #--------------------------------------------------------------------------
      def dispose_blackback
        @blackback_sprite.dispose
      end
      #--------------------------------------------------------------------------
      # * Dispose of Character Sprites
      #--------------------------------------------------------------------------
      def dispose_characters
        for sprite in @character_sprites
          sprite.dispose
        end
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      alias coz_eartbound_ssb_update update
      def update
        coz_eartbound_ssb_update
        update_blackback
        update_characters
      end
      #--------------------------------------------------------------------------
      # * Update Black Background
      #--------------------------------------------------------------------------
      def update_blackback
        if @showing_battle_message
          @blackback_sprite.dummy_height = 132
        else
          @blackback_sprite.dummy_height = 60
        end
        @blackback_sprite.update
      end
      #--------------------------------------------------------------------------
      # * Update Character Sprites
      #--------------------------------------------------------------------------
      def update_characters
        if @running
          for i in 0...@character_sprites.size
            @character_sprites[i].enabled = true
            @character_sprites[i].pos2 = 0
            @character_sprites[i].running = true
          end
        end
        case @active_battler
        when 0
          for i in 0...@character_sprites.size
            @character_sprites[i].pos2 = 0
            @character_sprites[i].enabled = false
          end
        when 1
          case @character_sprites.size
          when 1
            @character_sprites[0].enabled = true
          when 2
            @character_sprites[0].enabled = true
            @character_sprites[1].enabled = false
          when 3
            @character_sprites[0].enabled = true
            @character_sprites[1].enabled = false
            @character_sprites[2].enabled = false
          when 4
            @character_sprites[0].enabled = true
            @character_sprites[1].enabled = false
            @character_sprites[2].enabled = false
            @character_sprites[3].enabled = false
          end
        when 2
          case @character_sprites.size
          when 2
            @character_sprites[0].enabled = false
            @character_sprites[1].enabled = true
          when 3
            @character_sprites[0].enabled = false
            @character_sprites[1].enabled = true
            @character_sprites[2].enabled = false
          when 4
          @character_sprites[0].enabled = false
          @character_sprites[1].enabled = true
          @character_sprites[2].enabled = false
          @character_sprites[3].enabled = false
          end
        when 3
          case @character_sprites.size
          when 3
            @character_sprites[0].enabled = false
            @character_sprites[1].enabled = false
            @character_sprites[2].enabled = true
          when 4
          @character_sprites[0].enabled = false
          @character_sprites[1].enabled = false
          @character_sprites[2].enabled = true
          @character_sprites[3].enabled = false
          end
        when 4
          @character_sprites[0].enabled = false
          @character_sprites[1].enabled = false
          @character_sprites[2].enabled = false
          @character_sprites[3].enabled = true
        when 5
          for i in 0...@character_sprites.size
            @character_sprites[i].pos2 = (COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ATTACK_TURN ? 3 : 0)
            @character_sprites[i].enabled = true
          end
        end
        for sprite in @character_sprites
          sprite.update
        end
      end
    end
    
    #==============================================================================
    # ** Window_BattleMessage
    #------------------------------------------------------------------------------
    #  Message window displayed during battle. In addition to the normal message
    # window functions, it also has a battle progress narration function.
    #==============================================================================
    
    class Window_BattleMessage < Window_Message
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      alias coz_earthbound_wbm_initialize initialize
      def initialize
        coz_earthbound_wbm_initialize
        self.x = 0
        self.y = 0
        self.opacity = 0
      end
    end
    
    #==============================================================================
    # ** Window_ActorCommand
    #------------------------------------------------------------------------------
    #  This window is used to select actor commands, such as "Attack" or "Skill".
    #==============================================================================
    
    class Window_ActorCommand < Window_Command
      #--------------------------------------------------------------------------
      # * Setup
      #     actor : actor
      #--------------------------------------------------------------------------
      def setup(actor)
        s1 = Vocab::attack
        s2 = Vocab::skill
        s3 = Vocab::guard
        s4 = Vocab::item
        s5 = Vocab::escape
        if actor.class.skill_name_valid     # Skill command name is valid?
          s2 = actor.class.skill_name       # Replace command name
        end
        @commands = [s1, s2, s3, s4, s5]
        @item_max = 5
        draw_item(1, $game_troop.can_escape)
        refresh
        self.index = 0
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        super
        if cursor_movable?
          if Input.repeat?(Input::RIGHT)
            cursor_down(Input.trigger?(Input::RIGHT))
          end
          if Input.repeat?(Input::LEFT)
            cursor_up(Input.trigger?(Input::LEFT))
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Determine if cursor is moveable
      #--------------------------------------------------------------------------
      def cursor_movable?
        return false if (not active)
        return false if (index < 0 or index > @item_max or @item_max == 0)
        return false if (@opening or @closing)
        return true
      end
    end
    
    #==============================================================================
    # ** Window_DummyCommand
    #------------------------------------------------------------------------------
    #  Creates a dummy command window. Nothing to see here kids.
    #==============================================================================
    
    class Window_DummyCommand < Window_Base
      #--------------------------------------------------------------------------
      # * Object Initialization
      #     x : window X coordinate
      #     y : window Y coordinate
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0, 544, 120)
        refresh
        self.visible = false
        self.opacity = 0
      end
      #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      def refresh(index = 0)
        self.contents.clear
        if index == 0
          self.contents.draw_text(0, 0, 504, WLH, Vocab::attack, 2)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ATTACK_ICON, 0, 0, true)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::SKILL_ICON, 64, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::GUARD_ICON, 128, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ITEM_ICON, 192, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ESCAPE_ICON, 256, 0, false)
        elsif index == 1
          self.contents.draw_text(0, 0, 504, WLH, Vocab::skill, 2)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ATTACK_ICON, 0, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::SKILL_ICON, 64, 0, true)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::GUARD_ICON, 128, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ITEM_ICON, 192, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ESCAPE_ICON, 256, 0, false)
        elsif index == 2
          self.contents.draw_text(0, 0, 504, WLH, Vocab::guard, 2)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ATTACK_ICON, 0, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::SKILL_ICON, 64, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::GUARD_ICON, 128, 0, true)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ITEM_ICON, 192, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ESCAPE_ICON, 256, 0, false)
        elsif index == 3
          self.contents.draw_text(0, 0, 504, WLH, Vocab::item, 2)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ATTACK_ICON, 0, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::SKILL_ICON, 64, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::GUARD_ICON, 128, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ITEM_ICON, 192, 0, true)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ESCAPE_ICON, 256, 0, false)
        elsif index == 4
          self.contents.draw_text(0, 0, 504, WLH, Vocab::escape, 2)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ATTACK_ICON, 0, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::SKILL_ICON, 64, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::GUARD_ICON, 128, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ITEM_ICON, 192, 0, false)
          draw_icon(COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ESCAPE_ICON, 256, 0, true)
        end
      end
    end
    
    
    #==============================================================================
    # ** Window_TargetEnemy
    #------------------------------------------------------------------------------
    #  Window for selecting the enemy who is the action target on the battle
    # screen.
    #==============================================================================
    
    class Window_TargetEnemy < Window_Command
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        commands = []
        @enemies = []
        for enemy in $game_troop.members
          next unless enemy.exist?
          commands.push(enemy.name)
          @enemies.push(enemy)
        end
        super(416, commands, 2, 4)
        self.visible = false
      end
      #--------------------------------------------------------------------------
      # * Get Enemy Object
      #--------------------------------------------------------------------------
      def enemy
        return @enemies[@index]
      end
      #--------------------------------------------------------------------------
      # * Determine if cursor is moveable
      #--------------------------------------------------------------------------
      def cursor_movable?
        return false if (not active)
        return false if (index < 0 or index > @item_max or @item_max == 0)
        return false if (@opening or @closing)
        return true
      end
    end
    
    
    #==============================================================================
    # ** Window_BattleStatus
    #------------------------------------------------------------------------------
    #  This window displays the status of all party members on the battle screen.
    #==============================================================================
    
    class Window_BattleStatus < Window_Selectable
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0, $game_party.members.size * 128 + 32, 128)
        refresh
        self.active = false
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        super
        if cursor_movable?
          if Input.repeat?(Input::RIGHT)
            cursor_down(Input.trigger?(Input::RIGHT))
          end
          if Input.repeat?(Input::LEFT)
            cursor_up(Input.trigger?(Input::LEFT))
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Draw Item
      #     index : Item number
      #--------------------------------------------------------------------------
      def draw_item(index)
        rect = Rect.new(0, 0, 128, 96)
        rect.x = index * 128
        self.contents.clear_rect(rect)
        self.contents.font.color = normal_color
        actor = $game_party.members[index]
        draw_face_graphic(actor.face_name, actor.face_index, rect.x + 16, rect.y, 96)
        draw_actor_name(actor, rect.x + (128 - self.contents.text_size(actor.name).width) / 2, 0)
        draw_actor_state(actor, rect.x, 24, 48)
      end
      #--------------------------------------------------------------------------
      # * Draw Face Graphic
      #     face_name  : Face graphic filename
      #     face_index : Face graphic index
      #     x     : draw spot x-coordinate
      #     y     : draw spot y-coordinate
      #     size       : Display size
      #--------------------------------------------------------------------------
      def draw_face_graphic(face_name, face_index, x, y, size = 96)
        bitmap = Cache.face(face_name)
        rect = Rect.new(0, 0, 0, 0)
        rect.x = face_index % 4 * 96 + (96 - size) / 2
        rect.y = face_index / 4 * 96 + (96 - size) / 2
        rect.width = size
        rect.height = size
        self.contents.blt(x, y, bitmap, rect, 100)
        bitmap.dispose
      end
      #--------------------------------------------------------------------------
      # * Update Cursor
      #--------------------------------------------------------------------------
      def update_cursor
        if @index < 0
          self.cursor_rect.empty
        else
          self.cursor_rect.set(@index * 128, 0, 128, 96)
        end
      end
    end
    
    #==============================================================================
    # ** Window_BattleHP
    #------------------------------------------------------------------------------
    #  This window displays the status of all party members on the battle screen.
    #==============================================================================
    
    class Window_BattleHP < Window_Base
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0, $game_party.members.size * 128 + 32, 128)
        refresh
        self.active = false
        self.opacity = 0
      end
      #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      def refresh
        self.contents.clear
        @item_max = $game_party.members.size
        for i in 0...@item_max
          draw_item(i)
        end
      end
      #--------------------------------------------------------------------------
      # * Draw Item
      #     index : Item number
      #--------------------------------------------------------------------------
      def draw_item(index)
        rect = Rect.new(0, 0, 128, 96)
        rect.x = index * 128
        self.contents.clear_rect(rect)
        self.contents.font.color = normal_color
        actor = $game_party.members[index]
        draw_actor_hp(actor, rect.x + 3, 48, 120)
        draw_actor_mp(actor, rect.x + 3, 72, 120)
      end
    end
    
    #==============================================================================
    # ** Scene_Battle
    #------------------------------------------------------------------------------
    #  This class performs battle screen processing.
    #==============================================================================
    
    class Scene_Battle < Scene_Base
      #--------------------------------------------------------------------------
      # * Start processing
      #--------------------------------------------------------------------------
      def start
        super
        $game_temp.in_battle = true
        @message_window = Window_BattleMessage.new
        @dummy_command_window = Window_DummyCommand.new
        @spriteset = Spriteset_Battle.new
        @action_battlers = []
        @frames = 0
        create_info_viewport
      end
      #--------------------------------------------------------------------------
      # * Termination Processing
      #--------------------------------------------------------------------------
      def terminate
        super
        dispose_info_viewport
        @message_window.dispose
        @dummy_command_window.dispose
        @spriteset.dispose
        unless $scene.is_a?(Scene_Gameover)
          $scene = nil if $BTEST
        end
      end
      #--------------------------------------------------------------------------
      # * Basic Update Processing
      #     main : Call from main update method
      #--------------------------------------------------------------------------
      def update_basic(main = false)
        Graphics.update unless main     # Update game screen
        Input.update unless main        # Update input information
        $game_system.update             # Update timer
        $game_troop.update              # Update enemy group
        @spriteset.update               # Update sprite set
        @message_window.update          # Update message window
        @dummy_command_window.update
        odometer_update unless main
        odometer_update
      end
      #--------------------------------------------------------------------------
      # * Odometer Update
      #--------------------------------------------------------------------------
      def odometer_update
        return if COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::USE_ODOMETER == false
        for actor in $game_party.existing_members
          if actor.odometric_hp > 0
            if @frames % 2 == 1
              actor.hp -= 1
              actor.odometric_hp -= 1
            end
            if @frames >= COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::LAG_TIME
              COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ROLL_SOUND.play
              @hp_window.refresh 
              @frames = 0
            end
          elsif actor.odometric_hp < 0
            actor.hp += 2
            actor.odometric_hp += 2
            if @frames >= COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::LAG_TIME
              COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ROLL_SOUND.play
              @hp_window.refresh
              @frames = 0
            end
          end
          if actor.odometric_mp > 0
            if @frames % 2 == 1
              actor.mp -= 1
              actor.odometric_mp -= 1
            end
            if @frames >= COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::LAG_TIME
              COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ROLL_SOUND.play
              @hp_window.refresh
              @frames = 0
            end
          elsif actor.odometric_mp < 0
            actor.mp += 2
            actor.odometric_mp += 2
            if @frames >= COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::LAG_TIME
              COZZIEKUNS::EARTHBOUND_2_BATTLE_SYSTEM::ROLL_SOUND.play
              @hp_window.refresh
              @frames = 0
            end
          end
        end
        @frames += 1
      end
      #--------------------------------------------------------------------------
      # * Wait a set amount of time
      #     duration : Wait time (number of frames)
      #     no_fast  : Fast forward disabled
      #    A method for inserting a wait during scene class update processing.
      #    As a rule, update is called once for each frame, but during battle it
      #    can be difficult to grasp the processing flow, so this method is used
      #    as an exception.
      #--------------------------------------------------------------------------
      def wait(duration, no_fast = false)
        for i in 0...duration
          update_basic
          break if not no_fast and i >= duration / 2 and show_fast?
        end
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        super
        odometer_update
        update_basic(true)
        update_info_viewport                  # Update information viewport
        unless @message_window.visible
          @spriteset.showing_battle_message = false
        end
        if $game_message.visible
          @spriteset.showing_battle_message = true
          @info_viewport.visible = false
          @dummy_command_window.visible = false
          @message_window.visible = true
        end
        if @message_window.visible
          @dummy_command_window.visible = false
          @spriteset.showing_battle_message = true
          @info_viewport.visible = true
        end
        unless $game_message.visible          # Unless displaying a message
          return if judge_win_loss            # Determine win/loss results
          update_scene_change
          if @target_enemy_window != nil
            update_target_enemy_selection     # Select target enemy
          elsif @target_actor_window != nil
            update_target_actor_selection     # Select target actor
          elsif @skill_window != nil
            update_skill_selection            # Select skill
          elsif @item_window != nil
            update_item_selection             # Select item
          elsif @actor_command_window.active
            update_actor_command_selection    # Select actor command
          else
            process_battle_event              # Battle event processing
            process_action                    # Battle action
            process_battle_event              # Battle event processing
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Create Information Display Viewport
      #--------------------------------------------------------------------------
      def create_info_viewport
        @info_viewport = Viewport.new(0, 288, 544, 128)
        @info_viewport.z = 100
        @status_window = Window_BattleStatus.new
        @actor_command_window = Window_ActorCommand.new
        @status_window.viewport = @info_viewport
        @actor_command_window.viewport = @info_viewport
        case $game_party.members.size
        when 1
          @status_window.x = 192
        when 2
          @status_window.x = 128
        when 3
          @status_window.x = 64
        when 4
          @status_window.x = 0
        end
        @hp_window = Window_BattleHP.new
        @hp_window.x = @status_window.x
        @hp_window.viewport = @info_viewport
        @actor_command_window.x = 416
        @actor_command_window.visible = false
      end
      #--------------------------------------------------------------------------
      # * Dispose of Information Display Viewport
      #--------------------------------------------------------------------------
      def dispose_info_viewport
        @status_window.dispose
        @actor_command_window.dispose
        @info_viewport.dispose
      end
      #--------------------------------------------------------------------------
      # * Update Information Display Viewport
      #--------------------------------------------------------------------------
      def update_info_viewport
        @actor_command_window.update
        @dummy_command_window.update
        @status_window.update
      end
      #--------------------------------------------------------------------------
      # * Go to Command Input for Next Actor
      #--------------------------------------------------------------------------
      def next_actor
        loop do
          if @actor_index == $game_party.members.size - 1
            start_main
            return
          end
          @status_window.index = @actor_index += 1
          @active_battler = $game_party.members[@actor_index]
          @spriteset.active_battler += 1
          if @active_battler.auto_battle
            @active_battler.make_action
            next
          end
          break if @active_battler.inputable?
        end
        start_actor_command_selection
      end
      #--------------------------------------------------------------------------
      # * Go to Command Input of Previous Actor
      #--------------------------------------------------------------------------
      def prior_actor
        loop do
          if @actor_index == 0
            @spriteset.active_battler -= 1
            start_party_command_selection
            return
          end
          @status_window.index = @actor_index -= 1
          @active_battler = $game_party.members[@actor_index]
          next if @active_battler.auto_battle
          break if @active_battler.inputable?
          @spriteset.active_battler -= 1
        end
        start_actor_command_selection
      end
      #--------------------------------------------------------------------------
      # * Start Party Command Selection
      #--------------------------------------------------------------------------
      def start_party_command_selection
        if $game_temp.in_battle
          @hp_window.refresh
          @status_window.refresh
          @status_window.index = @actor_index = -1
          @active_battler = nil
          @info_viewport.visible = true
          @message_window.visible = false
          $game_party.clear_actions
          if $game_troop.surprise or not $game_party.inputable?
            start_main
          end
          next_actor
        end
      end
      #--------------------------------------------------------------------------
      # * Start Actor Command Selection
      #--------------------------------------------------------------------------
      def start_actor_command_selection
        @actor_command_window.setup(@active_battler)
        @actor_command_window.active = true
        @actor_command_window.index = 0
      end
      #--------------------------------------------------------------------------
      # * Update Actor Command Selection
      #--------------------------------------------------------------------------
      def update_actor_command_selection
        odometer_update
        @dummy_command_window.visible = true
        @dummy_command_window.refresh(@actor_command_window.index) 
        if Input.trigger?(Input::B)
          Sound.play_cancel
          prior_actor
        elsif Input.trigger?(Input::C)
          case @actor_command_window.index
          when 0  # Attack
            Sound.play_decision
            @active_battler.action.set_attack
            start_target_enemy_selection
          when 1  # Skill
            Sound.play_decision
            start_skill_selection
          when 2  # Guard
            Sound.play_decision
            @active_battler.action.set_guard
            next_actor
          when 3  # Item
            Sound.play_decision
            start_item_selection
          when 4 # Escape
            Sound.play_decision
            process_escape
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Battle Start Processing
      #--------------------------------------------------------------------------
      alias coz_earthbound_sb_process_battle_start process_battle_start
      def process_battle_start
        @spriteset.showing_battle_message = true
        @spriteset.active_battler = 0
        coz_earthbound_sb_process_battle_start
      end
      #--------------------------------------------------------------------------
      # * Start Target Enemy Selection
      #--------------------------------------------------------------------------
      def start_target_enemy_selection
        @target_enemy_window = Window_TargetEnemy.new
        @actor_command_window.active = false
      end
      #--------------------------------------------------------------------------
      # * End Target Enemy Selection
      #--------------------------------------------------------------------------
      def end_target_enemy_selection
        @target_enemy_window.dispose
        @target_enemy_window = nil
        if @actor_command_window.index == 0
          @actor_command_window.active = true
        end
      end
      #--------------------------------------------------------------------------
      # * Update Target Enemy Selection
      #--------------------------------------------------------------------------
      alias coz_eartbound_sb_update_target_enemy_selection update_target_enemy_selection
      def update_target_enemy_selection 
        enemy_dump = @target_enemy_window.enemy
        coz_eartbound_sb_update_target_enemy_selection
        if @target_enemy_window.nil? || enemy_dump != @target_enemy_window.enemy
          enemy_dump.norm = true
          return if @target_enemy_window.nil?
        end
        @target_enemy_window.enemy.white_flash = true
      end
      #--------------------------------------------------------------------------
      # * Start Target Actor Selection
      #--------------------------------------------------------------------------
      alias coz_earthbound_sb_start_target_actor_selection start_target_actor_selection
      def start_target_actor_selection
        @target_actor_hp_window = Window_BattleHP.new
        coz_earthbound_sb_start_target_actor_selection
        @target_actor_hp_window.x = @target_actor_window.x
        @target_actor_hp_window.y = @target_actor_window.y
        @target_actor_hp_window.z = 9001
      end
      #--------------------------------------------------------------------------
      # * End Target Actor Selection
      #--------------------------------------------------------------------------
      alias coz_earthbound_sb_end_target_actor_selection end_target_actor_selection 
      def end_target_actor_selection
        coz_earthbound_sb_end_target_actor_selection
        @target_actor_hp_window.dispose
        @target_actor_hp_window = nil
      end
      #--------------------------------------------------------------------------
      # * Start Execution of Battle Processing
      #--------------------------------------------------------------------------
      def start_main
        @spriteset.active_battler = 5
        $game_troop.increase_turn
        @message_window.visible = true
        @actor_command_window.active = false
        @status_window.index = @actor_index = -1
        @active_battler = nil
        @message_window.clear
        $game_troop.make_actions
        make_action_orders
        wait(20)
      end
      #--------------------------------------------------------------------------
      # * End Turn
      #--------------------------------------------------------------------------
      def turn_end
        $game_troop.turn_ending = true
        $game_party.slip_damage_effect
        $game_troop.slip_damage_effect
        $game_party.do_auto_recovery
        $game_troop.preemptive = false
        $game_troop.surprise = false
        process_battle_event
        $game_troop.turn_ending = false
        @spriteset.active_battler = 0
        start_party_command_selection
      end
      #--------------------------------------------------------------------------
      # * Victory Processing
      #--------------------------------------------------------------------------
      def process_victory
        @info_viewport.visible = true
        @message_window.visible = true
        RPG::BGM.stop
        $game_system.battle_end_me.play
        unless $BTEST
          $game_temp.map_bgm.play
          $game_temp.map_bgs.play
        end
        display_exp_and_gold
        display_drop_items
        display_level_up
        battle_end(0)
      end
      #--------------------------------------------------------------------------
      # * Escape Processing
      #--------------------------------------------------------------------------
      def process_escape
        @info_viewport.visible = false
        @dummy_command_window.visible = false
        @message_window.visible = true
        text = sprintf(Vocab::EscapeStart, $game_party.name)
        $game_message.texts.push(text)
        if $game_troop.preemptive
          success = true
        else
          success = (rand(100) < @escape_ratio)
        end
        Sound.play_escape
        if success
          @spriteset.running = true
          wait_for_message
          battle_end(1)
        else
          @escape_ratio += 10
          $game_message.texts.push('\.' + Vocab::EscapeFailure)
          wait_for_message
          $game_party.clear_actions
          start_main
        end
      end
      #--------------------------------------------------------------------------
      # * Show Action Results
      #     target : Target
      #     obj    : Skill or item
      #--------------------------------------------------------------------------
      def display_action_effects(target, obj = nil)
        @hp_window.refresh
        @status_window.refresh
        unless target.skipped
          line_number = @message_window.line_number
          wait(5)
          display_critical(target, obj)
          display_damage(target, obj)
          display_state_changes(target, obj)
          if line_number == @message_window.line_number
            display_failure(target, obj) unless target.states_active?
          end
          if line_number != @message_window.line_number
            wait(30)
          end
          @message_window.back_to(line_number)
        end
      end
      #--------------------------------------------------------------------------
      # * End Skill Selection
      #--------------------------------------------------------------------------
      alias coz_earthbound_sb_end_skill_selection end_skill_selection
      def end_skill_selection
        coz_earthbound_sb_end_skill_selection
        @dummy_command_window.visible = true
      end
      #--------------------------------------------------------------------------
      # * End Item Selection
      #--------------------------------------------------------------------------
      alias coz_eartbound_sb_end_item_selection end_item_selection
      def end_item_selection
        coz_eartbound_sb_end_item_selection
        @dummy_command_window.visible = true
      end
    end


    насчет модерства Эгоиста - я только за!
    Я тоже не против
    Последний раз редактировалось aisuuw; 28.10.2010 в 18:54.

Страница 4 из 17 ПерваяПервая ... 2345614 ... ПоследняяПоследняя

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

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

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

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

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

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

Ваши права

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