ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้) *เวอร์ชั่นปรับปรุง - Muge9thD -  08-11-2012
 
 
[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 
 
 
 
RE: ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้) *เวอร์ชั่นปรับปรุง - Shinryu -  08-11-2012
 
 
ไม่ใช่ของผม เป็นสคริปต์สู้ด้านข้าง minkoff ตะหาก
 
 
 
RE: ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้) *เวอร์ชั่นปรับปรุง - ACSII -  08-11-2012
 
 
อันนี้คือถ้าใช้สกิลแล้วพื้นหลังเป็นPanorama แล้วเปลี่ยนกลับอย่างเดิมก็ดีนะ คือผมเคยลองใช้กับ ฉากต่อสู้เป็น Panorama คือมันเปลี่ยนแล้วไม่เปลี่ยนกลับน่ะครับ เดียวนำไปลองก่อน 
ขอบคุณมาก
 
 
 
RE: ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้) *เวอร์ชั่นปรับปรุง - luvikung -  08-11-2012
 
 
แจ๋วมากครับ =[]=b
 
 
 
RE: ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้) *เวอร์ชั่นปรับปรุง - Muge9thD -  08-11-2012
 
 
@ASCII ตัวนี้ผมแก้ไขบั๊กพวกนั้นเรียบร้อยแล้วครับ สบายใจหายห่วงได้เลย 
@Shinryu แหม พิมพ์ผิดนะครับ #แก้ไขแล้วนะครับ 
ปล. นี่คือหนึ่งในระบบที่ผมแก้ไขมาอย่างภูมใจ(ถึงจะไม่ได้เขียนเองก็เหอะ/Yao1) 
 
*Edit แก้ไข code นิดหน่อยฮะ(ลืมใส่ Class Game_Temp ที่ใช้เก็บตัวแปร)
 
 
 
RE: ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้) *เวอร์ชั่นปรับปรุง - Shinryu -  08-11-2012
 
 
@ACSII 
ตัวนี้เปลี่ยนไปเปลี่ยนกลับน้อ เปลี่ยนกลับหลังใช้สกิลจบ 
 
ระบบนี้ผมเคยทำแบบเหตุการณ์ จนสคริปเตอร์ทนไม่ไหวมาทำให้
 
 
 
RE: ใช้สกิลแล้วเปลี่ยนพื้นหลัง(พื้นหลังสามารถเลื่อนได้) *เวอร์ชั่นปรับปรุง - ACSII -  08-11-2012
 
 
ใช้ได้แล้วครับ ขอบคุณมาก รักและคิดถึง จุ๊ฟๆๆๆๆ
 
 
 
 |