Плохо! Плохо!:  0
Страница 6 из 10 ПерваяПервая ... 45678 ... ПоследняяПоследняя
Показано с 51 по 60 из 98

Тема: Дневники Разработчика

  1. #51

    По умолчанию

    Скрипт рогалика включает в себя движение по диагонали?
    Спойлер check this out:
    Спойлер Check out my homies:
    FF DOG
    BILLY
    j00ly
    j00dy
    g00zer
    SPOON
    That's how the desert bus rolls.

  2. #52
    Хидео Кодзима Аватар для Bloody
    Информация о пользователе
    Регистрация
    23.04.2008
    Сообщений
    1,751
    Записей в дневнике
    94
    Репутация: 36 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Vincent DeLacroix Посмотреть сообщение
    Скрипт рогалика включает в себя движение по диагонали?
    а надо?
    Проекты:
    Мини-игры: El Presidente -- Red & Blue -- Roll Me Away -- Wizard's Revenge
    На перерыве: Mémoire
    Кажется, заброшены: Street Magic -- Hack in the Dark

  3. #53

    По умолчанию

    Можно сделать

  4. #54
    Авторитет Аватар для Hosse
    Информация о пользователе
    Регистрация
    23.03.2010
    Адрес
    Королёв
    Сообщений
    1,600
    Записей в дневнике
    52
    Репутация: 27 Добавить или отнять репутацию

    По умолчанию

    Эгоист, не все ж боёвки я смотрел)
    Блади, как-то коротко)
    эм... сложно у меня в голове это вяжется с концепцией строго ограниченного времени

    Сегодня как раз "Назад в будущее" по НТВ
    Творчество, никак с играми не связанное:
    https://vk.com/amjee
    https://vk.com/r2space
    Моя рожа и всякий рэпчик живьём: https://www.instagram.com/rap_amjeenickyry/

  5. #55
    Хидео Кодзима Аватар для Bloody
    Информация о пользователе
    Регистрация
    23.04.2008
    Сообщений
    1,751
    Записей в дневнике
    94
    Репутация: 36 Добавить или отнять репутацию

    По умолчанию

    Hosse, путешествие во времени назад - оно только один раз и по сюжету. В отличие от.
    Проекты:
    Мини-игры: El Presidente -- Red & Blue -- Roll Me Away -- Wizard's Revenge
    На перерыве: Mémoire
    Кажется, заброшены: Street Magic -- Hack in the Dark

  6. #56

    По умолчанию

    а надо?
    В теории не помешает. Во всех рогаликах, где не попиксельное передвижение(читай: компьютерных) это стандарт. Становится возможно устраивать битвы с более чем четырьмя врагами, чтобы при этом не было похоже на клоунаду со стройными шеренгами врагов.
    Но что-то мне подсказывает, что ты не будешь перерисовывать чаров в три четверти, так что не буду лепетать.
    Спойлер check this out:
    Спойлер Check out my homies:
    FF DOG
    BILLY
    j00ly
    j00dy
    g00zer
    SPOON
    That's how the desert bus rolls.

  7. #57

    По умолчанию

    Цитата Сообщение от Vincent DeLacroix Посмотреть сообщение
    Но что-то мне подсказывает, что ты не будешь перерисовывать чаров в три четверти, так что не буду лепетать.
    Собсно есть скрипт где переписывать ничего не надо, НО н 3/4 там похоже смутно, но все же вот
    Код:
    #===============================================================================
    # 
    # Yanfly Engine Melody - Extended Movement
    # Last Date Updated: 2010.02.05
    # Level: Easy, Normal, Hard
    # 
    # This script adds for easy 8 directional movement and character sheet support.
    # Although the character sheets need to be specially made, once done, they're
    # extremely flexibile and offer a plethora of options. 8 directional movement
    # allows the player to save a lot of time traveling basically anywhere quicker.
    # There's also the ability to adjust the innate default dashing speed.
    # 
    #===============================================================================
    # Updates
    # -----------------------------------------------------------------------------
    # o 2010.02.05 - Compatibility with Battle Engine Melody.
    # o 2010.01.05 - Added Reverse Poses.
    # o 2010.01.10 - Idling pose options added.
    # o 2010.01.08 - Started Script and Finished.
    #===============================================================================
    # 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.
    # 
    # -----------------------------------------------------------------------------
    # Setting up 8 Directional Sprite Sheets
    # -----------------------------------------------------------------------------
    # 1. Create a typical 4 column by 2 row sprite sheet. The columns are as follow
    # 
    #    Down            Down Left       Down Dash       Down Left Dash
    #    Left            Upper Left      Left Dash       Upper Left Dash
    #    Right           Down Right      Right Dash      Down Right Dash
    #    Up              Upper Right     Up Dash         Up Right Dash
    # 
    #    Ready/Idle      Victory Pose    2H Swing        
    #    Damage          Evade/Dodge     1H Swing        
    #    Dazed/Critical  Dead 1-3        Cast/Use Item   
    #    Marching        Downed/Fallen   Channeling      
    # 
    # 2. For the file name, place _8D after it. 
    #    example: Actor_01.png would look like Actor_01_8D.png
    # 
    # 3. And just use them as your actor's graphic. It's as easy as that. You can
    #    download some of the pre-made actor sheets on Pockethouse as reference.
    # 
    # -----------------------------------------------------------------------------
    # Equip Tags - Insert the following tags into Weapon and Armour noteboxes.
    # -----------------------------------------------------------------------------
    # <dash speed: +x%>  or  <dash speed: -x%>
    # Equipping the said piece of weapon/armour will increase or decrease the
    # player's onscreen dash speed by n%. This effect is cumulative across all
    # of the party members with the item equipped.
    # 
    # -----------------------------------------------------------------------------
    # Movement Route Event Editor Call Scripts
    # -----------------------------------------------------------------------------
    # @mirror = true    or    @mirror = false
    # This will mirror the image of the used character set. They will still face
    # the same direction but use the other side's character sheet instead.
    #
    # @pose = "value"
    # This will cause your to do a unique pose so long as they have an _8D sheet.
    # Replace value with any of the cases below:
    # 
    #    Normal            Ready             Damage            Critical
    #    March             Victory           Evade             Fallen
    #    Dead1             Dead2             Dead3             2H Swing
    #    1H Swing          Cast              Channel
    #    1H Swing Reverse  2H Swing Reverse
    # 
    # break_pose
    # This breaks the character out of a pose and back to regular standing format.
    # Important for those long pose sequences. If the player regains movement, the
    # player will also break out of a pose when the next movement input is done.
    # 
    #===============================================================================
    # Compatibility
    # -----------------------------------------------------------------------------
    # - Works With: Anything that doesn't affect movement systems.
    #===============================================================================
    
    $imported = {} if $imported == nil
    $imported["ExtendedMovement"] = true
    
    module YEM
      module MOVEMENT
        
        # The following constant allows for 8 directional movement. Set it to
        # false if you don't wish for it to occur.
        ENABLE_8D_MOVEMENT = true
        
        # If the above is enabled, tap directioning is also available. For those
        # wondering what tap directioning is, the player can just tap a direction
        # and the player character will face that direction rather than straight
        # out walking that direction. The following adjusts how many frames the
        # game will allow leeway for tap facing.
        TAP_COUNTER = 6
        
        # The next two constants allow you to set idle poses after your player
        # doesn't touch any directional keys for however many frames. Remember,
        # there are 60 frames in a second. If you don't want a pose to trigger,
        # just leave the array empty and nothing will happen. Otherwise, fill 
        # the array with any poses you would like the character do. Poses will
        # be randomly selected from the array.
        IDLE_POSE   = ["Ready", "March", "Victory"]
        IDLE_FRAMES = 360
        
        # The following determines the dash speed given to your player. The speed
        # value is a percentage out of 100. With 150, the player dashes +50% faster.
        # With 200, the player dashes twice as fast. You know the drill.
        DASH_SPEED_VARIABLE = 26
        DEFAULT_DASH_SPEED  = 150
        
      end # MOVEMENT
    end # YEM
    
    #===============================================================================
    # Editting anything past this point may potentially result in causing computer
    # damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
    # Therefore, edit at your own risk.
    #===============================================================================
    
    module YEM
      module REGEXP
        module BASEITEM
          DASH_SPEED = /^<(?:DASH_SPEED|dash speed):[ ]*([\+\-]\d+)([%%])>/i
        end
      end
    end
    module YEM::MOVEMENT
      SUFFIX = "8D"
    end # YEM::MOVEMENT
    
    #===============================================================================
    # RPG::BaseItem
    #===============================================================================
    
    class RPG::BaseItem
      
      #--------------------------------------------------------------------------
      # new method: dash_speed_bonus
      #--------------------------------------------------------------------------
      def dash_speed_bonus
        return @dash_speed_bonus if @dash_speed_bonus != nil
        @dash_speed_bonus = 0
        self.note.split(/[\r\n]+/).each { |line|
          case line
          when YEM::REGEXP::BASEITEM::DASH_SPEED
            @dash_speed_bonus = $1.to_i
          end
        } # end self.note.split
        return @dash_speed_bonus
      end
      
    end # RPG::BaseItem
    
    #===============================================================================
    # Game_Character
    #===============================================================================
    
    class Game_Character
      
      #--------------------------------------------------------------------------
      # public instance variables
      #--------------------------------------------------------------------------
      attr_accessor :mirror
      attr_accessor :pose
      attr_accessor :pattern
      attr_accessor :pre_pose
      attr_accessor :walk_anime
      attr_accessor :step_anime
      attr_accessor :move_frequency
      attr_accessor :anti_straighten
      attr_accessor :dash_speed
      
      #--------------------------------------------------------------------------
      # new method: break_pose
      #--------------------------------------------------------------------------
      def break_pose
        return unless @pose != nil and @pose != ""
        @pattern = 1
        @pose = nil
        @anti_straighten = false
        @walk_anime = true
        @step_anime = false
        set_direction(@pre_pose) if @pre_pose != nil
        @pre_pose = nil
      end
      
      #--------------------------------------------------------------------------
      # alias method: update_stop
      #--------------------------------------------------------------------------
      alias update_stop_em update_stop unless $@
      def update_stop
        return if @anti_straighten
        update_stop_em
      end
    
      #--------------------------------------------------------------------------
      # alias method: move_lower_left
      #--------------------------------------------------------------------------
      alias move_lower_left_em move_lower_left
      def move_lower_left
        move_lower_left_em
        @direction = 1 unless @direction_fix
      end
      
      #--------------------------------------------------------------------------
      # alias method: move_lower_right
      #--------------------------------------------------------------------------
      alias move_lower_right_em move_lower_right
      def move_lower_right
        move_lower_right_em
        @direction = 3 unless @direction_fix
      end
      
      #--------------------------------------------------------------------------
      # alias method: move_upper_left
      #--------------------------------------------------------------------------
      alias move_upper_left_em move_upper_left
      def move_upper_left
        move_upper_left_em
        @direction = 7 unless @direction_fix
      end
      
      #--------------------------------------------------------------------------
      # alias method: move_upper_right
      #--------------------------------------------------------------------------
      alias move_upper_right_em move_upper_right
      def move_upper_right
        move_upper_right_em
        @direction = 9 unless @direction_fix
      end
      
      if YEM::MOVEMENT::ENABLE_8D_MOVEMENT
      #--------------------------------------------------------------------------
      # overwrite method: move_random
      #--------------------------------------------------------------------------
      def move_random
        case rand(7)
        when 0;  move_down
        when 1;  move_left
        when 2;  move_right
        when 3;  move_up
        when 4
          if !dir8_passable?(2) and dir8_passable?(4)
            move_left
          elsif dir8_passable?(2) and !dir8_passable?(4)
            move_down
          else
            move_down
            move_left
            @direction = 1
          end
        when 5
          if !dir8_passable?(2) and dir8_passable?(6)
            move_right
          elsif dir8_passable?(2) and !dir8_passable?(6)
            move_down
          else
            move_down
            move_right
            @direction = 3
          end
        when 6
          if !dir8_passable?(8) and dir8_passable?(4)
            move_left
          elsif dir8_passable?(8) and !dir8_passable?(4)
            move_up
          else
            move_up
            move_left
            @direction = 7
          end
        when 7
          if !dir8_passable?(8) and dir8_passable?(6)
            move_right
          elsif dir8_passable?(8) and !dir8_passable?(6)
            move_up
          else
            move_up
            move_right
            @direction = 9
          end
        end
      end
      
      #--------------------------------------------------------------------------
      # overwrite method: move_toward_player
      #--------------------------------------------------------------------------
      def move_toward_player
        sx = distance_x_from_player
        sy = distance_y_from_player
        if sx != 0 or sy != 0
          if sx.abs > sy.abs
            sx > 0 ? move_left : move_right
            if @move_failed and sy != 0
              sy > 0 ? move_up : move_down
            end
          elsif sx.abs < sy.abs
            sy > 0 ? move_up : move_down
            if @move_failed and sx != 0
              sx > 0 ? move_left : move_right
            end
          elsif sx.abs == sy.abs
            if sx > 0 and sy > 0
              move_up
              move_left
              @direction = 7
            elsif sx < 0 and sy > 0
              move_up
              move_right
              @direction = 9
            elsif sx > 0 and sy < 0
              move_down
              move_left
              @direction = 1
            elsif sx < 0 and sy < 0
              move_down
              move_right
              @direction = 3
            end
          end
        end
      end
      
      #--------------------------------------------------------------------------
      # overwrite method: move_away_from_player
      #--------------------------------------------------------------------------
      def move_away_from_player
        sx = distance_x_from_player
        sy = distance_y_from_player
        if sx != 0 or sy != 0
          if sx.abs > sy.abs
            sx > 0 ? move_right : move_left
            if @move_failed and sy != 0
              sy > 0 ? move_down : move_up
            end
          elsif sx.abs < sy.abs
            sy > 0 ? move_down : move_up
            if @move_failed and sx != 0
              sx > 0 ? move_right : move_left
            end
          elsif sx.abs == sy.abs
            if sx > 0 and sy > 0
              move_down
              move_right
              @direction = 3
            elsif sx < 0 and sy > 0
              move_down
              move_left
              @direction = 1
            elsif sx > 0 and sy < 0
              move_up
              move_right
              @direction = 9
            elsif sx < 0 and sy < 0
              move_up
              move_left
              @direction = 7
            end
          end
        end
      end
      
      #--------------------------------------------------------------------------
      # overwrite method: move_forward
      #--------------------------------------------------------------------------
      def move_forward
        case @direction
        when 2;  move_down(false)
        when 4;  move_left(false)
        when 6;  move_right(false)
        when 8;  move_up(false)
        when 1
          if !dir8_passable?(2) and dir8_passable?(4)
            move_left
          elsif dir8_passable?(2) and !dir8_passable?(4)
            move_down
          else
            move_down
            move_left
          end
        when 3
          if !dir8_passable?(2) and dir8_passable?(6)
            move_right
          elsif dir8_passable?(2) and !dir8_passable?(6)
            move_down
          else
            move_down
            move_right
          end
        when 7
          if !dir8_passable?(8) and dir8_passable?(4)
            move_left
          elsif dir8_passable?(8) and !dir8_passable?(4)
            move_up
          else
            move_up
            move_left
          end
        when 9
          if !dir8_passable?(8) and dir8_passable?(6)
            move_right
          elsif dir8_passable?(8) and !dir8_passable?(6)
            move_up
          else
            move_up
            move_right
          end
        end
      end
      
      #--------------------------------------------------------------------------
      # overwrite method: move_backward
      #--------------------------------------------------------------------------
      def move_backward
        last_direction_fix = @direction_fix
        @direction_fix = true
        case @direction
        when 2;  move_up(false)
        when 4;  move_right(false)
        when 6;  move_left(false)
        when 8;  move_down(false)
        when 9
          if !dir8_passable?(2) and dir8_passable?(4)
            move_left
          elsif dir8_passable?(2) and !dir8_passable?(4)
            move_down
          else
            move_down
            move_left
          end
        when 7
          if !dir8_passable?(2) and dir8_passable?(6)
            move_right
          elsif dir8_passable?(2) and !dir8_passable?(6)
            move_down
          else
            move_down
            move_right
          end
        when 3
          if !dir8_passable?(8) and dir8_passable?(4)
            move_left
          elsif dir8_passable?(8) and !dir8_passable?(4)
            move_up
          else
            move_up
            move_left
          end
        when 1
          if !dir8_passable?(8) and dir8_passable?(6)
            move_right
          elsif dir8_passable?(8) and !dir8_passable?(6)
            move_up
          else
            move_up
            move_right
          end
        end
        @direction_fix = last_direction_fix
      end
      
      #--------------------------------------------------------------------------
      # overwrite method: turn_random
      #--------------------------------------------------------------------------
      def turn_random
        case rand(7)
        when 0; turn_up
        when 1; turn_right
        when 2; turn_left
        when 3; turn_down
        when 4; set_direction(1)
        when 5; set_direction(3)
        when 6; set_direction(7)
        when 7; set_direction(9)
        end
      end
      
      #--------------------------------------------------------------------------
      # overwrite method: turn_toward_player
      #--------------------------------------------------------------------------
      def turn_toward_player
        sx = distance_x_from_player
        sy = distance_y_from_player
        if sx.abs > sy.abs
          sx > 0 ? turn_left : turn_right
        elsif sx.abs < sy.abs
          sy > 0 ? turn_up : turn_down
        elsif sx.abs == sy.abs
          if sx > 0 and sy > 0
            set_direction(7)
          elsif sx < 0 and sy > 0
            set_direction(9)
          elsif sx > 0 and sy < 0
            set_direction(1)
          elsif sx < 0 and sy < 0
            set_direction(3)
          end
        end
      end
      
      #--------------------------------------------------------------------------
      # overwrite method: turn_away_from_player
      #--------------------------------------------------------------------------
      def turn_away_from_player
        sx = distance_x_from_player
        sy = distance_y_from_player
        if sx.abs > sy.abs
          sx > 0 ? turn_right : turn_left
        elsif sx.abs < sy.abs
          sy > 0 ? turn_down : turn_up
        elsif sx.abs == sy.abs
          if sx > 0 and sy > 0
            set_direction(3)
          elsif sx < 0 and sy > 0
            set_direction(1)
          elsif sx > 0 and sy < 0
            set_direction(9)
          elsif sx < 0 and sy < 0
            set_direction(7)
          end
        end
      end
      
      #--------------------------------------------------------------------------
      # new method: dir8_passable?
      #--------------------------------------------------------------------------
      def dir8_passable?(direction)
        case direction
        when 1
          return passable?(@x-1, @y+1)
        when 2
          return passable?(@x, @y+1)
        when 3
          return passable?(@x+1, @y+1)
        when 4
          return passable?(@x-1, @y)
        when 6
          return passable?(@x+1, @y)
        when 7
          return passable?(@x-1, @y-1)
        when 8
          return passable?(@x, @y-1)
        when 9
          return passable?(@x+1, @y-1)
        end
      end
      end # YEM::MOVEMENT::ENABLE_8D_MOVEMENT
      
    end # Game_Character
    
    #===============================================================================
    # Game_Player
    #===============================================================================
    
    class Game_Player < Game_Character
      
      if YEM::MOVEMENT::ENABLE_8D_MOVEMENT
      #--------------------------------------------------------------------------
      # overwrite method: move_by_input
      #--------------------------------------------------------------------------
      def move_by_input
        return unless movable?
        return if $game_map.interpreter.running?
        @tap_counter = YEM::MOVEMENT::TAP_COUNTER if @tap_counter == nil
        @idle_frames = 0 if @idle_frames == nil
        if Input.dir8 != 0
          break_pose
          @tap_counter -= 1
          @direction = Input.dir8
          @idle_frames = 0
          return if @tap_counter > 0
        else
          @idle_frames += 1
          @tap_counter = YEM::MOVEMENT::TAP_COUNTER
        end
        if @idle_frames > YEM::MOVEMENT::IDLE_FRAMES and 
        (@pose == nil or @pose == "")
          @pose = YEM::MOVEMENT::IDLE_POSE[rand(YEM::MOVEMENT::IDLE_POSE.size + 1)]
        end
        case Input.dir8
        when 2; move_down
        when 4; move_left
        when 6; move_right
        when 8; move_up
        when 1
          if !dir8_passable?(2) and dir8_passable?(4)
            move_left
          elsif dir8_passable?(2) and !dir8_passable?(4)
            move_down
          else
            move_down
            move_left
            @direction = Input.dir8
          end
        when 3
          if !dir8_passable?(2) and dir8_passable?(6)
            move_right
          elsif dir8_passable?(2) and !dir8_passable?(6)
            move_down
          else
            move_down
            move_right
            @direction = Input.dir8
          end
        when 7
          if !dir8_passable?(8) and dir8_passable?(4)
            move_left
          elsif dir8_passable?(8) and !dir8_passable?(4)
            move_up
          else
            move_up
            move_left
            @direction = Input.dir8
          end
        when 9
          if !dir8_passable?(8) and dir8_passable?(6)
            move_right
          elsif dir8_passable?(8) and !dir8_passable?(6)
            move_up
          else
            move_up
            move_right
            @direction = Input.dir8
          end
        end
      end
      end # YEM::MOVEMENT::ENABLE_8D_MOVEMENT
    
      #--------------------------------------------------------------------------
      # overwrite method: update_move
      #--------------------------------------------------------------------------
      def update_move
        distance = 2 ** @move_speed
        if dash?
          distance *= @dash_speed
          distance /= 100
        end
        distance = Integer(distance)
        @real_x = [@real_x - distance, @x * 256].max if @x * 256 < @real_x
        @real_x = [@real_x + distance, @x * 256].min if @x * 256 > @real_x
        @real_y = [@real_y - distance, @y * 256].max if @y * 256 < @real_y
        @real_y = [@real_y + distance, @y * 256].min if @y * 256 > @real_y
        update_bush_depth unless moving?
        if @walk_anime
          @anime_count += 1.5
        elsif @step_anime
          @anime_count += 1
        end
      end
      
      #--------------------------------------------------------------------------
      # overwrite method: update_dash_speed
      #--------------------------------------------------------------------------
      def update_dash_speed
        dash_variable = YEM::MOVEMENT::DASH_SPEED_VARIABLE
        if $game_variables[dash_variable] <= 0
          $game_variables[dash_variable] = YEM::MOVEMENT::DEFAULT_DASH_SPEED
        end
        @dash_speed = $game_variables[YEM::MOVEMENT::DASH_SPEED_VARIABLE]
        for member in $game_party.members
          for item in member.equips.compact do @dash_speed += item.dash_speed_bonus end
        end
      end
      
    end # Game_Player
    
    #===============================================================================
    # Game_Interpreter
    #===============================================================================
    
    class Game_Interpreter
      
      #--------------------------------------------------------------------------
      # alias method: command_122
      #--------------------------------------------------------------------------
      alias command_122_em command_122 unless $@
      def command_122
        n = command_122_em
        $game_player.update_dash_speed if @params[0] == 
          YEM::MOVEMENT::DASH_SPEED_VARIABLE
        
        return n
      end
      
    end # Game_Interpreter
    
    #===============================================================================
    # Sprite_Character
    #===============================================================================
    
    class Sprite_Character < Sprite_Base
      
      #--------------------------------------------------------------------------
      # constants
      #--------------------------------------------------------------------------
      DIR8_FRAMES ={ 1=>2, 2=>2, 3=>6, 4=>4, 6=>6, 7=>4, 8=>8, 9=>8 }
      
      #--------------------------------------------------------------------------
      # alias method: update_bitmap
      #--------------------------------------------------------------------------
      alias update_bitmap_em update_bitmap unless $@
      def update_bitmap
        name_changed = (@character_name != @character.character_name)
        update_bitmap_em
        @appropiate_file = nil if name_changed
      end
      
      #--------------------------------------------------------------------------
      # overwrite method: update_src_rect
      #--------------------------------------------------------------------------
      def update_src_rect
        if @tile_id == 0
          index = @character.character_index
          if !posing?
            @pose_pattern = nil
            @pose_duration = nil
          end
          if posing?
            pose_creation
          elsif dashing? and diagonal?
            @index_value = index+3
          elsif dashing?
            @index_value = index+2
          elsif diagonal?
            @index_value = index+1
          else
            @index_value = index
          end
          pattern = @character.pattern < 3 ? @character.pattern : 1
          @dir8 = DIR8_FRAMES[@character.direction]
          self.mirror = mirror?
          sx = (@index_value % 4 * 3 + pattern) * @cw
          sy = (@index_value / 4 * 4 + (@dir8 - 2) / 2) * @ch
          self.src_rect.set(sx, sy, @cw, @ch)
        end
      end
      
      #--------------------------------------------------------------------------
      # new method: posing?
      #--------------------------------------------------------------------------
      def posing?
        return false unless appropiate_filename?
        pose = (@character.pose != nil and !@character.pose != "")
        if pose and @pose_duration == nil
          @pose_duration = (18 - @character.move_frequency * 2)
          @pose_pattern = -1
        end
        @pose_duration = 0 if !pose
        return pose
      end
      
      #--------------------------------------------------------------------------
      # new method: diagonal?
      #--------------------------------------------------------------------------
      def diagonal?
        return false unless YEM::MOVEMENT::ENABLE_8D_MOVEMENT
        return false unless appropiate_filename?
        return true if [1, 3, 7, 9].include?(@character.direction)
        return false 
      end
      
      #--------------------------------------------------------------------------
      # new method: dashing?
      #--------------------------------------------------------------------------
      def dashing?
        return false unless @character.dash?
        return false unless appropiate_filename?
        return true if Input.dir8 != 0
        return false
      end
      
      #--------------------------------------------------------------------------
      # new method: appropiate_filename?
      #--------------------------------------------------------------------------
      def appropiate_filename?
        if @appropiate_file == nil
          name = @character_name[/(.*)_(.*)/]
          @appropiate_file = ($2.to_s == YEM::MOVEMENT::SUFFIX)
        end
        return @appropiate_file
      end
      
      #--------------------------------------------------------------------------
      # new method: mirror?
      #--------------------------------------------------------------------------
      def mirror?
        @index_value = [@index_value, @index_value+7].min
        if @character.mirror and (@character.pose == nil or @character.pose == "")
          case @dir8
          when 2
            @dir8 = 6 if diagonal?
          when 4
            @dir8 = diagonal? ? 8 : 6
          when 6
            @dir8 = diagonal? ? 2 : 4
          when 8
            @dir8 = 4 if diagonal?
          end
        end
        return @character.mirror
      end
      
      #--------------------------------------------------------------------------
      # new method: pose_creation
      #--------------------------------------------------------------------------
      def pose_creation
        @character.pre_pose = @character.direction if @character.pre_pose == nil
        case @character.pose.upcase
        #---
        when "NORMAL"
          @index_value = @character.character_index
          @character.break_pose
        #---
        when "READY", "IDLE"
          @index_value = 4
          @character.set_direction(2)
          @character.step_anime = true
        when "DAMAGE", "DMG"
          @index_value = 4
          @character.set_direction(4)
          play_character_pose
        when "PIYORI", "CRITICAL", "DAZED", "DAZE", "DIZZY"
          @index_value = 4
          @character.set_direction(6)
          @character.step_anime = true
        when "MARCH", "FORWARD"
          @index_value = 4
          @character.set_direction(8)
          @character.step_anime = true
        #---
        when "VICTORY", "POSE"
          @index_value = 5
          @character.set_direction(2)
          play_character_pose
        when "EVADE", "DODGE"
          @index_value = 5
          @character.set_direction(4)
          play_character_pose
        when "DEAD", "DEAD1"
          @index_value = 5
          @character.set_direction(6)
          @character.anti_straighten = true
          @character.walk_anime = false
          @character.pattern = 0
        when "DEAD2"
          @index_value = 5
          @character.set_direction(6)
          @character.anti_straighten = true
          @character.walk_anime = false
          @character.pattern = 1
        when "DEAD3"
          @index_value = 5
          @character.set_direction(6)
          @character.anti_straighten = true
          @character.walk_anime = false
          @character.pattern = 2
        when "DOWN", "DOWNED", "FALLEN"
          @index_value = 5
          @character.set_direction(8)
        #---
        when "2H", "2H SWING"
          @index_value = 6
          @character.set_direction(2)
          play_character_pose
        when "1H", "1H SWING"
          @index_value = 6
          @character.set_direction(4)
          play_character_pose
        when "2H REVERSE", "2H SWING REVERSE"
          @index_value = 6
          @character.set_direction(2)
          play_character_pose(true)
        when "1H REVERSE", "1H SWING REVERSE"
          @index_value = 6
          @character.set_direction(4)
          play_character_pose(true)
        when "CAST", "INVOKE", "ITEM", "MAGIC"
          @index_value = 6
          @character.set_direction(6)
          play_character_pose
        when "CHANT", "CHANNEL", "CHARGE"
          @index_value = 6
          @character.set_direction(8)
          @character.step_anime = true
        #---
        else
          @index_value = @character.character_index
          @character.set_direction(2)
        end
      end
      
      #--------------------------------------------------------------------------
      # new method: play_character_pose
      #--------------------------------------------------------------------------
      def play_character_pose(reverse = false)
        update_amount = (18 - @character.move_frequency * 2)
        @character.anti_straighten = true
        @character.walk_anime = false
        @pose_duration += 1
        if @pose_pattern == nil
          @character.pattern = reverse ? 2 : 0
          @pose_pattern = reverse ? 2 : 0
        end
        if reverse and @pose_pattern > 0 and @pose_duration > update_amount
          @pose_duration = 0
          @pose_pattern -= 1
          @character.pattern = @pose_pattern
        elsif !reverse and @pose_pattern < 2 and @pose_duration > update_amount
          @pose_duration = 0
          @pose_pattern += 1
          @character.pattern = @pose_pattern
        end
      end
      
    end # Sprite_Character
    
    #===============================================================================
    # Scene_Map
    #===============================================================================
    
    class Scene_Map < Scene_Base
      
      #--------------------------------------------------------------------------
      # alias method: start
      #--------------------------------------------------------------------------
      alias start_map_em start unless $@
      def start
        start_map_em
        $game_player.update_dash_speed
      end
      
    end # Scene_Map
    
    #===============================================================================
    # 
    # END OF FILE
    # 
    #===============================================================================
    З.Ы. можешь не следовать инструкциям просто вставь и все.

  8. #58
    Хидео Кодзима Аватар для Bloody
    Информация о пользователе
    Регистрация
    23.04.2008
    Сообщений
    1,751
    Записей в дневнике
    94
    Репутация: 36 Добавить или отнять репутацию

    По умолчанию

    Vincent DeLacroix, у меня боевка не на первом плане и все игровые карты уже готовы, так что, скорее всего, не будет перемещений по диагонали.
    Desperate Egoist, спасибо, но я точно не буду пользоваться этим скриптом в своем проекте.
    Проекты:
    Мини-игры: El Presidente -- Red & Blue -- Roll Me Away -- Wizard's Revenge
    На перерыве: Mémoire
    Кажется, заброшены: Street Magic -- Hack in the Dark

  9. #59
    Мастер Форума Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    8,405
    Записей в дневнике
    2
    Репутация: 91 Добавить или отнять репутацию

    По умолчанию

    Люблю сюжеты про перемещение во времени, надеюсь у тебя нормально получиться.

  10. #60
    Хидео Кодзима Аватар для Bloody
    Информация о пользователе
    Регистрация
    23.04.2008
    Сообщений
    1,751
    Записей в дневнике
    94
    Репутация: 36 Добавить или отнять репутацию

    По умолчанию

    Дневники Разработчика
    № 22
    Один единственный

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

    Так вот, в Revolution Renaissance вам, игроку, доступен один единственный слот для сохранения. Более того, есть с этим слотом сохранения, одна интересная фишечка. Но о ней, я напишу в другой раз, хотя те, кто уже упомянул ранее в своих постах рогалики, кажется, поняли о чем речь)

    P.S. это, технически, завтрашняя запись. Просто я не уверен, что завтра у меня будет время ее выложить, да и надо же, для разнообразия, один разок опередить график.
    Проекты:
    Мини-игры: El Presidente -- Red & Blue -- Roll Me Away -- Wizard's Revenge
    На перерыве: Mémoire
    Кажется, заброшены: Street Magic -- Hack in the Dark

Страница 6 из 10 ПерваяПервая ... 45678 ... ПоследняяПоследняя

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

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

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

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

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

Ваши права

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