Skip to content

Instantly share code, notes, and snippets.

@admannon
Last active December 8, 2023 09:47
Show Gist options
  • Save admannon/07eb77c1d59a1a3df6264d192b0f1dc6 to your computer and use it in GitHub Desktop.
Save admannon/07eb77c1d59a1a3df6264d192b0f1dc6 to your computer and use it in GitHub Desktop.
#==============================================================================
# ** Message Thai Vovel and Outline Fix
#------------------------------------------------------------------------------
# By : Admannon
#------------------------------------------------------------------------------
# This code is licensed under the terms of the MIT license
#==============================================================================
#==============================================================================
# ** Window Message
#==============================================================================
class Window_Base < Window
@@THAI_MARKS = "\u0E31\u0E34\u0E35\u0E36\u0E37\u0E48\u0E49\u0E4A\u0E4B\u0E47\u0E4C\u0E38\u0E39\u0E4D\u0E3A"
@@TEXT_SLICE = /.[#{@@THAI_MARKS}]*/m
#--------------------------------------------------------------------------
# * Preconvert Control Characters
#--------------------------------------------------------------------------
alias thai_fix_convert_escape_characters convert_escape_characters unless $@
def convert_escape_characters(text)
result = thai_fix_convert_escape_characters(text).clone
result.gsub!(/([#{@@THAI_MARKS}]+)\u0E33/, "\u0E4D\\1\u0E32")
result.gsub!(/\u0E33([#{@@THAI_MARKS}]+)/, "\u0E4D\\1\u0E32")
result.gsub!(/\u0E33/ , "\u0E4D\u0E32" )
return result
end
#--------------------------------------------------------------------------
# * Process Normal Character
#--------------------------------------------------------------------------
def process_normal_character(c, pos)
c = " #{c}"
space_width = text_size(" ").width
text_width = text_size( c ).width
draw_text(pos[:x] - space_width, pos[:y], text_width << 1, pos[:height], c)
pos[:x] += text_width - space_width
end
#--------------------------------------------------------------------------
# * Draw Text in Normal Window
#--------------------------------------------------------------------------
def draw_text_ex(x, y, text)
reset_font_settings
text = convert_escape_characters(text)
pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
process_character(text.slice!(@@TEXT_SLICE), text, pos) until text.empty?
end
end
#==============================================================================
# ** Window Message
#==============================================================================
class Window_Message < Window_Base
#--------------------------------------------------------------------------
# * Draw Text in Message Window
#--------------------------------------------------------------------------
def process_all_text
open_and_wait
text = convert_escape_characters($game_message.all_text)
pos = {}
new_page(text, pos)
process_character(text.slice!(@@TEXT_SLICE), text, pos) until text.empty?
end
end
@XPMilkChan
Copy link

XPMilkChan commented Oct 24, 2023

พี่ครับมัน Error Line 47 มีวิธีแก้ไหมครับ
Screenshot (77)
เวอร์ชั่นเก่าที่พี่ทำไม่มีปัญหานะครับ

@admannon
Copy link
Author

พี่ครับมัน Error Line 47 มีวิธีแก้ไหมครับ Screenshot (77) เวอร์ชั่นเก่าที่พี่ทำไม่มีปัญหานะครับ

เท่าที่ลองกับ Project เริ่มต้น ไม่เห็น Error นะ

ขอตัวรูปประโยคในคำสั่ง show text กับ script ที่ใช้ Window_Message กับ Window_Base หน่อยได้มั๊ยนะ?

@XPMilkChan
Copy link

XPMilkChan commented Oct 25, 2023

ผมให้ไฟล์ Text ครับ Window_Base Window_Message
https://drive.google.com/file/d/1QREkiwyFwmHwlBsWp-zk9m9Q-FnvtEUe/view?usp=sharing
ขอโทษนะครับผมที่ตอบช้านะครับ พอดีติดเขียน Patch Windows XP นะครับ
แปลเกมไม่ใช่งานหลักนะครับ

@admannon
Copy link
Author

เจอละครับ ตก @ ตรงบรรทัดนั้นไปตัวนึง 🥲
แก้ให้แล้วนะครับ
ขอบคุณที่แจ้ง bug มานะครับ 🙏

@XPMilkChan
Copy link

XPMilkChan commented Oct 25, 2023

เจอละครับ ตก @ ตรงบรรทัดนั้นไปตัวนึง 🥲 แก้ให้แล้วนะครับ ขอบคุณที่แจ้ง bug มานะครับ 🙏

ตอนนี้เกมทำงานปกติแล้ว ขอบคุณพี่มากครับ ถ้าภาพนี้ทำให้พี่ขนลุกขอโทษนะครับ
กำลังเขียน Patch Server 2003 อยู่พอดีใกล้จะนอนแล้ว
เครื่องรองครับ
bandicam 2023-10-25 22-55-28-890

@kamnanrock
Copy link

อนาคตจะมี Script แก้ปัญหาสระลอยหรือเกมมองสระเป็นเหมือนพยัญชนะของ RPG Maker XP ไหมครับผม พอดีผมเจอปัญหาเรื่องสระเหมือนกับหลายๆ คนเลย

@admannon
Copy link
Author

อนาคตจะมี Script แก้ปัญหาสระลอยหรือเกมมองสระเป็นเหมือนพยัญชนะของ RPG Maker XP ไหมครับผม พอดีผมเจอปัญหาเรื่องสระเหมือนกับหลายๆ คนเลย

คุ้นๆ ว่าปกติ RPG Maker XP ไม่ได้แสดงข้อความสนทนาเป็นทีละตัวอักษรหรือเปล่านะ?

สระลอยใน RPG Maker XP น่าจะเกิดจากใช้ script ทำให้หน้าสนทนาแสดงผลเป็นทีละตัวอักษรมากกว่าที่เป็น script เริ่มต้นของ RGSS เลยไม่ได้ทำ script เอาไว้

ถ้าอยากให้ผมลองปรับ script ให้ support ลองส่ง script มาให้ดู หรือลองเอา concept จาก script นี้ไปใช้ได้นะ 😁

@kamnanrock
Copy link

https://drive.google.com/file/d/17k-2OfExgkikVNXe4pqgDtzXfXsZlBHK/view?usp=drive_link
นี่ครับผม นี่เป็น Script ของ To The Moon ครับ พอดีผมกำลังจะแปลไทยเกมนี้ แต่เผอิญติดปัญหาเรื่องสระอย่างที่กล่าวไปเลยครับผม เหมือน Script มันจะมีปัญหาเรื่องแสดงผลออย่างที่พี่บอกเลยครับ

@XPMilkChan
Copy link

XPMilkChan commented Dec 7, 2023

ดูเหมือนจะมีปัญหากับสระอำ นะครับ
ผมเปรียบเทียบกับอันเก่า มันไม่มีข้อผิดพลาดสระกลายเป็นสี่เหลี่ยม
พี่ลองใช้สระนะครับ ดูสิว่าจะเป็นที่เกมผมหรือจะเป็นที่ Script
bandicam 2023-12-07 17-29-15-284

@admannon
Copy link
Author

admannon commented Dec 7, 2023

ดูเหมือนจะมีปัญหากับสระอำ นะครับ ผมเปรียบเทียบกับอันเก่า มันไม่มีข้อผิดพลาดสระกลายเป็นสี่เหลี่ยม พี่ลองใช้สระนะครับ ดูสิว่าจะเป็นที่เกมผมหรือจะเป็นที่ Script bandicam 2023-12-07 17-29-15-284

ผมลองปรับ code ให้ใหม่แล้วนะครับ
ขอบคุณที่แจ้ง bug มานะครับ 🙏

https://drive.google.com/file/d/17k-2OfExgkikVNXe4pqgDtzXfXsZlBHK/view?usp=drive_link นี่ครับผม นี่เป็น Script ของ To The Moon ครับ พอดีผมกำลังจะแปลไทยเกมนี้ แต่เผอิญติดปัญหาเรื่องสระอย่างที่กล่าวไปเลยครับผม เหมือน Script มันจะมีปัญหาเรื่องแสดงผลออย่างที่พี่บอกเลยครับ

ผมเปิดไม่ได้แฮะ อีกอย่าง ผมกังวลพวกลิขสิทธิ์ของเกมนี้หน่ะครับว่าสามารถเอาของมาแจกจ่ายแบบนี้ได้มั๊ยหน่ะ เลยอยากได้เป็นชื่อ script หรือ link ไปยังต้นทางของ script มากกว่า

@kamnanrock
Copy link

kamnanrock commented Dec 7, 2023

ดูเหมือนจะมีปัญหากับสระอำ นะครับ ผมเปรียบเทียบกับอันเก่า มันไม่มีข้อผิดพลาดสระกลายเป็นสี่เหลี่ยม พี่ลองใช้สระนะครับ ดูสิว่าจะเป็นที่เกมผมหรือจะเป็นที่ Script bandicam 2023-12-07 17-29-15-284

ผมลองปรับ code ให้ใหม่แล้วนะครับ ขอบคุณที่แจ้ง bug มานะครับ 🙏

https://drive.google.com/file/d/17k-2OfExgkikVNXe4pqgDtzXfXsZlBHK/view?usp=drive_link นี่ครับผม นี่เป็น Script ของ To The Moon ครับ พอดีผมกำลังจะแปลไทยเกมนี้ แต่เผอิญติดปัญหาเรื่องสระอย่างที่กล่าวไปเลยครับผม เหมือน Script มันจะมีปัญหาเรื่องแสดงผลออย่างที่พี่บอกเลยครับ

ผมเปิดไม่ได้แฮะ อีกอย่าง ผมกังวลพวกลิขสิทธิ์ของเกมนี้หน่ะครับว่าสามารถเอาของมาแจกจ่ายแบบนี้ได้มั๊ยหน่ะ เลยอยากได้เป็นชื่อ script หรือ link ไปยังต้นทางของ script มากกว่า

เรื่องลิงค์ต้นทางผมไม่มีเลยครับ ที่มีอยู่ก็มีแต่ script ที่ตัวเองแกะออกมาได้อย่างเดียวเลยครับผม ขอโทษด้วยจริงๆ ครับ ส่วนลิงค์ข้างล่างคือลิงค์ script ที่ผมอัปโหลดไปใหม่ครับเพราะเห็นว่าลิงค์ก่อนหน้ามันไม่ได้ ถ้าพี่สนใจก็สามารถดูก่อนได้ครับ แต่ถ้าไม่ได้จริงๆ ก็ไม่เป็นไรครับผม
https://www.mediafire.com/file/lis6ki7x2n0rvi6/To+The+Moon+Text+Script+(Window_Message).txt/file

@XPMilkChan
Copy link

XPMilkChan commented Dec 7, 2023

Perfect ครับ
bandicam 2023-12-08 05-31-46-767

@XPMilkChan
Copy link

XPMilkChan commented Dec 8, 2023

เดี๋ยวผมจะให้ลองใส่สระ ทั้งหมด 32 ตัว
ข้อความนี้

อะ อา อิ อี อึ อื อุ อู
เอะ เอ เเอะ เเอ เอียะ เอีย เอือะ เอือ
อัวะ อัว โอะ โอ เอาะ ออ เออะ เออ
อำ ใอ ไอ เอา ฤ ฤๅ ฦ ฦๅ

บางสระ ยังสร้างปัญหาอยู่ผมทดสอบเมื่อกี้นี้
ผมว่างจากโครงการ Windows ผมพอดี

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment