OX論壇
Would you like to react to this message? Create an account in a few clicks or log in to continue.

腳本衝突問題@@

2 posters

向下

腳本衝突問題@@ Empty 腳本衝突問題@@

發表  阿隨 周二 五月 25, 2010 12:22 am

目前遊戲套用的腳本並沒有什麼太大的問題,但是戰鬥中若我方腳色或敵方怪物中了毒這個狀態(內建),中毒的腳色再進行攻擊,就會與戰鬥數值美化腳本衝突。
如圖:)https://2img.net/r/ihimizer/i/bugw.png/

戰鬥數值美化腳本內容:
代碼:
# ダメージ表示改造(RTAB用) ver 1.05
# 配布元・サポートURL
# http://members.jcom.home.ne.jp/cogwheel/

class Scene_Battle
  alias :atb_setup_original :atb_setup
  def atb_setup
    for path in ["num", "critical", "miss", "levelup", "newskill", "learning"]
      RPG::Cache.numeric(path)
    end
    atb_setup_original
  end
end

module RPG
  class Sprite < ::Sprite
    WIDTH = 18                  # 文字幅
    HEIGHT = 12                # クリティカルの文字・高さ
    def damage(value, critical, type = 0)
      if value.is_a?(Numeric)
        damage_string = value.abs.to_s
      else
        damage_string = value.to_s
      end
      if value.is_a?(Numeric) and value >= 0
        if type == 0
          if critical
            d_bitmap = draw_damage(value, 1)
          else
            d_bitmap = draw_damage(value, 0)
          end
        else
          d_bitmap = draw_damage(value, 2)
        end
      else
        if type == 0
          d_bitmap = draw_damage(value, 3)
        else
          d_bitmap = draw_damage(value, 4)
        end
      end
      if type == 2
        d_bitmap = draw_damage(value, 5)
      end
      num = @_damage.size
      if type != 2
        @_damage.push([::Sprite.new, 40, 0, rand(40) - 20, rand(30) + 50])
      else
        @_damage.push([::Sprite.new, 40, 0, rand(20) - 10, rand(20) + 60])
      end
      @_damage[num][0].bitmap = d_bitmap
      @_damage[num][0].ox = d_bitmap.width / 2
      @_damage[num][0].oy = d_bitmap.height / 2
      if self.battler.is_a?(Game_Actor)
        @_damage[num][0].x = self.x + self.viewport.ox
        @_damage[num][0].y = self.y - self.oy / 2
      else
        @_damage[num][0].x = self.x + self.viewport.rect.x -
                            self.ox + self.src_rect.width / 2
        @_damage[num][0].y = self.y - self.oy * self.zoom_y / 2 +
                            self.viewport.rect.y
        @_damage[num][0].zoom_x = self.zoom_x
        @_damage[num][0].zoom_y = self.zoom_y
        @_damage[num][0].z = 3000
      end
    end
    def draw_damage(value, element)
      width = 0
      if value.is_a?(Numeric)
        value = value.abs
        fig = value.to_s.size - 1
        file = RPG::Cache.numeric("num")
        d_width = WIDTH * fig + file.rect.width / 10
        if element == 1
          critical = RPG::Cache.numeric("critical")
          d_width = [d_width, critical.rect.width].max
          d_bitmap = Bitmap.new(d_width, HEIGHT + file.rect.height / 5)
          d_x = (d_width - critical.rect.width) / 2
          d_bitmap.blt(d_x, 0, critical, critical.rect)
        else
          d_bitmap = Bitmap.new(d_width, HEIGHT + file.rect.height / 5)
        end
        d_x = ((d_width) - (WIDTH * fig + file.rect.width / 10)) / 2
        while fig >= 0
          d_bitmap.blt(d_x, HEIGHT, file, Rect.new((value / (10 ** fig)) *
            file.rect.width / 10, element * file.rect.height / 5,
            file.rect.width / 10, file.rect.height / 5))
          d_x += WIDTH
          value %= 10 ** fig
          fig -= 1
        end
      else
        case value
        when ""
          return Bitmap.new(1, 1)
        when "Miss"
          file = RPG::Cache.numeric("miss").dup
        when "Level up!"
          file = RPG::Cache.numeric("levelup").dup
        when "New Skill!"
          file = RPG::Cache.numeric("newskill").dup
        when "Learning!"
          file = RPG::Cache.numeric("learning").dup
        else
          file = RPG::Cache.numeric(value).dup
        end
        d_bitmap = file
      end
      return d_bitmap
    end
  end
  module Cache
    def self.numeric(filename)
      self.load_bitmap("Graphics/String/", filename)
    end
  end
