赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 17573 |
最后登录 | 2020-3-13 |
在线时间 | 304 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 138
- 在线时间
- 304 小时
- 注册时间
- 2014-4-11
- 帖子
- 419
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
求解在哪里改这个提示的位置 && 加一个前缀 “获得荣誉”
目前这个东西的位置是右上角- #==============================================================================
- # ★ RGSS3_荣誉系统 Ver1.00
- #==============================================================================
- #尼玛啊!!!我讨厌日文啊
- #使用方法:
- # gain_medal(0)
- #==============================================================================
- # □ 设定项目
- #==============================================================================
- module TMMEDAL
- COMMAND_MEDAL = "荣誉" # 菜单中的名字
-
- # 一个荣誉也没有时隐藏菜单(true隐藏;false不隐藏)
- HIDE_COMMAND = false
-
- # 荣誉获得时的效果音
- SE_GAIN_MEDAL = RPG::SE.new("Powerup", 90, 140)
-
- # 荣誉名称及简介的设置
- #例如:MEDAL_DATA[0] = ["名字", 187, "简介"]
- MEDAL_DATA = {}
- MEDAL_DATA[0] = ["名字?", 187, "简介?"]
- MEDAL_DATA[1] = ["小虾米", 187, "初出茅庐的证明"]
- MEDAL_DATA[2] = ["サキュバスファン", 190, "サキュバスと会話をした証"]
- end
- #==============================================================================
- # ■ Game_Party
- #==============================================================================
- class Game_Party
- #--------------------------------------------------------------------------
- # ● 公開インスタンス変数
- #--------------------------------------------------------------------------
- attr_reader :medals # 獲得済みメダル
- attr_reader :new_medals # 新規獲得メダル
- attr_accessor :medal_info_count # メダル情報表示カウント
- attr_accessor :medal_info_opacity # メダル情報表示不透明度
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- alias tmmedal_game_party_initialize initialize
- def initialize
- tmmedal_game_party_initialize
- @medals = []
- @new_medals = []
- @medal_info_count = 0
- @medal_info_opacity = 0
- end
- #--------------------------------------------------------------------------
- # ○ メダルの獲得
- #--------------------------------------------------------------------------
- def gain_medal(medal_id)
- return if @medals.any? {|medal| medal[0] == medal_id }
- t = Time.now.strftime(" (%Y/%m/%d %H:%M)")
- @medals.push([medal_id, t])
- @new_medals.push([medal_id, t])
- end
- #--------------------------------------------------------------------------
- # ○ 獲得メダル情報の消去
- #--------------------------------------------------------------------------
- def delete_new_medal
- @new_medals.shift
- end
- end
- #==============================================================================
- # ■ Game_Interpreter
- #==============================================================================
- class Game_Interpreter
- #--------------------------------------------------------------------------
- # ○ メダルの獲得
- #--------------------------------------------------------------------------
- def gain_medal(medal_id)
- $game_party.gain_medal(medal_id)
- end
- end
- #==============================================================================
- # ■ Window_MenuCommand
- #==============================================================================
- class Window_MenuCommand
- #--------------------------------------------------------------------------
- # ● 独自コマンドの追加用
- #--------------------------------------------------------------------------
- alias tmmedal_window_menucommand_add_original_commands add_original_commands
- def add_original_commands
- tmmedal_window_menucommand_add_original_commands
- unless TMMEDAL::HIDE_COMMAND && !medal_enabled
- add_command(TMMEDAL::COMMAND_MEDAL, :medal, medal_enabled)
- end
- end
- #--------------------------------------------------------------------------
- # ○ メダルの有効状態を取得
- #--------------------------------------------------------------------------
- def medal_enabled
- !$game_party.medals.empty?
- end
- end
- #==============================================================================
- # □ Window_MedalInfo
- #==============================================================================
- class Window_MedalInfo < Window_Base
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize
- super(Graphics.width - window_width, 0, window_width, fitting_height(1))
- self.opacity = 0
- self.contents_opacity = $game_party.medal_info_opacity
- refresh
- end
- #--------------------------------------------------------------------------
- # ● ウィンドウ幅の取得
- #--------------------------------------------------------------------------
- def window_width
- return 240
- end
- #--------------------------------------------------------------------------
- # ● フレーム更新
- #--------------------------------------------------------------------------
- def update
- super
- if $game_party.medal_info_count > 0
- self.contents_opacity += 16
- $game_party.medal_info_count -= 1
- $game_party.delete_new_medal if $game_party.medal_info_count == 0
- else
- self.contents_opacity -= 16
- if self.contents_opacity == 0
- open unless $game_party.new_medals.empty?
- end
- end
- $game_party.medal_info_opacity = self.contents_opacity
- end
- #--------------------------------------------------------------------------
- # ● ウィンドウを開く
- #--------------------------------------------------------------------------
- def open
- refresh
- TMMEDAL::SE_GAIN_MEDAL.play
- $game_party.medal_info_count = 150
- self.contents_opacity = 0
- self
- end
- #--------------------------------------------------------------------------
- # ○ リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- unless $game_party.new_medals.empty?
- draw_background(contents.rect)
- medal = TMMEDAL::MEDAL_DATA[$game_party.new_medals[0][0]]
- rect = contents.rect.clone
- draw_icon(medal[1], rect.x, rect.y)
- rect.x += 24
- rect.width -= 24
- draw_text(rect, medal[0])
- end
- end
- #--------------------------------------------------------------------------
- # ○ 背景の描画
- #--------------------------------------------------------------------------
- def draw_background(rect)
- temp_rect = rect.clone
- temp_rect.width /= 2
- contents.gradient_fill_rect(temp_rect, back_color2, back_color1)
- temp_rect.x = temp_rect.width
- contents.gradient_fill_rect(temp_rect, back_color1, back_color2)
- end
- #--------------------------------------------------------------------------
- # ○ 背景色 1 の取得
- #--------------------------------------------------------------------------
- def back_color1
- Color.new(0, 0, 0, 192)
- end
- #--------------------------------------------------------------------------
- # ○ 背景色 2 の取得
- #--------------------------------------------------------------------------
- def back_color2
- Color.new(0, 0, 0, 0)
- end
- end
- #==============================================================================
- # □ Window_Medal
- #==============================================================================
- class Window_Medal < Window_Selectable
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize(x, y, width, height)
- super
- refresh
- select(0)
- activate
- end
- #--------------------------------------------------------------------------
- # ● 桁数の取得
- #--------------------------------------------------------------------------
- def col_max
- return 1
- end
- #--------------------------------------------------------------------------
- # ● 項目数の取得
- #--------------------------------------------------------------------------
- def item_max
- @data ? @data.size : 1
- end
- #--------------------------------------------------------------------------
- # ● アイテムの取得
- #--------------------------------------------------------------------------
- def item
- @data && index >= 0 ? @data[index] : nil
- end
- #--------------------------------------------------------------------------
- # ● アイテムリストの作成
- #--------------------------------------------------------------------------
- def make_item_list
- @data = $game_party.medals
- end
- #--------------------------------------------------------------------------
- # ● 項目の描画
- #--------------------------------------------------------------------------
- def draw_item(index)
- item = @data[index]
- medal = TMMEDAL::MEDAL_DATA[item[0]]
- rect = item_rect(index)
- draw_icon(medal[1], rect.x, rect.y)
- rect.x += 24
- rect.width -= 216
- draw_text(rect, medal[0])
- rect.x = contents.width - 192
- rect.width = 192
- draw_text(rect, item[1], 2)
- end
- #--------------------------------------------------------------------------
- # ● ヘルプテキスト更新
- #--------------------------------------------------------------------------
- def update_help
- if item
- medal = TMMEDAL::MEDAL_DATA[item[0]]
- text = medal[2]
- @help_window.set_text(text)
- end
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- make_item_list
- create_contents
- draw_all_items
- end
- end
- #==============================================================================
- # ■ Scene_Map
- #==============================================================================
- class Scene_Map
- #--------------------------------------------------------------------------
- # ● 全ウィンドウの作成
- #--------------------------------------------------------------------------
- alias tmmedal_scene_map_create_all_windows create_all_windows
- def create_all_windows
- tmmedal_scene_map_create_all_windows
- create_medal_window
- end
- #--------------------------------------------------------------------------
- # ○ メダルウィンドウの作成
- #--------------------------------------------------------------------------
- def create_medal_window
- @medal_window = Window_MedalInfo.new
- end
- end
- #==============================================================================
- # ■ Scene_Menu
- #==============================================================================
- class Scene_Menu
- #--------------------------------------------------------------------------
- # ● コマンドウィンドウの作成
- #--------------------------------------------------------------------------
- alias tmmedal_scene_menu_create_command_window create_command_window
- def create_command_window
- tmmedal_scene_menu_create_command_window
- @command_window.set_handler(:medal, method(:command_medal))
- end
- #--------------------------------------------------------------------------
- # ○ コマンド[メダル]
- #--------------------------------------------------------------------------
- def command_medal
- SceneManager.call(Scene_Medal)
- end
- end
- #==============================================================================
- # □ Scene_Medal
- #==============================================================================
- class Scene_Medal < Scene_MenuBase
- #--------------------------------------------------------------------------
- # ● 開始処理
- #--------------------------------------------------------------------------
- def start
- super
- create_help_window
- create_item_window
- end
- #--------------------------------------------------------------------------
- # ○ アイテムウィンドウの作成
- #--------------------------------------------------------------------------
- def create_item_window
- wy = @help_window.height
- wh = Graphics.height - wy
- @item_window = Window_Medal.new(0, wy, Graphics.width, wh)
- @item_window.viewport = @viewport
- @item_window.help_window = @help_window
- @item_window.set_handler(:cancel, method(:return_scene))
- end
- end
复制代码 |
|