RPG Creator : créez votre MMORPG ou RPG sans aucune connaissance en programmation


Disponible le 4 Juin !




- Jouez à votre jeu sur tablettes tactiles, Smartphones et navigateurs Web
- Personnalisez vos menus
- Dessinez facilement et rapidement vos cartes
- Créez des actions pour le combat A-RPG


www.rpgcreator.net


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




Publier un nouveau sujet Répondre au sujet  [ 14 messages ]  Aller à la page 1, 2  Suivant
Auteur Message
 Sujet du message: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 25 Aoû 2008, 15:46 
Villageois (Nv 5)
Avatar de l’utilisateur

Inscrit le: 11 Jan 2008, 01:00
Messages: 99
Localisation: Sud de la France
Niveau RPG Maker: 14/20
Logiciel(s) préféré(s): RM
Point(s) Fort(s): Script
Sexe: Masculin
Points d'aide: 10/60

Créations :

Voir ses créations

Nous construirons le script dans l'ordre ou il se lit, je ne donne pas tout d'un coup, ça évite de faire appel aux numéros des lignes.

- POUR CEUX QUI VEULENT COMPRENDRE :



Bon, tout d'abord, la première chose à faire est d'aller dans les script (par la touche F11 ou en cliquant sur l'icone des scripts).

Une fois dedans, descendez jusqu'en bas, là vous apercevez le script Scene_Title, supprimez tout son contenu, puis copiez à la place ceci :

Code: Tout sélectionner
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  by Sin
#==============================================================================

class Scene_Title
  #--------------------------------------------------------------------------
  # ● Initialisation
  #--------------------------------------------------------------------------
  def main
    if $BTEST
      battle_test
      return
    end
    # Données
    $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


Une fois cela fait, il faut s'occuper du nombre de choix que comportera votre écran titre. Comme exemple, on prendra deux choix : Nouvelle partie et Charger partie (comme KH ou d'autre jeux...), mais vous pouvez en prendre autant que vous voulez bien sur.

Ce qui détermine le nombre de choix dans un script est la portion de code suivante :
Code: Tout sélectionner
s1 = ""
    s2 = ""
    @command_window = Window_Command.new(192, [s1, s2])
    @command_window.x = - 850


Dans ce cas, on a deux choix, mais si on veut en mettre trois, alors il suffit de rajouter "s3" entre crochet et rajouter
Code: Tout sélectionner
s3 = ""
juste en dessous de
Code: Tout sélectionner
s2 = ""
.
Et vous l'aurez compris, recommencer l'opération pour autant de choix que vous voulez...
Vous noterez que la position en x (axe des abscisses) et de - 850, je l'ai fait exprès pour qu'on ne voit pas le cadre de choix, car on a pas besoin de le voir.

Passons aux images : il va falloir dessiner des images pour chaque configurations (une pour Nouvelle partie, une pour Charger Partie), ce qui vous permet de dessiner les lettres des vos deux choix, et de faire des petits dessins qui bougeront en fonction de la position ou vous trouverez (comme une petite puce, ou une main qui suit votre position sur les choix, vous pouvez aussi créer un petit décalage pour faire comme un système d'onglet, bref, vous pouvez designer facilement l'apparence de votre écran titre.
Cependant, vos images doivent être impérativement en 640*480 pixels.
Voici un exemple test, vite fait :

Image

Image
N'oubliez pas d'importer vos images avec l'importateur (F10) et de faire "Effacer" pour qu'il n'y ait aucun couleur de transparence.

Après collez ce code, il sert à savoir s'il y a des fichiers de sauvegarde ou non, selon l'accès à "charger partie" sera bloqué ou non :
Code: Tout sélectionner
    # On regarde s'il y a des sauvegardes
    @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


Ensuite, collez ces lignes de script :
Code: Tout sélectionner
# Nouvelle partie
    @np = Sprite.new
    @np.bitmap = RPG::Cache.picture("Nouvelle partie")
    @np.z = 300
    @np.x = 0
    @np.y = 0
    @np.opacity = 255
    # Charger partie
    @cp = Sprite.new
    @cp.bitmap = RPG::Cache.picture("Charger partie")
    @cp.z = 300
    @cp.x = 0
    @cp.y = 0
    @cp.opacity = 0


Là je viens de faire "exister" les deux images dont ont a besoin.
Copiez autant de fois que vous avez d'images les lignes, et mettez les noms des images entre guillemets.
Ensuite collez les codes suivant :

Code: Tout sélectionner
# BGM
    $game_system.bgm_play($data_system.title_bgm)
    # Fin BGS et ME
    Audio.me_stop
    Audio.bgs_stop
    # Transition
    Graphics.transition
    # メインループ
    loop do
      # update graphique
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    # Transitions 2
    Graphics.freeze
    # Effacement des images
    @command_window.dispose
    @np.dispose
    @cp.dispose
    end


Comme marqué juste au dessus, il faut indiqué au script que vous supprimez les images une fois l'écran titre passé. Vous mettez donc un
Code: Tout sélectionner
.dispose
après chaque nom représentatif de vos images (souvenez vous, j'ai dis que pour le script @np correspond à l'image de nouvelle partie).
Ensuite, copiez les code suivant :
Code: Tout sélectionner
#--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------
  def update
    # Rafraichissement
    @command_window.update
    @np.update
    @cp.update
    @b.update
    @q.update
    update_command
    # Appuis C
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0  # Commencer
        command_new_game
      when 1  # Charger
        command_continue
      end
    end
  end

Comme pour .dispose, vous devez mettre .update devant vos images.
Dans ce code, vous devez aussi mettre autant de "when" qu'il y a de possibilité, de choix. Et en dessous du when, vous mettez ce que vous voulez qu'il se passe quand le joueur valide et qu'il se trouve sur le choix indiqué par le chifre (0 c'est le première choix, 1 le deuxième, etc...).
Sachez que
Code: Tout sélectionner
command_shutdown
fait quitter le jeu.
Ensuite copiez coller ce script, toujours à la suite :
Code: Tout sélectionner
#--------------------------------------------------------------------------
  # ● Définition des commandes - Commencer -
  #--------------------------------------------------------------------------
  def command_new_game
    # Nouveau jeu
    $game_system.se_play($data_system.decision_se)
    # Fin BGM
    Audio.bgm_stop
    Graphics.frame_count = 0
    # Données
    $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
    # Début du jeu
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # ● Définition des commandes - Continue -
  #--------------------------------------------------------------------------
  def command_continue
    # Continue
    unless @continue_enabled
      # SE
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # SE
    $game_system.se_play($data_system.decision_se)
    # Chargement
    $scene = Scene_Load.new
  end

Et puis copiez le code suivant si jamais vous avez mis une possibilité de quitter le jeu :
Code: Tout sélectionner
#--------------------------------------------------------------------------
  # ● Définition des commandes - Quitter -
  #--------------------------------------------------------------------------
  def command_shutdown
    # Fin
    $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


Le plus important :
Code: Tout sélectionner
#--------------------------------------------------------------------------
# ● Position dans le menu
#--------------------------------------------------------------------------
  def update_command
    case @command_window.index
when 0
@np.opacity = 255
@cp.opacity = 0
when 1
@np.opacity = 0
@cp.opacity = 255
end
end

Ce code définis ce qui se passe selon votre position dans les choix, ici il est marqué que si vous êtes sur 0 (le premier choix), l'image nouvelle partie (@np) sera totalement affiché (opacité maximale) alors que l'image de charger partie (@cp) sera invisible. Et c'est l'inverse lorsque l'on se trouve dans la seconde position.
Là est tout le principe du tuto et du script, selon votre position, ce ne sont pas les mêmes images qui vous sont affichés.
On a le même résultat et principes avec les event, mais avouez que le dernier code qui fait 10 ligne au plus est bien plus simple que deux event et des déclencheurs (et fait moins laggé).

Bref, vous n'avez plus qu'a copiez coller ce dernier code et c'est finit :
Code: Tout sélectionner
#--------------------------------------------------------------------------
  # ● 戦闘テスト
  #--------------------------------------------------------------------------
  def battle_test
    # 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
    # SE
    $game_system.se_play($data_system.battle_start_se)
    # BGM
    $game_system.bgm_play($game_system.battle_bgm)
    # Combat
    $scene = Scene_Battle.new
  end
