Partagez
Aller en bas
avatar
Funebro
Gladiateur Royal
Gladiateur Royal
Nombre de messages : 620
Age : 23
Localisation : Dans votre esprit, après tout ne suis-je pas omniscient !
Capacités : débutant
Avertissements : 2 avertissements
Distinction : * Il a des problèmes des fois...
* Satan bouche un petit coing ?
* Satan merde parfois !
* Satan à devenir ridicule
* Maitre invétéré du ridicule
Date d'inscription : 16/01/2010

[Résolu]Problème de script Worldgate

le Mer 5 Mai 2010 - 22:56
Bon ben voilà, je sais encore une demande d'aide mais bon:
J'ai le script de Worldgate mais je n'arrive pas à configurer les interrupteurs de conditions pour que le lieu apparaisse car moi j'ai fait des cristaux qui font page 1:
"Message:....
Interrupteur 460 activé
Message
Interrupteur local A activé"
Page 2:
"J'appelle le script"

Moi, ça marche mais j'ai déjà tous les lieux alors que les interrupteurs ne sont pas activés...comment faire ^^
Voici mon script:
Spoiler:
######################################################################################
#
# 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, "Teleporteur", 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] ="Chateau du roi d'Igrine" #Placer le nom du 1er choix entre les " "
@place_picture[0] = "026-Castle02" #Placer le nom de l'image du 1er choix entre les " "
@place_name[1] = "Forêt de Savehêtre" #Le nom du 2ème choix
@place_picture[1] = "003-Forest01" #Le nom de l'image du 2ème choix
@place_name[2] ="Widwolf, quartier du maire"
@place_picture[2]="013-PostTown01"
@place_name[3] ="Aldfos"
@place_picture[3] = "021-SnowTown01"
@place_name[4] ="Tour de Udrasil"
@place_picture[4] = "038-Fort02"
@place_name[5] ="Tour Seliide"
@place_picture[5] = "023-FarmVillage01"
@place_name[6] ="Villa de Santa Kines: rez de chausée"
@place_picture[6] = "025-Castle01"


# Ici, le choix "Endroit1" n'apparaîtera que si l'interrupteur 23 est activé,
if $game_switches[461] == true # Vous pouvez changer le numéro de l'interrupteur si vous voulez
@place_name[0] = "Chateau du roi d'Igrine" # Et vous pouvez mettre autant de choix et d'interrupteur que vous désirez
@place_picture[0] = "026-Castle02" # Sinon vous pourrez toujours supprimer la condition
end
if $game_switches[462] == true
@place_name[1] = "Forêt de Savehêtre"
@place_picture[1] = "003-Forest01"
end
if $game_switches[463] == true
@place_name[3] = "ALdfos"
@place_picture[3] = "021-SnowTown01"
end
if $game_switches[464] == true
@place_name[4] = "Tour de Udrasil"
@place_picture[4] = "038-Fort02"
end

if $game_switches[473] == true
@place_name[5] = "Tour Seliide"
@place_picture[5] = "023-FarmVillage01"
end
if $game_switches[465] == true
@place_name[2] = "Widwolf, quartier du maire"
@place_picture[2] = "013-PostTown01"
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(118, 1, 6, 4)
when 1
$game_player.reserve_transfer(116,3,9,4)
when 2
$game_player.reserve_transfer(89,3,5,4)
when 3
$game_player.reserve_transfer(12,21,4,4)
when 4
$game_player.reserve_transfer(24,15,4,4)
when 5
$game_player.reserve_transfer(34,9,4,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 -----------------------------------------------------------------#

Ps: les maps c'est moi qui les ai rajoutés...c'est pas dans le script de départ et si vous voulez voir l'original, c'est ici (script de Raizen):

http://www.rpgmakervx-fr.com/menu-f191/worldgate-10-par-raizen-t6396.htm


Dernière édition par Funebro le Mer 2 Juin 2010 - 0:16, édité 1 fois
avatar
dricc
Conseiller

Conseiller
Nombre de messages : 2744
Localisation : Lille
Capacités : confirmé
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: [Résolu]Problème de script Worldgate

le Mer 5 Mai 2010 - 23:24
A mon avis , les lieux que tu met dans tes conditions , tu dois les supprimer du paragraphe au dessus .

Tu laisses que celui-là :
@place_name[6] ="Villa de Santa Kines: rez de chausée"
@place_picture[6] = "025-Castle01"

puisque c'est le seul qui n'est pas conditionné par un interrupteur .
avatar
Funebro
Gladiateur Royal
Gladiateur Royal
Nombre de messages : 620
Age : 23
Localisation : Dans votre esprit, après tout ne suis-je pas omniscient !
Capacités : débutant
Avertissements : 2 avertissements
Distinction : * Il a des problèmes des fois...
* Satan bouche un petit coing ?
* Satan merde parfois !
* Satan à devenir ridicule
* Maitre invétéré du ridicule
Date d'inscription : 16/01/2010

Re: [Résolu]Problème de script Worldgate

le Jeu 6 Mai 2010 - 0:17
J'ai pas compris, cela veut dire que je dois les supprimer des cases du dessus ???
D'accord j'essaye et je te dis^^

Edit: Ben non si je fais ça, ya erreur...car c'est variable c'est celle qui permettent de créer la téléportation...
Donc une autre idée ?
avatar
dricc
Conseiller

Conseiller
Nombre de messages : 2744
Localisation : Lille
Capacités : confirmé
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: [Résolu]Problème de script Worldgate

le Jeu 6 Mai 2010 - 2:04
Curieux .

Bon , on va faire autrement . je trouvait ça mal foutu de toute façon .

Essaye avec ça :

@place_name = []
@place_picture = []
@place_name +="Chateau du roi d'Igrine" if $game_switches[461] #Placer le nom du 1er choix entre les " "
@place_picture += "026-Castle02" if $game_switches[461] #Placer le nom de l'image du 1er choix entre les " "
@place_name += "Forêt de Savehêtre" if $game_switches[462] #Le nom du 2ème choix
@place_picture += "003-Forest01" if $game_switches[462] #Le nom de l'image du 2ème choix
@place_name +="Widwolf, quartier du maire" if $game_switches[465]
@place_picture +="013-PostTown01" if $game_switches[465]
@place_name +="Aldfos" if $game_switches[463]
@place_picture += "021-SnowTown01" if $game_switches[463]
@place_name +="Tour de Udrasil" if $game_switches[464]
@place_picture += "038-Fort02" if $game_switches[464]
@place_name +="Tour Seliide" if $game_switches[473]
@place_picture += "023-FarmVillage01" if $game_switches[473]

Pas testé ...
avatar
Funebro
Gladiateur Royal
Gladiateur Royal
Nombre de messages : 620
Age : 23
Localisation : Dans votre esprit, après tout ne suis-je pas omniscient !
Capacités : débutant
Avertissements : 2 avertissements
Distinction : * Il a des problèmes des fois...
* Satan bouche un petit coing ?
* Satan merde parfois !
* Satan à devenir ridicule
* Maitre invétéré du ridicule
Date d'inscription : 16/01/2010

Re: [Résolu]Problème de script Worldgate

le Jeu 6 Mai 2010 - 2:24
Je mets ça comme cela ???
Et c'est quoi les 1eres lignes sans rien dedans ???

Edit: ben ça me met: Failed load script RGSS 2 load bitmap ou qq chose comme ça
Ps: Je pense que tu as oublié les Place name[] ???
Non, je vais retester et si ça marche pas ben je te dis

Re-edit: Ben ça marche pas non plus: ya écrit:
RGSS 2 error l.1877 et quelques choses
et en dessous ya marqué: failed to load (ou create) bitmap
avatar
dricc
Conseiller

Conseiller
Nombre de messages : 2744
Localisation : Lille
Capacités : confirmé
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: [Résolu]Problème de script Worldgate

le Jeu 6 Mai 2010 - 2:52
raaaah , j'ai oublié les []

c'est :
@place_name +=["Chateau du roi d'Igrine"] if $game_switches[461] #Placer le nom du 1er choix entre les " "

a faire sur les autres lignes .
Et ouais , ce que je te fais là , ça annule et remplace tout le gros bloc ou il y a ce tableau .
avatar
Funebro
Gladiateur Royal
Gladiateur Royal
Nombre de messages : 620
Age : 23
Localisation : Dans votre esprit, après tout ne suis-je pas omniscient !
Capacités : débutant
Avertissements : 2 avertissements
Distinction : * Il a des problèmes des fois...
* Satan bouche un petit coing ?
* Satan merde parfois !
* Satan à devenir ridicule
* Maitre invétéré du ridicule
Date d'inscription : 16/01/2010

Re: [Résolu]Problème de script Worldgate

le Jeu 6 Mai 2010 - 3:36
Je test et j'édit

Edit:
Ya du progrès: Maintenant si ya pas l'interrupteur d'activé ya le titre qui s'enlève mais l'image et la téleportation reste possible...
avatar
Azuma-01
Paysan spécialiste
Paysan spécialiste
Nombre de messages : 94
Age : 25
Localisation : Amos
Capacités : confirmé
Distinction : aucune
Date d'inscription : 22/09/2009

Re: [Résolu]Problème de script Worldgate

le Jeu 6 Mai 2010 - 5:57
@dricc a écrit:je trouvait ça mal foutu de toute façon .
C'est vrai, les modifications sont trop éparpiller...

@Funebro: avec ceci ça sera plus facile.
Spoiler:
Code:
######################################################################################
#
# script écrit par : Raizen ZENTRIX
# modifier par Azuma-01
#
# 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, [height - 32,@item_max * WLH].max)
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
 
  World_Hash = {
 
#    index => {:switch_id => 461, # id de l'interrupteur (0 pour aucun interrupteur)
#              :name => "nom du choix", #  entre les " "
#              :picture => "nom de l'image", #  du choix entre les " " ( "" ou nil pour auncune image)
#              :destination => [a, b, c, d]},
#                # 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)
#-------------------------------------------------------------- A MODIFIER -----------------------------------------------------------------
    0 => {:switch_id => 461,
              :name => "Chateau du roi d'Igrine",
              :picture => "026-Castle02",
              :destination => [118, 1, 6, 4]},
             
    1 => {:switch_id => 462,
              :name => "Forêt de Savehêtre",
              :picture => "003-Forest01",
              :destination => [116,3,9,4]},
             
    2 => {:switch_id => 465,
              :name => "Widwolf, quartier du maire",
              :picture => "013-PostTown01",
              :destination => [89,3,5,4]},
             
    3 => {:switch_id => 463,
              :name => "Aldfos",
              :picture => "021-SnowTown01",
              :destination => [12,21,4,4]},
             
    4 => {:switch_id => 464,
              :name => "Tour de Udrasil",
              :picture => "038-Fort02",
              :destination => [24,15,4,4]},
             
    5 => {:switch_id => 473,
              :name => "Tour Seliide",
              :picture => "023-FarmVillage01",
              :destination => [34,9,4,4]},
             
    6 => {:switch_id => 0,
              :name => "Villa de Santa Kines: rez de chausée",
              :picture => "025-Castle01",
              :destination => []},
             
   
#-------------------------------------------------------- FIN DE LA 1ERE MODIF ------------------------------------------------------#
  } # <-- do not remove

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, "Teleporteur", 1)
@welcome_window.contents.draw_text (0,0,544,72, "Veuillez choisir votre destination", 1)
#-------------------------------------------------------- FIN DE LA 2ERE MODIF ------------------------------------------------------#

