查看: 1669|回复: 4

[已经解决] VX升级加点脚本查看状态时出错与横战脚本冲突吗?

[复制链接]
梦石
0
星屑
50
在线时间
38 小时
注册时间
2013-3-3
回帖
28
发表于 2013-3-18 23:48:54 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 qc641487196 于 2013-3-19 11:24 编辑

QQ截图20130318234741.png 查看状态装备好像就出错,因为在用升级加点脚本之前还是好的
出错的脚本是这个
[pre lang="" line="1"]
# 注:原版RMVX中,魔法攻和魔法防都整合在一起了,即“战力”(或“精神力”)。

# 现在要拆开。

#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
#  处理角色的类。本类在 Game_Actors 类 ($game_actors) 的内部使用、
# Game_Party 类请参考 ($game_party) 。
#==============================================================================

class Game_Actor < Game_Battler
  # 初始化
  alias neoinitialize initialize
  def initialize(actor_id)
    # 设定角色普遍的基本魔法防和增长度
    @mdef_init = 25
    @mdef_inc = 3
    neoinitialize(actor_id)
  end
  # 开始设定
  #--------------------------------------------------------------------------
  # ● 设置
  #     actor_id : 角色 ID
  #--------------------------------------------------------------------------
  alias neosetup setup
  def setup(actor_id)
    # 设定个别角色的基本魔法防和增长度(不设定的就用默认的基本值25,增长度3)
    case actor_id
    when 1
      @mdef_init = 22
      @mdef_inc = 2
    when 3
      @mdef_init = 28
      @mdef_inc = 3
    when 4
      @mdef_init = 30
      @mdef_inc = 4
    end
    neosetup(actor_id)
  end
  # 基本魔法防
  def mdef
    # 判断!是否具有47 48号状态!===============================================
    jjj = []
      for iii in self.states
        jjj.push(iii.id)
      end
      if jjj.include?(47)#疲软
        return 0
      end
      if jjj.include?(48)#强硬
        return 999
      end
    # ==========================================================================
    return @mdef_init + @level * @mdef_inc + mdef_plus
  end
  # 扩展魔法防
  def mdef_plus
    aaa = 0
    if self.weapon_id > 0
      aaa += $data_weapons[self.weapon_id].mdef
    end
    if self.armor1_id > 0
      aaa += $data_armors[self.armor1_id].mdef
    end
    if self.armor2_id > 0
      aaa += $data_armors[self.armor2_id].mdef
    end
    if self.armor3_id > 0
      aaa += $data_armors[self.armor3_id].mdef
    end
    if self.armor4_id > 0
      aaa += $data_armors[self.armor4_id].mdef
    end
    return aaa
  end
end

# 显示一个角色的魔法防。

#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  游戏中全部窗口的超级类。
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● 绘制角色能力值
  #     actor : 角色
  #     x     : 描画目标 X 坐标
  #     y     : 描画目标 Y 坐标
  #     type  : 能力值类型(0-3)
  #--------------------------------------------------------------------------
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
      parameter_name = Vocab::atk
      parameter_value = actor.atk
    when 1
      parameter_name = Vocab::def
      parameter_value = actor.def
    when 2
      parameter_name = Vocab::spi
      parameter_value = actor.spi
    when 3
      parameter_name = Vocab::agi
      parameter_value = actor.agi
    when 4
      parameter_name = "魔法防"
      parameter_value = actor.mdef
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, WLH, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2)
  end
end

#==============================================================================
# ■ Window_Status
#------------------------------------------------------------------------------
#  显示状态画面、完全规格的状态窗口。
#==============================================================================

class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # ● 绘制能力值
  #     x : 绘制点 X 座标
  #     y : 绘制点 Y 座标
  #--------------------------------------------------------------------------
  alias neodraw_parameters draw_parameters
  def draw_parameters(x, y)
    neodraw_parameters(x, y)
    draw_actor_parameter(@actor, x, y + WLH * 4, 4)
  end
end[/pre]
梦石
0
星屑
50
在线时间
38 小时
注册时间
2013-3-3
回帖
28
 楼主| 发表于 2013-3-18 23:53:19 | 显示全部楼层
