irpg Community

Full Version: เปลี่ยนร่างฮีโร่เมื่อเลเวลถึงที่กำหนด
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
[XP]เปลี่ยนร่างฮีโร่เมื่อเลเวลถึงที่กำหนด

สคริปต์เขียนโดย : thetitsueng
ลิงค์ต้นฉบับ : Link


รายละเอียด :
สคริปต์นี้เป็นสคริปต์ที่จะทำให้เมื่อถึงเลเวลที่กำหนด จะเปลี่ยนตัวละคร จาก ID หนึ่งไปอีก ID หนึ่ง

สกรีนช๊อต :
ไม่มีน่อ

วิธีการใช้งาน :
=> วิธีใช้ : เอาไปไว้เหนือ Main และใต้ Scene_Debug
=> วิธีตั้งค่า : วิธีใช้ให้ไปที่ ฐานข้อมูล>ฮีโร่ แล้วที่ชื่อฮีโร่ให้ใส่ตามแบบฟอร์มด้านล่าง
<ชื่อฮีโร่>||[l<ใส่เลเวลที่ฮีโร่จะเปลี่ยนร่าง>][i<ใส่ไอดีของฮีโร่ที่ต้องการให้เปลี่ยนเมื่อถึงเลเวลที่กำหนด>]
เช่น นายไข่นุ้ย||[l4][i6]
แปลได้ว่า เมื่อนายไข่นุ้ยมีเลเวลถึง 4 ก็จะเปลี่ยนเป็นฮีโร่ที่มีไอดี 6

ข้อตกลงการนำไปใช้งาน :
อย่างน้อยๆก็ใส่ชื่อ thetitsueng ลงในเครดิตด้วยล่ะ



โค๊ดสคริปต์
Code:
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
# [XP]เปลี่ยนร่างฮีโร่เมื่อเลเวลถึงที่กำหนด
# By thetitsueng
# Ver 1.00 [29/9/2552]
# http://necz.net
# [email protected]
#=====================================================
=begin
------------------------------------------------------
=> วิธีใช้ : เอาไปไว้เหนือ Main และใต้ Scene_Debug
=> วิธีตั้งค่า : สคริปต์นี้เป็นสำหรับ เปลี่ยนร่างฮีโร่เมื่อถึงเลเวลที่กำหนด
วิธีใช้ให้ไปที่ ฐานข้อมูล>ฮีโร่ แล้วที่ชื่อฮีโร่ให้ใส่ตามแบบฟอร์มด้านล่าง
<ชื่อฮีโร่>||[l<ใส่เลเวลที่ฮีโร่จะเปลี่ยนร่าง>][i<ใส่ไอดีของฮีโร่ที่ต้องการให้เปลี่ยนเมื่อถึงเลเวลที่กำหนด>]
  เช่น  นายไข่นุ้ย||[l4][i6]
แปลได้ว่า เมื่อนายไข่นุ้ยมีเลเวลถึง 4 ก็จะเปลี่ยนเป็นฮีโร่ที่มีไอดี 6
------------------------------------------------------
=end
#=====================================================
# *ส่วนการตั้งค่า
module Thetitsueng
  Reset_exp = true     #ถ้าตั้งเป็น true เมื่อฮีโร่เปลี่ยนร่างจะรีเช็ตค่าประสบการณ์ ถ้าตั้งเป็น false จะไม่รีเช็ต
end
# *จบส่วนการตั้งค่า
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
class Game_Map
  alias update_ori update
  def update
    update_ori
    for i in 0...$game_party.actors.size
     if $id_hero_index.include?($game_party.actors[i].id)
        a = $game_party.actors[i].id
        if $game_party.actors[i].level >= $level_hero[a]
          exp = $game_party.actors[i].exp unless Thetitsueng::Reset_exp
          $game_party.actors[i] = $game_actors[$id_hero[a]]
          $game_party.actors[i].exp = exp unless Thetitsueng::Reset_exp
          $game_player.refresh
        end
     end
    end
  end
end
class Scene_Title
  alias command_new_game_ori command_new_game
  def command_new_game
    $level_hero = [] ; $id_hero = [] ; $id_hero_index = []
    command_new_game_ori
    for i in 1...$data_actors.size
      x = $game_actors[i].name
      id_index = id = level = 0
      if x.scan(/\[i([0-9]+)\]/).size > 0 : id_index  = i end
      if x.scan(/\[i([0-9]+)\]/).size > 0 : id = $1.to_i end
      if x.scan(/\[l([0-9]+)\]/).size > 0 : level = $1.to_i end
      $game_actors[i].name.gsub!(/\|\|[\S]+/){|s| s=""}
      $id_hero_index[i] = id_index
      $level_hero[i] = level
      $id_hero[i] = id
    end
  end
end
class Scene_Save < Scene_File
  alias write_save_data_ori write_save_data
  def write_save_data(file)
    write_save_data_ori(file)
    Marshal.dump($level_hero, file)
    Marshal.dump($id_hero, file)
    Marshal.dump($id_hero_index, file)
  end
end
class Scene_Load < Scene_File
  alias read_save_data_ori read_save_data
   def read_save_data(file)
     read_save_data_ori(file)
     $level_hero = Marshal.load(file)
     $id_hero = Marshal.load(file)
     $id_hero_index = Marshal.load(file)
   end
end
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
# [XP]เปลี่ยนร่างฮีโร่เมื่อเลเวลถึงที่กำหนด
# By thetitsueng
#:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
เหมือนโปเกม่อน อ้ะเปล่าคับ