AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez | 
 

 [VX] Coder en ruby en cours de jeu

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


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

MessageSujet: [VX] Coder en ruby en cours de jeu   Jeu 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...


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

_________________
.: Je code, donc je suis :.

Rpgruby


Dernière édition par berka le Lun 8 Déc 2008 - 19:41, édité 3 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgruby.olympe-network.com
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
avatar


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

MessageSujet: Re: [VX] Coder en ruby en cours de jeu   Ven 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 }

_________________
♦Supporter officiel de Flavii3n♦
Time On My Side
TrailerPrésentationTélécharger


Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ex-Admin-Script
Ex-Admin-Script
avatar


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

MessageSujet: Re: [VX] Coder en ruby en cours de jeu   Ven 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

_________________
Hikari.

«Si je comprenais mieux ce que tu ne comprends pas, ça m'aiderait à t'aider à mieux comprendre.», Hikari
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://mirainohikari.deviantart.com
Maire Lv.9
Maire Lv.9
avatar


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

MessageSujet: Re: [VX] Coder en ruby en cours de jeu   Ven 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

_________________
.: Je code, donc je suis :.

Rpgruby
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgruby.olympe-network.com
Ex-Admin-Script
Ex-Admin-Script
avatar


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

MessageSujet: Re: [VX] Coder en ruby en cours de jeu   Ven 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??

_________________
Hikari.

«Si je comprenais mieux ce que tu ne comprends pas, ça m'aiderait à t'aider à mieux comprendre.», Hikari
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://mirainohikari.deviantart.com
Maire Lv.9
Maire Lv.9
avatar


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

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

je sais pas trop... j'vais essayer de liberer la fenetre dans la fermeture du player

_________________
.: Je code, donc je suis :.

Rpgruby
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgruby.olympe-network.com
Flibustier Lv.21
Flibustier Lv.21
avatar


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

MessageSujet: Re: [VX] Coder en ruby en cours de jeu   Ven 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++)

_________________




Antre de mes scripts
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ex-Admin-Script
Ex-Admin-Script
avatar


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

MessageSujet: Re: [VX] Coder en ruby en cours de jeu   Ven 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.

_________________
Hikari.

«Si je comprenais mieux ce que tu ne comprends pas, ça m'aiderait à t'aider à mieux comprendre.», Hikari
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://mirainohikari.deviantart.com
Maire Lv.9
Maire Lv.9
avatar


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

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

voila, les principaux bugs sont corrigés !

_________________
.: Je code, donc je suis :.

Rpgruby
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgruby.olympe-network.com
Maire Lv.9
Maire Lv.9
avatar


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

MessageSujet: Re: [VX] Coder en ruby en cours de jeu   Lun 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

_________________
.: Je code, donc je suis :.

Rpgruby
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgruby.olympe-network.com
Ex-Admin-Script
Ex-Admin-Script
avatar


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

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

Merci berka. Ce gets sera apprécié de plusieurs. (principalement dans le cadre du cours).

_________________
Hikari.

«Si je comprenais mieux ce que tu ne comprends pas, ça m'aiderait à t'aider à mieux comprendre.», Hikari
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://mirainohikari.deviantart.com
Flibustier Lv.21
Flibustier Lv.21
avatar


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

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

QUOI ?!
Enfin une fonction gets !!!
Merci berka !
Je vais pouvoir faire des jeux super !
Merci beaucoup Coeur

_________________




Antre de mes scripts
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




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

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

-
» la vie c'comme les cours d'anglais, y'a trop d'faux amis.
» L'affichage de la carte disparaît en cours de navigation
» Suppression nom de domaine en cours...
» Coder une page d'accueil
» Affichage des membres connectés au cours des 24 dernieres heures

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 | Forum gratuit