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é ]


Règles du forum


Consultez la liste des Scripts : cliquez ici



Publier un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: TELEPORTATION avec menu des choix !!
MessagePublié: 10 Déc 2007, 11:33 
Villageois (Nv 2)

Inscrit le: 11 Déc 2007, 01:00
Messages: 28
Points d'aide: 0/60

Créations :

Voir ses créations

YO gang...

J'ai regardé,l'ai pas trouvé,ai décidé,dle partager...

Ce script permet de vous téléporter d'un endroit a l'autre en utilisant un event ou un item comme déclencheur...

Dabord,un screenshot du menu:

Image

Maintenant le code: (placer avant main comme dabitude)

Code: Tout sélectionner
#=======================================================================

 
# ■ Scene_Worldmap v0.9
#--------------------------------------------------------------------------------------------------------------------------------
# Ecrit par Krazplay, version la plus à jour disponible sur le forum du site rpgmakerxp.free.fr
# Nécessite : le scrîpt Window_world
# Description :
# Ce scrîpt permet d'afficher un menu de carte du monde/téléporteur comportant dans une
# première fenêtre à gauche une liste de choix (les destinations), chacun des choix est
# accompagné d'une image qui apparaitra à droite, et probablement dans une prochaine version
# d'une description dans la fenêtre de bienvenu, un choix peut être ajouté/enlevé ou désactivé
# à l'aide de variables ou de switchs.
# Utilisation :
# Il y a trois endroits où vous devez modifier ce scrîpt pour qu'il fonctionne, pour cela faites
# comme dans les exemples, ils sont à mon avis assez explicites.
#
# Modifications 1 : C'est là que vous mettrez le nom de la destination (dans la variable @s[i],
# où i est la position de ce choix, 0 = première position, 1 = 2nde position ou 1ère position si
# le choix 0 n'est pas disponible et ainsi de suite) et le nom de l'image du dossier Pictures lui
# correspondant dans la variable @ni[i] (le nom doit être entre crochets (exemple "Ville"), et ne
# doit PAS contenir le nom de l'extension (.jpg).
#
# Modifications 2 : Optionnel, si vous voullez qu'à un moment le joueur ne puisse pas aller
# quelquepart mais que le choix soit tout de même visible, c'est là qu'il faut le mettre, à l'aide
# de la commande : @command_window.disable_item("nom du l'endroit")
#
# Modifications 3 : Entrer ici les conséquences du choix, générallement la téléportion complète
# de l'équipe. Pour téléporter l'équipe vous pouvez utiliser la commande :
# téléportation(id_de_la_map, coordonnée_x, coordonnée_y, direction_du_héros_optionnel)
# Je ne me rappelle plus des différentes direction du héros, il me semble que ce chiffre peut
# une valeur entre 0 et 3, 0 et 3 étant compris. Cela permet en tout cas que le héro regarde
# vers le haut ou la droite par exemple, après s'être téléporté.
#
# Notes importantes : L'image doit être au format jpg (c'est le seul que j'ai testé, je ne sais pas
# si les autres sont acceptés). Son format conseillé est de 368x352, si l'image est plus petite,
# elle sera automatiquement centré au milieu de la fenêtre, de même si elle est trop grande, on
# verra son milieu, et non son côté.
# Pour appeller cette carte du monde, utliser la ligne de scrîpt suivante :
# $scene = Scene_Worldmap.new
# à partir de n'importe quel évènement ou scrîpt.
#=======================================================================
class Scene_Worldmap
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end

 
  def main
    @s = []
    @ni = []
    ############### Modifications 1 ################
    @s[0] = "Mines"                    #Nom du premier choix
    @ni[0] = "Mines1"    #Nom de l'image du premier choix ds votre dossier Pictures (sans l'extension)
        
