Bonjour!
(Ou Bonsoir!)
J'ai un problème avec le script suivant:
(C'est un script de Mog Hunter)
- Code: Tout sélectionner
#_______________________________________________________________________________
# MOG_Scene_End V2.1
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# Scene_End com movimento e layout em pictures.
# Apresenta a quantidade de batalhas, saves, loads, etc...
# Permite criar condições especiais de eventos.
#_______________________________________________________________________________
module MOG
#Transition Time.
ENDTT = 10
#Transition Type(Name).
ENDTN = "004-Blind04"
#----------------------------------------------------------------
#Definição do texto da apresentação dos parâmetros.
SAVE_COUNT_TEXT = "Saves do."
LOAD_COUNT_TEXT = "Loads do."
ENEMY_DEFEATED_TEXT = "Number of Dead Enemy."
ACTOR_DEFEATED_TEXT = "Number of GameOver."
#----------------------------------------------------------------
# Definição da variável que registrará o valor dos parâmetros.
#(Essa função serve para criar condições especiais no jogo.
# Exemplo -> Mate 100 inimigos que você receberá a espada do
# dragão.)
#----------------------------------------------------------------
# Valor de vezes que o jogo foi Salvo(Save).
SAVE_COUNT = 996
# Valor de vezes que o jogo foi carregado(Load).
LOAD_COUNT = 997
# Quantidade de inimigos mortos.
ENEMY_DEFEATED = 999
# Valor de vezes que o personagens foi abatido.
ACTOR_DEFEATED = 998
#----------------------------------------------------------------
end
$mogscript = {} if $mogscript == nil
$mogscript["menu_sakura"] = true
###############
# Game_System #
###############
class Game_System
include MOG
attr_accessor :enemy_defeated
attr_accessor :actor_defeated
attr_accessor :load_count
alias mog21_initialize initialize
def initialize
@enemy_defeated = 0
@actor_defeated = 0
@load_count = 0
mog21_initialize
end
def enemy_defeated
$game_variables[ENEMY_DEFEATED] = @enemy_defeated
return @enemy_defeated
end
def actor_defeated
$game_variables[ACTOR_DEFEATED] = @enemy_defeated
return @actor_defeated
end
def load_count
$game_variables[LOAD_COUNT] = @load_count
return @load_count
end
def save_count
$game_variables[SAVE_COUNT] = @save_count
return @save_count
end
end
##############
# Scene_Load #
##############
class Scene_Load < Scene_File
alias mog21_read_save_data read_save_data
def read_save_data(file)
mog21_read_save_data(file)
$game_system.load_count += 1
end
end
##################
# Sprite_Battler #
##################
class Sprite_Battler < RPG::Sprite
def collapse
super
if @battler.is_a?(Game_Enemy)
$game_system.enemy_defeated += 1
else
$game_system.actor_defeated += 1
end
end
end
###############
# Window Data #
###############
class Window_Data < Window_Base
include MOG
def initialize
super(0, 100, 640, 280)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
self.contents.font.name = "Georgia"
refresh
end
def refresh
self.contents.clear
self.contents.draw_text(70, 50, 300, 64,SAVE_COUNT_TEXT + " -> " + $game_system.save_count.to_s ,0)
self.contents.draw_text(140, 100, 300, 64,LOAD_COUNT_TEXT + " -> " + $game_system.load_count.to_s,0)
self.contents.draw_text(210, 150, 300, 64,ENEMY_DEFEATED_TEXT + " -> " + $game_system.enemy_defeated.to_s,0)
self.contents.draw_text(280, 200, 300, 64,ACTOR_DEFEATED_TEXT + " -> " + $game_system.actor_defeated.to_s,0)
end
end
#############
# Scene_End #
#############
class Scene_End
def main
s1 = ""
s2 = ""
s3 = ""
@command_window = Window_Command.new(100, [s1, s2, s3])
@command_window.visible = false
@window_data = Window_Data.new
@endback = Plane.new
@endback.bitmap = RPG::Cache.picture("MN_BK")
@endback.z = 10
@endback.opacity = 255
@endlayout = Plane.new
@endlayout.bitmap = RPG::Cache.picture("End_Layout")
@endlayout.z = 20
@endcom1 = Sprite.new
@endcom1.bitmap = RPG::Cache.picture("End_Com01")
@endcom1.z = 30
@endcom1.x = 20
@endcom1.y = 340
@endcom1.zoom_x = 1
@endcom2 = Sprite.new
@endcom2.bitmap = RPG::Cache.picture("End_Com02")
@endcom2.z = 30
@endcom2.x = 100
@endcom2.y = 395
@endcom3 = Sprite.new
@endcom3.bitmap = RPG::Cache.picture("End_Com03")
@endcom3.z = 30
@endcom3.x = 190
@endcom3.y = 440
$ld = 0
@zc = 1
Graphics.transition(MOG::ENDTT, "Graphics/Transitions/" + MOG::ENDTN)
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@window_data.dispose
@endback.dispose
@endcom1.dispose
@endcom2.dispose
@endcom3.dispose
@endlayout.dispose
if $scene.is_a?(Scene_Title)
Graphics.transition
Graphics.freeze
end
end
def update
@zc += 0.01
if @zc > 1.3
@zc = 1
end
@endback.ox += 1
@endback.oy += 1
@command_window.update
case @command_window.index
when 0
@endcom1.zoom_x = @zc
@endcom2.zoom_x = 1
@endcom3.zoom_x = 1
when 1
@endcom1.zoom_x = 1
@endcom2.zoom_x = @zc
@endcom3.zoom_x = 1
when 2
@endcom1.zoom_x = 1
@endcom2.zoom_x = 1
@endcom3.zoom_x = @zc
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(5)
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
command_to_title
when 1
command_load
when 2
command_shutdown
end
return
end
end
def command_to_title
$game_system.se_play($data_system.decision_se)
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = Scene_Title.new
end
def command_load
$ld = 1
$scene = Scene_Load.new
end
def command_shutdown
$game_system.se_play($data_system.decision_se)
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = nil
end
end
##############
# Scene_Load #
##############
class Scene_Load
def on_cancel
$game_system.se_play($data_system.cancel_se)
if $ld == 1
$scene = Scene_End.new
else
$scene = Scene_Title.new
end
end
end
Il est censé faire une nouvelle page dans le menu qui affiche le nombre de batailles, le nombre d'ennemis éliminé, le nombre de fois que le joueur sucombe, le nombre de sauvegardes effectué et le nombre de chargement effectué.
J'utilise les scripts de batailles de Xiderowg.
La version XAS Hero 3.6.
J'ai essayé d'effacer le nombre de bataille et j'ai réussi.
Mon problème c'est que le nombre de GameOver ne marche pas.
Je suicide mon character et rien ne se produit. À part le GameOver mais, quand je retourne dans ma game dans Scene_End,
Citer:
GAMEOVER = 0
Je n'ai aucune idée comment arranger ça.
Un autre détail me tracasse.
Le nombre d'ennemis tués est pareil.
Je ne sais pas si cela peut arranger mais,
chaque fois que je tue un ennemi, une unitée est rajouté à la variable 999.
La portion de code qui permet cela est le suivant:
Portion de code:
- Code: Tout sélectionner
#===============================================================================
# XAS - Customizações gerais de evento.
#===============================================================================
module XAS_BA
# Variável que define a ID do inimigo.
ENEMY_ID_VARIABLE_ID = 4
# Sensor que Define a página de ação do inimigo.
SENSOR_SELF_SWITCH = "D"
# Definição da variável que registrará a
# quantidade de inimigos derrotados.
DEFEAT_NUMBER_ID = 999
end
J'ai tenté d'apprendre le ruby sauf que c'est trop compliqué pour moi.
Je me demande si c'est possible (En fait, je sais que c'est possible mais comment?) de "connecter" le script à la base de donnés.
Dans l'espoir de rendre son jeu encore meilleur,
Dark Guardian