TheoAllen

Theo - Drain Rate

Jan 19th, 2014
406
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.67 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Drain Rate
  3. # Version : 1.0
  4. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  5. # (This script documentation is written in informal indonesian language)
  6. # =============================================================================
  7. ($imported ||= {})[:Theo_DrainRate] = true
  8. # =============================================================================
  9. # Change Logs:
  10. # -----------------------------------------------------------------------------
  11. # 2014.01.05 - Finished script
  12. # =============================================================================
  13. =begin
  14.  
  15.   Perkenalan :
  16.   Secara default, drain attack pada RMVXA jumlah drainnya adalah sama seperti
  17.   jumlah attacknya. Dalam artian, jika sebuah skill tipenya adalah HP Drain,
  18.   jika skill tersebut menghasilkan damage 100, maka user skill tersebut akan
  19.   mendapatkan HP 100 juga.
  20.  
  21.   Dengan script ini kamu bisa spesifikasikan drain rate skill tersebut. Semisal
  22.   hanya akan mendapatkan 25% dari total damage.
  23.  
  24.   Cara penggunaan :
  25.   Pasang script ini di bawah material namun di atas main
  26.   Gunakan tag seperti ini pada notebox skill / item
  27.  
  28.   <drain rate: n%>
  29.   Dimana n adalah angka untuk rate. Misalnya :
  30.   <drain rate: 35%>
  31.  
  32.   Terms of Use :
  33.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  34.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  35.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.    
  36.  
  37. =end
  38. # =============================================================================
  39. # Tidak ada konfigurasi
  40. # =============================================================================
  41. class RPG::UsableItem
  42.  
  43.   def drain_rate
  44.     if @drain_rate
  45.       return @drain_rate
  46.     end
  47.     note[/<drain[-_\s]+rate\s*:\s*(\d+)\%>/]
  48.     @drain_rate = $1.to_i || 100
  49.     return @drain_rate
  50.   end
  51.  
  52. end
  53.  
  54. class Game_ActionResult
  55.   # ---------------------------------------------------------------------------
  56.   # Overwrite make damage
  57.   # ---------------------------------------------------------------------------
  58.   def make_damage(value, item)
  59.     @critical = false if value == 0
  60.     @hp_damage = value if item.damage.to_hp?
  61.     @mp_damage = value if item.damage.to_mp?
  62.     @mp_damage = [@battler.mp, @mp_damage].min
  63.     if item.damage.drain?
  64.       @hp_drain = @hp_damage
  65.       @hp_drain *= (item.drain_rate * 0.01)
  66.       @hp_drain = @hp_drain.to_i
  67.     end
  68.     @mp_drain = @mp_damage if item.damage.drain?
  69.     @hp_drain = [@battler.hp, @hp_drain].min
  70.     @success = true if item.damage.to_hp? || @mp_damage != 0
  71.   end
  72.  
  73. end
Advertisement
Add Comment
Please, Sign In to add comment