Sujet: Compiler un event? [resolu] Ven 6 Fév 2009 - 17:47
Voila j'ai quelques questions, qui sont surtout orientés à des personnes comme ASHKA, Berka et Miraino, mais qui pourrait intéresser d'autres personnes. Je voulais savoir une chose sur RMVX, est il entiérement fait en Ruby? Si oui, alors tout les évents qu'on écrit sur une page d'événements sont une représentation graphique de ruby? Ou se trouve ses fichiers ruby de nos events quand on sauvegarde? Y a t'il possibilité des le compiler en rgss ces events fait sur RMVX? La question peut paraitre bizzare ou totalement débile, mais ça serait vraiment pratique je trouve..
Blockade
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
Sujet: Re: Compiler un event? [resolu] Ven 6 Fév 2009 - 17:58
Tu veux savoir si, les événements que tu crée sont réalisés en ruby ? La réponse est oui, c'est le rôle de Game_Interpreter. Ils sont repartis en command_xxx, ou xxx est un nombre qui va de 101 à 403 (mais qui saute plein de chiffres xD) La command_311 gère la modification des HP ^^
ASHKA
Voyageur Lv.10
Age : 42 Inscrit le : 04/12/2008 Messages : 383
Sujet: Re: Compiler un event? [resolu] Ven 6 Fév 2009 - 18:00
Je ne comprends pas tout mais ... Les infos sur les events, comme tout ce que tu defini dans l'editeur sont dans les fichier rvdata ( ici, celui de la map ). Les events ne sont pas sauvegardés ( si tu parle sauvegarde in-game ).
Les events sont des données comme les autres, parfaitement exploitable dans d'autre circonstance que celle prevu.
J'ai, pour mon projet, testé un systeme de placement aléatoire des events. J'ai une map où je place mes events ( ceux de mon equipe ). Et il apparaitront aléatoirement sur les maps de villes.
Enfin bon, j'ai pas tout compris, donc je laisse les autres repondre ...
ASHKA
Elezia
Roi des Lapinous
Age : 34 Inscrit le : 11/10/2008 Messages : 2292
Sujet: Re: Compiler un event? [resolu] Ven 6 Fév 2009 - 18:10
En faite j'aimerais mettre un de mes événements en script, est ce possible?
Blockade
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
Sujet: Re: Compiler un event? [resolu] Ven 6 Fév 2009 - 18:45
Lequel ? Ils sont tous référencé dans Game_Interpreter. Dit moi lequel je t'indiquerait comment faire
La Meche
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
Sujet: Re: Compiler un event? [resolu] Ven 6 Fév 2009 - 19:15
Hum se serais génial ça ! On pourrait ainsi créer des even comme celà ! Très pratique pour les jeux de gestion ce système !
Elezia
Roi des Lapinous
Age : 34 Inscrit le : 11/10/2008 Messages : 2292
Sujet: Re: Compiler un event? [resolu] Ven 6 Fév 2009 - 19:38
Oui voila pour ce genre d'event un peu long et qui pourrait être mis en appel de script ou en script qui tourne tout le temps! Moi perso je pensais à l'event que je vais poster en tutoriel cette nuit... Car au lieu de faire cet event à chaque fois je préférerais faire un appel de script =)
berka
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
Sujet: Re: Compiler un event? [resolu] Ven 6 Fév 2009 - 22:15
va voir du coté du script Game_Interpreter, c'est lui qui gère toutes les commandes d'event.
Pour faire simple, voici la structure d'un event:
Code:
module RPG class Event class Page def initialize condition = RPG::Event::Page::Condition.new # le declencheur @graphic = RPG::Event::Page::Graphic.new # l'apparence ... @list = [RPG::EventCommand.new] # les commandes end end end end
je ne sais pas si ca te parle, mais tu 'print' un event, tu va trouver une quantité de données contenues dans des variables: tout ce qui fait l'event (voir ci dessus). et toutes ces données sont comme tu dis 'compilées' mais je dirais plutot encodées dans une fichier rvdata, comme l'a dit ASHKA, le map.rvdata.
pour ce qui est du codage de ton évent, c'est parfaitement réalisable. Créer des events en cours de jeu est également possible, mais lourd a mettre en place.
bonne nuit, berka
La Meche
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
Sujet: Re: Compiler un event? [resolu] Sam 7 Fév 2009 - 15:32
Et avec ça on fait quoi une l'even fini ? Comment on l'appel ? Et comment on le créer ?
Citation :
Créer des events en cours de jeu est également possible, mais lourd a mettre en place
Pourquoi ? Suffit pas de
Code:
$scene = Scene_EvenMarchand.new
Je crois que je viens de dire une grosse connerie >o<
berka
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
Sujet: Re: Compiler un event? [resolu] Sam 7 Fév 2009 - 15:49
le code montre la structure d'un event, ce n'est pas suffisant pour en générer un
ce code ne s'appelle donc pas
créer un event en cours de jeu est lourd car il faut recréer toute la structure de l'event: la liste des commandes, notamment
Scene_EvenMarchand.new n'est pas une classe ruby. Les events sont gérés par des classes cachées, internes qui définit tous leurs parametres. Ensuite, ils sont traités par les classes Game_Event, affichés sur la Scene_Map par Sprite_Character
La Meche
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
Sujet: Re: Compiler un event? [resolu] Sam 7 Fév 2009 - 16:39
Ok Mais si on a fait toute les commandes, l'apparence et tout ce qui vas avec comment on le créer ?
berka
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
Sujet: Re: Compiler un event? [resolu] Sam 7 Fév 2009 - 16:48
Sujet: Re: Compiler un event? [resolu] Sam 7 Fév 2009 - 22:07
et voila une ébauche de script:
Code:
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Générateur d'événement # par berka # www.rpgmakervx-fr.com #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Rgss 2 v 1.0 #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # -Utilisation- # écrivez dans un event, commande insérer un script: # # #minimum requis: # [event] # obligatoire ! # x = 5 # position abscisses # y = 10 # position ordonnées # ou pos_rand=true # position aléatoire # nom = "Event01" # nom de l'event # chara = "Actor01" # nom du fichier du charset # index = 0 # index sur la planche de chara # dir = 2 # direction de l'event # type_mov = 1 # 1 mouvement aléatoire, 0 immobile... # freq_mov = 3 # frequence de mouvement # vit_mov = 0 # vitesse de mouvement # #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- class Game_Map def check_event(x,y) for event in $game_map.events.values return event.id if event.x==x&&event.y==y end return nil end def event_name(id) return $game_map.events[id].name if !$game_map.events[id].nil? end def make_event(hash) if hash[:pos_rand] x,y=*aleatoire_pos else x,y=hash[:x].to_i,hash[:y].to_i if hash.has_key?(:x)&&hash.has_key?(:y) rescue return end return if x.nil?||y.nil? if check_event(x,y).nil? event=RPG::Event.new(x,y) hash.has_key?(:id) ? id=hash[:id] : id=99 hash.has_key?(:nom) ? nom=hash[:nom] : nom=event.id hash.has_key?(:chara) ? chara=hash[:chara] : chara="" hash.has_key?(:index) ? index=hash[:index].to_i : index=0 hash.has_key?(:dir) ? dir=hash[:dir].to_i : dir=3 hash.has_key?(:type_mov) ? type_mov=hash[:type_mov].to_i : type_mov=0 hash.has_key?(:freq_mov) ? freq_mov=hash[:freq_mov].to_i : freq_mov=3 hash.has_key?(:vit_mov) ? vit_mov=hash[:vit_mov].to_i : vit_mov=3 hash.has_key?(:traversable) ? trav=eval(hash[:traversable].to_i) : trav=false hash.has_key?(:trigger) ? trigger=hash[:trigger].to_i : trigger=0 text=hash[:text] if hash.has_key?(:text)
event.id=id event.name=nom event.pages[0].graphic.character_name=chara event.pages[0].graphic.character_index=index event.pages[0].graphic.direction=dir event.pages[0].move_type=type_mov event.pages[0].move_frequency=freq_mov event.pages[0].move_speed=vit_mov event.pages[0].through=trav event.pages[0].trigger=trigger event.pages[0].list=[text] if !text.nil? @events[event.id]=Game_Event.new(@map_id,event) $scene=Scene_Map.new end end def aleatoire_pos loop{x,y=rand(width).to_i,rand(height).to_i (return x,y) if passable?(x,y)} return nil,nil end end
class Game_Interpreter def eval(script) if script.include?('[event]') hash={} script.gsub!('[event]','') list=script.split("\n") list.each{|e|e.gsub!(/\ \=\ /,"=");f=e.split("=");hash[f[0].to_sym]=f[1] if !f[1].nil?} $game_map.make_event(hash) else return Kernel.eval(script) end end end
mince... double post... au temps pour moi
La Meche
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 7:46
Wouaw ! Mais il menque un truc... Les commandes ! Comment on les ajoutes Se serait pas trop utilise d'avoir juste un even...vide...
berka
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 9:36
ouaip, je disais que c'etait un début de script. D'ailleurs, il reste pas mal de truc a régler: event infranchissable, commandes, mouvement paramétré... mais ca peut etre pas mal pour créer des PNJ !
La Meche
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 9:47
Ok ! Donc j'attends la version final... avec impatience !
Elezia
Roi des Lapinous
Age : 34 Inscrit le : 11/10/2008 Messages : 2292
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 13:39
Cool ça me parait nickel =) Mais avec ce genre de systéme des pnj peuvent se créer aléatoirement? En tout cas ça me permettra d'inclure mon premier script sur lequel je travaille... mais y a encore du boulot x)
La Meche
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 13:43
Citation :
Mais avec ce genre de systéme des pnj peuvent se créer aléatoirement?
Gestion de variable X = nombre entre y et z Condition la variable X = d alors tu fais le truc etc...
Citation :
En tout cas ça me permettra d'inclure mon premier script sur lequel je travaille... mais y a encore du boulot x)
Tu peux en dire plus
berka
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 14:48
et hop, un event est créé sur une case aléatoire franchissable
Elezia
Roi des Lapinous
Age : 34 Inscrit le : 11/10/2008 Messages : 2292
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 15:23
Y a deux choses qui serait vraiment parfaite si c'étais réalisable: -la premiére serait qu'on puisse définir une variable entre 0 et X et que selon ça le pnj créé aléatoirement dise une phrase toute faite de pnj. -la deuxiéme serait pour un univers ouvert faire en sorte que les pnj arrive là et se ballade comme ça, puis disparaisse sur un bord de la carte.
Et enfin mon premier script lameche est pas génial x) je veux juste rajouter une fonction qui me parait intéressante... le problème c'est que j'aimerais le faire moi même et pas que quelqu'un le fasse à ma place, c'est un entrainement
berka
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 18:31
Voila une nouvelle version avec quelques améliorations:
Code:
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Générateur d'événement # par berka # www.rpgmakervx-fr.com #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Rgss 2 v 1.0 #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # -Utilisation- # écrivez dans un event, commande insérer un script: # # #minimum requis: # [event] # obligatoire ! # x = 5 # position abscisses # y = 10 # position ordonnées # ou pos_rand=true # position aléatoire # nom = "Event01" # nom de l'event # chara = "Actor01" # nom du fichier du charset ou: chara=aleatoire # c_index = 0 # index sur la planche de chara # face = "Actor01" # nom du fichier du faceset ou: face=aleatoire # 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=aleatoire (cf. liste dessous) # trigger=0 # declencheur de l'event # prio_type=1 # type de priorité # # # #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- $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.","Je n'ai rien à vous proposer.", "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", "Je ne vous fais pas confiance...","Ne m'approchez pas !","Hé ! tu la connais celle là ?", "Ahhahaharff...","Bonjour","Portez vous bien !"] 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 event_name(id) return @events[id].name if !@events[id].nil? end def make_event(hash) @commandes=[] if hash[:pos_rand];x,y=*aleatoire_pos else;x,y=hash[:x].to_i,hash[:y].to_i if hash.has_key?(:x)&&hash.has_key?(:y) rescue return end return if x.nil?||y.nil? if check_event(x,y).nil? @event=RPG::Event.new(x,y) @event.id=creerid hash.has_key?(:nom)? nom=hash[:nom] : nom=@event.id hash.has_key?(:chara)? chara=hash[:chara] : chara="" hash.has_key?(:face)? face=hash[:face] : face="" hash.has_key?(:c_index)? c_index=hash[:c_index].to_i : c_index=0 hash.has_key?(:f_index)? f_index=hash[:f_index].to_i : f_index=0 hash.has_key?(:dir)? dir=hash[:dir].to_i : dir=3 hash.has_key?(:type_mov)? type_mov=hash[:type_mov].to_i : type_mov=0 hash.has_key?(:freq_mov)? freq_mov=hash[:freq_mov].to_i : freq_mov=3 hash.has_key?(:vit_mov)? vit_mov=hash[:vit_mov].to_i : vit_mov=3 hash.has_key?(:traversable)? trav=eval(hash[:traversable].to_i) : trav=false hash.has_key?(:trigger)? trigger=hash[:trigger].to_i : trigger=0 hash.has_key?(:prio_type)? prio_type=hash[:prio_type].to_i : prio_type=1 texte=hash[:texte] if hash.has_key?(:texte) chara,c_index,face,f_index=perso_aleatoire if chara=="aleatoire"||face=="aleatoire" (ajout_cmd(101,[face,f_index,0,2]) if texte=="aleatoire";ajout_cmd(401,[$dialogues[rand($dialogues.size)]]) else;ajout_cmd(401,[texte]);end) if !texte.nil?
@event.name=nom @event.pages[0].graphic.character_name=chara @event.pages[0].graphic.character_index=c_index @event.pages[0].graphic.direction=dir @event.pages[0].move_type=type_mov @event.pages[0].move_frequency=freq_mov @event.pages[0].move_speed=vit_mov @event.pages[0].through=trav @event.pages[0].trigger=trigger @event.pages[0].priority_type=prio_type @events[@event.id]=Game_Event.new(@map_id,@event) @need_refresh=true $scene.refresh_spriteset end end def aleatoire_pos loop{x,y=rand(width).to_i,rand(height).to_i (return x,y) if passable?(x,y)} return nil,nil end def perso_aleatoire i=rand(7) res="people#{rand(3)+1}" return [res,i,res,i] 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=code cmd.parameters=param cmd.indent=i @event.pages[0].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?('[event]') hash={} script.gsub!('[event]','') list=script.split("\n") list.each{|e|e.gsub!(" =","=");e.gsub!("= ","=");f=e.split("=");hash[f[0].to_sym]=f[1] if !f[1].nil?} $game_map.make_event(hash) else return Kernel.eval(script) end end end
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 19:19
Ahahah ça me parait presque parfait =) Plus que quelques détails et options supplémentaires et ça le sera ^o^ Sinon moi je bosse activement sur mon script, LaMeche m'ayant fait penser à un détail auquel je ne pensais pas, je fini de le régler et je me lance :p
berka
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 19:29
quoi comme options ?
Elezia
Roi des Lapinous
Age : 34 Inscrit le : 11/10/2008 Messages : 2292
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 19:36
Fonction comme, suivre l'événement, suivre le héros, apparait d'un bout de la carte marche aléatoirement et au bout de X temps va à une extrémité de la carte et redisparait, des trucs complexes qui donnerait un aspect plus vivant aux pnj, je sais ça fais très bling bling mais je trouve ça sympa ^^ Là perso je pensais que suivre l'événement était facile, j'ai commencé à m'en charger, mais je ralenti sur le passage des obstacles, enfin encore deux trois petits détails et ça passera nickel
berka
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
Sujet: Re: Compiler un event? [resolu] Dim 8 Fév 2009 - 20:47
voila une nouvelle version, permettant de déclencher des combats, et de lancer des scripts... pour ce qui est de tes idées, si elles sont bonnes, je pense qu'elles ne s'appliquent pas trop a ce script. Mon script se lance dès la création de l'event et s'arrete dès qu'il existe. Pour gerer l'event dans la duree, il faut creer un autre type de script...
Code:
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Générateur d'événement # par berka rgss2 # www.rpgmakervx-fr.com #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Rgss 2 v 1.0 sur les bases de mithos et pipo #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # -Utilisation- # écrivez dans un event, commande insérer un script: # # #minimum requis: # [event] # obligatoire ! # x : 5 # position abscisses # y : 10 # position ordonnées # ou pos_rand:true # position aléatoire # nom : "Event01" # nom de l'event # chara : "Actor01" # nom du fichier du charset ou: chara:aleatoire # c_index : 0 # index sur la planche de chara # face : "Actor01" # nom du fichier du faceset ou: face:aleatoire # 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:aleatoire (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 #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # ne fonctionne pas avec mon script de video... pour toute demande de résolution # de compatibilité me demander... #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- $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","Je ne vous fais pas confiance...","Ne m' approchez pas !","Hé ! tu la connais celle là ?","Ahhahaharff...", "Bonjour","Portez vous bien !"] 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 event_name(id) return @events[id].name if !@events[id].nil? end def make_event(hash) @commandes=[] if hash[:pos_rand];x,y=*aleatoire_pos else;x,y=hash[:x].to_i,hash[:y].to_i if hash.has_key?(:x)&& hash.has_key?(:y) rescue return end return if x.nil?||y.nil? if check_event(x,y).nil? @event=RPG::Event.new(x,y) @event.id=creerid hash.has_key?(:nom)? nom=hash[:nom] : nom=@event.id hash.has_key?(:chara)? chara=hash[:chara] : chara="" hash.has_key?(:face)? face=hash[:face] : face="" hash.has_key?(:c_index)? c_index=hash[:c_index].to_i : c_index=0 hash.has_key?(:f_index)? f_index=hash[:f_index].to_i : f_index=0 hash.has_key?(:dir)? dir=hash[:dir].to_i : dir=3 hash.has_key?(:type_mov)? type_mov=hash[:type_mov].to_i : type_mov=0 hash.has_key?(:freq_mov)? freq_mov=hash[:freq_mov].to_i : freq_mov=3 hash.has_key?(:vit_mov)? vit_mov=hash[:vit_mov].to_i : vit_mov=3 hash.has_key?(:traversable)? trav=eval(hash[:traversable].to_i) : trav=false hash.has_key?(:trigger)? trigger=hash[:trigger].to_i : trigger=0 hash.has_key?(:prio_type)? prio_type=hash[:prio_type].to_i : prio_type=1 texte=hash[:texte]if hash.has_key?(:texte) script=hash[:script]if hash.has_key?(:script) combat=hash[:combat].sub(" ","").split(',')if hash.has_key?(:combat) chara,c_index,face,f_index=*perso_aleatoire if chara=="aleatoire"||face=="aleatoire" (ajout_cmd(101,[face,f_index,0,2]) if texte=="aleatoire";ajout_cmd(401,[$dialogues[rand($dialogues.size)]]) else;ajout_cmd(401,[texte]);end)if !texte.nil? ajout_cmd(355,[script])if !script.nil? ajout_cmd(301,[0,combat[0].to_i,combat[1]=='true', combat[2]=='true'])if !combat.nil?
@event.name=nom @event.pages[0].graphic.character_name=chara @event.pages[0].graphic.character_index=c_index @event.pages[0].graphic.direction=dir @event.pages[0].move_type=type_mov @event.pages[0].move_frequency=freq_mov @event.pages[0].move_speed=vit_mov @event.pages[0].through=trav @event.pages[0].trigger=trigger @event.pages[0].priority_type=prio_type @events[@event.id]=Game_Event.new(@map_id,@event) @need_refresh=true $scene.refresh_spriteset end end def aleatoire_pos loop{x,y=rand(width).to_i,rand(height).to_i (return x,y)if passable?(x,y)} return nil,nil end def perso_aleatoire i=rand(7) res="people#{rand(3)+1}" return [res,i,res,i] 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[0].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?('[event]') hash={} script.gsub!('[event]','') list=script.split("\n") list.each{|e|e.gsub!(" :",":");e.gsub!(": ",":");f=e.split(":") hash[f[0].to_sym]=f[1]if !f[1].nil?} $game_map.make_event(hash) else;return Kernel.eval(script) end end end