[XP]ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้) + MOG_Battle Panorama 1.5
สคริปต์เขียนโดย :
thetitsueng*ปรับปรุงแก้ไขเพิ่มเติมโดย
Muge9thD
ลิงค์ต้นฉบับ :
Link
รายละเอียด :
มันคือระบบเปลี่ยนพื้นหลังเวลาใช้สกิล ซึ่งเหมาะกับท่าไม้ตายเป็นอย่างยิ่ง แถมด้วยระบบ Battle Panorama ที่ทำให้ใช้ Panorama ในฉากต่อสู้ได้ด้วย!!!
สคริปต์นี้ถูกสร้างมาเพื่อระบบต่อสู้พื้นฐาน และแก้ไขให้ใช้งานร่วมกับระบบต่อสู้ด้านข้างที่ท่าน Shinryu นำมาแจกได้เท่านั้น ผมไม่ขอรับรองว่าจะใช้ได้กับระบบอื่นหรือไม่
สกรีนช๊อต :
ไม่มีนะ แต่มีที่คล้ายๆกันอยู่ในกระทู้นี่
สคริปต์ใช้ทักษะแล้วพื้นหลังเลื่อน ใช้ได้กับ Enu SBS Tanketai XP
วิธีการใช้งาน :
สำหรับสคริปต์ใช้สกิลแล้วเปลี่ยนพื้นหลัง
- 1.นำสคริปต์นี้ไปวางไว้เหนือ Main และใต้ Scene_Debug
- 2.เตรียมภาพพื้นหลังสกิลที่มีสกุล .png ไปไว้ในโฟล์เดอร์ Graphics/Panoramas
- 3.ตั้งค่าสกิลในส่วนนี้
Code:
@skill_ids = {
1 => ["001-Sky01",-30,0],
7 => ["001-Sky01",0,5],
10 => ["004-Cloudysky01",5,7] #สกิลสุดท้ายที่ตั้งค่าจะไม่มี , ต่อท้าย
#เพิ่มตรงนี้
}
ตามรูปแบบนี้
Code:
ไอดี => ["ชื่อภาพ",ความเร็วแนวนอน(ขวาไปซ้าย),ความเร็วแนวตั้ง(ล่างขึ้นบน)],
เช่น
Code:
1 => ["001-Sky01",-30,0],
สำหรับสคริปต์ MOG_Battle Panorama
ตั้งค่าในส่วนนี้
Code:
module MOG
#ตัวแปรที่เก็บค่าความเร็วของการเลื่อนซ้ายขวา
BAT_PANO_VARIABLE_ID_X = 53
#ตัวแปรที่เก็บค่าความเร็วของการเลื่อนขึ้นลง
BAT_PANO_VARIABLE_ID_Y = 54
#สวิตช์เช็คการสุ่มการเคลื่อนไหวของพื้นหลัง
BAT_PANO_RAND_SWITCH_ID = 28
#เวลาที่พื้นหลังจะสุ่ม (เป็นวินาที)
BAT_PANO_RAND_TIME = 2 #(s)
# สวิตช์เช็คการซูมการเคลื่อนไหวของพื้นหลัง
BAT_PANO_ZOOM_SWITCH_ID = 29
#เวลาที่พื้นหลังจะซูม (เป็นวินาที)
BAT_PANO_ZOOM_TIME = 2 #(s)
#ความเร็วในการซูมพื้นหลัง
BAT_PANO_ZOOM_SPEED = 0.007
end
*อนึ่ง Panorama ในฉากต่อสู้จะใช้ตัวเดียวกับ Map
ข้อตกลงการนำไปใช้งาน :
อย่างน้อยๆก็ใส่ชื่อ
thetitsueng และ
Muge9thD ลงในเครดิตด้วยล่ะ
โค๊ดสคริปต์
Code:
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
# [XP]ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้) * Edited Edition
# By thetitsueng[new]
# Ver 1.01 [26/3/2553]
#+--------------------------+
# ||==changelog==||
# Ver 1.00 by thetitsueng[25/3/2553]
# Ver 1.01 by thetitsueng[26/3/2553]
# - ปรับให้ใช้ได้กับสคริปต์สู้ด้านข้าง minkoff
# Ver 1.01m by Muge9thD[ไม่ทราบวันที่แก้ไข]
# - ปรับให้ใช้ MOG - Battle Panorama ได้อย่างสมบูรณ์
# - ปรับให้ใช้ได้ร่วมกับสคริปต์ Connected Attacking
# - แก้ไขบัค F12
#+--------------------------+
# http://necz.net
# [email protected]
#=====================================================
=begin
------------------------------------------------------
=> วิธีตั้งค่า :
- 1.นำสคริปต์นี้ไปวางไว้เหนือ Main และใต้ Scene_Debug
- 2.เตรียมภาพพื้นหลังสกิลที่มีสกุล .png ไปไว้ในโฟล์เดอร์ Graphics/Panoramas
||+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+||
||*** สคริปต์นี้จำเป็นต้องใช้ร่วมกับ สคริปต์ MOG - Battle Panorama ***||
||+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+||
------------------------------------------------------
=end
#=====================================================
# *ส่วนการตั้งค่า
#=====================================================
class Scene_Battle
alias initialize_new main
alias make_skill_action_result_new make_skill_action_result
alias update_phase4_step6_new update_phase4_step6
def main
@skill_ids = nil
# ห้ามแก้ไขบรรทัดด้านบน
@skill_ids = {
1 => ["001-Sky01",-30,0],
7 => ["001-Sky01",0,5],
10 => ["004-Cloudysky01",5,7] #สกิลสุดท้ายที่ตั้งค่าจะไม่มี , ต่อท้าย
#เพิ่มตรงนี้
}
@minkoff = 1 # ถ้าใช้ร่วมกับสคริปต์ต่อสู้ด้านข้าง minkoff ให้เปลี่ยนเป็น 1
# สามารถเพิ่มหรือแก้ไขได้โดยใช้แบบฟอร์มด้านล่าง
# ไอดี => ["ชื่อภาพ",ความเร็วแนวนอน(ขวาไปซ้าย),ความเร็วแนวตั้ง(ล่างขึ้นบน)],
# เช่น 1 => ["001-Sky01",-10,0]
# หมายถึงเมื่อใช้สกิลไอดี 1 จะเปลี่ยนภาพพื้นหลังเป็นภาพ 001-Sky01 และจะเลื่อนจากซ้ายไปขวาด้วยความเร็ว 10
#=====================================================
# *จบส่วนการตั้งค่า
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
initialize_new
end
def make_skill_action_result(battler = @active_battler, plus_id = 0)
@sid = $data_skills[battler.current_action.skill_id].id
if @skill_ids[@sid] != nil
@skill_pano_swicth_c = @skill_ids[@sid]
if $game_temp.hitcheckbatpano == 0
@panorama_name_cache = $game_map.panorama_name
@battleback_name1_cache = $game_map.battleback_name
@battleback_name2_cache = $game_temp.battleback_name
@bat_pano_variable_id_x_cache = $game_variables[MOG::BAT_PANO_VARIABLE_ID_X]
@bat_pano_variable_id_y_cache = $game_variables[MOG::BAT_PANO_VARIABLE_ID_Y]
@bat_pano_switch_rand_cache = $game_switches[MOG::BAT_PANO_RAND_SWITCH_ID]
@bat_pano_switch_zoom_cache = $game_switches[MOG::BAT_PANO_ZOOM_SWITCH_ID]
end
$game_map.panorama_name = @skill_ids[@sid][0]
$game_variables[MOG::BAT_PANO_VARIABLE_ID_X] = @skill_ids[@sid][1]
$game_variables[MOG::BAT_PANO_VARIABLE_ID_Y] = @skill_ids[@sid][2]
$game_switches[MOG::BAT_PANO_RAND_SWITCH_ID] = false
$game_switches[MOG::BAT_PANO_ZOOM_SWITCH_ID] = false
$game_temp.battleback_name = $game_map.battleback_name = ""
$game_temp.hitcheckbatpano +=1
end
make_skill_action_result_new if @minkoff == 0
make_skill_action_result_new(battler, plus_id) if @minkoff == 1
end
def update_phase4_step6(battler = 0)
update_phase4_step6_new if @minkoff == 0
update_phase4_step6_new(battler) if @minkoff == 1
if @skill_pano_swicth_c != nil
$game_variables[MOG::BAT_PANO_VARIABLE_ID_X] = @bat_pano_variable_id_x_cache
$game_variables[MOG::BAT_PANO_VARIABLE_ID_Y] = @bat_pano_variable_id_y_cache
$game_switches[MOG::BAT_PANO_RAND_SWITCH_ID] = @bat_pano_switch_rand_cache
$game_switches[MOG::BAT_PANO_ZOOM_SWITCH_ID] = @bat_pano_switch_zoom_cache
$game_map.panorama_name = @panorama_name_cache
$game_map.battleback_name = @battleback_name1_cache
$game_temp.battleback_name = @battleback_name2_cache
$game_temp.hitcheckbatpano = 0
@skill_pano_swicth_c = nil
end
end
end
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
# [XP]ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้)
# By thetitsueng[new]
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
#_______________________________________________________________________________
# MOG_Battle Panorama 1.5
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# CARACTER?STICAS
# - Adiciona um panorama em movimento no campo de batalha.
# - Zoom.
# - Movimento aleat?rio.
#
# UTILIZA??O
# - Defina um panorama qualquer no Tilesets.
# - Modifique o valor da vari?vel que corresponder? a velocidade
# do panorama de fundo.
# - ? necess?rio que o Battleback tenha alguma transpar?ncia
# para que a visualiza??o do panorama seja poss?vel.
#_______________________________________________________________________________
module MOG
#Defini??o da vari?vel que definir? a velocidade na horizontal.
BAT_PANO_VARIABLE_ID_X = 53
#Defini??o da vari?vel que definir? a velocidade na vertical.
BAT_PANO_VARIABLE_ID_Y = 54
#ID da Switch que ativa o movimento aleat?rio do panorama.
BAT_PANO_RAND_SWITCH_ID = 28
#Tempo para mudar de dire??o do panorama.
BAT_PANO_RAND_TIME = 2 #(s)
#ID da Switch que ativa o zoom no panorama.
BAT_PANO_ZOOM_SWITCH_ID = 29
#Tempo para mudar de zoom (IN para OUT).
BAT_PANO_ZOOM_TIME = 2 #(s)
#Poder (Velocidade) do zoom.
BAT_PANO_ZOOM_SPEED = 0.007
end
#_______________________________________________________________________________
$mogscript = {} if $mogscript == nil
$mogscript["Battle_Panorama"] = true
################
# Scene_Battle #
################
class Scene_Battle
alias mog04_main main
def main
@mb = Plane.new
@mb.bitmap = RPG::Cache.panorama($game_map.panorama_name,0) rescue nil
@mb.z = -1
@mbr = 0
@bat_pano_x = 0
@bat_pano_y = 0
@bat_pano_speed_x = 1
@bat_pano_speed_y = 1
@bat_pano_zoom_x = 0
@bat_pano_zoom_y = 0
@bat_pano_zoom_time_x = 0
@bat_pano_zoom_time_y = 0
mog04_main
@mb.dispose
end
alias mog04_update update
def update
@mb.bitmap = RPG::Cache.panorama($game_map.panorama_name,0) rescue nil
if $game_switches[MOG::BAT_PANO_RAND_SWITCH_ID] == true
@mbr += 1
if @mbr > 40 * MOG::BAT_PANO_RAND_TIME
@mbr = 0
case rand(2)
when 0
@bat_pano_x = 0
when 1
@bat_pano_x = 1
end
case rand(2)
when 0
@bat_pano_y = 0
when 1
@bat_pano_y = 1
end
case rand(2)
when 0
@bat_pano_speed_x = 1
when 1
@bat_pano_speed_x = 2
end
case rand(2)
when 0
@bat_pano_speed_y = 1
when 1
@bat_pano_speed_y = 2
end
end
if @bat_pano_x == 0
@mb.ox += $game_variables[MOG::BAT_PANO_VARIABLE_ID_X] * @bat_pano_speed_x
else
@mb.ox -= $game_variables[MOG::BAT_PANO_VARIABLE_ID_X] * @bat_pano_speed_x
end
if @bat_pano_y == 0
@mb.oy += $game_variables[MOG::BAT_PANO_VARIABLE_ID_Y] * @bat_pano_speed_y
else
@mb.oy -= $game_variables[MOG::BAT_PANO_VARIABLE_ID_Y] * @bat_pano_speed_y
end
else
@mb.ox += $game_variables[MOG::BAT_PANO_VARIABLE_ID_X]
@mb.oy += $game_variables[MOG::BAT_PANO_VARIABLE_ID_Y]
end
if $game_switches[MOG::BAT_PANO_ZOOM_SWITCH_ID] == true
if @bat_pano_zoom_x > 1
@bat_pano_zoom_x = 0
end
if @bat_pano_zoom_y > 1
@bat_pano_zoom_y = 0
end
@bat_pano_zoom_time_x += 1
@bat_pano_zoom_time_y += 1
if @bat_pano_zoom_time_x > 40 * MOG::BAT_PANO_ZOOM_TIME
@bat_pano_zoom_time_x = 0
@bat_pano_zoom_x += 1
end
if @bat_pano_zoom_time_y > 40 * MOG::BAT_PANO_ZOOM_TIME
@bat_pano_zoom_time_y = 0
@bat_pano_zoom_y += 1
end
if @bat_pano_zoom_x == 0
@mb.zoom_x += MOG::BAT_PANO_ZOOM_SPEED
elsif @bat_pano_zoom_x == 1
@mb.zoom_x -= MOG::BAT_PANO_ZOOM_SPEED
end
if @bat_pano_zoom_y == 0
@mb.zoom_y += MOG::BAT_PANO_ZOOM_SPEED
elsif @bat_pano_zoom_y == 1
@mb.zoom_y -= MOG::BAT_PANO_ZOOM_SPEED
end
if @mb.zoom_x > 2.0
@mb.zoom_x = 2.0
elsif @mb.zoom_x < 1.0
@mb.zoom_x = 1.0
end
if @mb.zoom_y > 2.0
@mb.zoom_y = 2.0
elsif @mb.zoom_y < 1.0
@mb.zoom_y = 1.0
end
end
mog04_update
end
end
class Game_Temp
attr_accessor :hitcheckbatpano
alias hitcheckinitialize initialize
def initialize
hitcheckinitialize
@hitcheckbatpano = 0
end
end