if $game_switches[1] == true   # Exemple avec un switch :
      @s[2] = "Test"                         # Le choix "Test" n'apparaitra que si
      @ni[2] = "image_test"            # le switch 1 est activé
    end                                             
  @s[1] = "Zenithia Castle"                    
    @ni[1] = "Zenithia Castle"    
    @s[1] = "Zenithia Castle"  
    for i in [url=mailto:0...@s.size"]0...@s.size[/a]
      if @ni[i] == nil and @s[i] != nil   # Si aucun nom d'image n'a été attribué alors que le lieu existe
        @ni[i] = @s[i]           # Alors le nom du lieu devient le nom de l'image
      end
    end
    @s.compact!      # Enlève les espaces vides possibles.
    @ni.compact!
#Création de la fenêtre de bienvenue => (coordonnée x, coordonnée y, largeur, hauteur)
    largeur = 640
    hauteur = 96
    @bienvenue_window = Window_Base.new(0,0,largeur,hauteur)
    @bienvenue_window.contents = Bitmap.new(largeur-32, hauteur-32)
    @bienvenue_window.contents.font.name = $fontface #si vous voullez modifier la police d'écriture
    @bienvenue_window.contents.font.size = $fontsize #ou sa taille c'est ici.
    message1 = "Bienvenu sur la World Map."
    message2 = "Veuillez choisir votre destination."
    align = 1 #(0 = texte aligné à gauche ; 1 = texte centré ; 2 = aligné à droite)
    @bienvenue_window.contents.draw_text(0, 0, largeur, 32, message1, align)
    @bienvenue_window.contents.draw_text(0, 32, largeur, 32, message2, align)
    largeur2 = 240      #(largeur de la fenêtre des choix)
    @command_window = Window_World.new(largeur2, @s)
    @command_window.x = 0       # position x de la fenêtre des choix
    @command_window.y = 96     # position y de la fenêtre des choix
    @command_window.index = @menu_index
    # Fenêtre qui contiendra l'image => (position x, position y, largeur, hauteur)
    @image_window = Window_Base.new(240, 96, 400, 480-96)
   
    ############### Modifications 2 ################
    # Liste des choix non selectionnables, ils sont visibles en grisé par le joueur.
    if $game_switches[2] == true                # Exemple avec un switch :
      @command_window.disable_item("") # Le choix "Ville du desert" sera grisé
    end                         # et non selectionnable si le switch 2 est activé
   
    if $game_variables[66] < 4    # Exemple avec une variable : Le choix "Mines"
      @command_window.disable_item("")   #  sera grisé et non selectionnable
    end                          # tant que la variable 66 est inférieur à 4.
   
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @command_window.dispose
  end

 
  def update
    @command_window.update
    if @image_window.active
      update_image
    end
    if @command_window.active
      update_command
      return
    end
  end

 
  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @bienvenue_window.dispose
      @image_window.dispose
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::C)
      case @s[@command_window.index]
     
      ############### Modifications 3 ################
      when "Mines"                                                                    # Ce qui se passe si le joueur choisit "Mines"
        if not @command_window.disable_item?("Mines")  # Le choix n'est pas validé s'il est désactivé (grisé).
          téléportation(1, 6, 7,10)                                              # téléportation de l'équipe
          $game_system.se_play($data_system.save_se)    # rappel : (id_de_la_map, coordonnée_x, coordonnée_y, direction_du_héros_optionnel)
        end
    
    when "Zenithia Castle"
        if not @command_window.disable_item?("Zenithia Castle")
          téléportation(1, 8, 10)
          $game_system.se_play($data_system.save_se)
          end
     
      end
     
      if $scene == self  # Si la scene est encore celle-ci, le choix n'était pas bon, donc on
        $game_system.se_play($data_system.buzzer_se)  # joue un bruit de buzzer
      else
        $game_system.se_play($data_system.decision_se)       
      end
      return
    end
  end
 
  def téléportation(map_id, coord_x, coord_y, héro_direction=0)
    @bienvenue_window.dispose
    @image_window.dispose
    $game_temp.player_transferring = true
    $game_temp.player_new_map_id = map_id
    $game_temp.player_new_x = coord_x
    $game_temp.player_new_y = coord_y
    $game_temp.player_new_direction = héro_direction
    Graphics.freeze
    $game_temp.transition_processing = true
    $game_temp.transition_name = ""
    $scene = Scene_Map.new
  end
   
  def update_image
    i =@command_window.index
    if @ni[i] != nil and i != @vieuxi
      @image_window.contents = Bitmap.new(400-32, 480-96-32)
      bitmap = RPG::Cache.picture(@ni[i])
      cw = bitmap.width
      ch = bitmap.height
      if cw > 368   # Ce qui suit sert à centrer l'image si elle est trop petite ou trop grande.
        aw = (cw - 368) / 2
        bw = 0
      else
        aw = 0
        bw = (368 - cw) / 2
      end
      if ch > 352
        ah = (ch - 352) / 2
        bh =0
      else
        ah = 0
        bh = (352 - ch) / 2
      end
      src_rect = Rect.new(aw, ah, cw, ch)
      @image_window.contents.blt(bw, bh, bitmap, src_rect)
      @vieuxi = i
    end
  end
 
end

#=======================================================================
# ■ Window_World v0.9
#--------------------------------------------------------------------------------------------------------------------------------
# Ecrit par Krazplay, version la plus à jour disponible sur le forum du site rpgmakerxp.free.fr
# Nécessite : le scrîpt Scene_Worldmap
# Toutes les explications sont dans le scrîpt Scene_Worldmap, il ne devrait rien avoir à faire
# dans celui-ci.
#=======================================================================
class Window_World < Window_Selectable
  def initialize(width, commands)
    @item_désactivé =[]
    if commands.size > 11
      hauteur = 11
    else
      hauteur = commands.size
    end
    super(0, 0, width, hauteur * 32 + 32)
    @item_max = commands.size
    @commands = commands
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
    self.index = 0
  end

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

  def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index])
    @item_désactivé[index] = 0
  end

  def disable_item(nom)
    if indexde(nom) != false
      draw_item(indexde(nom), disabled_color)
      @item_désactivé[indexde(nom)] = 1
    end
  end
 
  def disable_item?(nom)
      if @item_désactivé[indexde(nom)] == 1
        return true
      else
        return false
      end
  end
 
  def indexde(nom)
    for i in 0...@commands.size
      if @commands[i] == nom
        return i
      end
    end
    return false
  end
 
end


ET maintenant le fonctionnement:

1-vers la ligne 52 vous aurez ceci:
[a href="http://imageshack.us]Image[/url]

copiez-le....et collez le juste en dessous en laissant une ligne de libre entre,(donc,copiez le votre a la ligne 55),puis remplacez le nom de celui que vous venez dajouter par le nom de votre map.(sur les 2 lignes)
CET EMPLACEMENT VOUS PERMET DAJOUTER VOTRE LIEU A LA LISTE.

2-vers la ligne 137 vous aurez ceci:
Image
meme principe,copiez les 5 lignes,collez plus bas,changez le nom.
CET EMPLACEMENT PERMET DE CHOISIR LA DESTINATION.

3-NOTEZ LIGNE 139 voila comment choisir la destination.
exemple: dans les mines.
c écrit teleportation(1,6,7,10)
1=rang de la map dans votre projet(1ere map no.1,2eme map no.2)
6=longitude sur votre map.
7=latitude sur votre map.
10=direction le héros regarde en arrivant.

DERNIÈRE ÉTAPE:
dans le dossier pictures de votre jeu il doit y avoir une image pour chaque choix dans le menu de teleport....chaque image doit porter le nom exact de la map ,et doit etre de taille 96x96.

pour appeler le menu teleport grace a un event :
call script: $scene = Scene_Worldmap.new
ou alors un item pourrait appeler un evenement commun qui lui appelerait le script(genre blinking mirror dans suikoden)

voila c tout....on récapitule,ok ?

chaque map doit avoir:
1- été ajouté dans la liste ( genre ligne 52,53)
2-destination programmée( genre ligne 137 a 141)
3-coordonnées ligne 139
4-image dans picture portant meme nom en 96x96 ( personnelement jutilise les battlebacks du RGSS que je découpe.)
5-et on appelle le menu avec un event,call script:
$scene = Scene_Worldmap.new

ouff....c le premier script je partage....c long a faire...ma pris 1 heure lol
c pa moi qui lai crée :Krazplay est l'auteur.
Toutes les instructions sont écrites dedans le scripts anyway..

si ya des erreurs je réparerai.
a+


Haut
 Profil  
 
 Sujet du message: Re: TELEPORTATION avec menu des choix !!
MessagePublié: 10 Déc 2007, 15:38 
Seigneur (Nv 5)

Inscrit le: 28 Juin 2007, 00:00
Messages: 490
Points d'aide: 6/60

Créations :

Voir ses créations

Euh... Je crois me souvenir qu'il a déja été poster, mais bon...
Sinon, c'est bien gentil de ta part de vouloir le faire partager.


Haut
 Profil  
 
 Sujet du message: Re: TELEPORTATION avec menu des choix !!
MessagePublié: 05 Avr 2009, 10:29 
Villageois (Nv 1)

Inscrit le: 28 Fév 2009, 01:00
Messages: 14
Points d'aide: 0/60

Créations :

Voir ses créations

Le script est génial, mais il ya un beug a régler ligne environ 79 et 80
et un autre ( grossomodo le meme) ligne 228 et 229.
Il y a marqué :
Code: Tout sélectionner
 
@bienvenue_window.contents.font.name= fontname
@bienvenue_window.contents.font.size = fontsize

Pour ces erreur il faut remplacer fontname et fontsize par le nom de la police ( ex : "Arial") et la taille de celle-ci ( ex : 24 )
Faites la meme manipe ligne 228/229.

Voila, c'est tout, j'espere que ça va aider quelqu'un. happy


Haut
 Profil  
 
 Sujet du message: Re: TELEPORTATION avec menu des choix !!
MessagePublié: 22 Mar 2011, 03:20 
Villageois (Nv 1)

Inscrit le: 14 Mar 2011, 11:56
Messages: 17
Sexe: Masculin
Points d'aide: 0/60

Créations :

Voir ses créations

Pour ma part, j'obtient l'erreur a la ligne 64:
for i in [url=mailto:0...@s.size"]0...@s.size[/a]

En gros je crois que le post a formater le code...


Haut
 Profil  
 
 Sujet du message: Re: TELEPORTATION avec menu des choix !!
MessagePublié: 22 Mar 2011, 11:13 
Garde
Garde
Avatar de l’utilisateur

Inscrit le: 26 Sep 2006, 00:00
Messages: 1973
Points d'aide: Illimité

Créations :

Voir ses créations

Oui, le BBCode voit un @ alors il le transforme en lien pour un mail... Le problème a été réglé mais il reste des scripts "endommagés" apparemment.

Suffit de remplacer les morceaux de code concernés par des @, par exemple :
Code: Tout sélectionner
[url=mailto:0...@s.size"]0...@s.size

est en fait :
Code: Tout sélectionner
0...@s.size

(en gros on vire la balise url)


Accessoirement, un script qui demande à l'utilisateur de rajouter des blocs d'instruction n'est pas des plus judicieux ni pratiques...

_________________
Image
Image


Haut
 Profil  
 
 Sujet du message: Re: TELEPORTATION avec menu des choix !!
MessagePublié: 22 Mar 2011, 13:10 
Villageois (Nv 1)
Avatar de l’utilisateur

Inscrit le: 16 Fév 2011, 13:11
Messages: 8
Localisation: Nord (59)
Niveau RPG Maker: Noob en devenir !
Logiciel(s) préféré(s): Rpg Maker VX
Sexe: Masculin
Points d'aide: 0/60

Créations :

Voir ses créations

Si ça t'intéresse, il y a une très bonne alternative à ce système. Un script assez similaire et complètement fonctionnel, qui rajoute également quelques options pas désagréables comme un système de payement pour poursuivre le voyage, des destinations accessibles qu'à partir de certaines cartes ou encore des combats aléatoires pendant le dit "voyage" le tout est assez paramétrable. il est de Modern Algebra donc en anglais mais je peux tenter une traduction et le poster d'ici peu.

(Edit: ca pourrait prendre plus de temps que je ne le voudrais dans le doute connaissant ou non ta réponse je m'y met pour gagner quelques précieuses heures.)

(Edit2: c'est fait il vient d'être partager ici en espérant que ça t'aide.)


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 6 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