- 注册时间
- 2010-1-15
- 最后登录
- 2010-4-4
②入门
- 积分
- 76
|
请问:
这个脚本出什么问题了?
这是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 |
|