幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1680|回复: 1

[已解决] 【求助】这个脚本出什么问题了?

[复制链接]

6

主题

8

帖子

76

积分

②入门

积分
76
发表于 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[0]
    @hp = $game_party.actors[0].hp
    @sp = $game_party.actors[0].sp
    @hp2 = $game_party.actors[0].hp
    @sp2 = $game_party.actors[0].sp
    @exp = $game_party.actors[0].now_exp
    @jueselv = $game_party.actors[0].level
    @spzhi = $game_variables[128]
    @states = $game_party.actors[0].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[0])
    end
    if !$scene.is_a?(Scene_Item_Key)
      @item_window = Window_Item_KeyCommand.new
      @item_window.refresh($game_party.actors[0])
    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[0] = Sprite.new
    @parameter[0].bitmap = Bitmap.new(100,100)
    @parameter[0].bitmap.blt(0,0,RPG::Cache.picture(@actor.name),Rect.new(0,0,150,120))
    @parameter[0].x = -100;@parameter[0].y = 100
   
    @parameter[1] = Sprite.new
    @parameter[1].bitmap = Bitmap.new(640,640)
    @parameter[1].bitmap.blt(0,0,RPG::Cache.picture("bar"),Rect.new(0,0,640,640))#218,76))
    @parameter[1].x = 0;@parameter[1].y = 0#404#-1
   
    @parameter[2] = Sprite.new
    @parameter[2].bitmap = Bitmap.new(640,480)
    @parameter[2].bitmap.blt(0,0,RPG::Cache.picture("HP"),Rect.new(0,0,640,480))
    h = $game_party.actors[0].hp * 56 / $game_party.actors[0].maxhp
    @parameter[2].bitmap.blt(0,0,RPG::Cache.picture("HPoo2"),Rect.new(0,0,640,56-h))
    @parameter[2].x = 0;@parameter[2].y = 407
   
    @parameter[3] = Sprite.new
    @parameter[3].bitmap = Bitmap.new(640,480)
    @parameter[3].bitmap.blt(0,0,RPG::Cache.picture("SP"),Rect.new(0,0,640,480))
    h = $game_party.actors[0].sp * 56 / $game_party.actors[0].maxsp
    @parameter[3].bitmap.blt(0,0,RPG::Cache.picture("SPoo2"),Rect.new(0,0,640,56-h))
    @parameter[3].x = 0;@parameter[3].y = 407   
   
    @parameter[4] = Sprite.new
    @parameter[4].bitmap = Bitmap.new(640,480)
    @parameter[4].bitmap.blt(0,0,RPG::Cache.picture("EXP"),Rect.new(0,0,640,480))
    if $game_party.actors[0].level == 60
      h = 0
    else
      h = $game_party.actors[0].now_exp * 499 / $game_party.actors[0].next_exp
    end
    $game_variables[129] = $game_party.actors[0].level
    @parameter[4].bitmap.blt(0,0,RPG::Cache.picture("exppp"),Rect.new(0,0,h,480))
    @parameter[4].x = 71;@parameter[4].y = 0
    @parameter[4].z += 40
   
    @parameter.each{|e|e.z += 1}
   
    @parameter[5] = Sprite.new
    @parameter[5].bitmap = Bitmap.new(640,480)
    @parameter[5].x = 85
    @parameter[5].y = 395
   
    @parameter[6] = Sprite.new
    @parameter[6].bitmap = Bitmap.new(422,70)
    @parameter[6].bitmap.blt(0,0,RPG::Cache.picture("555"),Rect.new(0,0,422,70))
    @parameter[6].x = 217;@parameter[6].y = 411
   
    @parameter[7] = Sprite.new
    @parameter[7].bitmap = Bitmap.new(640,640)
    @parameter[7].bitmap.blt(0,0,RPG::Cache.picture("bar2"),Rect.new(0,0,640,640))#218,76))
    @parameter[7].x = 0;@parameter[7].y = 0#404#-1
   
    @parameter[8] = Sprite.new
    @parameter[8].bitmap = Bitmap.new(640,640)
    @parameter[8].bitmap.font.size = 12
    @parameter[8].bitmap.font.name = "宋体"
    @parameter[8].bitmap.font.color = Color.new(255,255,255)
    @jueselv = $game_party.actors[0].level
    @parameter[8].bitmap.draw_text(25, 457, 128, 32, "LV.#{@jueselv}")
    @parameter[8].z += 40
   
    @parameter[9] = Sprite.new
    @parameter[9].bitmap = Bitmap.new(640,640)
    @parameter[9].bitmap.font.size = 12
    @parameter[9].bitmap.font.name = "宋体"
    @parameter[9].bitmap.font.color = Color.new(118,187,255)
    @spzhi = $game_variables[128]
    @parameter[9].bitmap.draw_text(594, 456, 128, 32, "#{@spzhi}")
    @parameter[9].z += 40

    @parameter[10] = Sprite.new
    @parameter[10].bitmap = Bitmap.new(640,640)
    @parameter[10].bitmap.font.size = 12
    @parameter[10].bitmap.font.name = "宋体"
    @parameter[10].bitmap.font.color = Color.new(255,255,255)
    if $game_party.actors[0].level == 60
      h = 0
      @parameter[10].bitmap.draw_text(288, 456, 128, 32, "0 / ???")
    else
      h = $game_party.actors[0].next_exp
      @parameter[10].bitmap.draw_text(288, 456, 128, 32, "#{$game_party.actors[0].now_exp} / #{h}")
    end
    #@parameter[10].bitmap.draw_text(288, 456, 128, 32, "#{$game_party.actors[0].now_exp} / #{h}")
    @parameter[10].z += 41
   
    @parameter[11] = Sprite.new
    @parameter[11].bitmap = Bitmap.new(640,480)
    hb = @hp2 * 56 / $game_party.actors[0].maxhp
    hbb = hb
    hbb -= $game_party.actors[0].hp * 56 / $game_party.actors[0].maxhp
    @parameter[11].bitmap.blt(0,0,RPG::Cache.picture("baitiao-hp2"),Rect.new(0,0,640,hbb))
    @parameter[11].x = 0;@parameter[11].y = 463 - hb
    @parameter[11].z += 40
    @parameter[11].opacity = 255
   
    @parameter[12] = Sprite.new
    @parameter[12].bitmap = Bitmap.new(640,480)
    hb = @sp2 * 56 / $game_party.actors[0].maxsp
    hbb = hb
    hbb -= $game_party.actors[0].sp * 56 / $game_party.actors[0].maxsp
    @parameter[12].bitmap.blt(0,0,RPG::Cache.picture("baitiao-sp2"),Rect.new(0,0,640,hbb))
    @parameter[12].x = 0;@parameter[12].y = 463 - hb#407
    @parameter[12].z += 40
    @parameter[12].opacity = 255
   
    @parameter[13] = Sprite.new
    @parameter[13].bitmap = Bitmap.new(640,480)
    @parameter[13].bitmap.blt(0,0,RPG::Cache.picture("baitiao22"),Rect.new(0,0,640,480))
    @parameter[13].x = 0;@parameter[12].y = 0
    @parameter[13].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[5].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[2].bitmap.clear
      @parameter[2].bitmap.blt(0,0,RPG::Cache.picture("HP"),Rect.new(0,0,640,88))
      h = @hp * 56 / $game_party.actors[0].maxhp#88
      @parameter[2].bitmap.blt(0,0,RPG::Cache.picture("HPoo2"),Rect.new(0,0,640,56-h))
      if $hpbaitiao == true
        $hpbaitiao = false
        @parameter[11].bitmap.clear
        hb = @hp2 * 56 / $game_party.actors[0].maxhp
        hbb = hb
        hbb -= h
        @parameter[11].bitmap.blt(0,0,RPG::Cache.picture("baitiao-hp2"),Rect.new(0,0,640,hbb))
        @parameter[11].y = 463 - hb
        @parameter[11].opacity = 255
      end
      return
    when 1
      @parameter[3].bitmap.clear
      @parameter[3].bitmap.blt(0,0,RPG::Cache.picture("SP"),Rect.new(0,0,640,88))
      h = @sp * 56 / $game_party.actors[0].maxsp
      @parameter[3].bitmap.blt(0,0,RPG::Cache.picture("SPoo2"),Rect.new(0,0,640,56-h))
      if $spbaitiao == true
        $spbaitiao = false
        @parameter[12].bitmap.clear
        hb = @sp2 * 56 / $game_party.actors[0].maxsp
        hbb = hb
        hbb -= h
        @parameter[12].bitmap.blt(0,0,RPG::Cache.picture("baitiao-sp2"),Rect.new(0,0,640,hbb))
        @parameter[12].y = 463 - hb
        @parameter[12].opacity = 255
      end
      return
    when 2
      @parameter[4].bitmap.clear
      @parameter[4].bitmap.blt(0,0,RPG::Cache.picture("EXP"),Rect.new(0,0,640,480))
      if $game_party.actors[0].level == 60
        h = 0
      else
        h = $game_party.actors[0].now_exp * 499 / $game_party.actors[0].next_exp
      end
      $game_variables[129] = $game_party.actors[0].level
      @parameter[4].bitmap.blt(0,0,RPG::Cache.picture("exppp"),Rect.new(0,0,h,480))
      @parameter[10].bitmap.clear
      @parameter[10].bitmap.font.color = Color.new(255,255,255)
      if $game_party.actors[0].level == 60
        h = 0
        @parameter[10].bitmap.draw_text(288, 456, 128, 32, "0 / ???")
      else
        h = $game_party.actors[0].next_exp
        @parameter[10].bitmap.draw_text(288, 456, 128, 32, "#{$game_party.actors[0].now_exp} / #{h}")
      end
     # @parameter[10].bitmap.draw_text(288, 456, 128, 32, "#{$game_party.actors[0].now_exp} / #{h}")
      return
     when 3
       @parameter[5].bitmap.clear
       draw_actor_state(@actor,0,0)
       @states = $game_party.actors[0].states
      return
     when 4
       @parameter[8].bitmap.clear
       @jueselv = $game_party.actors[0].level
       @parameter[8].bitmap.draw_text(25, 457, 128, 32, "LV.#{@jueselv}")
      return
     when 5
       @parameter[9].bitmap.clear
       @spzhi = $game_variables[128]
       @parameter[9].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[0].hp
      if @hp > $game_party.actors[0].hp
        @hp2 = @hp
      #  @hp -= 1
        $hpbaitiao = true
      end
      @hp = $game_party.actors[0].hp
  #    if @hp < $game_party.actors[0].hp
   #     @hp += 1
    #  end
      refresh(0)
    end
    if @sp != $game_party.actors[0].sp
      if @sp > $game_party.actors[0].sp
        @sp2 = @sp
   #     @sp -= 1
        $spbaitiao = true
      end
      @sp = $game_party.actors[0].sp
   #   if @sp < $game_party.actors[0].sp
    #    @sp += 1
     # end
      refresh(1)
    end
    @parameter[11].opacity -= 10 if @parameter[11].opacity > 0
    @parameter[12].opacity -= 10 if @parameter[12].opacity > 0
    if @jueselv != $game_party.actors[0].level
      refresh(4)
    end
    if @spzhi != $game_variables[128]
      refresh(5)
    end
    if @exp != $game_party.actors[0].now_exp
      refresh(2)
    end
  end
end
回复

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2010-2-1 10:35:37 | 显示全部楼层
打不开?重新复制脚本
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-15 02:44 , Processed in 0.020096 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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