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


-Mettez un titre clair et explicite, pas un titre vague.
-Fournissez le plus d'informations possible, soyez clair et précis.
-Si votre question est liée à un script, postez le script, un lien vers lui, ou une démo.
-Pensez à éditer votre sujet afin d'ajouter [Résolu] dans le titre, lorsque votre problème est résolu.



Publier un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: [Vx] Problème générateur d’event
MessagePublié: 07 Jan 2012, 19:08 
Bourgeois (Nv 2)
Avatar de l’utilisateur

Inscrit le: 01 Juil 2008, 00:00
Messages: 233
Localisation: Seine et Marne
Niveau RPG Maker: 83%
Logiciel(s) préféré(s): rpg maker xp
Point(s) Fort(s): Charamaking
Sexe: Masculin
Points d'aide: 7/60

Créations :

Voir ses créations

Salut,

Alors voici le script en question.

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

#                            Générateur d'événement

#  par berka                                            rgss2

#                          www.rpgmakervx-fr.com                                         

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

#  Rgss 2                  v 2.1        sur les bases de mithos et pipo

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

#                          -Utilisation-

# écrivez dans un event, commande insérer un script:

#

# minumum requis:

# [event]              # obligatoire !

#  chara : "Actor01"    # nom du fichier du charset ou: chara:rand

#

# et les commandes optionnelles:

#  x : 5                # position abscisses, pos aléatoire si rien

#  y : 10              # position ordonnées, pos aléatoire si rien

#  nom : "Event01"      # nom de l'event ou nom: rand

#  c_index : 0          # index sur la planche de chara

#  face : "Actor01"    # nom du fichier du faceset ou: face:true (==>chara)

#  f_index : 0          # index sur la planche de chara

#  dir : 2              # direction de l'event

#  type_mov:0          # type de mouvement

#  vit_mov:0            # vitesse de mouvement

#  freq_mov:0          # frequence de mouvement

#  texte:"bonjour"      # dialogue ou texte:rand (cf. liste dessous)

#  trigger:0            # declencheur de l'event

#  prio_type:1          # type de priorité

#  script: print @a=1  # lance une commande de script

#  combat: 1,true,false # combat: id_monstre, fuite, continuer si defaite

#  or: 0,0,1000        # or: 0/1 (aj/enl),0/1 (Const/var), montant (nbr/var_id)

#  objet: 2,0,0,10      # objet: id,0/1 (aj/enl),0/1 (Const/var), montant (nbr/var_id)

#  arme: 2,0,0,10      # arme: id,0/1 (aj/enl),0/1 (Const/var), montant (nbr/var_id)

#  bouclier: 2,0,0,10  # bouclier: id,0/1 (aj/enl),0/1 (Const/var), montant (nbr/var_id)

#  suppr : true         # suppression de l'événement

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

# Exemple:

#

# [event]

# chara:rand

# texte:rand

# type_mov : 1

#

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



$characters="00" # série de charsets utilisés pour la création aléatoire

                    # people1, people2...

                    # modifiable en cours de jeu, les charas seront piochés dans

                    # les planches de ./Graphics/Characters

$chara_nbre=9         # nombre de fichiers people                   

# dialogues aleatoires                   

$dialogues=["Bonjour, il fait beau, nan ?","Comment allez vous ?","Partez d'ici !",

            "Je n'ai pas de temps à vous accorder !","Vous m'ennuyez...","Encore vous ?",

            "Ah! vous voilà, cher ami !","Tiens, vous semblez fatigué.","Grrrrr...",

            "Hors de ma vue !","Quelle belle journée!","Je me promène.","Vous êtes de retour ?",

            "Hihihi !","Rien.","Je ne veux plus vous parler.","Que faire ?","Mais c'est ¥N[1] !",

            "Le temps change...","Vous êtes mon idole...","Dieu, que vous êtes laid !",

            "Vous me rappelez quelqu'un...","Vous avez l'air sournois","Salut ¥N[1] !",

            "Je ne vous fais pas confiance...","Ne m'approchez pas !","Je suis souffrant",

            "Hé ! tu la connais celle là ?","Ahhahaharff...","Bonjour","Portez vous bien !",

            "Ravi de vous revoir","...Tousse...","Coucou!","Encore un étranger ?","Bouh !",

            "Je n'entends rien de ce que vous dites...","Articulez !","Parlez plus bas.",

            "J'ai fait route toute la journée.","Je suis d'accord.","Dégage, mendiant !",

            "Bonjour jeune homme","...snif...","Vous attirez le malheur ici !","Entendu.",

            "Ne me regardez pas comme ça !","Il faut qu'on se parle...","Venez déjeuner !",

            "Je suis content de vous connaitre."]

            # in-game: $dialogues << "Tu es devenu un héro !"

           

$nom=[%w(Gw Ul Et Rh Ed Gr Dr Dw Tr Gh As Ar Ag Xor),             # générateur de nom

      %w(ai ia eo ui yn or ul ur a e i o u y yr ya yl),

      %w(th rk dd gh z l mn lyr zar gor ryn nia lia )]

     

module Berka

  module Pnj_Gen

    Tag = "[event]"                                           # Tag du générateur

    Separateur = ":"                                          # Separateur: cmd/valeut

    Index_Chara = 8                                           # Nombre de poses

    Commandes = {:face     => "[101,[@_face,@_f_index,0,2]]", # Liste des commandes

                 :or       => "[125,[*@_or]]",

                 :objet    => "[126,[*@_objet]]",

                 :arme     => "[127,[*@_arme]]",

                 :bouclier => "[128,[*@_bouclier]]",

                 :combat   => "[301,[0,*@_combat])]",

                 :script   => "[355,[@_script]]",

                 :suppr    => "[214]",

                 :texte    => "[401,[@_texte]]"

                }

    ProfCoord = 100                                           # profondeur du scan x/y

  end

end



include Berka::Pnj_Gen

class Array

  def arand

    self[Kernel.rand(self.size)]

  end

end

class Object

  def rand?

    self == "?"

  end

end

class Game_Map

  include RPG

  def check_event(x,y)

    for event in @events.values

      return event.id if event.x==x&&event.y==y

    end

    return nil

  end

  def make_event(com)

    self.instance_variables.each{|v|eval("#{v}=nil") if v.include?("@_")}

    rand="?"

    com.each_with_index{|c,i|eval("@_#{c.first.id2name}=#{c[1]}")}

    set_rand

    set_options

    return if @_x.nil?||@_y.nil?

    if check_event(@_x,@_y).nil?

      @event=Event.new(@_x,@_y)

      com.each{|c|c=c.first

        ajout_cmd(*eval("#{Commandes[c]}"))if Commandes.has_key?(c)

      }

      @event.id=creerid

      @event.name=@_nom

      @event.pages.first.graphic.character_name=@_chara

      @event.pages.first.graphic.character_index=@_c_index

      @event.pages.first.graphic.direction=@_dir

      @event.pages.first.move_type=@_type_mov

      @event.pages.first.move_frequency=@_freq_mov

      @event.pages.first.move_speed=@_vit_mov

      @event.pages.first.through=@_trav

      @event.pages.first.trigger=@_trigger

      @event.pages.first.priority_type=@_prio_type

      @events[@event.id]=Game_Event.new(@map_id,@event)

      @need_refresh=true

      $scene.refresh_spriteset 

    end

  end

  def set_rand

    rand="?"

    @_chara||=rand

    @_nom=aleatoire_nom if @_nom.nil?

    @_texte=$dialogues.arand if @_texte.rand?

    @_x,@_y=*aleatoire_pos if @_x.nil?||@_y.nil?

    @_pers=aleatoire_perso

    if @_chara.rand?||@_c_index.rand?

      @_face,@_f_index,@_chara,@_c_index=@_pers

    end

  end

  def set_options

    @_chara=@_pers.first if @chara.nil?

    @_c_index=@_pers[1] if @_c_index.nil?

    @_face,@_f_index = "",0 if @_face==false

    @_dir||=3

    @_type_mov||=0

    @_freq_mov||=3

    @_vit_mov||=3

    @_trav||=false

    @_trigger||=0

    @_prio_type||=1

  end

  def aleatoire_pos

    ProfCoord.times{

      x,y=Kernel.rand(width).to_i,Kernel.rand(height).to_i

      next if x==$game_player.x&&y==$game_player.y

      (return x,y) if passable?(x,y)&&!check_event(x,y)

    }

    return nil,nil

  end

  def aleatoire_perso

    i=Kernel.rand(Index_Chara-1)

    res=$characters+(Kernel.rand($chara_nbre)+1).to_s

    return [res,i,res,i]

  end

  def aleatoire_nom

    n="#{$nom.first.arand}#{$nom[1].arand}#{$nom[2].arand}"

    n<<$nom[1].arand if rand(4)==1

    return n

  end

  def event_name(id)

    @events[id].name if !@events[id].nil?

  end

  def creerid

    id=1

    id+=1 while @events.keys.include?(id)

    return id

  end

  def ajout_cmd(code,param=[],i=0)

    cmd=EventCommand.new

    cmd.code,cmd.parameters,cmd.indent=code,param,i

    @event.pages.first.list.insert(-2,cmd)

  end

end

class Scene_Map
  def refresh_spriteset

    @spriteset.dispose;@spriteset=Spriteset_Map.new

  end

end

class Game_Interpreter

  def eval(script)

    if script.include?(Tag)

      com=[];script.gsub!(Tag,'')

      list=script.split("\n")

      s=Separateur

      list.each_with_index{|e,i|e.gsub!(' '+s,s);e.gsub!(s+' ',s);f=e.split(s)

      com<<[f.first.to_sym,f[1]]if !f[1].nil?}

      $game_map.make_event(com)

      return

    end

    return Kernel.eval(script)

  end

end


Tous marche parfaitement (ou presque) mais il y a un problème au niveau des messages aléatoire. J'ai beau mettre "texte:rand"Rien ne ce passe... à si l'event généré se retourne une demi-seconde sans rien dire et il continue son chemin, j'aimerais bien savoir d'où vient le problème, merci d'avance

_________________
http://kald.minitroopers.fr/


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 1 message ] 

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