1111 发表于 2010-2-1 09:34:43

【求助】这个脚本出什么问题了?

请问:
这个脚本出什么问题了?
这是dnf血值脚本,我改了一下初始位置却打不开了?

class Game_Actor < Game_Battler
def now_exp
   return @exp# - @exp_list[@level]
end
def next_exp
   return @exp_list[@level+1] > 0 ? @exp_list[@level+1] : 0#- @exp_list[@level] : 0
end
end
#==============================================================================
# ■ ARPG_Actor
#------------------------------------------------------------------------------
#  处理ARPG角色的类。
#==============================================================================
class ARPG_Actor
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
def initialize
    @actor = $game_party.actors
    @hp = $game_party.actors.hp
    @sp = $game_party.actors.sp
    @hp2 = $game_party.actors.hp
    @sp2 = $game_party.actors.sp
    @exp = $game_party.actors.now_exp
    @jueselv = $game_party.actors.level
    @spzhi = $game_variables
    @states = $game_party.actors.states
    @parameter = []
    #Mess_Text.visible = true
    #Mess_Text.ini
    steup
end
#--------------------------------------------------------------------------
# ● 主处理
#--------------------------------------------------------------------------
def steup
    make_sprite
    if !$scene.is_a?(Scene_Key)
      @key_window = Window_KeyCommand.new
      @key_window.refresh($game_party.actors)
    end
    if !$scene.is_a?(Scene_Item_Key)
      @item_window = Window_Item_KeyCommand.new
      @item_window.refresh($game_party.actors)
    end
end
def visible=(val)
    @key_window.visible = val if !@key_window.nil?
    @item_window.visible = val if !@item_window.nil?
    @parameter.each{|pict|pict.visible = val}
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
def dispose
    #Mess_Text.dispose
    #Mess_Text.visible = false
    @key_window.dispose if !@key_window.nil?
    @item_window.dispose if !@item_window.nil?
    @parameter.each{|pict|pict.dispose}
