Forum sur RPG Maker.
 
AccueilPortailGalerieRechercherFAQS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Remplacer les charac du menu par des battler

Aller en bas 
AuteurMessage
Aariz
Patriotes
Patriotes
avatar

Messages : 384
Date d'inscription : 26/08/2007
Localisation : Si je dis le trou du cul du monde ,vous voyez où c\'est ?

MessageSujet: Remplacer les charac du menu par des battler   Lun 3 Sep - 20:12

Voici un script qui remplace les charsets dans le menu, par les battlers.
Tout d'abord, vous rajoutez ceci à la fin de windows_base :

def draw_actor_battler(actor, x, y)
f_name = actor.battler_name + ".png"
f_hue = actor.battler_hue
bitmap = RPG::Cache.battler(f_name, f_hue)
cw = 110; ch = 100
src_rect = Rect.new(-18, -18, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end

Ensuite dans windows_MenuStatus, à la ligne30 remplaçez :

draw_actor_graphic(actor, x - 40, y + 80)
Par :


draw_actor_battler(actor, x - 40, y + 80)


Et faites de même pour la ligne 25 de Windows_Statuts

En bonus, les sauvegardes. Remplacez Windows_SaveFile par ce script :

#==============================================================================
# ■ Window_SaveFile
#------------------------------------------------------------------------------
#  セーブ画面およびロード画面で表示する、セーブファイルのウィンドウです。
#==============================================================================

class Window_SaveFile < Window_Base
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_reader :filename # ファイル名
attr_reader :selected # 選択状態
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# file_index : セーブファイルのインデックス (0~3)
# filename : ファイル名
#--------------------------------------------------------------------------
def initialize(file_index, filename)
super(0, 64 + file_index % 4 * 104, 640, 104)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@file_index = file_index
@filename = "Save#{@file_index + 1}.rxdata"
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "r")
@time_stamp = file.mtime
@battlers = Marshal.load(file)
@frame_count = Marshal.load(file)
@game_system = Marshal.load(file)
@game_switches = Marshal.load(file)
@game_variables = Marshal.load(file)
@total_sec = @frame_count / Graphics.frame_rate
file.close
end
refresh
@selected = false
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
name = "Slot #{@file_index + 1}"
self.contents.font.color = normal_color
name = "File #{@file_index + 1}"
self.contents.draw_text(450, 8, 600, 32, name)
@name_width = contents.text_size(name).width
# セーブファイルが存在する場合
if @file_exist
# キャラクターを描画
for i in 0...@battlers.sizeCet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
bitmap = RPG::Cache.battler(@battlers[i][0], @battlers[i][1])
cw = 110
ch = 110
src_rect = Rect.new(-18, -38, cw, ch)
x = 100 - @battlers.size * 32 + i * 110
self.contents.blt(x, 68 - ch, bitmap, src_rect)
end
# プレイ時間を描画
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, 8, 600, 32, time_string, 2)
# タイムスタンプを描画
self.contents.font.color = normal_color
time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
self.contents.draw_text(4, 40, 600, 32, time_string, 2)
end
end
#--------------------------------------------------------------------------
# ● 選択状態の設定
# selected : 新しい選択状態 (true=選択 false=非選択)
#--------------------------------------------------------------------------
def selected=(selected)
@selected = selected
update_cursor_rect
end
#--------------------------------------------------------------------------
# ● カーソルの矩形更新
#--------------------------------------------------------------------------
def update_cursor_rect
if @selected
self.cursor_rect.set(446, 8, @name_width + 8, 32)
else
self.cursor_rect.empty
end
end
end


et scene_save par:
Code:
#==============================================================================
# ■ Scene_Save
#------------------------------------------------------------------------------
#  セーブ画面の処理を行うクラスです。
#==============================================================================

class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super("Voulez vous sauvegarder la partie ?")
end
#--------------------------------------------------------------------------
# ● 決定時の処理
#--------------------------------------------------------------------------
def on_decision(filename)
# セーブ SE を演奏
$game_system.se_play($data_system.save_se)
# セーブデータの書き込み
file = File.open(filename, "wb")
write_save_data(file)
file.close
# イベントから呼び出されている場合
if $game_temp.save_calling
# セーブ呼び出しフラグをクリア
$game_temp.save_calling = false
# マップ画面に切り替え
$scene = Scene_Map.new
return
end
# メニュー画面に切り替え
$scene = Scene_Menu.new(4)
end
#--------------------------------------------------------------------------
# ● キャンセル時の処理
#--------------------------------------------------------------------------
def on_cancel
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# イベントから呼び出されている場合
if $game_temp.save_calling
# セーブ呼び出しフラグをクリア
$game_temp.save_calling = false
# マップ画面に切り替え
$scene = Scene_Map.new
return
end
# メニュー画面に切り替え
$scene = Scene_Menu.new(4)
end
#--------------------------------------------------------------------------
# ● セーブデータの書き込み
# file : 書き込み用ファイルオブジェクト (オープン済み)
#--------------------------------------------------------------------------
def write_save_data(file)
# セーブファイル描画用のキャラクターデータを作成
battlers = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
battlers.push([actor.battler_name, actor.battler_hue])
end
# セーブファイル描画用のキャラクターデータを書き込む
Marshal.dump(battlers, file)
# プレイ時間計測用のフレームカウントを書き込む
Marshal.dump(Graphics.frame_count, file)
# セーブ回数を 1 増やす
$game_system.save_count += 1
# マジックナンバーを保存する
# (エディタで保存するたびにランダムな値に書き換えられる)
$game_system.magic_number = $data_system.magic_number
# 各種ゲームオブジェクトを書き込む
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
end
end
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
Remplacer les charac du menu par des battler
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Châtaigne grillée au menu
» [résolu] Impossible d'accéder au menu de configuration
» Mes fimotages-Menu Mac do
» Les livres et les idées(Le menu transcendant)Les prêches
» Un menu couleur cerise...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Metal Gear RPG :: RPG Maker XP :: Scripts :: Script pour ecran-
Sauter vers: