Jump to content
Rpg²S Forum

Squall_Leonheart

Utenti
  • Posts

    1,352
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Squall_Leonheart

  1. Salve cercavo di modificare le coordinate x e y in battaglia,però non so come fare,premetto che utilizzo l'RATB,anke se credo nn faccia molta differenza siccome in questo caso si entra nella disposizione dello sprite

    aiuti?

  2. Dunque gente,mi serviva aiuto con l'animazione del minkoff(almeno della mia versione)

    Allora il problema è che quando il pg è in fin di vita lo script richiama la posa di quando è morto ora vi posto l oscript dell'animazione + il battler,per favore vorrei sapere come fare :biggrin:

     

     

     

     

     

     

     

    #======================================================================

    ========

    # ** Sprite_Battler

    #------------------------------------------------------------------------------

    # Animated Battlers by Minkoff

    #==============================================================================

     

    class Sprite_Battler < RPG::Sprite

    #--------------------------------------------------------------------------

    # * Initialize

    #--------------------------------------------------------------------------

    alias cbs_initialize initialize

    def initialize(viewport, battler = nil)

    @speed = 7

    @frames = 4

    @poses = 10

    @stationary_enemies = true

    @stationary_actors = false

    @calculate_speed = true

    @phasing = true

    @frame = 0

    @pose = 0

    @last_time = 0

    @last_move_time = 0

    cbs_initialize(viewport, battler)

    viewport.z = 99

    end

    #--------------------------------------------------------------------------

    # * Update

    #--------------------------------------------------------------------------

    alias cbs_update update

    def update

    return unless @battler

     

    # Regular Update

    cbs_update

     

    # Start Routine

    unless @started

    @width = @width / @frames

    @height = @height / @poses

    @display_x = @battler.screen_x

    @display_y = @battler.screen_y

    @destination_x = @display_x

    @destination_y = @display_y

    end

     

    # Setup Sprite

    self.src_rect.set(@width * @frame, @height * @pose, @width, @height)

    self.mirror = @battler.is_a?(Game_Enemy) unless @started

     

    # Position Sprite

    self.x = @display_x

    self.y = @display_y

    self.z = @display_y

    self.ox = @width / 2

    self.oy = @height

     

    # Setup Animation

    time = Graphics.frame_count / (Graphics.frame_rate / @speed)

    if @last_time < time

    @frame = (@frame + 1) % @frames

    if @frame == 0 or @reload

    if @freeze

    @frame = @frames - 1

    return

    end

    @pose = state

    end

    end

    @last_time = time

     

    # Move It

    move if moving

     

    # Finish Up

    @started = true

    end

    #--------------------------------------------------------------------------

    # * Current State

    #--------------------------------------------------------------------------

    def state

    # Damage State

    if [nil,{}].include?(@battler.damage)

    # Battler Fine

    @state = 0

    # Battler Wounded

    @state = 2 if @battler.hp < @battler.maxhp / 4

    # Battler Dead

    @state = 2 if @battler.dead?

    end

    # Guarding State

    @state = 3 if @battler.guarding?

    # Moving State

    if moving

    # Battler Moving Left

    @state = 4 if moving.eql?(0)

    # Battler Moving Right

    @state = 5 if moving.eql?(1)

    end

    # Return State

    return @state

    end

    #--------------------------------------------------------------------------

    # * Move

    #--------------------------------------------------------------------------

    def move

    time = Graphics.frame_count / (Graphics.frame_rate.to_f / (@speed * 5))

    if @last_move_time < time

     

    # Pause for Animation

    return if @pose != state

     

    # Phasing

    if @phasing

    d1 = (@display_x - @original_x).abs

    d2 = (@display_y - @original_y).abs

    d3 = (@display_x - @destination_x).abs

    d4 = (@display_y - @destination_y).abs

    self.opacity = [255 - ([d1 + d2, d3 + d4].min * 1.75).to_i, 0].max

    end

     

    # Calculate Difference

    difference_x = (@display_x - @destination_x).abs

    difference_y = (@display_y - @destination_y).abs

     

    # Done? Reset, Stop

    if [difference_x, difference_y].max.between?(0, 8)

    @display_x = @destination_x

    @display_y = @destination_y

    @pose = state

    return

    end

     

    # Calculate Movement Increments

    increment_x = increment_y = 1

    if difference_x < difference_y

    increment_x = 1.0 / (difference_y.to_f / difference_x)

    elsif difference_y < difference_x

    increment_y = 1.0 / (difference_x.to_f / difference_y)

    end

     

    # Calculate Movement Speed

    if @calculate_speed

    total = 0; $game_party.actors.each{ |actor| total += actor.agi }

    speed = @battler.agi.to_f / (total / $game_party.actors.size)

    increment_x *= speed

    increment_y *= speed

    end

     

    # Multiply and Move

    multiplier_x = (@destination_x - @display_x > 0 ? 8 : -8)

    multiplier_y = (@destination_y - @display_y > 0 ? 8 : -8)

    @display_x += (increment_x * multiplier_x).to_i

    @display_y += (increment_y * multiplier_y).to_i

    end

    @last_move_time = time

    end

    #--------------------------------------------------------------------------

    # * Set Movement

    #--------------------------------------------------------------------------

    def setmove(destination_x, destination_y)

    unless (@battler.is_a?(Game_Enemy) and @stationary_enemies) or

    (@battler.is_a?(Game_Actor) and @stationary_actors)

    @original_x = @display_x

    @original_y = @display_y

    @destination_x = destination_x

    @destination_y = destination_y

    end

    end

    #--------------------------------------------------------------------------

    # * Movement Check

    #--------------------------------------------------------------------------

    def moving

    if (@display_x != @destination_x and @display_y != @destination_y)

    return (@display_x > @destination_x ? 0 : 1)

    end

    end

    #--------------------------------------------------------------------------

    # * Set Pose

    #--------------------------------------------------------------------------

    def pose=(pose)

    @pose = pose

    @frame = 0

    end

    #--------------------------------------------------------------------------

    # * Freeze

    #--------------------------------------------------------------------------

    def freeze

    @freeze = true

    end

    #--------------------------------------------------------------------------

    # * Fallen Pose

    #--------------------------------------------------------------------------

    def collapse

    return

    end

    end

     

    #==============================================================================

    # ** Game_Actor

    #==============================================================================

     

    class Game_Actor

    #--------------------------------------------------------------------------

    # * Actor X Coordinate

    #--------------------------------------------------------------------------

    def screen_x

    if self.index != nil

    return self.index * 45 + 450

    else

    return 0

    end

    end

    #--------------------------------------------------------------------------

    # * Actor Y Coordinate

    #--------------------------------------------------------------------------

    def screen_y

    return self.index * 35 + 200

    end

    #--------------------------------------------------------------------------

    # * Actor Z Coordinate

    #--------------------------------------------------------------------------

    def screen_z

    return screen_y

    end

    end

     

    #==============================================================================

    # ** Scene_Battle

    #==============================================================================

     

    class Scene_Battle

    #--------------------------------------------------------------------------

    # * Action Animation, Movement

    #--------------------------------------------------------------------------

    alias cbs_update_phase4_step3 update_phase4_step3

    def update_phase4_step3(battler = @active_battler)

    @rtab = !@target_battlers

    target = (@rtab ? battler.target : @target_battlers)[0]

    @moved = {} unless @moved

    return if @spriteset.battler(battler).moving

    case battler.current_action.kind

    when 0 # Attack

    if not (@moved[battler] or battler.guarding?)

    offset = (battler.is_a?(Game_Actor) ? 40 : -40)

    @spriteset.battler(battler).setmove(target.screen_x + offset, target.screen_y)

    @moved[battler] = true

    return

    elsif not battler.guarding?

    @spriteset.battler(battler).pose = 6 + rand(2)

    @spriteset.battler(battler).setmove(battler.screen_x, battler.screen_y)

    end

    when 1 # Skill

    @spriteset.battler(battler).pose = 8

    when 2 # Item

    @spriteset.battler(battler).pose = 8

    end

    @moved[battler] = false

    @rtab ? cbs_update_phase4_step3(battler) : cbs_update_phase4_step3

    end

    #--------------------------------------------------------------------------

    # * Hit Animation

    #--------------------------------------------------------------------------

    alias cbs_update_phase4_step4 update_phase4_step4

    def update_phase4_step4(battler = @active_battler)

    for target in (@rtab ? battler.target : @target_battlers)

    damage = (@rtab ? target.damage[battler] : target.damage)

    if damage.is_a?(Numeric) and damage > 0

    @spriteset.battler(target).pose = 1

    end

    end

    @rtab ? cbs_update_phase4_step4(battler) : cbs_update_phase4_step4

    end

    #--------------------------------------------------------------------------

    # * Victory Animation

    #--------------------------------------------------------------------------

    alias cbs_start_phase5 start_phase5

    def start_phase5

    for actor in $game_party.actors

    return if @spriteset.battler(actor).moving

    end

    for actor in $game_party.actors

    unless actor.dead?

    @spriteset.battler(actor).pose = 9

    @spriteset.battler(actor).freeze

    end

    end

    cbs_start_phase5

    end

    #--------------------------------------------------------------------------

    # * Change Arrow Viewport

    #--------------------------------------------------------------------------

    alias cbs_start_enemy_select start_enemy_select

    def start_enemy_select

    cbs_start_enemy_select

    @enemy_arrow.dispose

    @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport2)

    @enemy_arrow.help_window = @help_window

    end

    end

     

    #==============================================================================

    # ** Spriteset_Battle

    #==============================================================================

     

    class Spriteset_Battle

    #--------------------------------------------------------------------------

    # * Change Enemy Viewport

    #--------------------------------------------------------------------------

    alias cbs_initialize initialize

    def initialize

    cbs_initialize

    @enemy_sprites = []

    for enemy in $game_troop.enemies.reverse

    @enemy_sprites.push(Sprite_Battler.new(@viewport2, enemy))

    end

    end

    #--------------------------------------------------------------------------

    # * Find Sprite From Battler Handle

    #--------------------------------------------------------------------------

    def battler(handle)

    for sprite in @actor_sprites + @enemy_sprites

    return sprite if sprite.battler == handle

    end

    return false

    end

    end

     

    #==============================================================================

    # ** Arrow_Base

    #==============================================================================

     

    class Arrow_Base < Sprite

    #--------------------------------------------------------------------------

    # * Reposition Arrows

    #--------------------------------------------------------------------------

    alias cbs_initialize initialize

    def initialize(viewport)

    cbs_initialize(viewport)

    self.ox = 14 # 32

    self.oy = 10 # 40

    end

    end

     

     

     

     

     

     

     

    Poi http://img155.imageshack.us/img155/9958/safiyp0.th.png

     

     

     

    In pratica usa il terzo frame sia quando è in fin di vita sia quando è morto...Vorrei che ci fosse un undicesima posa che sia quella da morto...Aiuti?^^

  3. Dunque ho provato e inanzitutto non mi mostra le icone e qualsiasi comando azioni mi da un errore di metodo...Ora non so perkè ho RTAB come script di battaglia...Come posso fare?(Anke minkoff credo)

     

     

    P.S.nn hai specificato nemmeno la scene battle io lo fatto nella prima però potrei aver sbagliato

  4. Grazie mille!!!

    Ora devo soltanto scegliere a windows skin e il font

    Grazie di nuovo :sisi:

     

    Edit:Scusami di nuovo,ho scritto nello script il font Verdiana ma scompaiono le scritte...Devo aggiungere da qualche parte i font prima di poterli usare?

  5. Salve Gente,Siccome non sapevo dove farvi questa domanda,la posto qui perchè credo si tratti di una specie di richiesta o consiglio.

    Dunque nel title volevo che apparissero le scritte nuovo gioco etc senza la windows skin e posizione da sinistra verso destra in basso cosi:

     

     

    Continua Nuovo Gioco Esci dal gioco

     

     

    Le scritte in rosso,c'è uno script che fa questo o bisogna solo giokare con i codici RGSS?

  6. Mi da un errore con il file table

     

     

    Edit:Scusa non avevo letto che la cartella doveva essere spostata dentro picturesXD cmq ci vogliono i soldi per giocareXD?

  7. Salve gente,sembrerò uno stupido a porvi questa domanda però,stranamente ho cercato di importare dei tileset di xp nel Vx però nn riesco a trovare dove impostarli,tipo nell'xp si andava nel database e sceglievi il passaggio,direzione etc...Qui invece come devo procedere?
×
×
  • Create New...