Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Khá hay hả bạn, thế mà mình còn tưởng bị chê đấy, vì gõ tiếng việt có dấu ko được nên phải gõ tiếng A chứ sao, còn BGM vì mình dùng bản XP Knight edition nên có 1 số khác biệt, với lại lúc upload, thấy File nén nặng quá nên mình xóa bớt BGM rồi, mình sẽ gởi BGM cho các hạ sauMasterWind nói:Ò chắc có nhầm lẫn gì đây .Các bạn vui lòng vào phần Script Editor chọn Main và chỉnh lại Font là "Arial" chứ không phải là "VnArial" nhé ..Trò chơi được lắm ..Khá hay ..Mà này sao lại là Tiếng Anh với lại còn thiếu vài cái BGM nữa ,nên nó không chạy được buộc mình phải thay đôit nhạc mới chơi được .Chứ ý luôn cái Text nhé ,nó bị quá khung rồi ..
Thì đã hoàn chỉnh đâu, còn đang tiến hành vì tui gởi Project mà, nhờ các pác giúp đỡ thui, ủa nobita có thử xài font ấy rồi mà có được đâu cà? chắc tại xài bản cũ (1.0.0.1 Postally knight Edition ấy), À nhờ bạn dán cái Script về giao diện Menu khác cho mình được không rồi gửi lại cho mình được ko? Mình thích cái Menu bằng hình chứ không phải bằng chữ (equip thì cây kiếm 9 khiên, item thì hình option etc...)MasterWind nói:Nếu muốn hiển thị bằng tiếng Việt toàn bộ thì hãy dùng Font ".VnArial" trong phần Main .Và khi đánh các đoạn Mess thì dùng TCVN3 đấy .Sử dụng 2k3 chắc quen dụ này rồi phải không .Lúc đầu đánh thì nó không hiển thị đúng tiếng Việt nhưng khi vào Game thì khác .Trong Script cũng vậy ,bạn đổi các từ đó sang dạng TCVN3 là ok .Thế là Game đã có thể hiển thị tiếng Việt ,nhưng mà tui cảm giác hình như cái Project này chưa phải là Game hoàn chỉnh hay sao ấy ..Cảm giác thôi ..
Ý của Nobita là thêm Icon vào Menu ư chuyện đó không thành vấn đề mình đọc xong và ngồi một tí thời gian rồi gửi lại cho Nobita cái Script này nè .Có thể hiển thị được Icon .Made by WindMình thích cái Menu bằng hình chứ không phải bằng chữ (equip thì cây kiếm 9 khiên, item thì hình option etc...)
...Ồ mém tí nữa thì quên chép chồng lên cái Menu nhé .class Window_Command < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
# width : window width
# commands : command text string array
#--------------------------------------------------------------------------
def initialize(width, commands, icon = nil)
# Compute window height from command quantity
super(0, 0, width, commands.size * 32 + 32)
@item_max = commands.size
@commands = commands
@icon = icon
self.contents = Bitmap.new(width - 32, @item_max * 32)
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
# color : text color
#--------------------------------------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
unless @icon == nil
bitmap = RPG::Cache.icon(@icon + index.to_s)
self.contents.blt(4, 32 * index + 4, bitmap, Rect.new(0, 0, 30, 30))
end
self.contents.draw_text(rect, @commands[index])
end
end
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs menu screen processing.
#==============================================================================
class Scene_Menu
ICON_NAME = 'menu'
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Make command window
s1 = " " + $data_system.words.item
s2 = " " + $data_system.words.skill
s3 = " " + $data_system.words.equip
s4 = " Status"
s5 = " Save"
s6 = " End Game"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6],
Scene_Menu::ICON_NAME)
@command_window.index = @menu_index
# If number of party members is 0
if $game_party.actors.size == 0
# Disable items, skills, equipment, and status
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
# If save is forbidden
if $game_system.save_disabled
# Disable save
@command_window.disable_item(4)
end
# Make play time window
@playtime_window = Window_PlayTime.new
@playtime_window.x = 0
@playtime_window.y = 224
# Make steps window
@steps_window = Window_Steps.new
@steps_window.x = 0
@steps_window.y = 320
# Make gold window
@gold_window = Window_Gold.new
@gold_window.x = 0
@gold_window.y = 416
# Make status window
@status_window = Window_MenuStatus.new
@status_window.x = 160
@status_window.y = 0
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of windows
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update
# If command window is active: call update_command
if @command_window.active
update_command
return
end
# If status window is active: call update_status
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# * Frame Update (when command window is active)
#--------------------------------------------------------------------------
def update_command
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = Scene_Map.new
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# If command other than save or end game, and party members = 0
if $game_party.actors.size == 0 and @command_window.index < 4
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Branch by command window cursor position
case @command_window.index
when 0 # item
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Item.new
when 1 # skill
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # equipment
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # status
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4 # save
# If saving is forbidden
if $game_system.save_disabled
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to save screen
$scene = Scene_Save.new
when 5 # end game
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to end game screen
$scene = Scene_End.new
end
return
end
end
#--------------------------------------------------------------------------
# * Frame Update (when status window is active)
#--------------------------------------------------------------------------
def update_status
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Make command window active
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# Branch by command window cursor position
case @command_window.index
when 1 # skill
# If this actor's action limit is 2 or more
if $game_party.actors[@status_window.index].restriction >= 2
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to skill screen
$scene = Scene_Skill.new(@status_window.index)
when 2 # equipment
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to equipment screen
$scene = Scene_Equip.new(@status_window.index)
when 3 # status
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to status screen
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
, cái Demo của chú để anh down về coi
Không có chữ tức là chỉ có Icon thôi á .Cái đó cũng không khó khăn gì nhưng liệu như thế người chơi có biết được không.Để người chơi hoàn toàn hiểu hết thì phải chọn những Icon thể hiện hết cái Link mà nó muốn đưa tới đây ..Thôi được để mình làm chỉ có cái Icon không cho :nobita900 nói:@ Wind: cám ơn bạn nhưng bạn hiểu lầm ý mình, mình muốn bằng Icon to luôn á (ko có chữ)
class Window_Command < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
# width : window width
# commands : command text string array
#--------------------------------------------------------------------------
def initialize(width, commands, icon = nil)
# Compute window height from command quantity
super(0, 0, width, commands.size * 32 + 32)
@item_max = commands.size
@commands = commands
@icon = icon
self.contents = Bitmap.new(width - 32, @item_max * 32)
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
# color : text color
#--------------------------------------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
unless @icon == nil
bitmap = RPG::Cache.icon(@icon + index.to_s)
self.contents.blt(50, 32 * index + 4, bitmap, Rect.new(0, 0, 30, 30))
end
self.contents.draw_text(rect, @commands[index])
end
end
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs menu screen processing.
#==============================================================================
class Scene_Menu
ICON_NAME = 'menu'
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Make command window
s1 = ""
s2 = ""
s3 = ""
s4 = ""
s5 = ""
s6 = ""
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6], Scene_Menu::ICON_NAME)
@command_window.index = @menu_index
# If number of party members is 0
if $game_party.actors.size == 0
# Disable items, skills, equipment, and status
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
# If save is forbidden
if $game_system.save_disabled
# Disable save
@command_window.disable_item(4)
end
# Make play time window
@playtime_window = Window_PlayTime.new
@playtime_window.x = 0
@playtime_window.y = 224
# Make steps window
@steps_window = Window_Steps.new
@steps_window.x = 0
@steps_window.y = 320
# Make gold window
@gold_window = Window_Gold.new
@gold_window.x = 0
@gold_window.y = 416
# Make status window
@status_window = Window_MenuStatus.new
@status_window.x = 160
@status_window.y = 0
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of windows
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update
# If command window is active: call update_command
if @command_window.active
update_command
return
end
# If status window is active: call update_status
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# * Frame Update (when command window is active)
#--------------------------------------------------------------------------
def update_command
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = Scene_Map.new
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# If command other than save or end game, and party members = 0
if $game_party.actors.size == 0 and @command_window.index < 4
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Branch by command window cursor position
case @command_window.index
when 0 # item
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Item.new
when 1 # skill
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # equipment
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # status
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4 # save
# If saving is forbidden
if $game_system.save_disabled
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to save screen
$scene = Scene_Save.new
when 5 # end game
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to end game screen
$scene = Scene_End.new
end
return
end
end
#--------------------------------------------------------------------------
# * Frame Update (when status window is active)
#--------------------------------------------------------------------------
def update_status
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Make command window active
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# Branch by command window cursor position
case @command_window.index
when 1 # skill
# If this actor's action limit is 2 or more
if $game_party.actors[@status_window.index].restriction >= 2
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to skill screen
$scene = Scene_Skill.new(@status_window.index)
when 2 # equipment
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to equipment screen
$scene = Scene_Equip.new(@status_window.index)
when 3 # status
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to status screen
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end

