AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le Deal du moment : -36%
Aspirateur balai sans fil Dyson V8 Origin
Voir le deal
254.99 €

Partagez
 

 [VX] Générateur d'événements.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 34
Inscrit le : 15/10/2008
Messages : 351

[VX] Générateur d'événements. Empty
MessageSujet: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeLun 27 Avr 2009 - 21:14

Je pensais avoir posté ce script sur le forum, mais je ne le retrouve pas...
Voici une toute derniere version du script, permettant de faire plus de choses, et beaucoup plus stable.

Désormais, avec ce script, vous pouvez créer tout un tas de PNJ (perso non jouables), totalement inutiles, mais qui donneront un peu de vie a votre jeu.
Si vous le souhaitez, vous pouvez générer des perso totalement aléatoires (apparence, faceset, message...)
les persos peuvent etre positionnés aléatoirement sur la map, là où c'est passable.

J'ai volontairement pas inclu certaines fonctions d'events. Je pense que ce script est fait pour creer des pnj, donc toutes les commandes complexes comme les conditions, gestions de variables sont inutiles.

collez ce script au dessus de main:
Code:
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#                            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="people" # 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=5        # 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<Scene_Base
  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

ce script s'appelle depuis un event, autant de fois qu'il faut créer de persos.
exemple d'appel, dans un event, appel de script
Code:
[event]
chara:rand
texte: rand
type_mov : 1

et ne mettez pas l'event en processus parallèle... si non, votre héro se sentira comme dans le métro à l'heure de pointe !


si vous avez des questions....

berka


Dernière édition par berka le Mer 29 Avr 2009 - 13:57, édité 1 fois
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
fabY
dYeu retraité prématurément
dYeu retraité prématurément
fabY


Masculin Age : 29
Inscrit le : 09/02/2008
Messages : 5357

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeLun 27 Avr 2009 - 22:14

Wahoooo =O

Manque juste un screen histoire de pas faire de septiques =P, +10 ^^.
Citation :

et ne mettez pas l'event en processus parallèle... si non, votre héro se sentira comme dans le métro à l'heure de pointe !

xD
Revenir en haut Aller en bas
https://rpg-maker-vx.bbactif.com/
subdigital
Illusionniste Lv.12
Illusionniste Lv.12
subdigital


Masculin Age : 30
Inscrit le : 30/11/2008
Messages : 660

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeLun 27 Avr 2009 - 22:34

berka a écrit:
et ne mettez pas l'event en processus parallèle... si non, votre héro se sentira comme dans le métro à l'heure de pointe !
=> C'est a dire ?
=> Oui un tout mini screen et tout le monde est content ! ^^

Je voie que le script estd e toi, aucun doute la dessu, du moins je ne l'est jamais vue ^^

Bon Travail !
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 34
Inscrit le : 15/10/2008
Messages : 351

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeMer 29 Avr 2009 - 13:58

C'est a dire que ta map sera remplie d'events, et que tu ne pourras plus bouger.
Pas de screen, on ne verra que des events sur la map.

(nouvelle version)

berka
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeMer 29 Avr 2009 - 14:21

Tu pourrais inclures les fonctions "inutiles" comme tu dis ^^'
Sinon montre moi comment on fait =)
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 34
Inscrit le : 15/10/2008
Messages : 351

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeMer 29 Avr 2009 - 14:23

je vais te faire ca !
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeMer 29 Avr 2009 - 14:50

Ok merci !
Revenir en haut Aller en bas
Luciole
Mage Lv.11
Mage Lv.11
Luciole


Masculin Age : 28
Inscrit le : 13/07/2008
Messages : 587

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 16:21

Je pense que je suis au bord du nécropost mais je tente ma chance :p
J'ai mis le script au dessus de main et tout et tout.
Je met un évent: appeller un scipt, la j'ai mis ce que t'a mis en code,a savoir

Code:
[event]
chara:rand
texte: rand
type_mov : 1

Et rien ne vient o_o
Revenir en haut Aller en bas
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 16:44

Tu es sûr de lancer l'event qui a cette commande ?
Revenir en haut Aller en bas
Luciole
Mage Lv.11
Mage Lv.11
Luciole


Masculin Age : 28
Inscrit le : 13/07/2008
Messages : 587

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 17:09

xD

Purrée mais c'est quoi ce bin's? o_o
J'ai remis un autre évent pour revérifier et quand je touche "enter" a coté de l'évent, plein de bonhommes arrivent et bougent partout o_o
Revenir en haut Aller en bas
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 17:36

Montre l'event...
Revenir en haut Aller en bas
Azeroth
Illusionniste Lv.12
Illusionniste Lv.12
Azeroth


Masculin Age : 28
Inscrit le : 29/03/2008
Messages : 673

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 18:00

Petit truc ce script ne fonctionne pas avec l'anti-Lag --''
C'est chiaaaaant...
Revenir en haut Aller en bas
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 18:05

Au fait berka !
Tu as avancé dans toute les commandes de l'event Very Happy
J'ai vraiment hâte que tu le finisse =)
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 34
Inscrit le : 15/10/2008
Messages : 351

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 18:06

Pourquoi t'utilises un anti-lag ?
Théoriquement, ton jeu ne devrait pas 'lagger' (ce mot est toujours mal utilisé) si tu utilises bien le logiciel.
Ce qui fait chuter le FPS: trop d'images raffraichies par frame: est il indispensable de tout rafraichir constament? de trop grandes maps, trop d'events communs...
Tout est optimisable !

berka

ps: La meche: zut, j'ai vraiment zappé ca ! avec mon site, mes études, pleins d'autres scripts urgents, j'avais totalement oublié, je m'y mets dès que possible !
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
Azeroth
Illusionniste Lv.12
Illusionniste Lv.12
Azeroth


Masculin Age : 28
Inscrit le : 29/03/2008
Messages : 673

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 18:16

C'est bon ça marche ! Merci berka
Mais quand je leurs parle c'erst la misère ils ne ma parlent pas... ='(
Revenir en haut Aller en bas
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 18:47

T'inquiéte moi aussi sa fait pareil x]

berka => pas grave ^^
Prend ton temps, je ne suis pas pressé !
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeSam 16 Mai 2009 - 19:25

@berka => Quand t'a une map monde de 500*500 "l'anti lag", est très utile hein !
Puis comme ça on peut bourrer la map d'events, pour une grosse ciné par exemple on est pas embêté !
Revenir en haut Aller en bas
wardi
Poulet Lv.1
Poulet Lv.1
wardi


Avertissements : 1
Inscrit le : 14/02/2009
Messages : 2

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeJeu 20 Aoû 2009 - 11:01

Vous pouvez pas mettre de screen s'il vous plait ?
Revenir en haut Aller en bas
Sirbancal
Poulet carnivore Lv.2
Poulet carnivore Lv.2
Sirbancal


Inscrit le : 07/05/2011
Messages : 11

[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitimeDim 8 Mai 2011 - 17:19

bon je sais que je suis a fond dans le necropost et je m'en excuse mais étant bloquer sur ce script je suis obligé de réveiller les morts pour avoir la solution , si quelqu'un l'a évidemment ( sinon je serais juste passer pour un con ^^) .
le script est simple d'utilisation tel que par exemple
[VX] Générateur d'événements. Pnj10

je me retrouve donc avec mes 10 bonshommes sur ma map auxquels pour tester je tente de parler et la je déchante , ils se retournent bien vers moi mais cela ne dure qu'un dixième de seconde et ils ne me parlent pas de plus il y a des fois des problèmes de zones inaccessibilité autour d'eux , donc de 2 choses l'une soit c'est le script ce qui m'étonnerais personne ne s'en étant plus jusqu’à sa nécrose , soit l’influence d'un autre script adapté a mon projet ou une fausse manip de ma part est a l'origine de ce bug . Merci de votre aide

Ps: s'il y a un endroit plus adapté plutôt que de réveiller ce post merci de me le dire vite afin que je supprime mon post et le recrée a l'endroit le plus adapté
Revenir en haut Aller en bas
Contenu sponsorisé




[VX] Générateur d'événements. Empty
MessageSujet: Re: [VX] Générateur d'événements.   [VX] Générateur d'événements. Icon_minitime

Revenir en haut Aller en bas
 

[VX] Générateur d'événements.

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Generateur de nom.
» Générateur de nom
» Générateur de noms
» generateur de charas
» [VX] Générateur de bibliothèque

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Évents & PNJs-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit