Project1

标题: 【腳本】敵我攻擊以顏色區分的判斷要加在哪個部分? [打印本页]

作者: 燕征    时间: 2016-3-22 02:38
标题: 【腳本】敵我攻擊以顏色區分的判斷要加在哪個部分?
本帖最后由 燕征 于 2016-3-22 16:56 编辑

關於攻擊數據的圖形的顯示都是在這個腳本(片段)

RUBY 代码复制
  1. #==============================================================================
  2. # ■class Sprite
  3. #==============================================================================   
  4.   class Sprite < ::Sprite  
  5.   #-------------------------------------------------------------------
  6.   # ● 執行損傷
  7.   #---------------------------------------------------------------------   
  8.     def damage(value,critical,sp_damage=nil)
  9.       dispose_damage
  10.       if value.is_a?(Numeric)
  11.         damage_string = value.abs.to_s
  12.       else
  13.         damage_string = value.to_s
  14.       end
  15.       bitmap = Bitmap.new(160, 48)
  16.       bitmap.font.name = "Arial Black"
  17.       bitmap.font.size = 32
  18.       bitmap.font.color.set(0, 0, 0)
  19.       bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  20.       bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  21.       bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  22.       bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  23.       if value.is_a?(Numeric) and value < 0
  24.         bitmap.font.color.set(176, 255, 144)
  25.       else
  26.         bitmap.font.color.set(255, 255, 255)
  27.       end
  28.       bitmap.draw_text(0, 12, 160, 36, damage_string, 1)      
  29.       if sp_damage != nil
  30.         bitmap.font.color.set(0, 0, 0)
  31.         bitmap.draw_text(-1, 16-1, 160, 36, sp_damage.to_s, 1)
  32.         bitmap.draw_text(+1, 16-1, 160, 36, sp_damage.to_s, 1)
  33.         bitmap.draw_text(-1, 16+1, 160, 36, sp_damage.to_s, 1)
  34.         bitmap.draw_text(+1, 16+1, 160, 36, sp_damage.to_s, 1)
  35.         bitmap.font.color.set(0, 255, 255)
  36.         bitmap.draw_text(0, 16, 160, 36, sp_damage.to_s, 1)
  37.       end      
  38.       if critical
  39.         bitmap.font.size = 20
  40.         bitmap.font.color.set(0, 0, 0)
  41.         bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
  42.         bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
  43.         bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
  44.         bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
  45.         bitmap.font.color.set(255, 255, 255)
  46.         bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
  47.       end
  48.       @_damage_sprite = ::Sprite.new(self.viewport)
  49.       @_damage_sprite.bitmap = bitmap
  50.       @_damage_sprite.ox = 80
  51.       @_damage_sprite.oy = 20
  52.       @_damage_sprite.x = self.x
  53.       @_damage_sprite.y = self.y - self.oy / 2
  54.       @_damage_sprite.z = 3000
  55.       @_damage_duration = 40
  56.     end
  57.   end
  58. end


然而判斷主角或者怪物挨揍的腳本(片段)會去掉用上面的顯示(# 寫入動畫與執行延遲 我不知道是不是相關的)

RUBY 代码复制
  1. # 決定損傷目標
  2.     if self.is_a?(Game_Actor)
  3.       s_event = $game_player
  4.     else
  5.       s_event = event
  6.     end
  7.     # 設置事件損傷
  8.     if self.damage != nil
  9.       s_event.damage = self.damage
  10.       s_event.critical = self.critical
  11.       s_event.damage_pop  = true
  12.       self.damage = nil
  13.       self.critical = false
  14.     end
  15.     # 攻速計算
  16.     attack_speed = Integer(10 - attacker.agi/999.00*20)
  17.     # 寫入動畫與執行延遲
  18.     ani_id = attacker.animation2_id
  19.     if $data_animations[ani_id] != nil
  20.       a = [$data_animations[ani_id].frame_max * 2 + attack_speed,2].max
  21.       if attacker.is_a?(Game_Actor)
  22.         event.actor_count = a
  23.         event.animation_id = ani_id
  24.       else
  25.         event.delay_count = a
  26.         if self.is_a?(Game_Actor)
  27.           $game_player.animation_id = ani_id
  28.         else
  29.           event.animation_id = ani_id
  30.         end
  31.       end      
  32.     end


我覺得在第二部分的腳本已經判斷好誰受傷了,不知道是不是可以在這邊直接竄改第一部份用來顯示顏色的那句bitmap.font.color.set(0, 0, 0)
可以的話是怎麼使用呢?




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