Heures au format UTC + 1 heure [ Heure d’été ]


Règles du forum


-Mettez un titre clair et explicite, pas un titre vague.
-Fournissez le plus d'informations possible, soyez clair et précis.
-Si votre question est liée à un script, postez le script, un lien vers lui, ou une démo.
-Pensez à éditer votre sujet afin d'ajouter [Résolu] dans le titre, lorsque votre problème est résolu.



Publier un nouveau sujet Répondre au sujet  [ 7 messages ] 
Auteur Message
 Sujet du message: Problème avec un script de Mog Hunter
MessagePublié: 07 Mar 2010, 20:38 
Villageois (Nv 5)
Avatar de l’utilisateur

Inscrit le: 20 Déc 2009, 16:24
Messages: 94
Niveau RPG Maker: Intermédiaire
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Events, Mappping, Graphisme :s
Sexe: Masculin
Points d'aide: 2/60

Créations :

Voir ses créations

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. :cry:
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

_________________
Dark Knight The fall of the kingdom___ Mon Projet
| Mapping = 1%
| Scripts = 99%
| Base de donnés = 45%
| Histoire = 76%
| Quêtes secondaires = 1%


Haut
 Profil  
 
 Sujet du message: Re: Problème avec un script de Mog Hunter
MessagePublié: 07 Mar 2010, 22:12 
Membre VIP
Membre VIP
Avatar de l’utilisateur

Inscrit le: 14 Avr 2007, 00:00
Messages: 1729
Localisation: ENS Rennes
Niveau RPG Maker: +∞
Point(s) Fort(s): Ruby
Sexe: Masculin
Points d'aide: 60/60

Créations :

Voir ses créations

J'ai regardé un peu le code non indenté (beurk), ça à pourtant l'air d'être correct.

En jeu, dis nous si les variables 998 et 999 sont bien libres, et si elles évoluent bien.
(elles ont peut-être besoin du menu pour se mettre à jour)

Par exemple, fait un combat, tue un monstre.
Tu va dans le menu une fois pour mettre à jour / regarder, puis reviens dans la map pour vérifier si les variables (en l'occurrence la 999) a bien incrémenté de 1.

Pour le héros je pense que c'est normal si ça ne marche pas.
Si tu es mort, c'est GameOver, un point c'est tou, pas moyen de revenir dans le menu pour vérifier.
Il est aussi possible que cela ne compte les héros morts que durant les combats (si ya pas gameover), mais dans ce cas, on peut t'arranger ça. (ou tu peux le faire en event)

_________________
Image
Projets
> ORAGE (Alternative 2D library) (#=> voir sur Github)
> &Co (#=> http://darkleo.alwaysdata.net/)


Haut
 Profil  
 
 Sujet du message: Re: Problème avec un script de Mog Hunter
MessagePublié: 07 Mar 2010, 22:34 
Villageois (Nv 5)
Avatar de l’utilisateur

Inscrit le: 20 Déc 2009, 16:24
Messages: 94
Niveau RPG Maker: Intermédiaire
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Events, Mappping, Graphisme :s
Sexe: Masculin
Points d'aide: 2/60

Créations :

Voir ses créations

Cela ne marche pas encore. la variable 999 fonctionne bien mais rien ne change dans Scene_End.
Pour le GameOver non plus d'ailleurs.

Les combats sont en action et il n'y a qu'un personnage.
Peux-tu me dire la façon en event de faire cela?

Si jamais il n'y a pas de solution pour les ennemis, je vais modifier le script pour qu'il n'y soit plus.


Haut
 Profil  
 
 Sujet du message: Re: Problème avec un script de Mog Hunter
MessagePublié: 07 Mar 2010, 22:55 
Garde
Garde
Avatar de l’utilisateur

Inscrit le: 12 Avr 2009, 00:00
Messages: 364
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Ruby
Sexe: Masculin
Points d'aide: Illimité

Créations :

Voir ses créations

Bonjour,

Donc en gros, pour résoudre ton probleme de nombre d'ennemis tué il faudrait simplement afficher la valeur de la variable d'id la constante "DEFEAT_NUMBER_ID"

Si c'est le cas c'est très simple :
A la ligne 111 tu a sa :
Code: Tout sélectionner
self.contents.draw_text(210, 150, 300, 64,ENEMY_DEFEATED_TEXT + "    ->    " + $game_system.enemy_defeated.to_s,0)


Remplace par sa :
Code: Tout sélectionner
self.contents.draw_text(210, 150, 300, 64,ENEMY_DEFEATED_TEXT + " -> " + $game_variables[XAS_BA::DEFEAT_NUMBER_ID].to_s,0)


Je t'explique en gros ce que j'ai changer :
$game_variables[id] permet de récupérer la valeur de la variable d'id "id"
XAS_BA::DEFEAT_NUMBER_ID est la constante contenu dans le module "XAS_BA" que tu nous a montré.
Ainsi cette ligne affichera la valeur de la variable d'id DEFEAT_NUMBER_ID (999 dans ton cas)
le .to_s permet de convertir la valeur (qui est un nombre) en une string (chaine de caractère)
pour pouvoir ajouter le nombre au reste de la chaine.

Maintenant la valeur affichée sera cette variable ;)

Ensuite pour ton probleme de GameOver,c omme la précisé Darkleo, le systeme est conçu pour compter le nombre de héros qui meurt durant un combat, or tu n'a qu'un seul héros d'après ce que j'ai compris ?
Du coup sa te met directement le GameOver. Et la valeur n'est pas enregistré.

Pour résoudre le probleme le mieux (je pense) se serait de créez un fichier crypté en plus qui contiendrait cette valeur, et serait enregistrée a chaque GameOver.
Mais la valeur ne serait pas unique pour chaque sauvegarde, puisque on peut mourir sans jamais avoir sauvegardé. Donc impossible de choisir a quelle sauvegarde attribué la valeur...
Donc je n'est pas de réel solution...

Vla, Bonne chance quand même si tu y arrive ;)

+2PA


Haut
 Profil  
 
 Sujet du message: Re: Problème avec un script de Mog Hunter
MessagePublié: 09 Mar 2010, 01:03 
Villageois (Nv 5)
Avatar de l’utilisateur

Inscrit le: 20 Déc 2009, 16:24
Messages: 94
Niveau RPG Maker: Intermédiaire
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Events, Mappping, Graphisme :s
Sexe: Masculin
Points d'aide: 2/60

Créations :

Voir ses créations

Merci! :D
Le nombre d'ennemi tué marche à merveille!

Pour le GameOver, peut-être qu'il est possible de modifier le script de gameover pour faire comme pour les ennemis.

Code: Tout sélectionner
#_______________________________________________________________________________
# MOG_Scene_GameOver V1.5           
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
module MOG
#Transition Time. 
GTT = 45
#Transition Type(Name). 
GTN = "020-flat01"
#Tipo de Game Over.
#0 = Usa o Battleback como fundo.
#1 = Usa o mapa como fundo. (ABS Mode)
GTYPE = 1
end
#_______________________________________________________________________________
$mogscript = {} if $mogscript == nil
$mogscript["MOG_Scene_GameOver"] = true
class Scene_Gameover
include MOG
def main
s1 = ""
s2 = ""
@com = Window_Command.new(192, [s1, s2])
@com.opacity = 0
@com.visible = false
@com.contents_opacity = 0
if GTYPE == 0
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.battleback($game_map.battleback_name)
@status_window = Window_BattleStatus.new
else
@spriteset = Spriteset_Map.new
end 
@gover_lay = Sprite.new
@gover_lay.bitmap = RPG::Cache.gameover("Gover_lay")
@gover_lay.y = 480
@gover_lay.opacity = 0
@gove_com = Sprite.new
@gove_com.bitmap = RPG::Cache.gameover("Gover_com01")
@gove_com.x = 220
@gove_com.y = -480
$game_system.bgm_play(nil)
$game_system.bgs_play(nil)
$game_system.me_play($data_system.gameover_me)
if GTYPE == 0
Graphics.transition
else
Graphics.transition(MOG::GTT, "Graphics/Transitions/" + MOG::GTN ) 
end 
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
if GTYPE == 0
@sprite.dispose
@status_window.dispose
else
@spriteset.dispose
end
@gover_lay.dispose
@com.dispose
@gove_com.dispose
Graphics.transition(MOG::GTT, "Graphics/Transitions/" + MOG::GTN )
Graphics.freeze
if $BTEST
$scene = nil
end
end
def update 
if GTYPE == 0 
if @sprite.zoom_y < 1.5
@sprite.zoom_y += 0.01
end
if @sprite.zoom_x < 1.5
@sprite.zoom_x += 0.01
end
if @status_window.y < 480
@status_window.y += 3
elsif @status_window.y >= 480
@status_window.y = 480
end
end
if @gover_lay.y > 0
@gover_lay.y -= 5
@gover_lay.opacity += 5
@gove_com.y += 8
@gove_com.opacity += 5
elsif @gover_lay.y <= 0
@gover_lay.y = 0
@gover_lay.opacity = 255
@gove_com.y = 290
@gove_com.opacity = 255
end 
@com.update
case @com.index
when 0
@gove_com.bitmap = RPG::Cache.gameover("Gover_com01")
when 1
@gove_com.bitmap = RPG::Cache.gameover("Gover_com02")
end
if Input.trigger?(Input::C)
case @com.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Scene_Load.new
when 1 
$game_system.se_play($data_system.decision_se)
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = nil
end
end
end
end



Encore Merci --Drow--! :D


Haut
 Profil  
 
 Sujet du message: Re: Problème avec un script de Mog Hunter
MessagePublié: 12 Mar 2010, 00:21 
Bourgeois (Nv 1)
Avatar de l’utilisateur

Inscrit le: 03 Jan 2009, 01:00
Messages: 203
Localisation: Paris
Logiciel(s) préféré(s): VX
Point(s) Fort(s): Ruby
Sexe: Masculin
Points d'aide: 1/60

Créations :

Voir ses créations

Nan, mais tu vas pas me poursuivre sur tous les fora ?
J'aime pas qu'on m'envoie des MP pour demander de l'aide. Je détester coder et aider sous la pression. Je déteste encore plus modifier les scripts des autres piochés à droite à gauche.
En plus y'a plein de gens pour t'aider ici.

Désolé, autres membres, pour ce message qui ne vous intéresse surement pas... mais y'en a marre.

berka

_________________
Twitter: Pensées politiques et juridiques. Réflexions informatiques


Haut
 Profil  
 
 Sujet du message: Re: Problème avec un script de Mog Hunter
MessagePublié: 14 Mar 2010, 22:10 
Villageois (Nv 5)
Avatar de l’utilisateur

Inscrit le: 20 Déc 2009, 16:24
Messages: 94
Niveau RPG Maker: Intermédiaire
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Events, Mappping, Graphisme :s
Sexe: Masculin
Points d'aide: 2/60

Créations :

Voir ses créations

:( Personne ne veut ou sait comment m'aider? :cry:

Pitié! :cry: Aidez-moi!


EDIT: Merci à --Drow--!
Problême partiellement résolu.

_________________
Dark Knight The fall of the kingdom___ Mon Projet
| Mapping = 1%
| Scripts = 99%
| Base de donnés = 45%
| Histoire = 76%
| Quêtes secondaires = 1%


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 7 messages ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728