end
#--------------------------------------------------------------------------
# ● 生成精灵的实例
#--------------------------------------------------------------------------
def make_sprite

    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(100,100)
    @parameter.bitmap.blt(0,0,RPG::Cache.picture(@actor.name),Rect.new(0,0,150,120))
    @parameter.x = -100;@parameter.y = 100
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,640)
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("bar"),Rect.new(0,0,640,640))#218,76))
    @parameter.x = 0;@parameter.y = 0#404#-1
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,480)
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("HP"),Rect.new(0,0,640,480))
    h = $game_party.actors.hp * 56 / $game_party.actors.maxhp
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("HPoo2"),Rect.new(0,0,640,56-h))
    @parameter.x = 0;@parameter.y = 407
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,480)
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("SP"),Rect.new(0,0,640,480))
    h = $game_party.actors.sp * 56 / $game_party.actors.maxsp
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("SPoo2"),Rect.new(0,0,640,56-h))
    @parameter.x = 0;@parameter.y = 407   
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,480)
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("EXP"),Rect.new(0,0,640,480))
    if $game_party.actors.level == 60
      h = 0
    else
      h = $game_party.actors.now_exp * 499 / $game_party.actors.next_exp
    end
    $game_variables = $game_party.actors.level
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("exppp"),Rect.new(0,0,h,480))
    @parameter.x = 71;@parameter.y = 0
    @parameter.z += 40
   
    @parameter.each{|e|e.z += 1}
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,480)
    @parameter.x = 85
    @parameter.y = 395
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(422,70)
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("555"),Rect.new(0,0,422,70))
    @parameter.x = 217;@parameter.y = 411
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,640)
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("bar2"),Rect.new(0,0,640,640))#218,76))
    @parameter.x = 0;@parameter.y = 0#404#-1
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,640)
    @parameter.bitmap.font.size = 12
    @parameter.bitmap.font.name = "宋体"
    @parameter.bitmap.font.color = Color.new(255,255,255)
    @jueselv = $game_party.actors.level
    @parameter.bitmap.draw_text(25, 457, 128, 32, "LV.#{@jueselv}")
    @parameter.z += 40
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,640)
    @parameter.bitmap.font.size = 12
    @parameter.bitmap.font.name = "宋体"
    @parameter.bitmap.font.color = Color.new(118,187,255)
    @spzhi = $game_variables
    @parameter.bitmap.draw_text(594, 456, 128, 32, "#{@spzhi}")
    @parameter.z += 40

    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,640)
    @parameter.bitmap.font.size = 12
    @parameter.bitmap.font.name = "宋体"
    @parameter.bitmap.font.color = Color.new(255,255,255)
    if $game_party.actors.level == 60
      h = 0
      @parameter.bitmap.draw_text(288, 456, 128, 32, "0 / ???")
    else
      h = $game_party.actors.next_exp
      @parameter.bitmap.draw_text(288, 456, 128, 32, "#{$game_party.actors.now_exp} / #{h}")
    end
    #@parameter.bitmap.draw_text(288, 456, 128, 32, "#{$game_party.actors.now_exp} / #{h}")
    @parameter.z += 41
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,480)
    hb = @hp2 * 56 / $game_party.actors.maxhp
    hbb = hb
    hbb -= $game_party.actors.hp * 56 / $game_party.actors.maxhp
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("baitiao-hp2"),Rect.new(0,0,640,hbb))
    @parameter.x = 0;@parameter.y = 463 - hb
    @parameter.z += 40
    @parameter.opacity = 255
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,480)
    hb = @sp2 * 56 / $game_party.actors.maxsp
    hbb = hb
    hbb -= $game_party.actors.sp * 56 / $game_party.actors.maxsp
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("baitiao-sp2"),Rect.new(0,0,640,hbb))
    @parameter.x = 0;@parameter.y = 463 - hb#407
    @parameter.z += 40
    @parameter.opacity = 255
   
    @parameter = Sprite.new
    @parameter.bitmap = Bitmap.new(640,480)
    @parameter.bitmap.blt(0,0,RPG::Cache.picture("baitiao22"),Rect.new(0,0,640,480))
    @parameter.x = 0;@parameter.y = 0
    @parameter.z += 41
   
    draw_actor_state(@actor,0,0)
      
    @parameter.each{|e|e.z += 2}
end

#--------------------------------------------------------------------------
# ● 描绘状态
#   actor : 角色
#   x   : 描画目标 X 坐标
#   y   : 描画目标 Y 坐标
#   width : 描画目标的宽
#--------------------------------------------------------------------------
def draw_actor_state(actor, x, y, width = 120)
    pos = 0
    for i in @actor.states
      if $data_states.name == "战斗不能"
      next
      end
      bitmap = RPG::Cache.icon($data_states.name)
      @parameter.bitmap.blt(x+pos*bitmap.width+pos*10, y, bitmap, Rect.new(0,0,bitmap.width,bitmap.height))
    pos += 1
    end
end
#--------------------------------------------------------------------------
# ● 更新数值变化
#--------------------------------------------------------------------------
def refresh(type)
    case type
    when 0
      @parameter.bitmap.clear
      @parameter.bitmap.blt(0,0,RPG::Cache.picture("HP"),Rect.new(0,0,640,88))
      h = @hp * 56 / $game_party.actors.maxhp#88
      @parameter.bitmap.blt(0,0,RPG::Cache.picture("HPoo2"),Rect.new(0,0,640,56-h))
      if $hpbaitiao == true
      $hpbaitiao = false
      @parameter.bitmap.clear
      hb = @hp2 * 56 / $game_party.actors.maxhp
      hbb = hb
      hbb -= h
      @parameter.bitmap.blt(0,0,RPG::Cache.picture("baitiao-hp2"),Rect.new(0,0,640,hbb))
      @parameter.y = 463 - hb
      @parameter.opacity = 255
      end
      return
    when 1
      @parameter.bitmap.clear
      @parameter.bitmap.blt(0,0,RPG::Cache.picture("SP"),Rect.new(0,0,640,88))
      h = @sp * 56 / $game_party.actors.maxsp
      @parameter.bitmap.blt(0,0,RPG::Cache.picture("SPoo2"),Rect.new(0,0,640,56-h))
      if $spbaitiao == true
      $spbaitiao = false
      @parameter.bitmap.clear
      hb = @sp2 * 56 / $game_party.actors.maxsp
      hbb = hb
      hbb -= h
      @parameter.bitmap.blt(0,0,RPG::Cache.picture("baitiao-sp2"),Rect.new(0,0,640,hbb))
      @parameter.y = 463 - hb
      @parameter.opacity = 255
      end
      return
    when 2
      @parameter.bitmap.clear
      @parameter.bitmap.blt(0,0,RPG::Cache.picture("EXP"),Rect.new(0,0,640,480))
      if $game_party.actors.level == 60
      h = 0
      else
      h = $game_party.actors.now_exp * 499 / $game_party.actors.next_exp
      end
      $game_variables = $game_party.actors.level
      @parameter.bitmap.blt(0,0,RPG::Cache.picture("exppp"),Rect.new(0,0,h,480))
      @parameter.bitmap.clear
      @parameter.bitmap.font.color = Color.new(255,255,255)
      if $game_party.actors.level == 60
      h = 0
      @parameter.bitmap.draw_text(288, 456, 128, 32, "0 / ???")
      else
      h = $game_party.actors.next_exp
      @parameter.bitmap.draw_text(288, 456, 128, 32, "#{$game_party.actors.now_exp} / #{h}")
      end
   # @parameter.bitmap.draw_text(288, 456, 128, 32, "#{$game_party.actors.now_exp} / #{h}")
      return
   when 3
       @parameter.bitmap.clear
       draw_actor_state(@actor,0,0)
       @states = $game_party.actors.states
      return
   when 4
       @parameter.bitmap.clear
       @jueselv = $game_party.actors.level
       @parameter.bitmap.draw_text(25, 457, 128, 32, "LV.#{@jueselv}")
      return
   when 5
       @parameter.bitmap.clear
       @spzhi = $game_variables
       @parameter.bitmap.draw_text(594, 456, 128, 32, "#{@spzhi}")
      return
    end
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def update
    Mess_Text.update
    if $refresh["states"]
      refresh(3)
      $refresh["states"] = false
    end
    if $refresh["item"]
      @item_window.refresh(@actor)
      $refresh["item"] = false
    end
    if $refresh["skill"]
      @key_window.refresh(@actor)
      $refresh["skill"] = false
    end
    if @actor.states.size > 0
      for i in @actor.states
      if @actor.states_time > 0
          @actor.states_time -= 1
      end
      if @actor.states_time <= 0
          @actor.remove_state(i)
      end
      end
      if @actor.states.size > 0 and Graphics.frame_count%10 == 0
      $game_party.check_map_slip_damage
      end
    end
    if Input.trigger?(Input::CTRL)
    #Mess_Text.clear
      return
    end
    if Input.trigger?(Input::SHIFT)
   # Mess_Text.visible = !Mess_Text.visible
      return
    end
    if @hp != $game_party.actors.hp
      if @hp > $game_party.actors.hp
      @hp2 = @hp
      #@hp -= 1
      $hpbaitiao = true
      end
      @hp = $game_party.actors.hp
#    if @hp < $game_party.actors.hp
   #   @hp += 1
    #end
      refresh(0)
    end
    if @sp != $game_party.actors.sp
      if @sp > $game_party.actors.sp
      @sp2 = @sp
   #   @sp -= 1
      $spbaitiao = true
      end
      @sp = $game_party.actors.sp
   #   if @sp < $game_party.actors.sp
    #    @sp += 1
   # end
      refresh(1)
    end
    @parameter.opacity -= 10 if @parameter.opacity > 0
    @parameter.opacity -= 10 if @parameter.opacity > 0
    if @jueselv != $game_party.actors.level
      refresh(4)
    end
    if @spzhi != $game_variables
      refresh(5)
    end
    if @exp != $game_party.actors.now_exp
      refresh(2)
    end
end
end

secondsen 发表于 2010-2-1 10:35:37

打不开?重新复制脚本
页: [1]
查看完整版本: 【求助】这个脚本出什么问题了?