關於部落格
RPG製作大師XP腳本為主要更新

RPG製作大師VX腳本為其次更新

RPG製作大師VX_Ace目前不考慮

RPG製作大師MV腳本完全沒打算

留言完建議重新整理看看是否顯示

目前不處理本舖外腳本的相關問題

其他相關事項請觀看規定注意事項

本舖未來的經營計畫與VA的支援




var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-37462754-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

  • 303700

    累積人氣

  • 67

    今日人氣

    0

    追蹤人氣

【腳本】圖片顯示傷害數值

使用方法
打開腳本編輯器,對腳本「Main」按下右鍵,選擇插入,會出現1個空白腳本
在空白腳本內貼上以下腳本:

module RPG
  class Sprite < ::Sprite
#=======================================
#★魔劍工舖 - 圖片顯示傷害數值
#轉貼腳本請著名出處:http://blog.yam.com/a870053jjkj/article/23968475
#如果採用在遊戲中,看你高興是否顯示腳本出處,但嚴禁說是自己寫的腳本!!
#=======================================
#●使用者自定設置
SWORD_DAMA_HUE = 100  #當回血時,變更圖片的色相數值(0~360) 
SWORD_DAMA_OX = 80      #傷害顯示X座標修改(數值越大越靠左)
SWORD_DAMA_OY = 40      #傷害顯示Y座標修改(數值越大越上面)
SWORD_DAMA_X = 0           #血條X座標位置修正(正數為右,負數為左)
SWORD_DAMA_Y = 0           #血條Y座標位置修正(正數為下,負數為上)
SWORD_CRIT_X = -2              #會心一擊X座標位置修正(正數為右,負數為左)
SWORD_CRIT_Y = 0              #會心一擊血條Y座標位置修正(正數為下,負數為上)
#詳細設置說明請參考:http://blog.yam.com/a870053jjkj/article/23968475
#=======================================

    def damage(value, critical)
      dispose_damage
      sword = [SWORD_DAMA_X, SWORD_DAMA_Y,
      SWORD_CRIT_X, SWORD_CRIT_Y]
      bitmap = Bitmap.new(160, 48)
      # 設置會心一擊圖片顯示
      sword_critical = RPG::Cache.windowskin("critical")
      if critical
        b = (160 - sword_critical.width) / 2
        bitmap.blt(b, 0, sword_critical, Rect.new(0, 0, 160, 48))
      end
      if value.is_a?(Numeric)
        # ☆傷害數值為常數的情況
        damage_string = value.abs
        # 計算傷害總位數
        a = 9
        digit = 0
        loop do
          digit += 1
          if damage_string <= a
            break
          end
          a = a * 10 + 9
        end
        # 計算每個位數的數值
        sword_digit = []
        a = 0.1
        for i in 1..digit
          a *= 10
        end
        a = a.to_i
        b = 0
        for i in 0...digit
          e = damage_string / a
          e -= b
          sword_digit[i] = e.to_i
          b += e
          b *= 10
          a /= 10
        end
        sword_damage = RPG::Cache.windowskin("damage")
        # 如果傷害為負數就轉移顏色
        if value < 0
          sword_damage.hue_change(SWORD_DAMA_HUE)
        end
        # 設置傷害圖片顯示
        c = 0
        for i in 0...digit
          b = sword_damage.width / 10
          bitmap.blt((160 - (digit * b)) / 2 + c + sword[0], sword_critical.height + sword[1],
          sword_damage, Rect.new(b * sword_digit[i], 0, b, sword_damage.height))
          c += b
        end
      else
        # ☆傷害數值為字符串的情況
        if FileTest.exist?("Graphics/Windowskins/#{value}.png") or
        FileTest.exist?("Graphics/Windowskins/#{value}.PNG")
          # 有發現圖片的場合
          sword_damage = RPG::Cache.windowskin(value)
          b = (160 - sword_damage.width) / 2
          bitmap.blt(b + sword[2], sword_critical.height + sword[3],
          sword_damage, Rect.new(0, 0, 160, 48))
        else
          # 沒發現圖片的場合
          bitmap.font.name = "Arial Black"
          bitmap.font.size = 32
          bitmap.font.color.set(0, 0, 0)
          bitmap.draw_text(-1 + sword[2],
          sword_critical.height-1-9 + sword[3], 160, 36, value, 1)
          bitmap.draw_text(+1 + sword[2],
          sword_critical.height-1-9 + sword[3], 160, 36, value, 1)
          bitmap.draw_text(-1 + sword[2],
          sword_critical.height+1-9 + sword[3], 160, 36, value, 1)
          bitmap.draw_text(+1 + sword[2],
          sword_critical.height+1-9 + sword[3], 160, 36, value, 1)
          bitmap.font.color.set(255, 255, 255)
          bitmap.draw_text(0 + sword[2],
          sword_critical.height-9 + sword[3], 160, 36, value, 1)
        end
      end
      # 顯示位置
      @_damage_sprite = ::Sprite.new(self.viewport)
      @_damage_sprite.bitmap = bitmap
      @_damage_sprite.ox = SWORD_DAMA_OX
      @_damage_sprite.oy = SWORD_DAMA_OY
      @_damage_sprite.x = self.x
      @_damage_sprite.y = self.y - self.oy / 2
      @_damage_sprite.z = 3000
      @_damage_duration = 40
      # 顏色設置恢復
      if value.is_a?(Numeric)
        if value < 0
          sword_damage.hue_change(-SWORD_DAMA_HUE)
        end
      end
    end
  end
end

 
 
圖片範例
傷害數值圖片

也就是顯示傷害的數字圖片,上面這張範例圖實際上只有1張!!(可不要設成10張喔)
第1個必須從0開始,依數字順序設計到數字9
每個數字的間隔距離請計算好,以免發生顯示到別的數字的一部分或是圖片部份被切掉
圖片的寬度沒有限制,但是建議寬度為可以被10整除為佳,圖片高度基本上沒有限制
圖片檔案名稱必須存成【damage】,存成png圖檔
 
會心一擊圖片

也就是當玩家的攻擊成功會心一擊(也就是所謂的暴擊啦~)
才會顯示出來的圖片,上面的範例圖也是只有1張(可不是一英文一張喔...好像再說廢話
圖片的寬度和高度基本上沒有限制
圖片檔案名稱必須存成【critical】,存成png圖檔
(效果就像最上方的頂圖左邊草地的第2個和右上方的圖一樣)
 
自定顯示圖片

RMXP預設的腳本中,其實傷害數值可以直接指定文字(因字體問題而只能顯示英文或數字)
可以參考地圖中顯示傷害數值文章,當你使用本文章的腳本後(不是剛剛提供的那個連接喔)
當你指定傷害為文字時,則系統就會去尋找有沒有該文字相同名稱的圖片
如果找到該圖片,則顯示該那個圖片,如果找不到該圖片,則用RMXP預設的方式顯示出來
舉例好了,假設你用上面那張Miss字樣的圖片好了,存在指定的資料夾後
圖片檔案名稱基本上可以隨便命名,假設將Miss字樣的圖片名稱存成【Miss】好了
(名稱建議只用英文或是數字,圖片寬度和高度一樣沒有限制,但要存成png圖檔!!)
當你要呼叫Miss字樣的圖片之時,只要將傷害數值設成【"Miss"】即可
可使用地圖中顯示傷害數值的腳本,用【$sword_damage = [0, "Miss", 0]】來呼叫看看
如果成功找到檔案名稱為Miss並為png檔時,就顯示那個圖片(如頂圖中間和最左下方)
如果輸入不存在名稱,假設用【$sword_damage = [0, "Apple", 0]】好了(參考頂圖)
如果在指定的資料夾中找不到檔案名稱為Apple的png圖檔時
視同使用RMXP預設的方式顯示出Apple字串(如頂圖左邊草地的第1個)
圖片的數量沒有限制,只要有找到該名稱的圖片,就會顯示那個圖片
 
圖片存入的位置
所有圖片一律存在:你的遊戲資料夾GraphicsWindowskins
 
圖片背景透明
想要透明的部份請用繪圖程式設置透明,如沒有透明功能的繪圖程式的話
請將想要透明的部份用成單一顏色,不可以有任何色差...
(顏色選擇要小心,不要和不想透明的顏色設置的太過接近,以免透明掉不該透明的地方)
然後打開RMXP的媒體庫,左邊選擇「GraphicsWindowskins」
然後按右邊的 [匯入] 按鈕,選擇想要透明的圖片,選擇好按 [確定] 後會跑出匯入窗口
在匯入窗口中,對自己設計的圖片將想要透明的顏色給點一下滑鼠左鍵,然後按 [確定]
則你選擇的該顏色就會被透明化了!!
 
 
使用者自定設置說明
SWORD_DAMA_HUE = 100
當恢復血量時,傷害數值圖片的顏色色相變更設定
可輸入0到360,如果超過360視同從0開始計算
比如你輸入460,則視同為100(460 - 360 = 100)
顏色色相設置可以參考設定事件的角色圖片時,下面的色相條
(效果就像最上方的頂圖右下方那樣)
 
SWORD_DAMA_OX = 80  
設定顯示傷害的窗口的X座標位置,數值設置越大會放置越左邊
相對的,數值設置越小則會放置越右邊(很像是在設置相反的X座標)
 
SWORD_DAMA_OY = 40
設定顯示傷害的窗口的Y座標位置,數值設置越大會放置越上面
相對的,數值設置越小則會放置越下面(很像是在設置相反的Y座標)
 
SWORD_DAMA_X = 0 
如果你認為此腳本默認的傷害數值圖片顯示的位置不太好
可以在這裡調整傷害數值圖片的X座標,正數為往右放置
負數(數值左邊加上-符號為負數)為往左放置
此外顯示文字或是圖片也一樣會受到此設定的修改
 
SWORD_DAMA_Y = 0 
如果你認為此腳本默認的傷害數值圖片顯示的位置不太好
可以在這裡調整傷害數值圖片的Y座標,正數為往下放置
負數(數值左邊加上-符號為負數)為往上放置
此外顯示文字或是圖片也一樣會受到此設定的修改
 
SWORD_CRIT_X = -2
如果你認為此腳本默認的會心一擊圖片顯示的位置不太好
可以在這裡調整會心一擊圖片的X座標,正數為往右放置
負數(數值左邊加上-符號為負數)為往左放置
 
SWORD_CRIT_Y = 0
如果你認為此腳本默認的會心一擊圖片顯示的位置不太好
可以在這裡調整會心一擊圖片的Y座標,正數為往下放置
負數(數值左邊加上-符號為負數)為往上放置
 
 
範例下載
 (yam天空部落空間 檔案類型:RAR - 內為RMXP範例壓縮安裝檔 大小:233KB)
相簿設定
標籤設定
相簿狀態