end

補充:套用RTAB用的戰鬥數值美化腳本是因為我的戰鬥系統是同家的CTB戰鬥腳本。
是否就是因為是RTAB用的,所以才與遊戲系統本身中毒的狀態衝突呢?

請各位大大替小弟解惑吧@@
謝謝奉上(啥鬼)
阿隨
阿隨
賣彩色內褲的小鱉三
賣彩色內褲的小鱉三

文章數 : 10
注冊日期 : 2010-05-12
年齡 : 32
來自 : 任何地方= =?

回頂端 向下

腳本衝突問題@@ Empty 回復: 腳本衝突問題@@

發表  Q—S.T. 周二 五月 25, 2010 1:56 am

齒輪之城的傷害顯示改造有分內建用和RTAB用的
Q—S.T.
Q—S.T.
精通豆漿拳的正義漢
精通豆漿拳的正義漢

文章數 : 326
注冊日期 : 2008-04-21

回頂端 向下

腳本衝突問題@@ Empty 回復: 腳本衝突問題@@

發表  阿隨 周二 五月 25, 2010 6:10 pm

Q—S.T. 寫到:齒輪之城的傷害顯示改造有分內建用和RTAB用的

這個我知道-.-而且我試著套用過內建用的傷害顯示改造腳本,問題是一但腳色或怪物附加了中毒狀態(連續傷害的狀態),該中毒腳色若再繼續執行動作就會跳出腳本出錯的問題-.-

因此,不才的小弟我來尋求解決方案@@

總整理:不管是內建用或RTAB用的傷害險是改造腳本都有這個問題~.~
阿隨
阿隨
賣彩色內褲的小鱉三
賣彩色內褲的小鱉三

文章數 : 10
注冊日期 : 2010-05-12
年齡 : 32
來自 : 任何地方= =?

回頂端 向下

腳本衝突問題@@ Empty 回復: 腳本衝突問題@@

發表  Q—S.T. 周三 五月 26, 2010 12:37 am

嗯...自己測試沒問題,而且照理講同家寫的應該都會把衝突情況考慮進去
(註:剛剛看了說明,CTB是搭配RTAB用的傷害改造沒錯)

除了CTB還有套其他腳本嗎?
Q—S.T.
Q—S.T.
精通豆漿拳的正義漢
精通豆漿拳的正義漢

文章數 : 326
注冊日期 : 2008-04-21

回頂端 向下

腳本衝突問題@@ Empty 回復: 腳本衝突問題@@

發表  阿隨 周三 五月 26, 2010 3:59 pm

Q—S.T. 寫到:嗯...自己測試沒問題,而且照理講同家寫的應該都會把衝突情況考慮進去
(註:剛剛看了說明,CTB是搭配RTAB用的傷害改造沒錯)

除了CTB還有套其他腳本嗎?

我套用的腳本幾乎跟小風大做的勇者物語:世界樹之心套用的腳本相同,我另外還有套用跟隨系統、選單半透明不過這兩個腳本應該不至於跟傷害改造衝突才對吧-.-

勇者物語:世界樹之心
http://sites.google.com/site/rpgdesigners/

另外我想請問,若要做到跟此遊戲一樣的HP/SP連續恢復效果要怎麼用或修改什麼嗎? 看了說明還是有點不懂= =
或許是因為此遊戲有修改過連續傷害/回覆的內建腳本 才不至於與傷害改造腳本衝突呢? 如果真的是這樣,那麼我該如何修改或解決問題呢@@?
阿隨
阿隨
賣彩色內褲的小鱉三
賣彩色內褲的小鱉三

