เครดิต :Bob423
ต้นฉบับ :
http://www.gdunlimited.net/forums/topic/...nt-screen/
วิธีการไฮไลท์สีในเมนู Equipment
ก่อนอื่นผมสังเกตว่าบางเกมในเมนู Equip จะมีการไฮไลท์สีเครื่องมือเวลาของที่จะใส่นั้นมีสถานะมากขึ้น, น้อยลงดังภาพ
(ไม่ต้องสนใจกับการจัดหน้าต่างในเมนู ขอเพียงให้สนใจกับสีแดง, เขียวของคำทางด้านซ้าย)
เวลาเปลี่ยนของสวมใส่ สถานะด้านข้างก็จะเปลี่ยนตามใช่ไหม?
แต่ถ้าหากอยากให้แสดงเห็นว่ามันเพิ่มลดให้ง่ายขึ้นล่ะ? เอาล่ะ ลองทำตามดูกันนะครับ
กดปุ่ม F11 เพื่อเรียกหน้าต่างเขียนสคริปต์ขึ้นมา
แล้วหา Window_Base จากนั้นหา def normal_color
จะอยู่แถว ๆ บรรทัดที่ 64
หลังจากนั้นจะพบว่า จะสังเกตเห็น
return Color.new
(255,
255,
255,
255) ใช่ไหมครับ?
เลข (255,255,255,255) นั่นคือ (สีแดง,สีเขียว,สีน้ำเงิน,ความสว่าง) นั่นเองครับ
ความสว่างยิ่งมากจะยิ่งมีสีเท่านั้นครับ ถ้าน้อยจะสีจะมืด ๆ ดำ ๆ
เช่น ถ้ากรอกเป็น (255,0,0,255) จะเป็นสีแดงเข้ม แต่ถ้าเป็น (255,0,0,100) จะดูมืด ๆ หม่น ๆ หน่อย
สีต่าง ๆ
สีขาว (White) = (255,255,255,255)
สีแดง (Red) = (255,0,0,255)
สีเขียว (Green) = (0,255,0,255)
สีน้ำเงิน (Blue) = (0,0,255,255)
สีเหลือง (Yellow) = (255,255,0,255)
สีฟ้า (Cyan) = (0,255,255,255)
สีม่วงแดง (Magenta) = (255,0,255,255)
สีดำ (Black) = (0,0,0,0)
สีอื่น ๆ ลองหาดูได้ที่
เว็บไซต์นี้นะครับ
โดยดูได้จากช่อง
B R G B นะครับ จะต้องนำมาเรียงอยู่ในรูป (R,G,B,
B)
จากนั้นเขียนสคริปต์ต่อท้าย end บรรทัดที่ 66 ไปว่า...
[shcode=rails]
def stat_up_color
return Color.new(0,255,0,255)
end
def stat_down_color
return Color.new(255,0,0,255)
end
[/shcode]
สีสามารถเปลี่ยนได้ตามความชอบ
ไปที่ Window_EquipLeft แล้วเปลี่ยนตั้งแต่บรรทัดที่ 30 จนถึงบรรทัดที่ 47 เป็น
[shcode=rails]
if @new_atk != nil
self.contents.font.color = system_color
self.contents.draw_text(160, 64, 40, 32, " ---> ", 1)
#self.contents.font.color = normal_color
if @new_atk > @actor.atk then
self.contents.font.color = stat_up_color
elsif @new_atk < @actor.atk then
self.contents.font.color = stat_down_color
elsif @new_atk == @actor.atk then
self.contents.font.color = normal_color
end
self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
end
if @new_pdef != nil
self.contents.font.color = system_color
self.contents.draw_text(160, 96, 40, 32, " ---> ", 1)
#self.contents.font.color = normal_color
if @new_pdef > @actor.pdef then
self.contents.font.color = stat_up_color
elsif @new_pdef < @actor.pdef then
self.contents.font.color = stat_down_color
elsif @new_pdef == @actor.pdef then
self.contents.font.color = normal_color
end
self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
end
if @new_mdef != nil
self.contents.font.color = system_color
self.contents.draw_text(160, 128, 40, 32, " ---> ", 1)
#self.contents.font.color = normal_color
if @new_mdef > @actor.mdef then
self.contents.font.color = stat_up_color
elsif @new_mdef < @actor.mdef then
self.contents.font.color = stat_down_color
elsif @new_mdef == @actor.mdef then
self.contents.font.color = normal_color
end
self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
end
[/shcode]
เท่านี้เราก็จะได้เมนู Equipment ที่มีการเน้นสีแบบแหล่ม ๆ แล้วครับ
อ้อ คุณ Bob423 เจ้าของวิธีการทำ ได้ทำสคริปต์ไว้สำหรับคนที่ขี้เกียจแก้ไขเองด้วยนะครับ
วิธีการใช้ก็วางเหนือ Main แบบ Script ทั่ว ๆ ไป~
Show ContentScript:
[shcode=rails]
# this will Change color of changed stats on the equipment screen.
class Window_EquipLeft < Window_Base
# new colors. (Red, Green, Blue, Brightness)
#===================================#
# This is where you edit the colors #
#===================================#
# get stat increase color
def stat_up_color
# (Red, Green, Blue, Brightness) all numbers must be between 0 and 255
return Color.new(0, 255, 0, 255)
end
# get stat decrease color
def stat_down_color
# (Red, Green, Blue, Brightness) all numbers must be between 0 and 255
return Color.new(255, 0, 0, 255)
end
#==============================================================================#
# this part completely replaces the def refresh in Window_EquipLeft #
#==============================================================================#
def refresh
self.contents.clear
draw_actor_name(@actor, 4, 0)
draw_actor_level(@actor, 4, 32)
draw_actor_parameter(@actor, 4, 64, 0)
draw_actor_parameter(@actor, 4, 96, 1)
draw_actor_parameter(@actor, 4, 128, 2)
if @new_atk != nil
self.contents.font.color = system_color
self.contents.draw_text(160, 64, 40, 32, "->", 1)
# change the color of the number
if @new_atk > @actor.atk
then self.contents.font.color = stat_up_color
elsif @new_atk < @actor.atk
then self.contents.font.color = stat_down_color
elsif @new_atk == @actor.atk
then self.contents.font.color = normal_color
end
#
self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
end
if @new_pdef != nil
self.contents.font.color = system_color
self.contents.draw_text(160, 96, 40, 32, "->", 1)
# change the color of the number
if @new_pdef > @actor.pdef
then self.contents.font.color = stat_up_color
elsif @new_pdef < @actor.pdef
then self.contents.font.color = stat_down_color
elsif @new_pdef == @actor.pdef
then self.contents.font.color = normal_color
end
#
self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
end
if @new_mdef != nil
self.contents.font.color = system_color
self.contents.draw_text(160, 128, 40, 32, "->", 1)
# change the color of the number
if @new_mdef > @actor.mdef
then self.contents.font.color = stat_up_color
elsif @new_mdef < @actor.mdef
then self.contents.font.color = stat_down_color
elsif @new_mdef == @actor.mdef
then self.contents.font.color = normal_color
end
#
self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
end
end
end
[/shcode]
เครดิต : Bob423