المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تعريب حوارات RPG MAKER XP



REAL_SONIC
24-10-2004, 09:18 PM
أخيرا عرفت أعرب حوارات RPG MAKER XP

الطريقة :
حمل برنامج الوسيط من : http://www.moon15.com

و أختار واحد من هذي الأكواد و استبدل الكود window_message بها :



#==============================================================================
# ■ Window_Message
#------------------------------------------------------------------------------
#  文章表示に使うメッセージウィンドウです。
#==============================================================================

class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(80, 304, 480, 160)
@name_win = Window_Base.new(80,252,164,56)
@name_win.z = 9998
@name_win.visible = false
@name_win.contents = Bitmap.new(132,22)
@name_win.contents.font = Font.new("Microsoft Sans Serif")
@name_win.contents.font.color = Color.new(255,255,0)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font = Font.new("ALW Cool Alhada.")
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
self.active = false
self.index = 0
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
#--------------------------------------------------------------------------
# ● メッセージ終了処理
#--------------------------------------------------------------------------
def terminate_message
self.active = false
self.pause = false
@name_win.visible = false
self.index = -1
self.contents.clear
@name_win.contents.clear
@contents_showing = false
if $game_temp.message_proc != nil
$game_temp.message_proc.call
end
$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0
if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
@name_win.contents.clear
x = y = 0
@cursor_width = 0

if $game_temp.choice_start == 0
x = 8
end
if $game_temp.message_text != nil
text = $game_temp.message_text
begin
last_text = text.clone
text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until text == last_text
text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
text.gsub!(/\-([\w ]+)\-/) do
@name = $1
""
end

text.gsub!(/\\\\/) { "\000" }
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.gsub!(/\\[Gg]/) { "\002" }
while ((c = text.slice!(/./m)) != nil)
if c == "\000"
c = "\\"
end
if c == "\001"
text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
next
end
if c == "\002"
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
next
end
if c == "\n"
if y >= $game_temp.choice_start
@cursor_width = [@cursor_width, x].max
end
y += 1
x = 0
if y >= $game_temp.choice_start
x = 8
end
next
end
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x += self.contents.text_size(c).width
end
end
if @name != nil and @name != "" and @name != " "
@name_win.visible = true if @name_win.visible == false
@name_win.contents.clear
@name_win.contents.draw_text(4,0,120,25,@name)
end
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end
#--------------------------------------------------------------------------
# ● ウィンドウの位置と不透明度の設定
#--------------------------------------------------------------------------
def reset_window
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position
when 0 # 上
self.y = 16
when 1 # 中
self.y = 160
when 2 # 下
self.y = 304
end
end
if $game_system.message_frame == 0
self.opacity = 255
@name_win.opacity = 255
else
self.opacity = 0
@name_win.opacity = 0
end
self.back_opacity = 160
@name_win.back_opacity = 160
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
super
if @fade_in
self.contents_opacity += 24
@name_win.contents_opacity += 24
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity == 255
@fade_in = false
end
return
end

if @input_number_window != nil
@input_number_window.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true

@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end

if @contents_showing
if $game_temp.choice_max == 0
self.pause = true
end
if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
terminate_message
end
end
if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se)
$game_temp.choice_proc.call(self.index)
end
terminate_message
end
return
end

if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
reset_window
refresh
Graphics.frame_reset
self.visible = true
if @name != nil and @name != "" and @name != " "
@name_win.visible = true
else
@name_win.visible = false
end
self.contents_opacity = 0
@name_win.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end

if self.visible
@fade_out = true
self.opacity -= 48
if self.opacity == 0
self.visible = false
@name_win.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
#--------------------------------------------------------------------------
# ● カーソルの矩形更新
#--------------------------------------------------------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
self.cursor_rect.set(8, n * 32, @cursor_width, 32)
else
self.cursor_rect.empty
end
end
end




#==============================================================================
# ■ Window_Message
#------------------------------------------------------------------------------
#  文章表示に使うメッセージウィンドウです。
#==============================================================================

class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(80, 304, 480, 160)
@name_win = Window_Base.new(80,252,164,56)
@name_win.z = 9998
@name_win.visible = false
@name_win.contents = Bitmap.new(132,22)
@name_win.contents.font = Font.new("Microsoft Sans Serif")
@name_win.contents.font.color = Color.new(255,255,0)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font = Font.new("ALW Cool Electron.")
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
self.active = false
self.index = 0
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
#--------------------------------------------------------------------------
# ● メッセージ終了処理
#--------------------------------------------------------------------------
def terminate_message
self.active = false
self.pause = false
@name_win.visible = false
self.index = -1
self.contents.clear
@name_win.contents.clear
@contents_showing = false
if $game_temp.message_proc != nil
$game_temp.message_proc.call
end
$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0
if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
@name_win.contents.clear
x = y = 0
@cursor_width = 0

if $game_temp.choice_start == 0
x = 8
end
if $game_temp.message_text != nil
text = $game_temp.message_text
begin
last_text = text.clone
text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until text == last_text
text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
text.gsub!(/\-([\w ]+)\-/) do
@name = $1
""
end

