 RPG Maker VX/VXAce - La Communauté - v3 Le forum de la communauté francophone de making. News, entraide, ressources, venez nombreux! Spécialisés dans RPG Maker VX et RPG Maker VXAce |
           
 
| | Boîte à Outils pour event-makers | |
| | Auteur | Message |
|---|
Mist' Administrateur


Nombre de messages: 2689 Age: 19 Localisation: France // Auvergne // Cantal Capacités: expert Distinction: Elite du Service Anti Boulets
Force Rouge Mist', toujours EN ACTION!! contre les Gaaxkun de la cité d'Erem Vehyx
La biatch préréfée à Coco'
[Coco' ]
"J'en branle"
[Mist' à Yuko]
JEAN LOU de la commu' (Jena Lee fake)
[Universal Music] Date d'inscription: 22/12/2007
 | Sujet: Boîte à Outils pour event-makers Mer 11 Fév 2009 - 20:49 | |
| Et bien voilà, j'avais réfléchis à ce projet un bon moment, j'vous en ai parlé sur la ChatBox, maintenant, j'fais un post expliquatif de ce projet de "BAO" pour event-makers.
La plupart des makeurs ne savent pas scripter, donc, j'ai eu pour idée de confectionner cette BAO afin de leur permettre d'exploiter le RGSS via les évènements de RPG Maker VX. Donc, cela nous permettra aussi de combler les faiblesses de RMVX niveau évènements par rapport à RMXP (ajout d'une commande brouillard, etc.).
Comment allons nous procéder?
Moi, j'pensais faire un sondage discret dans la section problèmes, histoire de demander aux event-makers ce qu'ils aimeraient comme commandes en plus, ensuite, coder les meilleures idées retenues dans le Game_Interpreter.
Ensuite, à partir de là, je continuerais mon post, il faut connaître les résultats du sondage pour s'étaler davantage sur le sujet je pense.
Ca nous (à moi aussi évidemment) permettrai d'en apprendre un peu plus sur les commandes Interpreter de RPG Maker VX, qu'en pensez-vous? _________________ ~ The Sauce Make The Difference.  |
|  | | Berka Administrateur


Nombre de messages: 1824 Age: 21 Localisation: Paris Capacités: expert Distinction: rubyste déglingué
9ème dan en scripting-no-jutsu
Nouveau Justine Beber ;P Date d'inscription: 16/12/2007
 | Sujet: Re: Boîte à Outils pour event-makers Mer 11 Fév 2009 - 20:55 | |
| déja, il faut trouver un moyen de recuperer des commandes passées par la commande d'appel de script. Car je pense qu'on ne peut utiliser que cette commande... un truc du genre: | Code: | [commande] >obligatoire a:1 g:true >options f:false ... |
et ensuite on interprete le tout... un peu comme j'ai essayé de faire pour mon script de video et de génération d'event.
Mais c'est vraiment une super idée, ca... ca permettra a chacun de coder selon ses disponibilités... j'adhère !_________________ Berka sur twitter, tavu ? Pensées politiques et juridiques. Réflexions informatiques.
.: Bonjour Invité, je ne fais pas de support de script par MP :.
|
|  | | Mist' Administrateur


Nombre de messages: 2689 Age: 19 Localisation: France // Auvergne // Cantal Capacités: expert Distinction: Elite du Service Anti Boulets
Force Rouge Mist', toujours EN ACTION!! contre les Gaaxkun de la cité d'Erem Vehyx
La biatch préréfée à Coco'
[Coco' ]
"J'en branle"
[Mist' à Yuko]
JEAN LOU de la commu' (Jena Lee fake)
[Universal Music] Date d'inscription: 22/12/2007
 | Sujet: Re: Boîte à Outils pour event-makers Mer 11 Fév 2009 - 21:27 | |
| Tant mieux, à voir Aray' maintenant, et ce sera bon, j'lancerais le sondage (discret quand même, j'trouverais un prétexte pour éviter les questions inutiles.
Content que tu approuves ^^
Berka : c'est sympa comme mot, le sondange !
Mist' : Mais xD Ca arrive d'appuyer sur une mauvaise touche de temps en temps hein x') M'enfin, corrigé, merci pour m'l'avoir fait remarquer ^^ _________________ ~ The Sauce Make The Difference. 
Dernière édition par Mister M. le Mer 11 Fév 2009 - 21:55, édité 2 fois |
|  | | ASHKA Jeune Etudiant


Nombre de messages: 242 Age: 29 Localisation: Omnipresent !! Distinction: aucune Date d'inscription: 28/10/2008
 | Sujet: Re: Boîte à Outils pour event-makers Mer 11 Fév 2009 - 21:46 | |
| Sur le concept, j'adhere aussi !!
J'adore l'Event Langage de Roys et Avygeil pour les possibilités qu'ils offrent aux non-scripteurs, mais j'ai toujours trouvé que c'est assez lourd à mettre en place.
Ce que propose berka, c'est un bon systeme, tout comme une bete methode avec des parametres. Mais dans le deux cas, faut faire une notice clair et détaillé.
Pour les idées de commande, il y avait un topic sur un autre forum "Les events manquant aux RM", ou un truc du genre ... Je vais voir s'il y a des trucs à "recuperer" !!
Bien sur, pour ce qui est de coder, je vous degagerais un peu de temps selon vos besoins, suffit de demander !!
ASHKA |
|  | | Mist' Administrateur


Nombre de messages: 2689 Age: 19 Localisation: France // Auvergne // Cantal Capacités: expert Distinction: Elite du Service Anti Boulets
Force Rouge Mist', toujours EN ACTION!! contre les Gaaxkun de la cité d'Erem Vehyx
La biatch préréfée à Coco'
[Coco' ]
"J'en branle"
[Mist' à Yuko]
JEAN LOU de la commu' (Jena Lee fake)
[Universal Music] Date d'inscription: 22/12/2007
 | Sujet: Re: Boîte à Outils pour event-makers Mer 11 Fév 2009 - 21:58 | |
| Content que ça te plaise aussi Ashka ^^
Bah, plus qu'Aray' à attendre, et j'lance le topic x)
@Ashka : Si t'arrives à récup' des idées dans ce sujet, ce serait pas plus mal hein x) Merci de t'proposer pour aller voir ça ^_^ _________________ ~ The Sauce Make The Difference.  |
|  | | Berka Administrateur


Nombre de messages: 1824 Age: 21 Localisation: Paris Capacités: expert Distinction: rubyste déglingué
9ème dan en scripting-no-jutsu
Nouveau Justine Beber ;P Date d'inscription: 16/12/2007
 | Sujet: Re: Boîte à Outils pour event-makers Mer 11 Fév 2009 - 21:58 | |
| Cool ! C'est vrai, que j'ai aussitot pensé a l'EL de Roys... mais je suis de ton avis: c'est beaucoup trop complexe...
Pour le fonctionnement, c'est selon le schéma suivant en gros:
cmd en script dans un évent: l'interpréteur exécute la commande de script, via la def command_355 dedans, le script est exécuté en tant que chaine, via la fonction eval("...") de kernel
En gros, il faut redéfinir la fonction eval pour l'interpreteur: on aura: une Game_Interpreter#eval et une Kernel#eval (celle de base)
alors, il suffira d'évaluer la 1ere ligne du script, pour déterminer la commande, et récuperer les réglages: par un regexp (cassdedi pour aray' ^^) on extrait la commande: du genre: ligne1.gsub!(/\[(Aa-Zz)\/){cmd=$1} cmd est le nom de la commande, on l'ajoute à un tableau, suivies des commandes...
les commandes seront alors exécutées si un script rajouté spécifie la commande...
Voila les bases, je pense que c'est le moyen le plus simple... _________________ Berka sur twitter, tavu ? Pensées politiques et juridiques. Réflexions informatiques.
.: Bonjour Invité, je ne fais pas de support de script par MP :.
|
|  | | Mist' Administrateur


Nombre de messages: 2689 Age: 19 Localisation: France // Auvergne // Cantal Capacités: expert Distinction: Elite du Service Anti Boulets
Force Rouge Mist', toujours EN ACTION!! contre les Gaaxkun de la cité d'Erem Vehyx
La biatch préréfée à Coco'
[Coco' ]
"J'en branle"
[Mist' à Yuko]
JEAN LOU de la commu' (Jena Lee fake)
[Universal Music] Date d'inscription: 22/12/2007
 | Sujet: Re: Boîte à Outils pour event-makers Mer 11 Fév 2009 - 22:08 | |
| En parlant des Regexp, si il t'était possible de m'expliquer ça quand t'auras un moment, j't'en serais reconnaissant ^^
Parce que pour le moment, moi et les expressions régulières... ^^" (C'est enrichissant tout ça x) ) J'pense avoir compris le schéma qu't'as fait :
On récupère les datas via l'eval recodé pour l'interpréteur, ensuite on lit ces mêmes datas grâce à la Regexp qui sort la commande de la chaîne de caract., et donc, on éxécute, c'est ça? _________________ ~ The Sauce Make The Difference.  |
|  | | ASHKA Jeune Etudiant


Nombre de messages: 242 Age: 29 Localisation: Omnipresent !! Distinction: aucune Date d'inscription: 28/10/2008
 | Sujet: Re: Boîte à Outils pour event-makers Mer 11 Fév 2009 - 22:20 | |
| J'ai retrouvé le topic en question dans les archives. Et pour une fois, ça n'est pas trop partie en freestyle ... Il y a plein d'idée, toutes ne sont pas interessantes, certaines sortent du cadre d'une BAO, mais on peux en tirer pas mal de chose.
Je me permet de mettre un lien : A voir !!
Si je peux demain, j'essayerais d'en extraire la quintessence ... et de vous faire une liste.
ASHKA |
|  | | Mist' Administrateur


Nombre de messages: 2689 Age: 19 Localisation: France // Auvergne // Cantal Capacités: expert Distinction: Elite du Service Anti Boulets
Force Rouge Mist', toujours EN ACTION!! contre les Gaaxkun de la cité d'Erem Vehyx
La biatch préréfée à Coco'
[Coco' ]
"J'en branle"
[Mist' à Yuko]
JEAN LOU de la commu' (Jena Lee fake)
[Universal Music] Date d'inscription: 22/12/2007
 | Sujet: Re: Boîte à Outils pour event-makers Mer 11 Fév 2009 - 22:22 | |
| Merci Ashka ='P J'vais y faire un tour, après, j'vais coder un ou deux trucs qui m'sont venus à l'esprit ^^ _________________ ~ The Sauce Make The Difference.  |
|  | | Berka Administrateur


Nombre de messages: 1824 Age: 21 Localisation: Paris Capacités: expert Distinction: rubyste déglingué
9ème dan en scripting-no-jutsu
Nouveau Justine Beber ;P Date d'inscription: 16/12/2007
 | Sujet: Re: Boîte à Outils pour event-makers Ven 13 Fév 2009 - 23:59 | |
| voila, j'ai un peu regardé pour le noyau: fait: création de commande, vérification de l'existence de la commande conversion des valeurs: strings, int, bool... a faire: comment executer spécialement la commande le script: | Code: | class Game_Interpreter def eval(script) cmd=script.split("\n")[0].gsub(/\[(\w+)\]/){$1} if $asaevent.commandes.include?(cmd) if script.split(/\\n/)[0]=~"[#{cmd}]" liste=script.split("\n") liste[0].gsub(cmd){@com=$&} liste.delete_at(0) $asaevent.asacmd[@com]={} liste.each{|c|c=~/:/;$asaevent.asacmd[@com][$`.to_sym]=$asaevent.trad($')} $asaevent.run($asaevent.asacmd[@com]) end else Kernel.eval(script) end end end
class ASA_Event attr_accessor :commandes,:asacmd def initialize @commandes,@asacmd=[],{} end def ajout_commande(cmd) # ajoute une commande @commandes<<cmd end def retire_commande(cmd) #enleve une commande @commandes.delete(cmd) return @commandes end def liste_commandes # pas tres utile ^^ return @commandes end def trad(cmd) #convertit les chaines en objets spécifiques case cmd when "true";return true when "false";return false when /^[0-9]/;return eval(cmd).to_i else; return cmd end end def run(hash) p hash # trouver moyen execution: # |-> determiner la méthode a appeler end end
$asaevent=ASA_Event.new $asaevent.ajout_commande("test") # ajout d'une commande [test] $asaevent.ajout_commande("rgss") |
_________________ Berka sur twitter, tavu ? Pensées politiques et juridiques. Réflexions informatiques.
.: Bonjour Invité, je ne fais pas de support de script par MP :.
|
|  | | Arayashiki Démonophile sadique


Nombre de messages: 655 Age: 22 Localisation: Trois lettres me demangent. Oserai-je ? Capacités: bon Avertissements: Avertissements infinis |-) Distinction: FUCKING nouveau dieu du mal. Gros connard en chef. Date d'inscription: 18/08/2008
 | Sujet: Re: Boîte à Outils pour event-makers Sam 14 Fév 2009 - 0:09 | |
| Pour moi je suis grave dedans. L'idéal serait de pouvoir rajouter des boutons ... Mais sans les codes sources c'est impossible. Pour l'idée de sondage, je suis d'accord. Ayant un peu bu je n'irais pas plus loin pour ce soir. |
|  | | Berka Administrateur


Nombre de messages: 1824 Age: 21 Localisation: Paris Capacités: expert Distinction: rubyste déglingué
9ème dan en scripting-no-jutsu
Nouveau Justine Beber ;P Date d'inscription: 16/12/2007
 | Sujet: Re: Boîte à Outils pour event-makers Sam 14 Fév 2009 - 0:16 | |
| malheureusement, je crois qu'il va falloir se limiter a la fonction appel de scripts ! _________________ Berka sur twitter, tavu ? Pensées politiques et juridiques. Réflexions informatiques.
.: Bonjour Invité, je ne fais pas de support de script par MP :.
|
|  | | Arayashiki Démonophile sadique


Nombre de messages: 655 Age: 22 Localisation: Trois lettres me demangent. Oserai-je ? Capacités: bon Avertissements: Avertissements infinis |-) Distinction: FUCKING nouveau dieu du mal. Gros connard en chef. Date d'inscription: 18/08/2008
 | Sujet: Re: Boîte à Outils pour event-makers Sam 14 Fév 2009 - 0:49 | |
| Sauf si on trouve un développeur de enterbrain assez gentil pour nous donner les codes sources. Sinon une solution plus chère qui consiste à racheter les droits d'exploitation de VX et ainsi récupérer les codes sources. Mais bon je ne vois pas d'autre alternative... On se limitera à l'appel de script ^^. |
|  | | Berka Administrateur


Nombre de messages: 1824 Age: 21 Localisation: Paris Capacités: expert Distinction: rubyste déglingué
9ème dan en scripting-no-jutsu
Nouveau Justine Beber ;P Date d'inscription: 16/12/2007
 | Sujet: Re: Boîte à Outils pour event-makers Sam 14 Fév 2009 - 16:09 | |
| Voila un premier jet: le noyau | Code: | #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Rgss2 ASA_Event #------------------------------------------------------------------------------- # Par l'Assemblée des Scripteurs Associés http://rpgmakervx-fr.com # |-> membres: Arayashiki, ASHKA, Mister M. et Berka #------------------------------------------------------------------------------- # Script Noyau: permet l'utilisation et l'interprétation de nouvelles commandes # d'events. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
class Game_Interpreter def eval(script) cmd=script.split("\n")[0].gsub(/\[(\w+)\]/){$1} if ASA_Event.commandes.include?(cmd) begin if script.split(/\\n/)[0]=~"[#{cmd}]" liste=script.split("\n") liste[0].gsub(cmd){@com=$&} liste.delete_at(0) ASA_Event.asacmd[@com]={} liste.each{|c| c.gsub!(" :",":");c.gsub!(": ",":") c=~/:/;ASA_Event.asacmd[@com][$`.to_sym]=ASA_Event.trad($',@event_id)} ASA_Event.run(@com,ASA_Event.asacmd[@com]) end rescue Exception msg="Type d'Erreur:\n\t\t#{$!.class}\n" msg<<"Commande exécutée:\n\t\t#{cmd}\n" msg<<"Valeur lancée:\n\t\t#{Kernel.eval("!@com.nil? ? @com : '-'")}\n" msg<<"Map conteneur:\n\t\t#{$game_map.map_id}\n" msg<<"Event conteneur:\n\t\t#{@event_id}\n" ASA.new.erreur_log(msg) end else;Kernel.eval(script) end end end
module ASA_Event class<<self attr_accessor :commandes,:asacmd def scripts(*args) @liste||={} @liste['Noyau']={:date=>'14-02-09',:ver=>'0.1a',:auteur=>'ASA'} @liste[args[0]]={:date=>args[1],:ver=>args[2],:auteur=>args[3]}if !args.empty? return @liste end def ajout_commande(cmd,classe) @commandes||=[];@cmdexec||={};@asacmd||={} @commandes<<cmd @cmdexec[cmd]=classe return @commandes end def retire_commande(cmd) @commandes.delete(cmd) @cmdexec.delete(cmd) return @commandes end def trad(cmd,event) case cmd when "joueur";return $game_player when "event";return $game_map.events[event] when "tous";return $game_map.events.values when "true";return true when "false";return false when /[0-9]/;return eval(cmd).to_i when /\W/;return eval(cmd) when /\w\s/;return cmd else;return cmd end end def run(com,hash) @cmdexec[com].new(hash) end end end
class ASA def initialize p 'Noyau Manquant' if ASA_Event.nil? end def ok?(hash,cmd) return hash.include?(cmd) end def erreur_log(msg="") log=File.open("raport d'erreur ASA.txt","w+") log<<"Log d'erreur ASAEvent du #{Time.now}\n" ASA_Event.scripts.each{|s,c|log<<"\nscript: #{s}:\n" c.each{|k,v|log<<"\t\t#{k}: #{v}\n"}} log<<eval("'\n'+'-'*20+'\n'+msg") api=Win32API.new('kernel32','GetPrivateProfileString','pppplp','l') api.call("Game","Library","",dll="\0"*96,96,".//Game.ini") log<<'-'*20+"\nRgss Dll:\n\t\t#{dll.strip}" log<<"\n\nFichier à renvoyer aux auteurs, à http://www.rpgmakervx-fr.com" p "Un fichier d'erreur a été créé." log.close end end
class Hash def get(k) k=k.to_sym if k.is_a?(String) return self[k] if self.has_key?(k) return nil end end
|
et une classe lambda:
| Code: | class Exemple<ASA def initialize(hash) p @x=hash.get('x') end end ASA_Event.ajout_commande('test',Exemple) ASA_Event.scripts('test','14-02-09','0.1','berka')
|
edit: nouvelle version !_________________ Berka sur twitter, tavu ? Pensées politiques et juridiques. Réflexions informatiques.
.: Bonjour Invité, je ne fais pas de support de script par MP :.
|
|  | | | | Boîte à Outils pour event-makers | |
|
Sujets similaires |  |
|
| | Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
|
|