Forum sur RPG Maker.
 
AccueilPortailGalerieRechercherFAQS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Remplacer les charac du menu par des battler

Voir le sujet précédent Voir le sujet suivant 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
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» script menu catégories d'items
» -----Menu option plus V2.0----- By Adurna
» Special menu but without XP and Level.
» [résolu]Supprimer l'onglet sauvegarde dans le menu
» [RESOLU - Script] Création d''une petite fenetre de menu.

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: