Partagez
Aller en bas
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

coder en ruby en cours de jeu V2 Empty coder en ruby en cours de jeu V2

le Jeu 4 Déc 2008 - 22:24
pas mal de recherches...

et voici le résultat

Permet de coder en ruby en cours de jeu... via une popup windows... ce qui laisse présager plein d'autres possibilités !
extraction et réédition des messages... affichage de commandes d'events en cours...
coder en ruby en cours de jeu V2 Coder_10

touche F5 pour masquer/afficher la popup

a placer au dessus de main:
Code:
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#         Editeur Ruby pour RMVX v.2.2
#  berka                       http://www.rpgmakervx-fr.com
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# touche F5 pour afficher ou masquer la console
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Getkeystate=Win32API.new("user32","GetAsyncKeyState",'i','i')
class Editeur
  def initialize
   @text=[]
   @getprivatestring=Win32API.new('kernel32','GetPrivateProfileString','pppplp','l')
   @findwindow=Win32API.new('user32','FindWindow',%w(p p),'i')
   @createwindow=Win32API.new("user32","CreateWindowEx",'lpplllllllll','l')
   @showwindow=Win32API.new('user32','ShowWindow',%w(l l),'l')
   @destroywindow=Win32API.new('user32','DestroyWindow','p','l')
   @iswindow=Win32API.new('user32','IsWindow','p','l')
   @getwindowtext=Win32API.new('user32','GetWindowText',%w(n p n ),'l')
   @dim_ecran=Win32API.new('user32','GetSystemMetrics','i','i')
   @getwindowrect=Win32API.new('user32','GetWindowRect',%w(l p),'i')
   @updatewindow=Win32API.new('user32','UpdateWindow','p','i')
   @setwindowtext=Win32API.new('user32','SetWindowText',%w(p p),'i')
  end
  def handle
   title="\0"*256
   @getprivatestring.call("Game","Title","",title,256,".//Game.ini")
   title.delete!("\0")
   return @findwindow.call("RGSS Player",title)
  end
  def start
   (fermer_fen;return) if !@fen.nil?
   fenetre
   loop do
     Graphics.update
     update
     break if Getkeystate.call(0x0D)&0x01==1
     return if Getkeystate.call(0x74)&0x01==1
   end
   if !@fen.nil?
     eval(recup_text) rescue (
     Exception
     msg="Type d'Erreur:\n\t#{$!.class}\n\n"
     line=$!.message[7,1].to_i
     msg+="Numéro de ligne de l'Erreur:\n\t#{line}\n\n"
     lines=recup_text.split(/\n/)
     msg+="Ligne de l'Erreur:\n\t#{lines[(line-1)]}\n\n"
     msg+="Script exécuté:\n\t#{recup_text}"
     print(msg))
   end
   fermer_fen
  end
  def fenetre(t="",x=dim[0],y=dim[3],w=dim[2]-x,h=24)
   @fen=@createwindow.call((0x00000100|0x00000200),"edit",t,(
   (0x4000000|0x80000000|0)|0x02000000),x,y,w,h,handle,0,0,0)
   aff_fen
  end
  def aff_fen(bool=true);bool ? @showwindow.call(@fen,1) : @showwindow.call(@fen,0);end 
  def dims_ecran;return @dim_ecran.call(0),@dim_ecran.call(1);end
  def update;@updatewindow.call(@fen);end
  def fermer_fen;@destroywindow.call(@fen);@fen=nil;end
  def ajouter_text;@setwindowtext.call(@fen,@text.to_s);end
  def fenetre?
   (return false) if @fen.nil?
   @iswindow.call(@fen)==0 ? (return false):(return true)
  end
  def recup_text
   res=" "*255
   @getwindowtext.call(@fen,res,0x3e80) rescue nil
   return res
  end
  def dim
   rect=[0,0,0,0].pack('l4')
   @getwindowrect.call(handle,rect)
   x,y,w,h=rect.unpack('l4')
   return x,y,w,h
  end
end
$editeur=Editeur.new
module Input
  class << self
    if @update_aliased.nil?
      alias :update_alias :update
      def update
        $editeur.start if Getkeystate.call(0x74)&0x01==1
        update_alias if !$editeur.fenetre? rescue update_alias
      end
      @update_aliased = true
    end
  end
end


Dernière édition par berka le Dim 7 Déc 2008 - 14:24, édité 6 fois
Arayashiki
Arayashiki
Membre

Nombre de messages : 655
Age : 29
Localisation : Trois lettres me demangent. Oserai-je ?
Distinction : FUCKING nouveau dieu du mal. Gros connard en chef.
Date d'inscription : 18/08/2008

coder en ruby en cours de jeu V2 Empty Re: coder en ruby en cours de jeu V2

le Jeu 4 Déc 2008 - 22:31
Et aussi crée une console à la baldur gate tu vois ce que je veux dire ?
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

coder en ruby en cours de jeu V2 Empty Re: coder en ruby en cours de jeu V2

le Jeu 4 Déc 2008 - 22:44
oui... parfaitement possible

je remanie un peu le script et c'est bon !
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

coder en ruby en cours de jeu V2 Empty Re: coder en ruby en cours de jeu V2

le Sam 6 Déc 2008 - 15:07
Nouvelle version
alias de la methode update de Input: plus de stabilité
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

coder en ruby en cours de jeu V2 Empty Re: coder en ruby en cours de jeu V2

le Dim 7 Déc 2008 - 14:16
bug suite a l'appui de F12 réglé... merci à krosk !
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum