Partagez
Aller en bas
Anonymous
Invité
Invité

Worldgate 1.0 par Raizen Empty Worldgate 1.0 par Raizen

le Dim 18 Oct 2009 - 16:17
Nom du script : World Gate 1.0

Auteur : Raizen

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", comme d'habitude Wink

Screen :
Worldgate 1.0 par Raizen 1250627593_worldgate01

script :
Code:
######################################################################################
#                                                                                             
#                                                                            script écrit par : Raizen ZENTRIX               
#                                                                                             
#                                                                                        script World Gate                             
#                                                                                              Version 1.0
#
#                                                                   
#
######################################################################################
# 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  -----------------------------------------------------------------#
######################################################################################
ZangtherOld
ZangtherOld
Membre

Nombre de messages : 1711
Date d'inscription : 07/08/2009

Worldgate 1.0 par Raizen Empty Re: Worldgate 1.0 par Raizen

le Dim 18 Oct 2009 - 16:40
Ultima95
Ultima95
Membre

Nombre de messages : 3
Distinction : aucune
Date d'inscription : 04/10/2009

Worldgate 1.0 par Raizen Empty Re: Worldgate 1.0 par Raizen

le Dim 1 Nov 2009 - 19:30
on dirait le concepte d'assassin's creed! :1010: c'est superbe!
Dudu'
Dudu'
Staffeux retraité

Nombre de messages : 2060
Age : 28
Distinction : Apprenti KGB-boy en avenir
[Coco' Smile]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009

Worldgate 1.0 par Raizen Empty Re: Worldgate 1.0 par Raizen

le Dim 1 Nov 2009 - 21:40
oui mais raizen est un grand garçon et comme l'a indiquer Zangther il l'a déjà posté!!!
alors si un modo pouvait lock...
Coco'
Coco'
Staffeux retraité

Nombre de messages : 6577
Age : 26
Localisation : Nord/Douai
Distinction : EL DICTATOR COCO'
Coco-Dieu en puissance

Worldgate 1.0 par Raizen Magikarpe Grand gourou suppléant de la secte des MAGIKARP
Leader charismatique des 2beStaffieux

N°1 du forum
Président, vice-présidents et membres honoraires de la cour suprême du forum
Président de l'association des grosses distinctions CMB
Date d'inscription : 02/07/2008
https://www.rpgmakervx-fr.com

Worldgate 1.0 par Raizen Empty Re: Worldgate 1.0 par Raizen

le Dim 1 Nov 2009 - 22:41
Ok, je lock, sinon c'était moi qui avait posté ce script... ^^'
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum