Project1

标题: 夜想曲·改中的敌人血条如何修改成这样? [打印本页]

作者: ProfesstionR    时间: 2009-5-15 20:22
标题: 夜想曲·改中的敌人血条如何修改成这样?
夜想曲·改中的敌人血条如何修改成这样?



↑ 也就是多层HP条,并且扣了的HP条用白色条过渡!!!


急求!!! [LINE]1,#dddddd[/LINE]此贴于 2009-5-29 16:02:42 被版主凌辰提醒,请楼主看到后对本贴做出回应。
作者: 君少    时间: 2009-5-15 20:28
又是夜想曲·改
我保证,有90%会得不到答案
作者: hitlerson    时间: 2009-5-15 20:41
我也搞过这个脚本,简单问题就简单说下
  1. #==============================================================================
  2. # ■ ARPG_Actor
  3. #------------------------------------------------------------------------------
  4. #  处理ARPG角色的类。
  5. #==============================================================================
  6. class ARPG_Actor
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对象
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     @actor = $game_party.actors[0]
  12.     @hp = @actor.hp
  13.     @sp = @actor.sp
  14.     @exp = @actor.now_exp
  15.     @states = @actor.states
  16.     @parameter = []
  17.     @sprite = Sprite.new
  18.     @long = 40 ; @long_t = [@actor.name.size * 7, 78].min
  19.     @sprite.bitmap = Bitmap.new(@long+@long_t+2,@long*2+18)
  20.     #Mess_Text.visible = true
  21.     #Mess_Text.ini
  22.     steup
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 主处理
  26.   #--------------------------------------------------------------------------
  27.   def steup
  28.     refresh(0)
  29.     #if !$scene.is_a?(Scene_Key)
  30.     #  @key_window = Window_KeyCommand.new
  31.     #  @key_window.refresh($game_party.actors[0])
  32.     #end
  33.     #if !$scene.is_a?(Scene_Item_Key)
  34.     #  @item_window = Window_Item_KeyCommand.new
  35.     #  @item_window.refresh($game_party.actors[0])
  36.     #end
  37.   end
  38.   def visible=(val)
  39.     #@key_window.visible = val if !@key_window.nil?
  40.     #@item_window.visible = val if !@item_window.nil?
  41.     @parameter.each{|pict|pict.visible = val}
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 释放
  45.   #--------------------------------------------------------------------------
  46.   def dispose
  47.     #Mess_Text.dispose
  48.     #Mess_Text.visible = false
  49.     #@key_window.dispose if !@key_window.nil?
  50.     #@item_window.dispose if !@item_window.nil?
  51.     @sprite.bitmap.dispose
  52.     @sprite.dispose
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 描绘状态
  56.   #     actor : 角色
  57.   #     x     : 描画目标 X 坐标
  58.   #     y     : 描画目标 Y 坐标
  59.   #     width : 描画目标的宽
  60.   #--------------------------------------------------------------------------
  61.   def draw_actor_state(actor, x, y, width = 120)
  62.     pos = 0
  63.     for i in @actor.states
  64.       if $data_states[i].name == "战斗不能"
  65.         next
  66.       end
  67.       bitmap = RPG::Cache.icon($data_states[i].name)
  68.       @parameter[5].bitmap.blt(x+pos*bitmap.width, y, bitmap, Rect.new(0,0,bitmap.width,bitmap.height))
  69.     pos += 1
  70.     end
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 更新数值变化
  74.   #--------------------------------------------------------------------------
  75.   def refresh(type)
  76.     @sprite.bitmap.clear
  77.     if $game_variables[5] > 1
  78.       @sprite.x = $game_player.screen_x - (@long+@long_t)/2
  79.       @sprite.y = $game_player.screen_y - @long*2
  80.       @sprite.z = 9000
  81.    
  82.       @sprite.bitmap.fill_rect(@long_t/2+0,@long*2+ 4,@long+2,6,Color.new(255,255,255,255))
  83.       @sprite.bitmap.fill_rect(@long_t/2+1,@long*2+ 5,@long,  4,Color.new(20,20,20,255))
  84.       w = @actor.hp * @long / @actor.maxhp
  85.       w_man = @actor.hp_man * @long / @actor.maxhp
  86.       @sprite.bitmap.fill_rect(@long_t/2+1,@long*2+ 5,w_man,4,Color.new(150,0,0,160))
  87.       @sprite.bitmap.fill_rect(@long_t/2+1,@long*2+ 5,w,    4,Color.new(255,20,20,255))
  88.    
  89.       @sprite.bitmap.fill_rect(@long_t/2+0,@long*2+12,@long+2,6,Color.new(255,255,255,255))
  90.       @sprite.bitmap.fill_rect(@long_t/2+1,@long*2+13,@long,  4,Color.new(20,20,20,255))
  91.       u = @actor.sp * @long / @actor.maxsp
  92.       u_man = @actor.sp_man * @long / @actor.maxsp
  93.       @sprite.bitmap.fill_rect(@long_t/2+1,@long*2+13,u_man,4,Color.new(0,0,155,160))
  94.       @sprite.bitmap.fill_rect(@long_t/2+1,@long*2+13,u,    4,Color.new(20,20,255,255))
  95.       if $game_variables[5] > 0
  96.         @sprite.bitmap.font.size = 12
  97.         @sprite.bitmap.font.color.set(100, 300, 0,255)
  98.         @sprite.bitmap.draw_text((@long+@[email protected]*6)/2,0,@actor.nicheng.size*6,20,@actor.nicheng,1)
  99.         @sprite.bitmap.font.size = 14
  100.         #设置名字颜色随状态更改
  101.         hong = 1.0*w/@long ; x = hong > 0.5 ? 1 : 4 ; y = x == 1 ? 1 : 0
  102.         @sprite.bitmap.font.color.set(255, 155*y+100*x*hong, 255*hong, 255)
  103.         # 中毒的颜色#
  104.         @sprite.bitmap.draw_text((@long+@[email protected]*6)/2,16,@actor.name.size*6,20,@actor.name,1)
  105.         #@sprite.bitmap.draw_text((@long+@[email protected]*6)/2,23,@actor.name.size*6,20,hong.to_s,1)
  106.       end
  107.     end
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 刷新
  111.   #--------------------------------------------------------------------------
  112.   def update
  113.     Mess_Text.update
  114.     #if $refresh["states"]
  115.     #  refresh(3)
  116.     #  $refresh["states"] = false
  117.     #end
  118.     #if $refresh["item"]
  119.     #  @item_window.refresh(@actor)
  120.     #  $refresh["item"] = false
  121.     #end
  122.     #if $refresh["skill"]
  123.     #  @key_window.refresh(@actor)
  124.     #  $refresh["skill"] = false
  125.     #end
  126.     if @actor.states.size > 0
  127.       for i in @actor.states
  128.         if @actor.states_time[i] > 0
  129.           @actor.states_time[i] -= 1
  130.         end
  131.         if @actor.states_time[i] <= 0
  132.           @actor.remove_state(i)
  133.         end
  134.       end
  135.       if @actor.states.size > 0 and Graphics.frame_count%10 == 0
  136.         $game_party.check_map_slip_damage
  137.       end
  138.     end
  139.     if Input.trigger?(Input::CTRL)
  140.       Mess_Text.clear
  141.       return
  142.     end
  143.     if Input.trigger?(Input::SHIFT)
  144.       Mess_Text.visible = !Mess_Text.visible
  145.       return
  146.     end
  147. #=begin
  148.     if $game_player.moving?
  149.       refresh(0)
  150.     end
  151.     if @hp != $game_party.actors[0].hp
  152.       if @hp > $game_party.actors[0].hp
  153.         @hp -= 1
  154.       end
  155.       if @hp < $game_party.actors[0].hp
  156.         @hp += 1
  157.       end
  158.       refresh(0)
  159.     end
  160.     if @sp != $game_party.actors[0].sp
  161.       if @sp > $game_party.actors[0].sp
  162.         @sp -= 1
  163.       end
  164.       if @sp < $game_party.actors[0].sp
  165.         @sp += 1
  166.       end
  167.       refresh(1)
  168.     end
  169.     if @exp != $game_party.actors[0].now_exp
  170.       if @exp > $game_party.actors[0].now_exp
  171.         @exp -= 1
  172.       end
  173.       if @exp < $game_party.actors[0].now_exp
  174.         @exp += 1
  175.       end
  176.       refresh(2)
  177.     end
  178. #=end
  179.   end
  180. end
复制代码


初始化ACTOR时多初始化2个新属性 actor.sp_man   actor.hp_man
作者: ProfesstionR    时间: 2009-5-15 20:45
以下引用hitlerson于2009-5-15 12:41:03的发言:

我也搞过这个脚本,简单问题就简单说下


初始化ACTOR时多初始化2个新属性 actor.sp_man   actor.hp_man



不是修改ARPG_Emeny类吗?不是改敌人HP条成多层HP条吗?
作者: ProfesstionR    时间: 2009-6-3 02:01
我承认我自顶了,不过是帖子沉了而顶




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1