รวมวิธีดึง วัน-เวลา จากเครื่องมาเก็บในตัวแปรของ RPG Maker แต่ละรุ่น - Printable Version +- irpg Community (https://irpg.in.th) +-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html) +--- Forum: RGSS and JS Showcase (https://irpg.in.th/forum-26.html) +--- Thread: รวมวิธีดึง วัน-เวลา จากเครื่องมาเก็บในตัวแปรของ RPG Maker แต่ละรุ่น (/thread-3451.html) |
รวมวิธีดึง วัน-เวลา จากเครื่องมาเก็บในตัวแปรของ RPG Maker แต่ละรุ่น - XthemeCore - 04-06-2020 วิธีดึง วัน-เวลา จากเครื่องมาเก็บในตัวแปร RMMV RMMV ใช้ภาษา Javascript จึงทำให้การดึง วันและเวลา จากเครื่องมาใช้ ทำได้ง่ายมาก เพียงแค่ตั้งค่าตัวแปรตามภาพด้านล่างนี้ ก็จะได้เวลาที่เป็นชั่วโมงจากเครื่องมาเก็บไว้ในตัวแปรเลย (เช่นเวลา 16:40 ก็จะได้ว่า 16) การดึงข้อมูล วัน-เวลา ต่างๆ วันที่ => new Date().getDate(); วันในสัปดาห์ => new Date().getDay(); (เริ่มต้นที่วันอาทิตย์มีค่าเป็น 0) เดือน => new Date().getMonth() + 1; (เดือนต้องบวก 1 เพราะมกราคม มันนับเป็นเดือนที่ 0) ปี => new Date().getFullYear(); ชั่วโมง => new Date().getHours(); นาที => new Date().getMinites(); วินาที => new Date().getSeconds(); วันเวลาแบบข้อความ (สามารถแทนค่า default ด้วย en-us สำหรับภาษาอังกฤษ หรือ th-th สำหรับภาษาไทย) ชื่อวันในสัปดาห์(เต็ม) => new Date().toLocaleString('default',{ weekday:'long'}) ชื่อวันในสัปดาห์(ย่อ) => new Date().toLocaleString('default',{ weekday:'short'}) ชื่อเดือน(เต็ม) => new Date().toLocaleString('default',{ month:'long'}) ชื่อเดือน(ย่อ) => new Date().toLocaleString('default',{ month:'short'}) RE: วิธีดึง วัน-เวลา จากเครื่องมาเก็บในตัวแปรของ RMMV - OP_Jum_RPG - 04-06-2020 สำหรับ XP, VX และ VX Ace สามเวอร์ชั่นนี้จะเหมือนกัน คือใช้ Ruby Script ในการดึง โดยสามารถดึงวัน-เวลาโดยใช้สคริปต์ Code: Time.new หรือ Time.now สามารถดึงวันเวลาแบบเต็มออกมาได้โดยใส่สคริปต์ Code: ตัวแปร = Time.new ตัวอย่าง จะเป็นการดุงเวลามาใส่ไว้ในตัวแปรเบอร์ 1 หากต้องการดึงเวลาออกมาเฉพาะค่าที่ต้องการ วิธีที่ 1 แบบเป็นข้อความ Code: Time.new.strftime(format) ตัวอย่าง Format ที่สำคัญ %A วัน แบบเต็ม (Sunday, Monday ... ) %a วัน แบบย่อ (Sun, Mon ... ) %B เดือน แบบเต็ม (January, February ... ) %b เดือน แบบย่อ (Jan, Feb ... ) %m เดือนแบบตัวเลข (01-12) %c วันและเวลา %d วันที่ %Y ปี ค.ศ. แบบเต็ม %y ปี ค.ศ. แบบย่อ (2022 => 22) %H เวลาในหน่วยชั่วโมง แบบ 24-hour format (00-23) %I เวลาในหน่วยชั่วโมง แบบ 12-hour format (01-12) %M นาที (00-59) %p AM or PM %S วินาที (00-60, 60 being a leap second) อ่านต่อได้ใน Help File ของ RPG Maker ทั้งสามรุ่น ตัวอย่างการใส่สคริปต์ Code: @hour = Time.new.strftime("%H") จะเป็นการดึงเวลา ชั่วโมง มาใส่ในตัวแปร @hour, นาที ใส่ในตัวแปร @min และวินาที ใส่ในตัวแปร @sec ตามลำดับ ตัวอย่าง หรือจะใส่รวมแบบนี้เลยก็ยังได้ (สคริปต์จะมองเป็นตัวแปรประเภท String จึงพิมพ์เหมือนข้อความปกติได้เลย) Code: @time = Time.new.strftime("%H : %M : %S") นอกจากนี้ XP ยังทำแบบนี้ได้ด้วย
Spoiler:
------------------------------------------------------------------------------------------ สามารถศึกษาคำสั่งเกี่ยวกับเวลาของ Ruby Script เพิ่มเติม ได้ที่ https://ruby-doc.org/core-2.1.3/Time.html?fbclid=IwAR2hMQH6Z5C3VqCXZ5uiiNhf2eKHlnSE95HJxjfL7Z_mmbepIyur5OK3hfc RE: รวมวิธีดึง วัน-เวลา จากเครื่องมาเก็บในตัวแปรของ RPG Maker แต่ละรุ่น - OP_Jum_RPG - 04-06-2020 สำหรับ XP, VX และ VX Ace แบบที่ 2 แบบให้ค่าที่ออกมาเป็นตัวเลข (integer) เนื่องจากวิธีที่ 1 (ในเรปบน) จะได้ค่าตัวแปรออกมาเป็น String จึงนำมา บวก/ลบ กันตรงๆไม่ได้ ถ้าบวกกันมันจะออกมาแบบนี้ 11 + 22 + 33 = 112233 .............................................................. วิธีแก้ วิธีที่ 1 เปลี่ยนประเภทตัวแปรจากแบบแรก ให้เป็น integer ซะ โดยเติม .to_i ไว้หลังชื่อตัวแปร วิธีที่ 2 เรียกใช้ค่าเวลาที่เป็นตัวเลขโดยตรง ชั่วโมง Time.now.hour นาที Time.now.min วินาที Time.now.sec อ่านเพิ่มเติมได้ใน Help ------------------------------------------------------------------- ในทางกลับกัน ถ้าต้องการแปลง int ไปเป็น string เพื่อเอาไปใช้กับแบบแรก ให้ใส่ .to_s หลังชื่อตัวแปร RE: รวมวิธีดึง วัน-เวลา จากเครื่องมาเก็บในตัวแปรของ RPG Maker แต่ละรุ่น - OP_Jum_RPG - 04-06-2020 เอ ท่านใช้ตัวไหนอยู่ครับ? ลอง Search ว่า time ดูครับ ผมอัพให้ละ ตั้งแต่ 2000 ถึง MV เลย https://www.mediafire.com/folder/qqdj02gws76vm/ |