Enu's SBS Battle Panorama Add-On
สคริปต์เขียนโดย :
Angelix
ลิงค์ต้นฉบับ :
http://www.irpgth.com/community/School/2776-...Enu-SB
รายละเอียด :
สคริปต์เสริมระบบ Battle Panorama สำหรับ Enu SBS Tanketai
มันคือระบบเปลี่ยนพื้นหลังเวลาใช้สกิล เหมาะกับท่าไม้ตายเป็นอย่างยิ่ง
สกรีนช๊อต :
http://imageshack.us/clip/my-videos/19/testb.mp4/
วิธีการใช้งาน :
หาอ่านในสคริปต์เอาน่อ
ข้อตกลงการนำไปใช้งาน :
อย่างน้อยๆก็ใส่ชื่อ
Angelix ลงในเครดิตด้วยล่ะ
โค๊ดสคริปต์
Code:
#================================================
# Setup Battle Panorama
# เป็นการตั้งฐานข้อมูลของ Battle Panorama ที่จะใช้
#================================================
# $pano[ID] = [filename,hue,speed_x,speed_y]
# filename = ชื่อไฟล์ภาพในโฟลเดอร์ Graphics/Panoramas
# hue = ค่า hue ของภาพ
# speed_x,y = ความเร็วในแนว x,y
$pano[0] = ["001-Sky01",0,4,0]
$pano[1] = ["002-Sky02",0,8,0]
#================================================
# Setup Skill
# เป็นการตั้งว่าสกิลไหนจะแสดง Battle Panorama อะไร
#================================================
# ใช้ SkillID=>PanoID,SkillID=>PanoID ไปเรื่อยๆ
$skill_pano = {57=>0}
#================================================
class Spriteset_Battle
alias ang_acbs_add_sprbt_init initialize
def initialize
ang_acbs_add_sprbt_init
@battle_pano = Plane.new(@viewport1)
@pano_par = [0,0]
update
end
alias ang_acbs_add_sprbt_updt update
def update
return if @battle_pano.nil?
@battle_pano.ox -= @pano_par[0]
@battle_pano.oy -= @pano_par[1]
ang_acbs_add_sprbt_updt
end
alias ang_acbs_add_sprbt_dispo dispose
def dispose
@battle_pano.dispose
ang_acbs_add_sprbt_dispo
end
def setup_pano(pano_id)
return if pano_id.nil?
data = $pano[pano_id]
return if data.nil?
@battle_pano.bitmap = RPG::Cache.panorama(data[0],data[1])
@pano_par = [data[2],data[3]]
end
def clear_pano
@battle_pano.bitmap.dispose if !(@battle_pano.bitmap.nil? or @battle_pano.bitmap.disposed?)
@battle_pano.bitmap = nil
@pano_par = [0,0]
end
end
class Scene_Battle
alias ang_sbsad_mkskres make_skill_action_result
def make_skill_action_result
skl_id = @active_battler.current_action.skill_id
if !$skill_pano.keys.include?(skl_id)
ang_sbsad_mkskres
return
end
skill = $data_skills[skl_id]
if skill.plus_state_set.include?(1)
for member in $game_party.actors + $game_troop.enemies
next if member.immortal
next if member.dead?
member.dying = true
end
else
immortaling
end
return unless @active_battler.skill_can_use?(skill.id)
target_decision(skill)
@active_battler.consum_skill_cost(skill)
@status_window.refresh
@spriteset.set_action(@active_battler.actor?, @active_battler.index, skill.base_action)
@help_window.set_text(skill.name, 1) unless skill.extension.include?("HELPHIDE")
@spriteset.setup_pano($skill_pano[skl_id])
playing_action
@common_event_id = skill.common_event_id
end
alias ang_sbsad_actionend action_end
def action_end
ang_sbsad_actionend
if @active_battler.current_action.kind == 1
@spriteset.clear_pano
end
end
end