03-13-2005, 01:00 PM
This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.
No support is given. If you are the owner of the thread, please contact administration.
i finally made my first CMS :)
i attached pic and code is here:
Code:
#==============================================================================
# â–� Scene_Menu
#------------------------------------------------------------------------------
#  メニュー画��処� を行� クラス��。
#==============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# â—? Initialize
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# â—? Main
#--------------------------------------------------------------------------
def main
# コマンドウィンドウを作�
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])
@command_window.index = @menu_index
@command_window.x = 480
@command_window.y = 64
# パーãƒ� ィ人数ã?Œ 0 人ã?®å� ´å?ˆ
if $game_party.actors.size == 0
# アイãƒ� ãƒ� ã€?スã‚ルã€?装備ã€?スãƒ� ータスを無å� ¹åŒ–
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
# セーブç¦?æ¢ã?®å� ´å?ˆ
if $game_system.save_disabled
# セーブを無å� ¹ã?«ã?™ã‚‹
@command_window.disable_item(4)
end
# プレイ時間ウィンドウを作�
@playtime_window = Window_PlayTime.new
@playtime_window.x = 480
@playtime_window.y = 288
# ゴールドウィンドウを作�
@gold_window = Window_Gold.new
@gold_window.x = 480
@gold_window.y = 384
# ス� ータスウィンドウを作�
@status_window = Window_MenuStatus.new
@status_window.x = 0
@status_window.y = 64
# help window
@help_window = Window_Help.new
@help_window.x = 0
@help_window.y = 0
case @command_window.index
when 0
@help_window.set_text("View/use your items.")
when 1 # スã‚ル
@help_window.set_text("Check your skills.")
when 2 # 装備
@help_window.set_text("Equip weapons and armor.")
when 3 # ス� ータス
@help_window.set_text("See the players status.")
when 4 # セーブ
@help_window.set_text("Save the current game.")
when 5 # ゲー� 終�
@help_window.set_text("End the current game.")
end
# トランジション実行
Graphics.transition
# メインループ
loop do
# ゲー� 画�を更新
Graphics.update
# å…¥å� ›æƒ…å� ±ã‚’æ›´æ–°
Input.update
# フレー� 更新
update
# ç”»é?¢ã?Œåˆ‡ã‚� 替ã‚?ã?£ã?Ÿã‚‰ãƒ«ãƒ¼ãƒ—ã‚’ä¸æ–
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# ウィンドウを解放
@command_window.dispose
@playtime_window.dispose
@gold_window.dispose
@status_window.dispose
@help_window.dispose
end
#--------------------------------------------------------------------------
# â—? Update
#--------------------------------------------------------------------------
def update
# ウィンドウを更新
@command_window.update
@playtime_window.update
@gold_window.update
@status_window.update
@help_window.update
case @command_window.index
when 0
@help_window.set_text("View/use your items.")
when 1 # スã‚ル
@help_window.set_text("Check your skills.")
when 2 # 装備
@help_window.set_text("Equip weapons and armor.")
when 3 # ス� ータス
@help_window.set_text("See the players status.")
when 4 # セーブ
@help_window.set_text("Save the current game.")
when 5 # ゲー� 終�
@help_window.set_text("End the current game.")
end
# コマンドウィンドウã?Œã‚¢ã‚¯ãƒ� ィブã?®å� ´å?ˆ: update_command を呼ã?¶
if @command_window.active
update_command
return
end
# スãƒ� ータスウィンドウã?Œã‚¢ã‚¯ãƒ� ィブã?®å� ´å?ˆ: update_status を呼ã?¶
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# â—? Update Command
#--------------------------------------------------------------------------
def update_command
# B ボタンã?Œæ� ¼ã?•ã‚Œã?Ÿå� ´å?ˆ
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥?
$game_system.se_play($data_system.cancel_se)
# マップ画��切� 替�
$scene = Scene_Map.new
return
end
# C ボタンã?Œæ� ¼ã?•ã‚Œã?Ÿå� ´å?ˆ
if Input.trigger?(Input::C)
# パーãƒ� ィ人数ã?Œ 0 人ã?§ã€?セーブã€?ゲーãƒ� 終äº� 以外ã?®ã‚³ãƒžãƒ³ãƒ‰ã?®å� ´å?ˆ
if $game_party.actors.size == 0 and @command_window.index < 4
# ブザー SE を演�
$game_system.se_play($data_system.buzzer_se)
return
end
# コマンドウィンドウ�カーソル�置�� �
case @command_window.index
when 0 # アイ� �
# 決定 � SE を演�
$game_system.se_play($data_system.decision_se)
# アイ� � 画��切� 替�
$scene = Scene_Item.new
when 1 # スã‚ル
# 決定 SE を演�
$game_system.se_play($data_system.decision_se)
# ス� ータスウィンドウをアク� ィブ��る
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # 装備
# 決定 SE を演�
$game_system.se_play($data_system.decision_se)
# ス� ータスウィンドウをアク� ィブ��る
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # ス� ータス
# 決定 SE を演�
$game_system.se_play($data_system.decision_se)
# ス� ータスウィンドウをアク� ィブ��る
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4 # セーブ
# セーブç¦?æ¢ã?®å� ´å?ˆ
if $game_system.save_disabled
# ブザー SE を演�
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE を演�
$game_system.se_play($data_system.decision_se)
# セーブ画��切� 替�
$scene = Scene_Save.new
when 5 # ゲー� 終�
# 決定 SE を演�
$game_system.se_play($data_system.decision_se)
# ゲー� 終� 画��切� 替�
$scene = Scene_End.new
end
return
end
end
#--------------------------------------------------------------------------
# â—? Update Status
#--------------------------------------------------------------------------
def update_status
# B ボタンã?Œæ� ¼ã?•ã‚Œã?Ÿå� ´å?ˆ
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥?
$game_system.se_play($data_system.cancel_se)
# コマンドウィンドウをアク� ィブ��る
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
# C ボタンã?Œæ� ¼ã?•ã‚Œã?Ÿå� ´å?ˆ
if Input.trigger?(Input::C)
# コマンドウィンドウ�カーソル�置�� �
case @command_window.index
when 1 # スã‚ル
# ã?“ã?®ã‚¢ã‚¯ã‚¿ãƒ¼ã?®è¡Œå‹•åˆ¶é™?ã?Œ 2 以ä¸� ã?®å� ´å?ˆ
if $game_party.actors[@status_window.index].restriction >= 2
# ブザー SE を演�
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE を演�
$game_system.se_play($data_system.decision_se)
# スã‚ル画é?¢ã?«åˆ‡ã‚� 替ã?ˆ
$scene = Scene_Skill.new(@status_window.index)
when 2 # 装備
# 決定 SE を演�
$game_system.se_play($data_system.decision_se)
# 装備画��切� 替�
$scene = Scene_Equip.new(@status_window.index)
when 3 # ス� ータス
# 決定 SE を演�
$game_system.se_play($data_system.decision_se)
# ス� ータス画��切� 替�
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
Code:
#==============================================================================
# â–� Window_Gold
#------------------------------------------------------------------------------
#  ゴールドを表示�るウィンドウ��。
#==============================================================================
class Window_Gold < Window_Base
#--------------------------------------------------------------------------
# � オブジェクト�期化
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 96)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
end
#--------------------------------------------------------------------------
# � リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 120, 32, $data_system.words.gold.to_s + ":")
self.contents.font.color = normal_color
self.contents.draw_text(4, 32, 120, 32, $game_party.gold.to_s, 2)
end
end
Code:
#==============================================================================
# â–� Window_MenuStatus
#------------------------------------------------------------------------------
#  メニュー画��パー� ィメン�ー�ス� ータスを表示�るウィンドウ��。
#==============================================================================
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# � オブジェクト�期化
#--------------------------------------------------------------------------
def initialize
super(0, 0, 480, 416)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# � リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 64
y = i * 96
actor = $game_party.actors[i]
draw_actor_graphic(actor, x - 40, y + 80)
draw_actor_name(actor, x, y)
draw_actor_class(actor, x + 144, y)
draw_actor_level(actor, x, y + 32)
draw_actor_state(actor, x + 90, y + 32)
draw_actor_exp(actor, x, y + 64)
draw_actor_hp(actor, x + 236, y + 32)
draw_actor_sp(actor, x + 236, y + 64)
end
end
#--------------------------------------------------------------------------
# � カーソル�矩形更新
#--------------------------------------------------------------------------
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 96, self.width - 32, 96)
end
end
end