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



-17%
Le deal à ne pas rater :
(Black Friday) Apple watch Apple SE GPS + Cellular 44mm (plusieurs ...
249 € 299 €
Voir le deal

Partagez
 

 [VX] Coder en ruby en cours de jeu

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] Coder en ruby en cours de jeu Empty
MessageSujet: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeJeu 4 Déc 2008 - 21:31

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...
[VX] Coder en ruby en cours de jeu 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 Lun 8 Déc 2008 - 19:41, édité 3 fois
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 33
Inscrit le : 27/06/2008
Messages : 10881

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeVen 5 Déc 2008 - 6:37

C'est la version 2 ?

Merci Berka ^^"

{ bien qu'en tant que maudit des scripts je ne m'en servirai jamais xD }
Revenir en haut Aller en bas
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeVen 5 Déc 2008 - 12:46

Oh quel domage que je ne sois pas sur mon ordi présentement! Je teste ça dès aujourd'hui... Berka? aurais-tu réussit à faire un inputbox sans m'avertir? Vilain Berka... Wink
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
berka
Maire Lv.9
Maire Lv.9
berka


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

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeVen 5 Déc 2008 - 14:39

désolé de te ne pas t'avoir prévenu...
oui, c'est une sorte de console...
le seul probleme c'est que je suis obligé de désactiver la maj input de rmvx pendant l'affichage de la popup
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeVen 5 Déc 2008 - 15:29

Je viens de tester. Tout simplement GÉNIAL!!!! Un grand merci.

edit: presque génial Wink j'ai eu quelques problèmes. Premièrement, ton script a capter une erreur et m'a afficher ton message d'erreur. Ok, jusque là ça va, mais par la suite, peu importe ce que j'écris, il n'exécute plus. Même F5 affiche la fenêtre, mais ne la masque pas. J'ai eu beau fermer et redémarrer VX, il ne veut plus rien savoir. T'as une idée de ce qui a pu se produire??
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
berka
Maire Lv.9
Maire Lv.9
berka


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

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeVen 5 Déc 2008 - 15:44

je sais pas trop... j'vais essayer de liberer la fenetre dans la fermeture du player
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] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeVen 5 Déc 2008 - 16:05

Est ce que on peut utiliser une sorte
Code:
scanf
Pour RPG VX ?
(scanf = Entrer de donnée dans une variable en C/C++)
Revenir en haut Aller en bas
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeVen 5 Déc 2008 - 16:25

En ruby, c'est gets. Comme de raison, gets n'est pas implémenter dans VX. Mais avec ce code, le gets risque de pouvoir être possible (enfin). À suivre.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
berka
Maire Lv.9
Maire Lv.9
berka


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

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeVen 5 Déc 2008 - 17:15

voila, les principaux bugs sont corrigés !
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
berka
Maire Lv.9
Maire Lv.9
berka


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

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeLun 8 Déc 2008 - 20:02

@miraino: pour activer gets:
Code:

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#                        Fonction gets Rgss2
#  par berka
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Getkeystate=Win32API.new("user32","GetAsyncKeyState",'i','i')
Getprivatestring=Win32API.new('kernel32','GetPrivateProfileString','pppplp','l')
Findwindow=Win32API.new('user32','FindWindow','pp','i')
Createwindow=Win32API.new("user32","CreateWindowEx",'lpplllllllll','l')
Destroywindow=Win32API.new('user32','DestroyWindow','p','l')
Getwindowtext=Win32API.new('user32','GetWindowText','npn','l')
Getwindowrect=Win32API.new('user32','GetWindowRect','lp','i')
Updatewindow=Win32API.new('user32','UpdateWindow','p','i')
Setwindowtext=Win32API.new('user32','SetWindowText','pp','i')
Showwindow=Win32API.new('user32','ShowWindow','ll','l')
def handle
  title="\0"*256
  Getprivatestring.call("Game","Title","",title,256,".//Game.ini")
  title.delete!("\0")
  return Findwindow.call("RGSS Player",title)
end
def gets
  (Destroywindow.call(@fen);@fen=nil;return) if !@fen.nil?
  @fen=Createwindow.call((0x00000100|0x00000200),'edit','',(
  (0x4000000|0x80000000|0)|0x02000000),dim[0],dim[3],dim[2]-dim[0],24,handle,0,0,0)
  Showwindow.call(@fen,1)
  res=" "*0x100
  loop{Graphics.update;Updatewindow.call(@fen)
  break if Getkeystate.call(0x0D)&0x01==1
  return if Getkeystate.call(0x74)&0x01==1}
  Getwindowtext.call(@fen,res,0x100)
  Destroywindow.call(@fen);@fen=nil
  return res.delete!("\0").gsub!("  "){""}
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

et voila:
Code:
print gets
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeMer 14 Jan 2009 - 19:33

Merci berka. Ce gets sera apprécié de plusieurs. (principalement dans le cadre du cours).
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


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

[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitimeMer 14 Jan 2009 - 19:35

QUOI ?!
Enfin une fonction gets !!!
Merci berka !
Je vais pouvoir faire des jeux super !
Merci beaucoup Coeur
Revenir en haut Aller en bas
Contenu sponsorisé




[VX] Coder en ruby en cours de jeu Empty
MessageSujet: Re: [VX] Coder en ruby en cours de jeu   [VX] Coder en ruby en cours de jeu Icon_minitime

Revenir en haut Aller en bas
 

[VX] Coder en ruby en cours de jeu

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

 Sujets similaires

-
» Coder en Ruby de manière nette.
» [Résolu](Ruby) Utiliser des fonctions compilées dans le code ruby
» Ruby [non resolu]
» un peu de métaprogrammation avec Ruby
» RGSS2 / Ruby

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