SALON DES MAKERS
Création de jeux vidéo amateurs
S'inscrire - Se connecter
Accueil - Forums - Articles et tutoriels - Ressources - Les jeux - Rechercher - Aide
[SCRIPT] --- Une map avant l'écran-titre

 
Poster un nouveau sujet   Répondre au sujet    Salon des makers Index du Forum -> DÉVELOPPEMENT D'UN JEU VIDÉO -> Étape 5 : Programmation -> Rpg Maker
Auteur Message
Christopher
Administrateur
Administrateur

Hors ligne

Inscrit le: 20 Mai 2007
Messages: 1 507
Sexe: Masculin
Localisation: Thénioux, France (Centre)

MessagePosté le: Mar 18 Déc - 11:40 (2007)    Sujet du message: [SCRIPT] --- Une map avant l'écran-titre Répondre en citant

Une map avant l'écran-titre


Description :
Grâce à ce script, le jeu commence sur une map au lieu de commencer par l'écran-titre.

Utilité :
Et bien nous sommes devant d'infinies possibilités.
Cela peut servir pour afficher un logo avant l'écran-titre, une cinématique, etc.

Installation :

- Remplacer le contenu du script "Scene_Title" par :
Code:
#==============================================================================
# ■ Scene_Title avec pré-scène par King Kadelfek
# http://www.kadelfek.com
#------------------------------------------------------------------------------
#  タイトル画面の処理を行うクラスです。
# King Kadelfek : J'ai rajouté du code pour qu'une map apparaisse avant l'écran-titre,
# et que le héros ne soit pas visible. Vous pouvez comme cela utiliser un évènement
# (en démarrage automatique) pour afficher du texte, une image, un logo, une petite
# animation avec des bonhommes qui bougent, etc....
# Deux lignes à modifier :
# - @HERO_VANISH = true : remplacez true par false pour que le héros soit visible
# - @MAP_ID = 1 : mettez ici l'id de la map que vous voulez afficher avant l'écran-titre
#
# N'oubliez pas de terminer l'évènement par l'instruction "Retour à l'écran-titre"
#==============================================================================

class Scene_Title
#####################################################################
def initialize(pre_scene=false)
@pre_scene = pre_scene
# true pour que le héros n'apparaisse pas sur la map avant l'écran titre,
# false pour qu'on puisse le voir
@HERO_VANISH = true
# Numéro de la map d'avant l'écran-titre
# (n'oubliez pas d'utiliser l'instruction "Retour à l'écran-titre" pour passer à l'écran-titre)
@MAP_ID = 2
end
#####################################################################
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
def main
# 戦闘テストの場合
if $BTEST
battle_test
return
end
# データベースをロード
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
# システムオブジェクトを作成
$game_system = Game_System.new
#####################################################################
if @pre_scene == true
command_new_game
return
end
#####################################################################
# タイトルグラフィックを作成
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# コマンドウィンドウを作成
s1 = "Nouvelle partie"
s2 = "Charger une partie"
s3 = "Quitter"
@command_window = Window_Command.new(192, [s1, s2, s3])
@command_window.back_opacity = 160
@command_window.x = 320 - @command_window.width / 2
@command_window.y = 288
# コンティニュー有効判定
# セーブファイルがひとつでも存在するかどうかを調べる
# 有効なら @continue_enabled を true、無効なら false にする
@continue_enabled = false
for i in 0..3
if FileTest.exist?("Sauvegarde#{i+1}.rxdata")
@continue_enabled = true
end
end
# コンティニューが有効な場合、カーソルをコンティニューに合わせる
# 無効な場合、コンティニューの文字をグレー表示にする
if @continue_enabled
@command_window.index = 1
else
@command_window.disable_item(1)
end
# タイトル BGM を演奏
$game_system.bgm_play($data_system.title_bgm)
# ME、BGS の演奏を停止
Audio.me_stop
Audio.bgs_stop
# トランジション実行
Graphics.transition
# メインループ
loop do
# ゲーム画面を更新
Graphics.update
# 入力情報を更新
Input.update
# フレーム更新
update
# 画面が切り替わったらループを中断
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# コマンドウィンドウを解放
@command_window.dispose
# タイトルグラフィックを解放
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# コマンドウィンドウを更新
@command_window.update
# C ボタンが押された場合
if Input.trigger?(Input::C)
# コマンドウィンドウのカーソル位置で分岐
case @command_window.index
when 0 # ニューゲーム
command_new_game
when 1 # コンティニュー
command_continue
when 2 # シャットダウン
command_shutdown
end
end
end
#--------------------------------------------------------------------------
# ● コマンド : ニューゲーム
#--------------------------------------------------------------------------
def command_new_game
# プレイ時間計測用のフレームカウントをリセット
Graphics.frame_count = 0
# 各種ゲームオブジェクトを作成
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# 初期パーティをセットアップ
$game_party.setup_starting_members
# プレイヤーをリフレッシュ
$game_player.refresh
##################################################################
if @pre_scene == false
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# BGM を停止
Audio.bgm_stop
# 初期位置のマップをセットアップ
$game_map.setup($data_system.start_map_id)
# プレイヤーを初期位置に移動
$game_player.moveto($data_system.start_x, $data_system.start_y)
else
#p "ici", @MAP_ID
$game_map.setup(@MAP_ID)
# On efface le joueur, pour ne pas qu'il apparaisse
$game_player.apparence("") if @HERO_VANISH
$game_player.moveto(10, 10)
end
##################################################################
# マップに設定されている BGM と BGS の自動切り替えを実行
$game_map.autoplay
# マップを更新 (並列イベント実行)
$game_map.update
# マップ画面に切り替え
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# ● コマンド : コンティニュー
#--------------------------------------------------------------------------
def command_continue
# コンティニューが無効の場合
unless @continue_enabled
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ロード画面に切り替え
$scene = Scene_Load.new
end
#--------------------------------------------------------------------------
# ● コマンド : シャットダウン
#--------------------------------------------------------------------------
def command_shutdown
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# BGM、BGS、ME をフェードアウト
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
# シャットダウン
$scene = nil
end
#--------------------------------------------------------------------------
# ● 戦闘テスト
#--------------------------------------------------------------------------
def battle_test
# データベース (戦闘テスト用) をロード
$data_actors = load_data("Data/BT_Actors.rxdata")
$data_classes = load_data("Data/BT_Classes.rxdata")
$data_skills = load_data("Data/BT_Skills.rxdata")
$data_items = load_data("Data/BT_Items.rxdata")
$data_weapons = load_data("Data/BT_Weapons.rxdata")
$data_armors = load_data("Data/BT_Armors.rxdata")
$data_enemies = load_data("Data/BT_Enemies.rxdata")
$data_troops = load_data("Data/BT_Troops.rxdata")
$data_states = load_data("Data/BT_States.rxdata")
$data_animations = load_data("Data/BT_Animations.rxdata")
$data_tilesets = load_data("Data/BT_Tilesets.rxdata")
$data_common_events = load_data("Data/BT_CommonEvents.rxdata")
$data_system = load_data("Data/BT_System.rxdata")
# プレイ時間計測用のフレームカウントをリセット
Graphics.frame_count = 0
# 各種ゲームオブジェクトを作成
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# 戦闘テスト用のパーティをセットアップ
$game_party.setup_battle_test_members
# トループ ID、逃走可能フラグ、バトルバックを設定
$game_temp.battle_troop_id = $data_system.test_troop_id
$game_temp.battle_can_escape = true
$game_map.battleback_name = $data_system.battleback_name
# バトル開始 SE を演奏
$game_system.se_play($data_system.battle_start_se)
# バトル BGM を演奏
$game_system.bgm_play($game_system.battle_bgm)
# バトル画面に切り替え
$scene = Scene_Battle.new
end
end


######################################################################
######################################################################
class Game_Character

def apparence(character_name, character_hue=255)
@character_name = character_name
@character_hue = character_hue
end

end
######################################################################
######################################################################