end

_________________
Keyblade's Master


Haut
 Profil  
 
 Sujet du message: Re: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 25 Aoû 2008, 15:59 
Membre royal(e)
Avatar de l’utilisateur

Inscrit le: 05 Avr 2008, 00:00
Messages: 643
Niveau RPG Maker: Bon
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Ruby, Scénario
Sexe: Masculin
Points d'aide: 8/60

Créations :

Voir ses créations

Oui Oui Oui !!
C'est ca le making mon brave !
je te félicite pour ce tuto , tu vas vraiments apparaitre dans mes crédits de jeu.
Merci

_________________
"Embrace your dreams, and, whatever happends, protect your honor, AS SOLDIER ! Come and get it !" -Zack Fair -FF7 Crisis Core


Haut
 Profil  
 
 Sujet du message: Re: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 25 Aoû 2008, 21:24 
Artisan (Nv 4)
Avatar de l’utilisateur

Inscrit le: 15 Mai 2008, 00:00
Messages: 167
Niveau RPG Maker: Expert
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Mappage, Eventerie
Sexe: Masculin
Points d'aide: 1/60

Créations :

Voir ses créations

un super tuto qui va beaucoup m'aider! je te remercie beaucoup!


Haut
 Profil  
 
 Sujet du message: Re: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 25 Aoû 2008, 22:10 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 08 Mai 2005, 15:00
Messages: 2994
Localisation: Lyon
Niveau RPG Maker: Expert
Logiciel(s) préféré(s): RMXP ; IGM
Point(s) Fort(s): HTML5, PHP, Javascript, Ruby
Sexe: Masculin
Points d'aide: Illimité

Créations :

- RPG JS : Votre RPG en ligne sur votre navigateur


Voir ses créations

Bonjour,

Bon tutorial et clair pour celui qui ne connait pas trop le RGSS. Par contre, je modifie quelques détails :

Citer:
Vous noterez que la position en x (axe des abscisses) et de - 850, je l'ai fait exprès pour qu'on ne voit pas le cadre de choix, car on a pas besoin de le voir.


Pourquoi donc créer une fenêtre si on s'en sert pas ? Du coup, on aura :

L'initialisation de @index à 1 (première position) et @max le nombre d'élement. A mettre dans la méthode "initialize"
Code: Tout sélectionner
@index = 1
@max = 2


La méthode " update_command" sera donc :
Code: Tout sélectionner
def  update_command
if Input.trigger?(Input::DOWN)
  # On incrémente de 1 pour changer l'index
  @index += 1
  # On remet à la première position si on dépasse le nom d'élèment maximum
  @index = 1 if @index > @max
elsif Input.trigger?(Input::UP)
  # On décrémente quand on appuie sur la touche "Haut"
  @index -= 1
  # On met à la dernière position si index est inférieure à 1
  @index = @max if @index < 1
end
case @index
 when 1
 @np.visible = true
  @cp.visible = false
 when 2
  @np.visible = true
  @cp.visible = false
  end
end


Et j'ai mis "visible" au lieu de l'opacité, ça fait plus propre ^^. Plus besoin de la fenêtre et la variable "@command_window"

Enfin, autres choses :

Je n'ai pas compris ceci dans la méthode "update"

Code: Tout sélectionner
@b.update
@q.update


Ils viennent d'où les variables @b et @q ?

Sinon, + 3 PA pour le tutorial Wink

_________________
Site officiel de RPG Creator : http://rpgcreator.net

RPG Creator permet de créer des RPG ou MMORPG sans aucune connaissance en programmation et de jouer au jeu sur les tablettes tactiles, Smartphones et navigateurs Web.
Disponible le 4 Juin


Haut
 Profil  
 
 Sujet du message: Re: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 26 Aoû 2008, 00:13 
Villageois (Nv 4)

Inscrit le: 07 Juin 2008, 00:00
Messages: 77
Points d'aide: 0/60

Créations :

Voir ses créations

Merci beaucoup pour ce tutorial, je compte surement m'en servir quand j'aurais le temps de m'y plonger dedans avec mon toshop chéri Smile

Par contre, saurais et pourrais tu faire un tutorial du genre pour les menus, les sauvegardes ou les gameover ?