### modifier par Azuma-01
$game_switches[0] = true
@place_name = []
@place_picture = []
@place_move = []
World_Hash.size.times{|i|
  if $game_switches[World_Hash[i][:switch_id]]
    @place_name.push(World_Hash[i][:name])
    @place_picture.push(World_Hash[i][:picture])
    move = World_Hash[i][:destination]
    @place_move.push("$game_player.reserve_transfer(#{move[0]}, #{move[1]}, #{move[2]}, #{move[3]})")
  end
}
##### /modifier par Azuma-01

# 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]) if @place_picture[index].to_s != ""

update_command
end

def update_command
if Input.trigger?(Input::C)
Sound.play_decision
$scene = Scene_Map.new
eval(@place_move[@select_window.index]) ### modification par azuma-01
end
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
end
end

end

#-------------------------------------------------------- FIN DU script -----------------------------------------------------------------#
avatar
Funebro
Gladiateur Royal
Gladiateur Royal
Nombre de messages : 620
Age : 23
Localisation : Dans votre esprit, après tout ne suis-je pas omniscient !
Capacités : débutant
Avertissements : 2 avertissements
Distinction : * Il a des problèmes des fois...
* Satan bouche un petit coing ?
* Satan merde parfois !
* Satan à devenir ridicule
* Maitre invétéré du ridicule
Date d'inscription : 16/01/2010

Re: [Résolu]Problème de script Worldgate

le Jeu 6 Mai 2010 - 20:33
Merci Azuma...mais c'est la même chose, ya du progrès, le nom disparait mais on peut toujours s'y teleporter...
Ou sinon, je sais pas comment scripter ça j'ai trouvé une solution préambulaire:
si interrupteur[460]=true, place@name[] else vérouillé
Et dedans ça téleporte pa et ya un message qui s'affiche, c'est possible ???
avatar
Azuma-01
Paysan spécialiste
Paysan spécialiste
Nombre de messages : 94
Age : 25
Localisation : Amos
Capacités : confirmé
Distinction : aucune
Date d'inscription : 22/09/2009

Re: [Résolu]Problème de script Worldgate

le Ven 7 Mai 2010 - 5:30
Qu'est-ce que tu veux dire par toujours téléporter, le fait de retourner sur la map quand on appui sur C ?
J'ai tester et si interrupteur est inactif l'option n'est pas pris en conte lors de la "compilation" des choix. (pas de texte, pas d'image, pas de téléportation)

Si c'est le retour sur la map qui te déplais prend ceci
Spoiler:
Code:
######################################################################################
#
# script écrit par : Raizen ZENTRIX
# modifier par Azuma-01
#
# 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, [height - 32,@item_max * WLH].max)
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
 
  World_Hash = {
 
#    index => {:switch_id => 461, # id de l'interrupteur (0 pour aucun interrupteur)
#              :name => "nom du choix", #  entre les " "
#              :picture => "nom de l'image", #  du choix entre les " " ( "" ou nil pour auncune image)
#              :destination => [a, b, c, d]},
#                # 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)
#-------------------------------------------------------------- A MODIFIER -----------------------------------------------------------------
    0 => {:switch_id => 461,
              :name => "Chateau du roi d'Igrine",
              :picture => "026-Castle02",
              :destination => [118, 1, 6, 4]},
             
    1 => {:switch_id => 462,
              :name => "Forêt de Savehêtre",
              :picture => "003-Forest01",
              :destination => [116,3,9,4]},
             
    2 => {:switch_id => 465,
              :name => "Widwolf, quartier du maire",
              :picture => "013-PostTown01",
              :destination => [89,3,5,4]},
             
    3 => {:switch_id => 463,
              :name => "Aldfos",
              :picture => "021-SnowTown01",
              :destination => [12,21,4,4]},
             
    4 => {:switch_id => 464,
              :name => "Tour de Udrasil",
              :picture => "038-Fort02",
              :destination => [24,15,4,4]},
             
    5 => {:switch_id => 473,
              :name => "Tour Seliide",
              :picture => "023-FarmVillage01",
              :destination => [34,9,4,4]},
             
    6 => {:switch_id => 0,
              :name => "Villa de Santa Kines: rez de chausée",
              :picture => "025-Castle01",
              :destination => []},
             
   
#-------------------------------------------------------- FIN DE LA 1ERE MODIF ------------------------------------------------------#
  } # <-- do not remove

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, "Teleporteur", 1)
@welcome_window.contents.draw_text (0,0,544,72, "Veuillez choisir votre destination", 1)
#-------------------------------------------------------- FIN DE LA 2ERE MODIF ------------------------------------------------------#

### modifier par Azuma-01
$game_switches[0] = true
@place_name = []
@place_picture = []
@place_move = []
World_Hash.size.times{|i|
  if $game_switches[World_Hash[i][:switch_id]]
    @place_name.push(World_Hash[i][:name])
    @place_picture.push(World_Hash[i][:picture])
    move = World_Hash[i][:destination]
    if move.size == 4
      @place_move.push("$game_player.reserve_transfer(#{move[0]}, #{move[1]}, #{move[2]}, #{move[3]})")
    else
      @place_move.push("")
    end
  end
}
##### /modifier par Azuma-01

# 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]) if @place_picture[index].to_s != ""

update_command
end

def update_command
if Input.trigger?(Input::C)
Sound.play_decision
return if @place_move[@select_window.index] == ""
$scene = Scene_Map.new
eval(@place_move[@select_window.index]) ### modification par azuma-01
end
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
end
end

end

#-------------------------------------------------------- FIN DU script -----------------------------------------------------------------#
PS: C'est pas un add-un, il remplace le script.
avatar
Funebro
Gladiateur Royal
Gladiateur Royal
Nombre de messages : 620
Age : 23
Localisation : Dans votre esprit, après tout ne suis-je pas omniscient !
Capacités : débutant
Avertissements : 2 avertissements
Distinction : * Il a des problèmes des fois...
* Satan bouche un petit coing ?
* Satan merde parfois !
* Satan à devenir ridicule
* Maitre invétéré du ridicule
Date d'inscription : 16/01/2010

Re: [Résolu]Problème de script Worldgate

le Ven 7 Mai 2010 - 9:14
Non, non j'ai pris ton script plus haut...et pourtant...j'ai toujours la téléportation ya que l'icône avec le nom qui disparait...
Donc ça marche pas....
Mais peut-être on pourrait utiliser l'option du "else" verrouillé ?

edit du 12 mai je crois: Mon problème n'est toujours pas résolu comment je fais....???
avatar
Coco'
Administrateur

Administrateur
Nombre de messages : 6592
Age : 24
Localisation : Nord/Douai
Distinction : EL DICTATOR COCO'
Coco-Dieu en puissance

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 : 01/07/2008
http://www.rpgmakervx-fr.com

Re: [Résolu]Problème de script Worldgate

le Dim 16 Mai 2010 - 9:25
Problème en attente apparemment :
edit du 12 mai je crois: Mon problème n'est toujours pas résolu comment je fais....???

Donc je l'up Wink
avatar
dricc
Conseiller

Conseiller
Nombre de messages : 2744
Localisation : Lille
Capacités : confirmé
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Re: [Résolu]Problème de script Worldgate

le Dim 16 Mai 2010 - 22:07
Bon , il m'enerve ce script , il est vraiment pas pratique .

Je péréfere celui-ci :

Spoiler:

#===============================================================================
#
# Yanfly Engine RD - Common Event Menu
# Last Date Updated: 2009.06.12
# Level: Normal, Hard
#
# Similar to the Common Event Shop, the Common Event Menu lets you create your
# menus to list various common event options. Now, you don't have to use all of
# those obnoxiously tedious Show Choice branches and conditional branches just
# to let the player get somewhere in range.
#
# This script lets you create your own generated common event menus with ease.
# Set the style of the menu, the nature of the menu, and the contents of the
# menu. Afterwards, set the switches (if required) for the common events to
# even appear, any pictures to go along with it, and descriptions on what the
# common event can do for the player.
#
#===============================================================================
# Updates:
# ----------------------------------------------------------------------------
# o 2009.06.12 - Finished script.
# o 2009.06.11 - Started script.
#===============================================================================
# Instructions
#===============================================================================
#
# First, bind CE_MENU_VARIABLE to the variable you wish to launch common event
# menus with.
#
# Scroll down and edit the CE_MENU_HASH. This will reflect what common events
# appear in those menus, the style of the menu, and the title associated with
# the menu.
#
# Scroll down and edit the CE_MENU_ITEMS. This will determine how common events
# can be shown, what switches they require, and if it will display any pictures
# along with it.
#
# Then, to launch the menu, just change the CE_MENU_VARIABLE variable to the
# menu ID you want to launch. Simple as that.
#
#===============================================================================
# Style Names
# "General" - A very normal kind of menu.
# "Compact" - A smaller version of the General style.
# "Double" - Displays two columns for the menu.
# "Bottom" - Aligns the choices at the bottom of the screen.
# "Lefty" - Aligns the choices to the left side of the screen.
# "Righty" - Aligns the choices to the right side of the screen.
# "Gimmick" - A pretty gimmicky style.
#===============================================================================
#
# Compatibility
# - Alias: Game_Interpreter: command_122
#
#===============================================================================

$imported = {} if $imported == nil
$imported["CommonEventMenu"] = true

module YE
module EVENT

# This is the variable that triggers the kind of shop you want to open.
CE_MENU_VARIABLE = 123

#-------------------------------------------------------------------------
# Use the following hash to determine what common events you can launch
# from that menu ID. You can set the style, whether or not the player can
# cancel out of the menu, and the title of the menu. Of course, you also
# set what common events can be launched from this menu, too.
#
# Style Name - Style name used. Look in the instructions to view styles.
# Cancel - Can the player cancel out of the menu?
# Title - Title used for the menu.
# [Array] - Common events allowed to be choosen in the menu.
#-------------------------------------------------------------------------
CE_MENU_HASH ={ # Follow the example.
# MenuID => [ Style Name, Cancel, Title
1 => [ "General", true, "Où voulez vous aller directement ?",
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12,14]
], # The above array lists the common events selectable.

2 => [ "General", true, "Ou voulez-vous aller ?",
[7, 8]
], # The above array lists the common events selectable.

3 => [ "General", true, "Ou voulez-vous aller ?",
[3, 7]
], # The above array lists the common events selectable.
4 => [ "General", true, "Ou voulez-vous aller ?",
[11, 12]
], # The above array lists the common events selectable.
} # Do not remove this.

#-------------------------------------------------------------------------
# Use the following hash to determine how you want your common events to
# appear. To hide some items, set a switch number to the value shown. To
# display a picture along with the common event, include the picture name.
# To change the font size used, set the size. And finally, you can adjust
# the description given to the common event to be launched.
#
# Switch - Switch required to be on for it to appear. nil for no switch.
# Picture - Picture shown in the display window. nil for no picture shown.
# Size - Font size used for the display window.
# Descrip - Description used for event. Use | to create a new line.
#-------------------------------------------------------------------------
CE_MENU_ITEMS ={ # Follow the example.
# ItemID => [Switch, Picture, Size, Description]
3 => [ nil, nil, 16, "Teleportation au niveau principal du fortin"],
4 => [ nil, nil, 16, "Teleportation au sous-sol du fortin!"],
5 => [ nil, nil, 16, "Teleportation à l'extérieur du fortin!"],
6 => [ nil, nil, 16, "Teleportation à l'étage du fortin!"],
7 => [ nil, nil, 16, "Teleportation sur la route entre le fortin et xerasol"],
8 => [ nil, nil, 16, "Teleportation à xerasol!"],
9 => [ nil, nil, 16, "Teleportation au cimetiere de xerasol!"],
10 => [ nil, nil, 16, "Teleportation à la base des brigands!"],
11 => [ nil, nil, 16, "Teleportation au chemin de la grotte!"],
12 => [ nil, nil, 16, "Teleportation à la grotte aux gemmes!"],
14 => [ nil, nil, 16, "Cinématique de fin"],
} # Do not remove this.

end # EVENT
end # YE

#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================

#===============================================================================
# Game_Interpreter
#===============================================================================

class Game_Interpreter

#--------------------------------------------------------------------------
# alias control variables
#--------------------------------------------------------------------------
alias command_122_cemenu command_122 unless $@
def command_122
n = command_122_cemenu
if @params[0] == YE::EVENT::CE_MENU_VARIABLE and !$game_temp.in_battle and
$game_variables[YE::EVENT::CE_MENU_VARIABLE] != 0
$scene = Scene_Common_Event_Menu.new
end
return n
end

end # Game_Interpreter

#===============================================================================
# Scene_Common_Event_Menu
#===============================================================================

class Scene_Common_Event_Menu < Scene_Base

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
menu_id = $game_variables[YE::EVENT::CE_MENU_VARIABLE]
@style = YE::EVENT::CE_MENU_HASH[menu_id][0]
@cancel = YE::EVENT::CE_MENU_HASH[menu_id][1]
@title = YE::EVENT::CE_MENU_HASH[menu_id][2]
@items = YE::EVENT::CE_MENU_HASH[menu_id][3]
end

#--------------------------------------------------------------------------
# start
#--------------------------------------------------------------------------
def start
super
@spriteset = Spriteset_Map.new
create_windows
refresh_display
end

#--------------------------------------------------------------------------
# create_windows
#--------------------------------------------------------------------------
def create_windows
#---
if @style == "General" # General Style
@title_window = Window_Base.new(0, 0, 544, 56)
@title_window.contents.draw_text(4, 0, 504, 24, @title, 1)
@command_width = 272
@columns = 1
create_command_window
@command_window.x = 0
@command_window.y = 56
@command_window.height = 360
@display_window = Window_Event_Display.new(272, 56, 272, 360, "tall")
return
end
#---
if @style == "Compact" # Compact Style
@title_window = Window_Base.new(48, 48, 448, 56)
@title_window.contents.draw_text(4, 0, 408, 24, @title, 1)
@command_width = 224
@columns = 1
create_command_window
@command_window.x = 48
@command_window.y = 104
@command_window.height = 264
@display_window = Window_Event_Display.new(272, 104, 224, 264, "tall")
return
end
#---
if @style == "Double" # Double Style
@title_window = Window_Base.new(0, 0, 544, 56)
@title_window.contents.draw_text(4, 0, 504, 24, @title, 1)
@command_width = Graphics.width
@columns = 2
create_command_window
@command_window.x = 0
@command_window.y = 56
@command_window.height = 232
@display_window = Window_Event_Display.new(0, 288, 544, 128, "wide")
return
end
#---
if @style == "Bottom" # Bottom Style
@title_window = Window_Base.new(0, 0, Graphics.width, 56)
@title_window.contents.draw_text(4, 0, Graphics.width-40, 24, @title, 1)
@command_width = Graphics.width
@columns = 2
create_command_window
@command_window.x = 0
@command_window.y = Graphics.height - 128
@command_window.height = 128
return
end
#---
if @style == "Lefty" # Lefty Style
@title_window = Window_Base.new(0, 0, 200, 56)
@title_window.contents.draw_text(4, 0, 160, 24, @title, 1)
@command_width = 200
@columns = 1
create_command_window
@command_window.x = 0
@command_window.y = 56
@command_window.height = Graphics.height - 56 - 128
@display_window = Window_Event_Display.new(0, 288, 200, 128, "no text")
return
end
#---
if @style == "Righty" # Righty Style
@title_window = Window_Base.new(344, 0, 200, 56)
@title_window.contents.draw_text(4, 0, 160, 24, @title, 1)
@command_width = 200
@columns = 1
create_command_window
@command_window.x = 344
@command_window.y = 56
@command_window.height = Graphics.height - 56 - 128
@display_window = Window_Event_Display.new(344, 288, 200, 128, "no text")
return
end
#---
if @style == "Gimmick" # Compact Style
@title_window = Window_Base.new(48, 48, 448, 56)
@title_window.contents.draw_text(4, 0, 408, 24, @title, 1)
@dummy_window = Window_Base.new(48, 104, 448, 264)
@command_width = 224
@columns = 1
create_command_window
@command_window.x = 48
@command_window.y = 104
@command_window.height = 264
@display_window = Window_Event_Display.new(272, 104, 224, 264, "tall")
@command_window.opacity = 0
@display_window.opacity = 0
return
end
end

#--------------------------------------------------------------------------
# create_command_window
#--------------------------------------------------------------------------
def create_command_window
commands = []
@data = []
for item_id in @items
next unless YE::EVENT::CE_MENU_ITEMS.include?(item_id)
next if YE::EVENT::CE_MENU_ITEMS[item_id][0] != nil and
!$game_switches[YE::EVENT::CE_MENU_ITEMS[item_id][0]]
item_name = $data_common_events[item_id].name
commands.push(item_name)
@data.push(item_id)
end
@command_window = Window_Command.new(@command_width, commands, @columns)
@last_id = commands.size + 1
end

#--------------------------------------------------------------------------
# terminate
#--------------------------------------------------------------------------
def terminate
super
@spriteset.dispose
@title_window.dispose if @title_window != nil
@command_window.dispose if @command_window != nil
@display_window.dispose if @display_window != nil
@dummy_window.dispose if @dummy_window != nil
end

#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
super
@spriteset.update
$game_map.update
update_input
end

#--------------------------------------------------------------------------
# update_input
#--------------------------------------------------------------------------
def update_input
@command_window.update
if @last_id != @command_window.index
@last_id = @command_window.index
refresh_display
end
if Input.trigger?(Input::B) and @cancel
Sound.play_cancel
$game_variables[YE::EVENT::CE_MENU_VARIABLE] = 0
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if @data == []
Sound.play_buzzer
return
end
Sound.play_decision
$game_temp.common_event_id = @data[@command_window.index]
$game_variables[YE::EVENT::CE_MENU_VARIABLE] = 0
$scene = Scene_Map.new
end
end

#--------------------------------------------------------------------------
# refresh_display
#--------------------------------------------------------------------------
def refresh_display
return if @display_window == nil
@display_window.refresh(@data[@command_window.index])
end

end # Scene_Common_Event_Menu

#===============================================================================
# Window_Event_Display
#===============================================================================

class Window_Event_Display < Window_Base

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(x, y, w, h, type = "tall")
super(x, y, w, h)
@type = type
menu_id = $game_variables[YE::EVENT::CE_MENU_VARIABLE]
first_item = YE::EVENT::CE_MENU_VARIABLE[menu_id]
end

#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh(id = nil)
self.contents.clear
return if id == nil
return unless YE::EVENT::CE_MENU_ITEMS.include?(id)
txsize = YE::EVENT::CE_MENU_ITEMS[id][2]
self.contents.font.size = txsize
if YE::EVENT::CE_MENU_ITEMS[id][1] != nil # Draw a picture.
name = YE::EVENT::CE_MENU_ITEMS[id][1]
bitmap = Cache.picture(name)
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
self.contents.blt(0, 6, bitmap, rect)
if @type == "tall"
dy = bitmap.height + (txsize / 2)
dx = 0
elsif @type == "wide"
dx = bitmap.width + (txsize / 2)
dy = 0
end
bitmap.dispose
else
dy = 0
dx = 0
end
return if @type == "no text"
text = YE::EVENT::CE_MENU_ITEMS[id][3]
nwidth = Graphics.width
buf = text.gsub(/\\N(\[\d+\])/i) { "\\__#{$1}" }
lines = buf.split(/(?:[|]|\\n)/i)
lines.each_with_index { |l, i|
l.gsub!(/\\__(\[\d+\])/i) { "\\N#{$1}" }
self.contents.draw_text(dx, i * txsize + dy, nwidth, WLH, l, 0) }
end

end # Window_Event_Display

#===============================================================================
#
# END OF FILE
#
#===============================================================================


En fait , plutot que faire lui-meme la téléportation , ce script appele un evenement commun qui va le faire . Plus simple et plus facile à parametrer .
Et l'activation/desactivation par switch est déja faite .
Il te suffit de modifier ce bloc :
CE_MENU_ITEMS ={ # Follow the example.
# ItemID => [Interrupteur, Image, Taille, Description]
3 => [ nil, nil, 16, "Teleportation au niveau principal du fortin"],
4 => [ nil, nil, 16, "Teleportation au sous-sol du fortin!"],
5 => [ nil, nil, 16, "Teleportation à l'extérieur du fortin!"],
6 => [ nil, nil, 16, "Teleportation à l'étage du fortin!"],
7 => [ nil, nil, 16, "Teleportation sur la route entre le fortin et xerasol"],
8 => [ nil, nil, 16, "Teleportation à xerasol!"],
9 => [ nil, nil, 16, "Teleportation au cimetiere de xerasol!"],
10 => [ nil, nil, 16, "Teleportation à la base des brigands!"],
11 => [ nil, nil, 16, "Teleportation au chemin de la grotte!"],
12 => [ nil, nil, 16, "Teleportation à la grotte aux gemmes!"],
14 => [ nil, nil, 16, "Cinématique de fin"],
} # Do not remove this.
Ces exemples viennent de l'un de mes projets . 3,4 ....14 sont les evenements communs qui font la téléportation .
avatar
Funebro
Gladiateur Royal
Gladiateur Royal
Nombre de messages : 620
Age : 23
Localisation : Dans votre esprit, après tout ne suis-je pas omniscient !
Capacités : débutant
Avertissements : 2 avertissements
Distinction : * Il a des problèmes des fois...
* Satan bouche un petit coing ?
* Satan merde parfois !
* Satan à devenir ridicule
* Maitre invétéré du ridicule
Date d'inscription : 16/01/2010

Re: [Résolu]Problème de script Worldgate

le Mar 18 Mai 2010 - 3:34
Merci j'essaierai Dricc^^
Demain !
avatar
Balbereith
Staffieux retraité

Staffieux retraité
Nombre de messages : 4130
Age : 25
Localisation : dans l'ombre...
Capacités : assez bon
Avertissements : Avertissements infinis |-)
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' Smile]
Date d'inscription : 13/05/2009

Re: [Résolu]Problème de script Worldgate

le Sam 29 Mai 2010 - 0:36
si c'est résolu merci de le mettre dans le titre sinon up ta demande
merci d'avance
avatar
Funebro
Gladiateur Royal
Gladiateur Royal
Nombre de messages : 620
Age : 23
Localisation : Dans votre esprit, après tout ne suis-je pas omniscient !
Capacités : débutant
Avertissements : 2 avertissements
Distinction : * Il a des problèmes des fois...
* Satan bouche un petit coing ?
* Satan merde parfois !
* Satan à devenir ridicule
* Maitre invétéré du ridicule
Date d'inscription : 16/01/2010

Re: [Résolu]Problème de script Worldgate

le Sam 29 Mai 2010 - 4:30
Ben je 🆙 (pourquoi le bonhomme y sourit T_T)
Car ma demande n'est pas résolu...
Je préférerais utiliser le script Worldgate mais si en dernier recours cela ne fonctionne pas je prendrai celui de Yanfly...
avatar
XakuX
Professeur

       Professeur
Nombre de messages : 1263
Age : 23
Localisation : là où tu n'auras jamais l'idée de chercher !
Capacités : confirmé
Avertissements : 1 avertissement
Distinction : * Bougre d'âne


Le bizu' à son Coco'
[Coco' Smile]

Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008

Re: [Résolu]Problème de script Worldgate

le Sam 29 Mai 2010 - 6:08
t'as pensé à ça:
http://www.rpgmakervx-fr.com/events-f208/une-souris-dirigeable-avec-les-fleches-directionnelles-t8399.htm (ce fait de l'auto-pub )
La démo est une mappemonde, je pense que tu peux utiliser ça (en rajoutant des interrupteurs et tout le tralala), ça aura vachement plus de niak qu'un menu tout moche et ça plantera pas Wink (ou si ça plante, tu me MP et j'viens à la rescousse !)
Après, si les images sont très importantes, tu fais bien comme tu veux, je proposais simplement une solution pour éviter de passer encore et toujours par script :/
avatar
Funebro
Gladiateur Royal
Gladiateur Royal
Nombre de messages : 620
Age : 23
Localisation : Dans votre esprit, après tout ne suis-je pas omniscient !
Capacités : débutant
Avertissements : 2 avertissements
Distinction : * Il a des problèmes des fois...
* Satan bouche un petit coing ?
* Satan merde parfois !
* Satan à devenir ridicule
* Maitre invétéré du ridicule
Date d'inscription : 16/01/2010

Re: [Résolu]Problème de script Worldgate

le Sam 29 Mai 2010 - 6:38
Euh...pas compris comment me déplacer sur la carte avec les flèches peut me téléporter à moins que tu me suggères de créer une map où l'on peut se téléporter en se plaçant sur les points choisi ???
avatar
XakuX
Professeur

       Professeur
Nombre de messages : 1263
Age : 23
Localisation : là où tu n'auras jamais l'idée de chercher !
Capacités : confirmé
Avertissements : 1 avertissement
Distinction : * Bougre d'âne


Le bizu' à son Coco'
[Coco' Smile]

Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008

Re: [Résolu]Problème de script Worldgate

le Sam 29 Mai 2010 - 8:08
bah, si tu as téléchargé la démo, je vois mal comment tu ne pourrais pas comprendre, c'est très claire ^^'
Parce que je n'ai pas vraiment compris ta phrase mais je crois qu'il faudrait que je réponde "en appuyant sur entrée sur un bâtiment !" ^^'
mais je crois aussi qu'il faut que je réponde "oui, il faudra créer une autre map pour te téléporter sur les points choisis" ^^'
Contenu sponsorisé

Re: [Résolu]Problème de script Worldgate

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