- 18/7/03
- 2,315
- 128
Nếu sử dụng script ATB, bạn sẽ thấy các skill poison quá imba do thực hiện sát thương dựa trên HP Max. Nếu ko sử dụng Sideview Battler, mọi chuyện sẽ dễ dàng hơn rất nhiều nên mình ko nói tới. Mình viết script này để tạo một state giống như Poison nhưng sát thương dựa trên HP hiện có.
Đầu tiên tạo một state mới, đặt tên tùy ý, nhớ đừng check vào Slip Damage
Trong script *SBS Configurations
Tìm
Bên dưới thêm vào
Tìm
Bên dưới thêm vào
Nhớ sửa số 22 thành ID state bạn đã tạo.
Sau đó tạo script có nội dung như sau ngay dưới script *Sideview 2
Đầu tiên tạo một state mới, đặt tên tùy ý, nhớ đừng check vào Slip Damage
Trong script *SBS Configurations
Tìm
Mã:
return ["SLIPDAMAGE"]
Mã:
when 22 # Slip Damage based on Current HP
return ["SLIPDAMAGCHP"]
Tìm
Mã:
return [["hp", 0, 10, true, true]]
Mã:
when 22 # Poison
return [["hp", 0, 10, true, true]]
Nhớ sửa số 22 thành ID state bạn đã tạo.
Sau đó tạo script có nội dung như sau ngay dưới script *Sideview 2
Mã:
#==============================================================================
# ■ Poison Edited Addon by Zell Dinch
# 07.01.2009
#------------------------------------------------------------------------------
class Scene_Battle < Scene_Base
alias turn_end_poison turn_end
def turn_end
for member in $game_party.members + $game_troop.members
member.clear_action_results
next unless member.exist?
actor = member.actor?
current_damage = 0
for state in member.states
next unless state.extension.include?("SLIPDAMAGCHP")
for ext in state.slip_extension
if ext[0] == "hp"
base_damage = ext[1] + member.hp * ext[2] / 100
current_damage += base_damage + base_damage * (rand(5) - rand(5)) / 100
slip_pop = ext[3]
slip_dead = ext[4]
slip_damage_flug = true
end
end
end
current_damage = member.hp - 1 if current_damage >= member.hp && slip_dead = false
member.hp -= current_damage
@spriteset.set_damage_pop(actor, member.index, current_damage) if slip_pop
member.perform_collapse if member.dead?
member.clear_action_results
end
@status_window.refresh
wait(55) if slip_damage_flug
slip_damage_flug = false
turn_end_poison
end
end