Puis dans "Main", remplacer :
Code:
$scene = Scene_Title.new
par :
Code:
$scene = Scene_Title.new(true)

Attention !
Ceci est donc incompatible si vous avez déjà inséré un script qui demande le remplacement du Scene_Title.
Parcontre, il est toujours possible de faire quelques modifications comme l'opacité de la fenêtre nouvelle partie par exemple.

Il y a d'autres instructions au début du script, n'ésitez pas à les lire.
_________________
Pas de support par mpLe Massacre ça Torque
no sms
Visiter le site web du posteur
Publicité






MessagePosté le: Mar 18 Déc - 11:40 (2007)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
no sms
3dward
Co-Administrateur
Co-Administrateur

Hors ligne

Inscrit le: 06 Juin 2007
Messages: 465
Sexe: Masculin

MessagePosté le: Mar 18 Déc - 21:45 (2007)    Sujet du message: [SCRIPT] --- Une map avant l'écran-titre Répondre en citant

Il existe aussi un script permettant de sauter l'écran-titre pour directement se rendre sur une map, le tueur d'écran titre.
Cela associé à un événement contenant le script
Code:
$scene = Scene_Title.new
aura un effet similaire.

Je me permettrais de le donner une fois que j'aurais retrouvé le script et bien entendu en obtenant l'accord de l'auteur.
[Sinon je le ferais moi même, juste le BTEST à lancer et le new_game direct ^^]
_________________


no sms
MSN
3dward
Co-Administrateur
Co-Administrateur

Hors ligne

Inscrit le: 06 Juin 2007
Messages: 465
Sexe: Masculin

MessagePosté le: Dim 27 Jan - 19:11 (2008)    Sujet du message: [SCRIPT] --- Une map avant l'écran-titre Répondre en citant

Up du 27 janvier 2008, 19:04

Voici le script en question (se reporter à mon précédent post)


Code:

class Scene_NoTitle
 
  def main
   
    if $BTEST
      battle_test
      return
    end
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes       = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    $game_system = Game_System.new
   
    command_new_game
   
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
  end
 
  def update
  end

  def command_new_game
    Graphics.frame_count = 0
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    $game_party.setup_starting_members
    $game_map.setup($data_system.start_map_id)
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
    $game_map.autoplay
    $game_map.update
    $scene = Scene_Map.new
  end

  def battle_test
    $data_actors        = load_data("Data/BT_Actors.rxdata")
    $data_classes       = load_data("Data/BT_Classes.rxdata")
    $data_skills        = load_data("Data/BT_Skills.rxdata")
    $data_items         = load_data("Data/BT_Items.rxdata")
    $data_weapons       = load_data("Data/BT_Weapons.rxdata")
    $data_armors        = load_data("Data/BT_Armors.rxdata")
    $data_enemies       = load_data("Data/BT_Enemies.rxdata")
    $data_troops        = load_data("Data/BT_Troops.rxdata")
    $data_states        = load_data("Data/BT_States.rxdata")
    $data_animations    = load_data("Data/BT_Animations.rxdata")
    $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
    $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
    $data_system        = load_data("Data/BT_System.rxdata")
    Graphics.frame_count = 0
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    $game_party.setup_battle_test_members
    $game_temp.battle_troop_id = $data_system.test_troop_id
    $game_temp.battle_can_escape = true
    $game_map.battleback_name = $data_system.battleback_name
    $game_system.se_play($data_system.battle_start_se)
    $game_system.bgm_play($game_system.battle_bgm)
    $scene = Scene_Battle.new
  end
end


Code d'origine : Scene_Title
Modifications apportées par 3dward.


3dward.
_________________


no sms
MSN
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 07:06 (2018)    Sujet du message: [SCRIPT] --- Une map avant l'écran-titre

no sms
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Salon des makers Index du Forum -> DÉVELOPPEMENT D'UN JEU VIDÉO -> Étape 5 : Programmation -> Rpg Maker
Page 1 sur 1

 
Sauter vers:  

Topherysation L'annuaire des sites web de qualité Partenaires