本帖最后由 qc641487196 于 2013-3-18 23:56 编辑

好像是升级提示脚本冲突了
[pre lang="" line="1"]
#=======================================================================
#★升级提示★
#-----------------------------------------------------------------------
#★作者: Zhong_zw
#★联系方式:66RPG.com论坛短信 或 zhong8890@126.com
#=======================================================================
class Game_Actor < Game_Battler

  attr_accessor :last_level   
   def initialize(actor_id)
    super()
    setup(actor_id)
    @last_level = 0
    @last_skill_id = 0
   end
   def last_atk
    return actor.parameters[2,@last_level]
  end
  def last_def
    return actor.parameters[3,@last_level]
  end
  def last_spi
    return actor.parameters[4,@last_level]
  end
  def last_agi
    return actor.parameters[5,@last_level]
   end
  def now_atk
    return actor.parameters[2,@level]
  end
  def now_def
    return actor.parameters[3,@level]
  end
  def now_spi
    return actor.parameters[4,@level]
  end
  def now_agi
    return actor.parameters[5,@level]
  end  
   def change_exp(exp, show)
    @last_level = @level
    last_skills = skills
   
    @exp = [[exp, 9999999].min, 0].max
   while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
      level_up
    end
    while @exp < @exp_list[@level]
      level_down
    end
    @hp = [@hp, maxhp].min
    @mp = [@mp, maxmp].min
    if show and @level > last_level
      
      zhonglevelup_push(skills - last_skills)
    end
  end
   #==========================================================================
  #★角色升级显示
  #==========================================================================
  
  def zhonglevelup_push(new_skills)
   
    text = [@actor_id,new_skills]
    $game_temp.levelup_texts.push(text)
  end
end



class Scene_Battle < Scene_Base

def display_level_up
    exp = $game_troop.exp_total
    $game_party.remove_states_battle
    @message_window.contents_opacity = 0
    @message_window.opacity = 0
    @levelup_window = Window_zhonglevelup.new
    for actor in $game_party.existing_members
      last_level = actor.level
      last_skills = actor.skills
      actor.gain_exp(exp, true)
    end
   
    update_zhonglevelup
   
   
  end
  #==========================================================================
  #★等待升级窗口刷新
  #==========================================================================
   def update_zhonglevelup
      @levelup_window.update
     while @levelup_window.visible
       @levelup_window.update
       Graphics.update
       Input.update
     end
   end
   
end   

class Game_Temp
    attr_accessor :levelup_texts
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias oldinitialize initialize
  def initialize
    @levelup_texts = []
    oldinitialize
  end  
  
end


class Window_zhonglevelup < Window_Base

  attr_accessor :index
  def initialize
    super(122, 15, 350, 345)
    $game_temp.levelup_texts = []
    @index = 0
    @skill_index = 0
    @skill_window = Window_Base.new(122,23,260,36)
    @skill_window.opacity = 0
    @skill_window.z = self.z - 1
    @main_window = Window_Base.new(122,59,260,290)
    @main_window.opacity = 0
    @main_window.z = self.z - 1
   
    self.opacity = 0
    self.visible = false
   
    #update
   
   end
  
  
  #--------------------------------------------------------------------------
  # ★ $game_temp.levelup_texts = [角色id,新特技]
  #--------------------------------------------------------------------------
  def update
   
   
    zhonginputupdate if @index <= $game_temp.levelup_texts.size-1
     
    if @index <= $game_temp.levelup_texts.size-1      
      
      self.visible = true
      @main_window.opacity = 150
      actor = $game_actors[$game_temp.levelup_texts[@index][0]]
      if @skill_index == 0 and $game_temp.levelup_texts[@index][1].size != 0
        @skill_index = $game_temp.levelup_texts[@index][1].size
      end  
      level = actor.level
      last_level = actor.last_level
      atk = actor.now_atk
      now_def = actor.now_def
      spi = actor.now_spi
      agi = actor.now_agi
      last_atk = actor.last_atk
      last_def = actor.last_def
      last_spi = actor.last_spi
      last_agi = actor.last_agi
      
      
      self.contents.clear
      
      # x = 122
      # y = 58
       @skill_window.opacity = $game_temp.levelup_texts[@index][1].size != 0 ? 150 : 0
       skill_name = $game_temp.levelup_texts[@index][1][@skill_index - 1].name if @skill_index != 0
       level_name = Vocab::level
       atk_name = Vocab::atk
       def_name = Vocab::def
       spi_name = Vocab::spi
       agi_name = Vocab::agi
       font = self.contents.font.size
       x = 5
       y = 165
       self.contents.draw_text(x,y,60,60,atk_name)
       self.contents.draw_text(x,y+30,60,60,def_name)
       self.contents.draw_text(x,y+60,60,60,spi_name)
       self.contents.draw_text(x,y+90,60,60,agi_name)
       self.contents.draw_text(x + 45,y,60,60, last_atk)
       self.contents.draw_text(x + 45,y+30,60,60,last_def)
       self.contents.draw_text(x + 45,y+60,60,60,last_spi)
       self.contents.draw_text(x + 45,y + 90,60,60,last_agi)
       self.contents.draw_text(x,y-30,60,60,level_name)
       self.contents.draw_text(x + 45,y-30,60,60,last_level)
       self.contents.font.color = Color.new(0,255,0,255)
       self.contents.draw_text(x + 105,y-30,60,60,level)
       bitmap_5 = Bitmap.new("Graphics/system/箭头")
       rect_5 = Rect.new(0,0,bitmap_5.width,bitmap_5.height)
       self.contents.blt(x + 70,y - 18,bitmap_5,rect_5)
       if atk > last_atk
         self.contents.draw_text(x+105,y,60,60,atk)
         atk_opacity = 255
       else
         atk_opacity = 0
       end  
       bitmap_1 = Bitmap.new("Graphics/system/箭头")
       rect_1 = Rect.new(0,0,bitmap_1.width,bitmap_1.height)
       self.contents.blt(x+70,y+12,bitmap_1,rect_1,atk_opacity)
      
      
       if now_def > last_def
         self.contents.draw_text(x+105,y+30,60,60,now_def)
         def_opacity = 255
       else
         def_opacity = 0
       end
       bitmap_2 = Bitmap.new("Graphics/system/箭头")
       rect_2 = Rect.new(0,0,bitmap_1.width,bitmap_1.height)
       self.contents.blt(x+70,y+42,bitmap_1,rect_1,def_opacity)
      
       if spi > last_spi
         self.contents.draw_text(x+105,y+60,60,60,spi)
         spi_opacity = 255
       else
         spi_opacity = 0
       end
      
       bitmap_3 = Bitmap.new("Graphics/system/箭头")
       rect_3 = Rect.new(0,0,bitmap_1.width,bitmap_1.height)
       self.contents.blt(x+70,y+72,bitmap_1,rect_1,spi_opacity)
      
       if agi > last_agi
         self.contents.draw_text(x + 105,y + 90,60,60,agi)
         agi_opacity = 255
       else
         agi_opacity = 0
       end
       bitmap_4 = Bitmap.new("Graphics/system/箭头")
       rect_4 = Rect.new(0,0,bitmap_1.width,bitmap_1.height)
       self.contents.blt(x+70,y+102,bitmap_1,rect_1,agi_opacity)
         
      
      
      
       self.contents.font.color = normal_color
       self.contents.font.size = 16
       self.contents.draw_text(60, -19, 120, 60,"学会了 #{skill_name}")if @skill_index != 0
       self.contents.font.color = Color.new(255,255,0,255)
       self.contents.draw_text(61, -19,120,60,"       #{skill_name}")
       self.contents.font.size = font
       draw_face(actor.face_name, actor.face_index,3, 55, size = 80)
       draw_actor_name(actor, 92, 55)
       draw_actor_hp(actor, 95, 85)
       draw_actor_mp(actor, 95, 115)
      
       self.contents.font.color = normal_color
       actor.hp = [actor.maxhp,9999].min
       actor.mp = [actor.maxmp,9999].min
      
      
   
     else
       @main_window.visible = false
       @skill_window.visible =false
       self.visible = false
      
    end   
   
   
     
  end
  #==========================================================================
  #★窗口按键刷新
  #==========================================================================
   def zhonginputupdate
     if Input.trigger?(Input::DOWN)
       if @skill_index != 0
         @skill_index -= 1
         end
         @index += 1 if @skill_index == 0
     end
     if Input.trigger?(Input::UP)
        
        if @skill_index != 0
         @skill_index -= 1
         end
         @index += 1 if @skill_index == 0
      end
      if Input.trigger?(Input::RIGHT)
        
       if @skill_index != 0
         @skill_index -= 1
         end
         @index += 1 if @skill_index == 0
        
      end
      if Input.trigger?(Input::LEFT)
         
         if @skill_index != 0
         @skill_index -= 1
         end
         @index += 1 if @skill_index == 0
         
      end
      if Input.trigger?(Input::B)
         
          if @skill_index != 0
         @skill_index -= 1
         end
         @index += 1 if @skill_index == 0
        
      end
      if Input.trigger?(Input::C)
         if @skill_index != 0
         @skill_index -= 1
         end
         @index += 1 if @skill_index == 0
         
      end
   end
   
  #==========================================================================  
   
  def dispose
    super
    @skill_window.dispose
    @main_window.dispose
  end  
  
  
end

class Scene_Map < Scene_Base
  
def start
    super
    $game_map.refresh
    @spriteset = Spriteset_Map.new
    @message_window = Window_Message.new
    @levelup_window = Window_zhonglevelup.new
    @lus_window = Window_Base.new(122,23,260,36)
    @m_window = Window_Base.new(122,59,260,290)
    @m_window.opacity = 0
    @lus_window.opacity = 0
    @m_window.z = 9998
    @lus_window.z = 9998
    @levelup_window.z = 9999
  end
  
def update
    super
    $game_map.interpreter.update   
    $game_map.update                  
    $game_player.update               
    $game_system.update               
    @spriteset.update                 
    @message_window.update            
   
    unless $game_message.visible      
      update_levelup_window
      update_transfer_player
      update_encounter
      update_call_menu
      update_call_debug
      update_scene_change
    end
  end
  
  def update_levelup_window
      @levelup_window.update
      while @levelup_window.visible
        
        @lus_window.opacity = $game_temp.levelup_texts[@levelup_window.index][1].size != 0 ? 150 : 0
        @m_window.opacity = 150
        @levelup_window.update
        Graphics.update
        Input.update
       end
     @m_window.opacity = 0
    @lus_window.opacity = 0
   
  end   
def terminate
    super
    if $scene.is_a?(Scene_Battle)     # バトル画面に切り替え中の場合
      @spriteset.dispose_characters   # 背景作成のためにキャラを隠す
    end
    snapshot_for_background
    @spriteset.dispose
    @message_window.dispose
    @levelup_window.dispose
    @m_window.dispose
    @lus_window.dispose
    if $scene.is_a?(Scene_Battle)     # バトル画面に切り替え中の場合
      perform_battle_transition       # 戦闘前トランジション実行
    end
  end
end
[/pre]
回复

使用道具 举报

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
回帖
1419
发表于 2013-3-18 23:56:16 | 显示全部楼层
很明确地告诉阁下:
加点脚本与横战脚本不存在冲突。
要解决这个问题,还请上传出错的工程。
这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

梦石
0
星屑
50
在线时间
38 小时
注册时间
2013-3-3
回帖
28
 楼主| 发表于 2013-3-18 23:57:12 | 显示全部楼层
a364774426 发表于 2013-3-18 23:56
很明确地告诉阁下:
加点脚本与横战脚本不存在冲突。
要解决这个问题,还请上传出错的工程。 ...

不好意思,看看2楼,现在发现应该是升级提示出错了

点评

还是希望能直接上传工程~  发表于 2013-3-19 00:00
回复

使用道具 举报

梦石
0
星屑
50
在线时间
4 小时
注册时间
2013-3-19
回帖
79
发表于 2013-3-19 07:43:57 | 显示全部楼层
对于很多出错的脚本,我的建议就是=》不用那个脚本。
有的时候要出去散散步也许会想出什么解决方法哦~
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部