文章數 : 10
注冊日期 : 2010-05-12
年齡 : 32
來自 : 任何地方= =?

回頂端 向下

腳本衝突問題@@ Empty 回復: 腳本衝突問題@@

發表  Q—S.T. 周四 五月 27, 2010 2:34 am

>我另外還有套用跟隨系統、選單半透明不過這兩個腳本應該不至於跟傷害改造衝突才對吧-.-
要不要開個新專案套用看看?我把上述的腳本擺在一起了還是沒出問題...|||


>另外我想請問,若要做到跟此遊戲一樣的HP/SP連續恢復效果要怎麼用或修改什麼嗎? 看了說明還是有點不懂= =
簡單講就是在連續傷害這個方法多加幾個判斷式,然後比照中毒的寫法,扣血寫成補血就可以(或扣氣、補氣)
打開勇者物語的專案找到 slip_damage_effect 這個方法看一下吧,沒意外應該是從6R的教學文學的

不過那篇教學的作法有兩個小問題:
1.補氣的狀態會跟著顯示0的傷害值(不過這可能和CTB及RTAB本身的設計有關)
2.後面順位的連續傷害效果會取代掉前面的(不過因為作者的設計這問題迴避掉了...)

前者好解決,後者...
我的作法是設一個暫時的變數然後算所有狀態的總和

嗯,是說你要的效果愚大剛好有寫,請去置頂串挖(套RTAB的應該可以)


>或許是因為此遊戲有修改過連續傷害/回覆的內建腳本 才不至於與傷害改造腳本衝突呢? 如果真的是這樣,那麼我該如何修改或解決問題呢@@?
出錯那行用來叫出圖片的,那行如果出問題應該每彈出一次損傷就出事了...
錯誤原因:該用字符串的地方代了nil進去

也就是說...中毒傷害不存在這樣...(要怎麼辦到我也很好奇)
Q—S.T.
Q—S.T.
精通豆漿拳的正義漢
精通豆漿拳的正義漢

文章數 : 326
注冊日期 : 2008-04-21

回頂端 向下

腳本衝突問題@@ Empty 回復: 腳本衝突問題@@

發表  阿隨 周四 五月 27, 2010 10:21 pm

謝謝Q—S.T.大的解答!

我找到解決方法了!多虧了你提醒我搜索slip_damage_effect的關係。
因為當初很懶直接複製了勇者物語:世界樹之心的腳本,所以我自製的遊戲才出了一些問題= =
另外,我想要的效果腳本也找到了,謝謝提醒!

做遊戲果然困難重重阿!謝謝你們的解答!不介意我以後一直丟問題吧(你好意思?)

總之百般的感謝!

話說我現在才知道Q—S.T.大你有幫SoulSpace靈界-四元素之祈願畫臉圖啊!我反應還真慢= =(我R界小咖嘛-.-)
或許以後會徵求您幫我繪圖呢!
阿隨
阿隨
賣彩色內褲的小鱉三
賣彩色內褲的小鱉三

文章數 : 10
注冊日期 : 2010-05-12
年齡 : 32
來自 : 任何地方= =?

回頂端 向下

腳本衝突問題@@ Empty 回復: 腳本衝突問題@@

發表  Q—S.T. 周五 五月 28, 2010 3:21 pm

>做遊戲果然困難重重阿!謝謝你們的解答!不介意我以後一直丟問題吧(你好意思?)
有問題盡量發啊,這裏很缺水(拖
當然問題不是每次都能解答就是(再拖

>話說我現在才知道Q—S.T.大你有幫SoulSpace靈界-四元素之祈願畫臉圖啊!我反應還真慢= =(我R界小咖嘛-.-)
其實不知道也沒關係,我也是後來才加進去的

>或許以後會徵求您幫我繪圖呢!
我還有自己的專案要弄(眼神死
Q—S.T.
Q—S.T.
精通豆漿拳的正義漢
精通豆漿拳的正義漢

文章數 : 326
注冊日期 : 2008-04-21

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章