Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # =============================================================================
- # TheoAllen - Drain Rate
- # Version : 1.0
- # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
- # (This script documentation is written in informal indonesian language)
- # =============================================================================
- ($imported ||= {})[:Theo_DrainRate] = true
- # =============================================================================
- # Change Logs:
- # -----------------------------------------------------------------------------
- # 2014.01.05 - Finished script
- # =============================================================================
- =begin
- Perkenalan :
- Secara default, drain attack pada RMVXA jumlah drainnya adalah sama seperti
- jumlah attacknya. Dalam artian, jika sebuah skill tipenya adalah HP Drain,
- jika skill tersebut menghasilkan damage 100, maka user skill tersebut akan
- mendapatkan HP 100 juga.
- Dengan script ini kamu bisa spesifikasikan drain rate skill tersebut. Semisal
- hanya akan mendapatkan 25% dari total damage.
- Cara penggunaan :
- Pasang script ini di bawah material namun di atas main
- Gunakan tag seperti ini pada notebox skill / item
- <drain rate: n%>
- Dimana n adalah angka untuk rate. Misalnya :
- <drain rate: 35%>
- Terms of Use :
- Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
- keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
- dipake buat komersil, jangan lupa, gw dibagi gratisannya.
- =end
- # =============================================================================
- # Tidak ada konfigurasi
- # =============================================================================
- class RPG::UsableItem
- def drain_rate
- if @drain_rate
- return @drain_rate
- end
- note[/<drain[-_\s]+rate\s*:\s*(\d+)\%>/]
- @drain_rate = $1.to_i || 100
- return @drain_rate
- end
- end
- class Game_ActionResult
- # ---------------------------------------------------------------------------
- # Overwrite make damage
- # ---------------------------------------------------------------------------
- def make_damage(value, item)
- @critical = false if value == 0
- @hp_damage = value if item.damage.to_hp?
- @mp_damage = value if item.damage.to_mp?
- @mp_damage = [@battler.mp, @mp_damage].min
- if item.damage.drain?
- @hp_drain = @hp_damage
- @hp_drain *= (item.drain_rate * 0.01)
- @hp_drain = @hp_drain.to_i
- end
- @mp_drain = @mp_damage if item.damage.drain?
- @hp_drain = [@battler.hp, @hp_drain].min
- @success = true if item.damage.to_hp? || @mp_damage != 0
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment