มีสคริป คะแนน และ ค่าพลัง ของ ผู้เล่นไหมครับ - 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: มีสคริป คะแนน และ ค่าพลัง ของ ผู้เล่นไหมครับ (/thread-2967.html) |
มีสคริป คะแนน และ ค่าพลัง ของ ผู้เล่นไหมครับ - snowhero - 10-16-2016 มีสคริป คะแนน และ ค่าพลัง ของ ผู้เล่นไหมครับ ผมมี ของ xp แต่ไปใส่ ใน vx แล้วมัน Error และ อีกอันนึ่งมี vx ace มันก็ Error เหมือนกันครับ ของ vx ace ที่ error ?27? NameError??? uninitialized constant Scene_Map::SceneManager อันนี้คือ สคริป vx ace class ScoreWindow < Window_Base def initialize super(0, 0, window_width, window_height) makeScore refresh self.opacity=0 end def window_width return 200 end def window_height return 100 end def refresh contents.clear makeScore end def makeScore text=sprintf("Score: %d", $game_variables[1]) draw_text(0, 0, 200, line_height, text) end end class Scene_Map < Scene_Base def start super SceneManager.clear $game_player.straighten $game_map.refresh $game_message.visible = false create_spriteset create_all_windows @menu_calling = false makeWindow end def makeWindow @myWindow=ScoreWindow.new end def update super $game_map.update(true) $game_player.update $game_timer.update @spriteset.update update_scene if scene_change_ok? if $update==1 @myWindow.refresh end if $showScore==0 @myWindow.hide end if $showScore==1 @myWindow.show end end end ส่วนจะแก้ ของ xp หรือ vx ace ง่ายกว่ากัน หรือมีวิธีไหนที ให้มันแสดงคะแนน และค่าพลัง ในเกม รบกวนด้วยนะครับ RE: มีสคริป คะแนน และ ค่าพลัง ของ ผู้เล่นไหมครับ - splendith - 10-16-2016 คิดว่าถ้าโมจาก VX Ace ไป VX น่าจะง่ายกว่า อยากลองช่วยแต่ติดตรงที่ผมไม่มี License ของ VX นี่สิ *0* ว่าแต่อยากรู้ทำไมถึงใช้ VX หรือครับ แหะๆ RE: มีสคริป คะแนน และ ค่าพลัง ของ ผู้เล่นไหมครับ - Nazuth - 10-16-2016 ของxpไปใส่ในvxไม่ได้และของvxไปใส่ในvxaตรงๆเลยก็ไม่ได้ต้องแปลงเอา สำหรับระบบประมาณนี้ใช้ตัวแปรแล้ววางอีเวนท์เอาน่าจะง่ายกว่านะ RE: มีสคริป คะแนน และ ค่าพลัง ของ ผู้เล่นไหมครับ - splendith - 10-17-2016 ผมดูจากโค้ดนับคะแนนที่ให้มาคิดว่าปัญหาเยอะ 1. มีการใช้ global variable เยอะ และมีค่าเริ่มต้น nil ซึ่งไม่ปลอดภัยมาก 2. score ไม่ update ทันทีเมื่อตัวแปรเปลี่ยน (ผมลองใน Ace เวลาเปลี่ยนตัวแปรคะแนน ต้องเข้าออกเมนู คะแนนถึงจะอัพเดต แต่จากการแกะโค้ด คิดว่าต้องเปลี่ยนค่า $update เป็น 1 คะแนนถึงอัพเดต ซึ่งอาจเกิดปัญหาที่กล่าวไปในข้อ 1. ในอนาคต) 3. โมให้ไปใช้ได้ในเวอร์ชันอื่นยากมากๆ เพราะใช้วิธีการ overwrite เยอะจัด ทำให้โค้ดซับซ้อนและอาจมีโอกาสมีปัญหาในอนาคต (ถ้าสนใจลองอ่านรายละเอียดเกี่ยวกับ overwrite / alias ที่นี่จ้า) ผมเลยเขียนขึ้นใหม่ครับ แสดงทั้งคะแนนและ HP ของตัวละคร น่าจะใช้งานได้ทั้ง VX / VX Ace โดยมี Config 6 จุด SHOW_SWITCH: ใส่หมายเลข id สวิตซ์ที่ใช้เปิด-ปิด การแสดงระบบคะแนน เวลาจะ เปิด-ปิด การแสดงจะได้ไม่ยาก เพียงสั่งเปิด-ปิด switch ที่ต้องการใน event SCORE_VARIABLE: ใส่หมายเลข id ตัวแปรที่ใช้นับคะแนน HP_PARTY_MEMBER: ใส่หมายเลขลำดับสมาชิกที่ต้องการให้แสดง HP บนจอ โดยสมาชิกคนแรก (หรือ leader) จะเริ่มนับที่ 0 ไปเรื่อยๆ SCORE_TEXT: ข้อความแสดงคะแนน โดย %d หมายถึงคะแนน BG_OPACITY: ความโปร่งใสพื้นหลัง (0 - 255) WINDOW_WIDTH: กำหนดขนาดของจอแสดงผล ถ้ามีปัญหาแจ้งได้ครับผม [shcode=rails] module SCORE_PANEL SHOW_SWITCH = 1 SCORE_VARIABLE = 1 HP_PARTY_MEMBER = 0 # Party member that show HP on the screen, first member (or leader) is 0 SCORE_TEXT = "Score: %d" BG_OPACITY = 0 # 0 - 255 WINDOW_WIDTH = 200 end class Window_Score < Window_Base def initialize super(0, 0, window_width, window_height) self.opacity = SCORE_PANEL::BG_OPACITY refresh end def update super refresh end def window_width return SCORE_PANEL::WINDOW_WIDTH end def window_height return line_height*2 + 32 end def line_height if defined?(super) return super else return WLH end end def refresh self.visible = $game_switches[SCORE_PANEL::SHOW_SWITCH] contents.clear make_score end def make_score text = sprintf(SCORE_PANEL::SCORE_TEXT, $game_variables[SCORE_PANEL::SCORE_VARIABLE]) self.contents.draw_text(0, 0, window_width - 32, line_height, text) self.draw_actor_hp($game_party.members[SCORE_PANEL::HP_PARTY_MEMBER], 0, line_height, window_width - 32) end end class Scene_Map < Scene_Base alias cur_start start def start cur_start make_window end def make_window @score_window = Window_Score.new end alias cur_update update def update cur_update @score_window.update end end [/shcode] RE: มีสคริป คะแนน และ ค่าพลัง ของ ผู้เล่นไหมครับ - snowhero - 10-17-2016 ขอบคุณมากครับ ได้ความรู้เยอะเลยเว็บนี้ มีกรูรู เยอะเเยะ ยังไงมีเรื่องสงสัยจะเข้ามาถามอีกนะครับ |