Haut
 Profil  
 
 Sujet du message: Re: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 26 Aoû 2008, 00:33 
Membre royal(e)

Inscrit le: 01 Nov 2007, 01:00
Messages: 828
Points d'aide: 55/60

Créations :

Voir ses créations

Très bon tutoriel pour les débutants dans le RGSS, on apprend l'utilité de certaine commande en même temps ^^,
je rajoute à la liste.
Merci de ta contribution =)


Haut
 Profil  
 
 Sujet du message: Re: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 08 Déc 2008, 23:18 
Villageois (Nv 1)

Inscrit le: 09 Déc 2008, 01:00
Messages: 5
Points d'aide: 0/60

Créations :

Voir ses créations

ne fonctionne pas ERREUR A La Ligne 81 dans la section ^^Update^^ .Quelqun pourrait m'aidé


Haut
 Profil  
 
 Sujet du message: Re: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 31 Déc 2008, 07:05 
Villageois (Nv 5)
Avatar de l’utilisateur

Inscrit le: 05 Jan 2007, 01:00
Messages: 86
Points d'aide: 0/60

Créations :

Voir ses créations

J'ai un problème. Quand je sélectionne charger une parties ça ne fait rien, ça ne me rend pas à la page des sauvegarde et j'ai des parties sauvegarder. C'est surement un prob du script, car j'ai pas d'autre script. Quelqu'un peut m'aider SVP.

Merci


Haut
 Profil  
 
 Sujet du message: Re: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 01 Jan 2009, 01:16 
Villageois (Nv 5)
Avatar de l’utilisateur

Inscrit le: 11 Jan 2008, 01:00
Messages: 99
Localisation: Sud de la France
Niveau RPG Maker: 14/20
Logiciel(s) préféré(s): RM
Point(s) Fort(s): Script
Sexe: Masculin
Points d'aide: 10/60

Créations :

Voir ses créations

Vraiment désolé d'avoir mis si longtemps pour vous répondre ! J'avoue que je n'ai pas surveillé ce topic :S

Je vais tous vous répondre Smile :

Samarium => Ca fait un moment que j'ai fais ce truc, et quand je l'ai publié, ça faisait déjà un moment que je l'avait fait lol donc j'étais pas très clean point de vue prog, comme tu l'as souligné :p c'est vrai que @p et @q ne servent à rien, ça doit être des résidus du premier script brouillon que j'avais fait... sinon pour le
Code: Tout sélectionner
.visible
tu as parfaitement raison, mais le fait de faire varier la valeur de x permet d'apprendre un peu ^^
Merci d'avoir rajouté tes indications dans mon script assez basique... Smile

Mattatat => Je commence un tuto-script qui permettra de composer son menu (son Custom Menu System) tout en apprenant le RGSS ! Mais le travail est long... donc oui, il y aura des tutos de ce genre Smile

Gamayor => Merci de l'avoir mis dans la liste Smile Et content d'avoir contribué au site :p

jultknight => Désolé mais je n'ai pas trop le script en continu, pourrais tu me copier la ligne, et me dire le message d'érreur stp ? Je pourrai surement corriger, ou te dire le blem... Smile

Medark => regardes le MP ^^

Merci à tous d'avoir regardé mon tuto-script laugh

_________________
Keyblade's Master


Haut
 Profil  
 
 Sujet du message: Re: Faire un Custom Title System en script, simplement /! MAJ /!
MessagePublié: 19 Mai 2009, 10:28 
Villageois (Nv 1)
Avatar de l’utilisateur

Inscrit le: 26 Juin 2008, 00:00
Messages: 13
Niveau RPG Maker: Moyen
Logiciel(s) préféré(s): Photoshop, Dreamweaver
Sexe: Féminin
Points d'aide: 0/60

Créations :

Voir ses créations

Excusez moi pour le necro-post, mais ça marche pas chez moi.. scratch

Ca me dit qu'il y a une erreur sur la dernière ligne ("end").

J'ai pas tout compris sur le tuto en lui-même, mais j'ai utilisé exactement ses images et fait exactement ce qui était dit.

Help please sad


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 14 messages ]  Aller à la page 1, 2  Suivant

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