irpg Community
เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html)
+--- Forum: RPG Maker Engine School (https://irpg.in.th/forum-7.html)
+--- Thread: เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? (/thread-501.html)



เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? - beammagic - 08-20-2012

คือผมเขียน Code ขึ้นมาเอง (สร้างClass ใหม่) ซึ่งทำงานเกี่ยวกับ วันเวลา อะไรพวกนี้ แต่ทีนี้ตอน save เกมเหมือนมันจะไม่ได้เซฟในส่วนนี้ไปด้วย พอปิดเกมแล้วโหลดsave ขึ้นมา มันก็ฟ้อง error พอไปดูมันก็ฟ้องว่า error ที่ Class ของผมที่สร้างขึ้นมา เหมือนมันหาไม่เจอ

อยากถามว่าจะทำยังไงให้เวลาเซฟเกมมันเซฟ ในส่วนที่ผมเขียน Code เพิ่มเข้าไปด้วย T[]T

ป.ล. ภาพที่แนบมาคือมัน error หลังจากกดโหลดเซฟเกมครับ

ผมใช้ RPG Maker XP ครับ


RE: เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? - luvikung - 08-20-2012

สร้างหรือแก้ไขให้เป็น Global Variable ครับ ใส่ไว้ในส่วน $game_player เวลาเซฟ มันจะติดไปด้วยครับ
ที่เห็นขึ้น error แบบนั้น ผมชัวร์ว่าไม่ได้ประกาศตัวแปร Global Variable แน่นอน


RE: เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? - beammagic - 08-20-2012

ผมก็สร้างเป็น Global นะครับ แต่ไม่ค่อยเข้าใจที่บอกว่าให้วางไว้ใน $game_player คือตรงไหนอ่ะครับ
ถ้าผมเข้าใจไม่ผิดคือในClass Game_Player รึเปล่า? ถ้าใช่มันต้องวางตรง def ไหนอ่า

คือผมเรียก class ของผมด้วย event โดยใช้คำสั่ง $statusBar = Window_Date.new

อ่อลืมบอกผมใช้ RMXP ครับ


RE: เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? - Alphaforce - 08-20-2012

เพราะตอนเซฟ โปรแกรมไม่ได้เซฟครับ ลองเปิดสคริปต์หน้า Scene_Save ดูครับ
# Write each type of game object
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)

นี่เป็นรายชื่อ Global variable ที่เกมจะเซฟให้ ถ้าจะให้เกมเซฟตัวแปรเพิ่ม ก็แค่พิมเพิ่มเข้าไปครับ แค่นั้นเอง
แล้วอย่าลืม!! ตอน load เกมด้วย Scene_load เพิ่มต่อส่วนนี้ด้วย
# Read each type of game object
$game_system = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen = Marshal.load(file)
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
$game_troop = Marshal.load(file)
$game_map = Marshal.load(file)
$game_player = Marshal.load(file)

ประมาณนี้ครับ.... แต่ระวังนิดนึงว่า Global Var ที่จะเซฟต้องถูกสร้างขึ้นมาก่อนนะครับ (คิดว่าช่วงต้นๆเกมหล่ะ ไม่ก็ต้นเริ่มเกมสั่งให้มันสร้างตัวแปรเปล่าๆไว้ก่อนก็ได้)


RE: เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? - beammagic - 08-20-2012

คราวนี้ พอกด save แล้วมัน error แบบนี้ครับ

ใน Scene_Save ผมเพิ่ม Marshal.dump($statusBar, file)
ส่วนใน Scene_Load ผมเพิ่ม $statusBar = Marshal.load(file)

ก่อนจะเซฟเกมมันเข้าเกมได้ปกติแล้วก็ใช้ event สร้างเหตุการณ์เรียกใช้สคริป $statusBar=Window_Date.new

ครับผม


RE: เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? - luvikung - 08-22-2012

ประกาศตัวแปรยังครับ? อีกอย่างเขียน code เซฟแบบนั้นมันไม่น่าจะเข้าไปในไฟล์นะ = =


RE: เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? - beammagic - 08-22-2012

ประกาศเป็น global แล้วครับ เศร้าใจ ทำไมกันหนอ ลองมันหมดทุกทางแล้ว ถ้าใครจะกรุณาเขียนโค๊ดยกตัวอย่างให้ดูเลย มันน่าจะเข้าใจกว่าอ่ะครับ

#ซุยดุ่ยแล้วTT^TT


RE: เขียนcode แต่ตอนsave มันไม่saveด้วย ทำไงดี?? - luvikung - 08-22-2012

สามารถแปะดาวโหลด code มาได้มั้ยครับ? เดี๋ยวให้ผู้เชี่ยวชาญดูให้