Không hẳn, thực sự dùng Pure Icon là ý tưởng riêng của mình, chưa thấy trong game khác pao giờ, nếu cần thì làm Icon nằm hàng trên, chữ ngay phía dưới và cuối cùng là các StatusMasterWind nói:
Thiếu mỗi Doremon nữa thôi ..nobita900 nói:Không hẳn, thực sự dùng Pure Icon là ý tưởng riêng của mình, chưa thấy trong game khác pao giờ, nếu cần thì làm Icon nằm hàng trên, chữ ngay phía dưới và cuối cùng là các Status
![]()

nobita900 nói:@ Wind: ừ, miễn sao trước thời gian bắt đầu làm nobita có thể thiết kế + chuẩn bị trước, đến hạn là làm story không thôi chứ không thiết kế gì nữa mà bạn có thể làm hiệu ứng Flashlight ko? Nếu ko thì mình nhờ Dương à?
@ Dương: Dương kéo dài quá không nhiệt tình như Wind, em biết anh giỏi hơn Wind rất nhiều nhưng để Wind giúp em vụ này nha (Lẽ ra rủ anh nữa nhưng... anh không đội trời chung mà)
@ All: Trong thời gian đăng ký nobita lo sưu tầm Script và Resource, đến khi bắt đầu cuộc thi sẽ không hỏi ai nữa, nên mọi người nhanh nhanh giùm
trong này ai tao cũng quý mà :hug: