hengmana   12-23-2013, 09:48 PM
#1
ตัวแปรและสวิตช์ คงอยู่ตลอดไป

สคริปต์เขียนโดย : br_lemes
ลิงค์ต้นฉบับ : [XP][VX] http://www.mundorpgmaker.com.br/forum/in...c=117955.0

ข้อตกลงการนำไปใช้งาน :
ไม่ทราบแน่ชัด แต่ลงเครดิตผู้เขียนสคริปต์ไว้หน่อยก็ดี

สกรีนช๊อต :
ไม่มี
รายละเอียด :
สคริปต์นี้จะช่วยทำให้ค่าของ ตัวแปรหรือสวิตช์ ที่ถูกกำหนดไว้ไม่เปลี่ยนแปลงไป
เมื่อปิดเกมเริ่มเล่นเกมใหม่ ก็ยังคงอยู่อย่างนั้น เหมาะสำหรับการสร้างระบบคะแนนสูงสุด
หรือจบเกมครั้งแรกแล้วอาจปลดล็อคเนื้อหาบางอย่าง+โบนัสเพิ่มขึ้นมาเมื่อเริ่มเล่นเกมใหม่อีกครั้ง

โค๊ดสคริปต์ [XP][VX]
Code:
# Persistência de variáveis e switches
# por br_lemes

# Este script permite definir variáveis e switches que vão
# manter o seu valor mesmo quando reiniciar o jogo (game over),
# escolher um novo jogo, ou continuar um jogo diferente.
# Os valores serão salvos (se tornarão persistentes)
# automaticamente ao salvar o jogo, ao dar game over ou manualmente ao
# chamar o método "persist_save".

# O objetivo é permitir implementar um HighScore ou outras coisas
# que sua imaginação permitir.

$RMVX = $TEST != nil

# Coloque a lista de ID das variáveis e switches aqui
$PERSIST_VARIABLES = [21, 22, 23]
$PERSIST_SWITCHES  = []

$PERSIST_NAME = $RMVX ? "persist.rvdata" : "persist.rxdata"

def persist_save
  persist_data = [{},{}]
  for i in 0..$PERSIST_VARIABLES.size - 1
    persist_data[0][i] = $game_variables[$PERSIST_VARIABLES[i]]
  end
  for i in 0..$PERSIST_SWITCHES.size - 1
    persist_data[1][i] = $game_switches[$PERSIST_SWITCHES[i]]
  end
  save_data(persist_data, $PERSIST_NAME)
end

def persist_load
  return if !FileTest.exist?($PERSIST_NAME)
  persist_data = load_data($PERSIST_NAME)
  for i in 0..$PERSIST_VARIABLES.size - 1
    $game_variables[$PERSIST_VARIABLES[i]] = persist_data[0][i]
  end
  for i in 0..$PERSIST_SWITCHES.size - 1
    $game_switches[$PERSIST_SWITCHES[i]] = persist_data[1][i]
  end
  $game_map.refresh
end

class Scene_Title
  alias persist_command_new_game command_new_game
  def command_new_game
    persist_command_new_game
    persist_load
  end
end

if $RMVX
  class Scene_File
    alias persist_do_save do_save
    def do_save
      persist_do_save
      persist_save
    end
    alias persist_do_load do_load
    def do_load
      persist_do_load
      persist_load
    end
  end
else
  class Scene_Load
    alias persist_on_decision on_decision
    def on_decision(filename)
      persist_on_decision(filename)
      persist_load
    end
  end

  class Scene_Save
    alias persist_on_decision on_decision
    def on_decision(filename)
      persist_on_decision(filename)
      persist_save
    end
  end
end

class Scene_Gameover
  alias persist_main main
  def main
    persist_save
    persist_main
  end
end

วิธีการใช้งาน :
ให้ใส่โค๊ด ไว้ในช่องสคริปต์(F11)ระหว่าง Scene_Debug กับ Main

โค๊ดบรรทัดที่ 17,18 ไว้ใส่กำหนด ID ของตัวแปรและสวิตช์ ที่คงอยู่ไว้ใน[] เช่น
$ PERSIST_VARIABLES = [ 21 , 22 , 23 ]
$ PERSIST_SWITCHES = [ ]

+++++++++++++++++++++++++++++++++++++++++++

+เพิ่ม ถ้าของ RMVX Ace ก็อันนี้ วิธีใช้เหมื่อนกัน
http://www.rpgmakervxace.net/topic/6462-...e-by-skul/
.
This post was last modified: 08-28-2015, 12:03 AM by hengmana.
pomza2000   12-24-2013, 08:52 AM
#2
โฮก แจ่มมากเลยฮะพี่เห็ด เอาไปทำHigh Scoreสบายเลย แพนด้าจ๊าก

[Image: LinFc.png]
Mysticphoenix   12-24-2013, 09:42 AM
#3
โอ้ว เมพขิงๆๆ

ต่อไปนี้ก็ทำโหมดหลังเล่นจบ, บลาๆ สบายแล้ว
This post was last modified: 12-24-2013, 09:43 AM by Mysticphoenix.

[Image: webboard%20signature1_zpskhtut2jg.png]
การทำอาหารที่อร่อยที่สุด และเดือดร้อนชาวบ้านมากที่สุด กำลังจะเริ่มขึ้น
hackerdew   12-24-2013, 03:05 PM
#4
มันเหมือนกับเอาตัวแปร เก็บเป็นไฟล์ๆ หนึ่งเลยแหะ
และเวลาเริ่มเกมส์ใหม่ทุกครั้ง เกมจะมาดึงไฟล์ตัวนี้ แล้วใส่เป็นตัวแปร

[On Going]
PROJECT : DownMorana 3 : Revenge [Status : 50%]
PROJECT : SEVEN ROOM (Horror) [Status : 30%]

[Complete]
มินิเกมคริสต์มาส : SickSanta : วันนี้พี่ขอเป็นซานต้านะ
  
Users browsing this thread: 3 Guest(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.