Partagez
Aller en bas
Raizen
Raizen
Membre

Nombre de messages : 19
Distinction : aucune
Date d'inscription : 28/07/2009

Worldgate (Porte du monde) version 1.0 Empty Worldgate (Porte du monde) version 1.0

le Lun 7 Sep 2009 - 19:01
Nom du script : World Gate

Version : 1.0

Auteur : Moi, Raizen, c'est mon 1er script :p

Fonctionnalités :
- Ce script va vous permettre d'afficher un menu téléporteur (ou carte du monde si vous voulez).
- Ce script se compose d'une fenêtre à gauche avec une liste de choix représentant les destination, avec chaque choix accompagné d'une image qui apparaîtra dans une autre fenêtre à droite.
- Possibilité d'ajouter ou de retirer des choix avec des interrupteurs ou des variables.

Utilisation :
Il y a quatre modifications à faire pour le bon fonctionnement du script, tout est expliqué bien clairement dans le script.
Pour appeler le script, utilisez la commande :
Code:
$scene = Scene_Worldgate.new
Le script est à placé au dessus de "main".

Screen :
Worldgate (Porte du monde) version 1.0 Worldg10

Le script :
Spoiler:
Code:
######################################################################################
#                                                                                             
#                                                                            script écrit par : Raizen ZENTRIX               
#                                                                                             
#                                                                                        script World Gate                             
#                                                                                              Version 1.0
#
#                                                                      Aide sur : http;//rpgmvx-rz.forumactif.com
#
######################################################################################
# Vous devez appeler ce script pour pouvoir l'utiliser avec la commande :
# $scene = Scene_Worldgate.new
######################################################################################
class Window_Worldgate < Window_Selectable

  def initialize(width, commands, column_max = 1, row_max = 0, spacing = 32)
    if row_max == 0
      row_max = (commands.size + column_max - 1) / column_max
    end
    super(0, 0, width, row_max * WLH + 32, spacing)
    @commands = commands
    @item_max = commands.size
    @column_max = column_max
    self.contents.dispose
    self.contents = Bitmap.new(width - 32, @item_max * WLH)
    refresh
    self.index = 0
  end

  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i)
    end
  end

  def draw_item(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(rect, @commands[index])
  end
 
end

class Scene_Worldgate

  def main

#--------------------------------------------------------------  A MODIFIER  ----------------------------------------------------------------- 
    # Fenêtre de bienvenue :
    # Ici, vous pourrez modifier votre message de bienvenue, en remplaçant les phrases entre " " par votre
    # message :
    @welcome_window = Window_Base.new(0, 0, 544, 87)
    @welcome_window.contents.draw_text (0, 0, 544, 32, "World Gate", 1)
    @welcome_window.contents.draw_text (0,0,544,72, "Veuillez choisir votre destination", 1)
#--------------------------------------------------------  FIN DE LA 1ERE MODIF  ------------------------------------------------------# 

     
#--------------------------------------------------------------  A MODIFIER  -----------------------------------------------------------------
    @place_name = []
    @place_picture = []
 
    # Noms et images des endroits :
    # C'est ici que vous metterez le nom des choix dans la variable @placename[x] avec x : la position du choix
    # EN COMMENCANT PAR 0, et le nom de l'image (sans l'extension) de ce choix dans la variable @place_picture[y]
    # avec y : la position du choix EN COMMENCANT PAR 0.
    # Le format conseillé des images est de 332x316, et de type jpg.
    #Vous pouvez mettre autant de choix que vous voulez :
    @place_name[0] ="Ville de départ"  #Placer le nom du 1er choix entre les " "
    @place_picture[0] = "image_desert"  #Placer le nom de l'image du 1er choix entre les " "
    @place_name[1] = "Forêt"  #Le nom du 2ème choix
    @place_picture[1] = "image_desert"  #Le nom de l'image du 2ème choix
 
    # Ici, le choix "Endroit1" n'apparaîtera que si l'interrupteur 23 est activé,
    if $game_switches[23] == true  # Vous pouvez changer le numéro de l'interrupteur si vous voulez
      @place_name[2] = "Endroit1"    # Et vous pouvez mettre autant de choix et d'interrupteur que vous désirez
      @place_picture[2] = "image_endroit1"  # Sinon vous pourrez toujours supprimer la condition
    end
 
    # Ici, le choix "Endroit2" n'apparaîtera que si la variable [15] est plus grande que 5
    if $game_variables[15] > 5  # Vous pouvez changer le numéro de la variable si vous voulez
      @place_name[3] = "Endroit2"  # Et vous pouvez mettre autant de choix et de variables que vous désirez
      @place_picture[3] = "image_endroit2"  # Sinon vous pourrez toujours supprimer la condition
    end
#--------------------------------------------------------  FIN DE LA 2EME MODIF  ------------------------------------------------------#
 
    # Fenêtre de choix :
    @select_window = Window_Worldgate.new(192, @place_name,1,13,10)
      @select_window.x = 0
      @select_window.y = @welcome_window.height
     
      # Fenêtre où apparaîterons les images des endroits
      @images_window = Window_Base.new(192, @welcome_window.height, 352, 330)
    @images_window.back_opacity = 0
     
#--------------------------------------------------------------  A MODIFIER  -----------------------------------------------------------------
    # Fenêtre des sprites :
    # Si vos images ne sont pas de taille 332x316, vous pouvez modifier leur position avec @places_sprite.x
    # qui représente l'axe des x, et @places_sprite.y qui représente l'axe des y :
      @places_sprite = Sprite.new
      @places_sprite.x = 201
      @places_sprite.y = 90
#--------------------------------------------------------  FIN DE LA 3EME MODIF  ------------------------------------------------------# 
     
      Graphics.transition
     
      loop do
        Graphics.update
        Input.update
          update
          if $scene != self
            break
          end
      end
     
      Graphics.freeze
     
        @welcome_window.dispose
        @select_window.dispose
        @images_window.dispose
        @places_sprite.dispose
    end

  def update     
        @welcome_window.update
        @select_window.update
        @images_window.update
     
      create_sprite
  end

  def create_sprite
        index = @select_window.index
        @places_sprite.bitmap = Cache.picture(@place_picture[index])     
     
        update_command
    end

    def update_command
      if Input.trigger?(Input::C)
        Sound.play_decision
        $scene = Scene_Map.new
          case @select_window.index
     
#--------------------------------------------------------------  A MODIFIER  ----------------------------------------------------------------#
        # C'est ici que vous pouvez configurer la téléportation de l'équipe, pour cela vous devez utiliser cette
        # commande "  $game_player.reserve_transfer(a, b, c, d)  " avec :
        # a : id de la prochaine map
        # b : coordonnées x de l'équipe
        # c : coordonnées y de l'équipe
        # d : la direction dans laquelle va regarder le héros (2=> en bas; 4=> à gauche; 6=> en haut; 8=> à droite)
     
        # Une dernière chose : Vous avez remarquez que à côté de "  when  " (qui signifie quand ou lorsque) il y a
        # un chiffre, ben ce chiffre représente la position de votre choix que vous avez modifié dans la 2ème modif
        # plus haut.
        # Ce qui veut dire que si vous avez 5 choix ou plus, vous devriez ajouter un autre "  when z  " avec :
        # z : la position du choix.
          when 0
          $game_player.reserve_transfer(2, 7, 9, 2)
          when 1
          $game_player.reserve_transfer(5,40,20,4)
          when 2
          $game_player.reserve_transfer(10,4,16,6)
        when 3
          $game_player.reserve_transfer(8,16,24,4)
#--------------------------------------------------------  FIN DE LA 4EME MODIF  ------------------------------------------------------#   

          end
      end
        if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new   
      end
    end

end

#--------------------------------------------------------  FIN DU script  -----------------------------------------------------------------#
######################################################################################
S'il y a un problème avec le script, veuillez poster une réponse (pas de MP, il se peut que quelqu'un d'autre aurait le même problème).
J'espère que ce script vous sera utile Smile


Dernière édition par Raizen le Dim 20 Sep 2009 - 18:48, édité 1 fois (Raison : modification de l'adresse de l'image)
Anonymous
Invité
Invité

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Lun 7 Sep 2009 - 20:10
Je suis surpris d'être pour une fois le premier à commenter

Franchement, pour un premier script, chapeau Shocked

Je penses l'utiliser dans un de mes projets délaissés, ( mais tu viens de me donner des idées ), avec par ailleurs ton second script.
Raizen
Raizen
Membre

Nombre de messages : 19
Distinction : aucune
Date d'inscription : 28/07/2009

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Mar 8 Sep 2009 - 19:16
pour un premier script, chapeau

^^ Cette phrase, je l'ai vu plusieurs fois lol.

Mais bon, je vais essayer de m'améliorer encore dans le domaine de RGSS...
dricc
dricc
Membre

Nombre de messages : 2757
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Mar 8 Sep 2009 - 19:32
La capture d'écran fait vraiment envie ...
Mais bon , il se trouve que j'avais déja un script presque identique d'un autre auteur Smile
Par contre le script que j'ai déclenche un evenement commun au lieu de faire directement la téléportation . Ce qui le rend un peu plus maléable mais un peu plus long à paramétrer .
Raizen
Raizen
Membre

Nombre de messages : 19
Distinction : aucune
Date d'inscription : 28/07/2009

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Mar 8 Sep 2009 - 20:13
Ce qui le rend un peu plus maléable mais un peu plus long à paramétrer .
Je ne sais pas si tu connais ce proverbe mais, je dit toujours :
"Qui veut du miel, doit supporter les piqûres des abeilles !"
J'espère que t'as compris le sens Very Happy

La capture d'écran fait vraiment envie ...
Pour la capture, c'est un peu plus compliqué... (enfin pour moi)
Docteur Kojy.
Docteur Kojy.
Staffeux retraité

Nombre de messages : 1210
Age : 24
Localisation : si tu dis mon pseudo 3 fois devant un miroir, j'apparais derrière toi !
Distinction : Sauveur préféré de notre chère patrie la communauté

Officieusement le coach-vocal-impresario-choriste-muse-amant de Coco'[Coco' himself Smile]
Attend toujours de le voir apparaitre après avoir dit son pseudo 256 fois devant un miroir [Xak' Worldgate (Porte du monde) version 1.0 522164]
Si tu le poses contre ton oreille, tu entends un Sonic Rainboom.
Date d'inscription : 24/02/2008

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Mer 9 Sep 2009 - 16:46
Superbe ! Enfin trouvé ce qu'il me fallait.
Si je termine mon projet, tu as une place dans mes crédits !
Très beau script et bonne continuation!
Paint
Paint
Membre

Nombre de messages : 31
Age : 26
Distinction : aucune
Date d'inscription : 02/09/2009

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Mer 9 Sep 2009 - 16:56
Franchement trés bon script, cela peut être trés utile pour beaucoup de personne ^^
Moi, j'ai qu'une chose à dire, vivement t'es prochain script ^0^
Yoshi-Dragon
Yoshi-Dragon
Membre

Nombre de messages : 752
Age : 23
Localisation : J'ai peur.
Distinction : aucune
Date d'inscription : 19/06/2009
http://smashbrosbrawl.e-monsite.com

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Mer 9 Sep 2009 - 18:37
COOOOOOOL
j'en avais justement besoin et je n'entrouvais pas !!!
Merci tu est mon sauveur ! lol!
Grace a toi je vais pour eviter de faire un event complique !!!
avatar
Az'
Membre

Nombre de messages : 3318
Age : 74
Date d'inscription : 22/12/2007

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Sam 12 Sep 2009 - 19:40
Bien joué, je connaissais des systèmes semblables, mais GG à toi Wink
Merci de ton partage (1er et 2ème scripts, joli boulot Wink )
SpikeLockart
SpikeLockart
Membre

Nombre de messages : 132
Distinction : aucune
Date d'inscription : 11/08/2009

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Mar 15 Sep 2009 - 23:08
J'arrive pas a afficher les screens.
Je sais pas voir a quoi ca ressemble Sad
Raizen
Raizen
Membre

Nombre de messages : 19
Distinction : aucune
Date d'inscription : 28/07/2009

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

le Dim 20 Sep 2009 - 18:52
J'ai édité le sujet et changé l'adresse de l'image Wink
Je crois que c'est bon maintenant !
Contenu sponsorisé

Worldgate (Porte du monde) version 1.0 Empty Re: Worldgate (Porte du monde) version 1.0

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum