设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 814|回复: 1
打印 上一主题 下一主题

[已经解决] 如何修改以下脚本?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
25 小时
注册时间
2008-11-8
帖子
145
跳转到指定楼层
1
发表于 2009-7-23 21:54:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
请问如何修改以下脚本才能使主角们的死亡方式变为倒地(即由动画升天变为一张图片)?敌人的升天方式不变,并可以播放se?

★死亡方式★升天

module RPG
  class Sprite < ::Sprite   
    def initialize(viewport = nil)
      super(viewport)
      @_whiten_duration = 0
      @_appear_duration = 0
      @_escape_duration = 0
      @_collapse_duration = 0
      @_damage_duration = 0
      @_animation_duration = 0
      @_blink = false
      @coll_time = 0
    end
    def collapse
      @coll.dispose if @coll != nil
      @coll = Sprite.new
      @coll.bitmap = Bitmap.new("Graphics/Battlers/#{@battler_name}")
      @coll.ox = self.ox
      @coll.oy = self.oy
      @coll.opacity = 100
      @coll.z = 0
      @coll.blend_type = 1
      @coll.x = self.x
      @coll.y = self.y
      @coll_time = 42
      @_whiten_duration = 0
      @_appear_duration = 0
      @_escape_duration = 0
    end
  def update
      super
      if @_whiten_duration > 0
        @_whiten_duration -= 1
        self.color.alpha = 128 - (16 - @_whiten_duration) * 10
      end
      if @_appear_duration > 0
        @_appear_duration -= 1
        self.opacity = (16 - @_appear_duration) * 16
      end
      if @_escape_duration > 0
        @_escape_duration -= 1
        self.opacity = 256 - (32 - @_escape_duration) * 10
      end
      if @coll_time > 0
        @coll_time -= 1
        @coll.y = self.y - (48 - @coll_time) * 6
        self.opacity = 256 - (48 - @coll_time) * 6
        if @coll_time == 0
          @coll.dispose
        end
      end
      if @_damage_duration > 0
        @_damage_duration -= 1
        case @_damage_duration
        when 38..39
          @_damage_sprite.y -= 2
        when 36..37
          @_damage_sprite.y -= 4
        when 34..35
          @_damage_sprite.y -= 2
        when 28..33
          @_damage_sprite.y -= 4
        end
        @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
        if @_damage_duration == 0
          dispose_damage
        end
      end
      if @_animation != nil and (Graphics.frame_count % 2 == 0)
        @_animation_duration -= 1
        update_animation
      end
      if @_loop_animation != nil and (Graphics.frame_count % 2 == 0)
        update_loop_animation
        @_loop_animation_index += 1
        @_loop_animation_index %= @_loop_animation.frame_max
      end
      if @_blink
        @_blink_count = (@_blink_count + 1) % 32
        if @_blink_count < 16
          alpha = (16 - @_blink_count) * 6
        else
          alpha = (@_blink_count - 16) * 6
        end
        self.color.set(255, 255, 255, alpha)
      end
      @@_animations.clear
    end
  end
end

Lv1.梦旅人

梦石
0
星屑
50
在线时间
25 小时
注册时间
2008-11-8
帖子
145
2
 楼主| 发表于 2009-7-23 21:56:49 | 只看该作者
其实就是想把灵儿续传的★Sprite_Battler(fly原版)和仙剑时空转的★死亡方式★升天两个脚本相结合!

★Sprite_Battler(fly原版)
#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
#  战斗显示用活动块。Game_Battler 类的实例监视、
# 活动块的状态的监视。
#==============================================================================

class Sprite_Battler < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :battler                  # 战斗者
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     viewport : 显示端口
  #     battler  : 战斗者 (Game_Battler)
  #--------------------------------------------------------------------------
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @battler_visible = false
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    super
    # 战斗者为 nil 的情况下
    if @battler == nil
      self.bitmap = nil
      loop_animation(nil)
      return
    end
    # 文件名和色相与当前情况有差异的情况下
    if @battler.battler_name != @battler_name or
       @battler.battler_hue != @battler_hue
      # 获取、设置位图
      @battler_name = @battler.battler_name
      @battler_hue = @battler.battler_hue
      self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
      @width = bitmap.width
      @height = bitmap.height
      self.ox = @width / 2
      self.oy = @height
      #######如果是战斗不能就更改战斗图片#######
      if @battler.dead? or @battler.hidden
         self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
         @width = bitmap.width
         @height = bitmap.height
         self.ox = @width / 2
         self.oy = @height
         self.opacity = 255
       end
    end
    # 动画 ID 与当前的情况有差异的情况下
    if @battler.damage == nil and
       @battler.state_animation_id != @state_animation_id
      @state_animation_id = @battler.state_animation_id
      loop_animation($data_animations[@state_animation_id])
    end
    # 应该被显示的角色的情况下
    if @battler.is_a?(Game_Actor) and @battler_visible
      # 不是主状态的时候稍稍降低点透明度
      if $game_temp.battle_main_phase
        self.opacity += 3 if self.opacity < 255
      else
        self.opacity -= 3 if self.opacity > 207
      end
    end
    # 明灭
    if @battler.blink
      blink_on
    else
      blink_off
    end
    # 不可见的情况下
    unless @battler_visible
      # 出现
      if not @battler.hidden and not @battler.dead? and
         (@battler.damage == nil or @battler.damage_pop)
        appear
        @battler_visible = true
        if @battler.damage == nil and @battler.dead?
           self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
           @width = bitmap.width
           @height = bitmap.height
           self.ox = @width / 2
           self.oy = @height
           self.opacity = 255
        else           
        self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
        @width = bitmap.width
        @height = bitmap.height
        self.ox = @width / 2
        self.oy = @height
        end
      end
    end
    # 可见的情况下
    if @battler_visible
      # 逃跑
      if @battler.hidden
        $game_system.se_play($data_system.escape_se)
        escape
        @battler_visible = false
      end
      # 白色闪烁
         
      # 动画
      if @battler.animation_id != 0
        animation = $data_animations[@battler.animation_id]
        animation(animation, @battler.animation_hit)
        @battler.animation_id = 0
      end
      # 伤害
      if @battler.damage_pop
        damage(@battler.damage, @battler.critical, @battler.sp_damage)
        @battler.damage = nil
        @battler.critical = false
        @battler.damage_pop = false
        @battler.sp_damage = false
      end
      # korapusu
      
      if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
          collapse
          @battler_visible = false
         
        else
          @male=[001] #----每个角色用逗号隔开
          if @male.include?(@battler.id)
            
            Audio.se_play("Audio/SE/SWDRSLGDIR_0358_1000-39")  #--你的文件名是你自己音效的文件名
            self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
            @width = bitmap.width
            @height = bitmap.height
            self.ox = @width / 2
            self.oy = @height
            self.opacity = 255
            
        else
            Audio.se_play("Audio/SE/SWDRSLGDIR_0343_1001-39")  
            
            self.bitmap = RPG::Cache.battler(@battler_name +"_d", @battler_hue)
            @width = bitmap.width
            @height = bitmap.height
            self.ox = @width / 2
            self.oy = @height
            self.opacity = 255
           end
        end
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-11 18:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表