text.gsub!(/\\\\/) { "\000" }
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.gsub!(/\\[Gg]/) { "\002" }
while ((c = text.slice!(/./m)) != nil)
if c == "\000"
c = "\\"
end
if c == "\001"
text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
next
end
if c == "\002"
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
next
end
if c == "\n"
if y >= $game_temp.choice_start
@cursor_width = [@cursor_width, x].max
end
y += 1
x = 0
if y >= $game_temp.choice_start
x = 8
end
next
end
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x += self.contents.text_size(c).width
end
end
if @name != nil and @name != "" and @name != " "
@name_win.visible = true if @name_win.visible == false
@name_win.contents.clear
@name_win.contents.draw_text(4,0,120,25,@name)
end
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end
#--------------------------------------------------------------------------
# ● ウィンドウの位置と不透明度の設定
#--------------------------------------------------------------------------
def reset_window
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position
when 0 # 上
self.y = 16
when 1 # 中
self.y = 160
when 2 # 下
self.y = 304
end
end
if $game_system.message_frame == 0
self.opacity = 255
@name_win.opacity = 255
else
self.opacity = 0
@name_win.opacity = 0
end
self.back_opacity = 160
@name_win.back_opacity = 160
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
super
if @fade_in
self.contents_opacity += 24
@name_win.contents_opacity += 24
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity == 255
@fade_in = false
end
return
end

if @input_number_window != nil
@input_number_window.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true

@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end

if @contents_showing
if $game_temp.choice_max == 0
self.pause = true
end
if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
terminate_message
end
end
if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se)
$game_temp.choice_proc.call(self.index)
end
terminate_message
end
return
end

if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
reset_window
refresh
Graphics.frame_reset
self.visible = true
if @name != nil and @name != "" and @name != " "
@name_win.visible = true
else
@name_win.visible = false
end
self.contents_opacity = 0
@name_win.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end

if self.visible
@fade_out = true
self.opacity -= 48
if self.opacity == 0
self.visible = false
@name_win.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
#--------------------------------------------------------------------------
# ● カーソルの矩形更新
#--------------------------------------------------------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
self.cursor_rect.set(8, n * 32, @cursor_width, 32)
else
self.cursor_rect.empty
end
end
end


:wow: ملاحظة :wow:
عند تشغيل برنامج الوسيط ستجد 3 أنواع من الخطوط إختر : ALW

Sympathy
24-10-2004, 09:21 PM
فـعلاً !! فـعلاً الوســيط !!

كيف طـافت علي هـاذي :D

الوسيط انا استخدمه بالفوتوشوب .. :D

يـعطيك العافية ، البرنامج عندي من زمان

بس ما فكرت استخدمه ، يعـطيك العافية و الله .

خوش فـكرة ..

Mr. Black Man
29-10-2004, 02:41 PM
أنا ما عندي ال RPG Maker XP حالياَ :28:
و لكن هل قام أحد الأعضاء بتجربة الطريقة :06: ؟

REAL SONIC sp
12-04-2005, 01:44 PM
أنا جربتها
بعد شوي أحط صورة

REAL SONIC sp
12-04-2005, 02:06 PM
هذي الصورة
:reporter:

coold
09-05-2005, 07:11 AM
لم تعمل معي الترجمة كل الي يطلع (ولاشي)بس النافذه بدون كلام انت عدلت اي شي في الكود او الخط؟:33:

Dark Man
10-05-2005, 11:58 AM
ممتاز , انا فكرت فيها من زمان بس ماجربتها

REAL SONIC sp
11-05-2005, 05:37 PM
لم تعمل معي الترجمة كل الي يطلع (ولاشي)بس النافذه بدون كلام انت عدلت اي شي في الكود او الخط؟:33:

أولا لازم تثبت برنامج الوسيط و تتأكد إن الخطوط موجودة في ملف الخطوط
و بعدين
لازم تاخذ واحد من الكودين إلي فوق

katt
02-06-2005, 09:31 PM
مشكورين يا شباب الطريقة صحيحة

ولكن هل هناك حل لتعريب باقي الأجزاء في البرنامج كوضع اسم البطل باللغة العربية
وتغيير اسماء الأوامر وغيرها لتكون بالعربي؟؟؟:D

omran2
25-06-2005, 12:39 AM
شباب كيف اسنخدم البرنامج ما عرفتله؟ :33:

Kunio-Kun
29-07-2005, 08:21 AM
ممتاز الله يعطيك العافية شكراً على هذي الفكرة :)

المفروض يثبت هذا الموضوع .. لما لة من أهمية كبيرة...:biggthump

khalid asli
16-11-2008, 07:00 PM
مشكوووور وصحيح ان البرنامج يكتب بالعربي

(http://www.montada.com/member.php?u=215539)real sonic sp من وين جبت الشخصيات

PoKe Vx
17-11-2008, 01:20 PM
مشكوووور وصحيح ان البرنامج يكتب بالعربي

real sonic sp من وين جبت الشخصيات
يمنع الرد على المواضيع التي آخر رد فيها كان منذ 3 أشهر

ارجوا قراءة قوانين القسم جيدا:


هام جداً - حتى لا يحذف موضوعك أو ردك (قوانين منتدى صناعة الألعاب) (http://www.montada.com/showthread.php?t=446138)