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




Partagez
 

 [VX] Debug avec valeur STRING (avec puts et gets)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


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

[VX] Debug avec valeur STRING (avec puts et gets) Empty
MessageSujet: [VX] Debug avec valeur STRING (avec puts et gets)   [VX] Debug avec valeur STRING (avec puts et gets) Icon_minitimeMar 22 Déc 2009 - 14:15

Ok. Je me demande pourquoi ça n'a pas été publier, c'est un vieux script qui fonctionne bien. Pour les développeur et les scripteurs, c'est définitivement un MUST à avoir.

Ce script permet aux développeurs une version amélioré du débug ainsi que deux fonctions ruby supplémentaires : puts et gets.

Auteurs :
puts : MirainoHikari (mais franchement, ce n'est pas digne de mention)
gets : Berka (vraiment, félicitation pour celle là) (légèrement édité par Hikari (léger bug))
Debug : La Meche et MirainoHikari (collaboration)

Comme je crois que Puts et Gets ont seulement été publier pour le cours de script, je republie ici puisque gets est nécessaire pour le bon fonctionnement.

Donc voici le script pour puts et gets. Ce script DOIT ÊTRE LE PREMIER DE LA LISTE (j'espère que c'est assez clair comme ça). En effet, ce script doit être le premier en haut de la liste de TOUS les scripts. Je vous suggère de vous créer une section «▼ Interface» avant la section «▼ Modules» puis d'y insérer le script «Puts & Gets». Voici ce script.

Code:
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#                        Fonction puts Rgss2
#  par mirainohikari
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def self.puts(val)
  print "#{val}\n"
end

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#                        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").strip
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

Pour ceux qui ont pris les cours de ruby, cela vous ajoute simplement la fonction puts (à utiliser comme print) et gets (nom_var = gets). Si vous n'êtes pas scripteur, l'utilisation de ce script n'a pas à être connu. Cependant, vous en avez besoin pour faire fonctionner le script principal.

Maintenant, pour les développeurs de jeu. On sait tous à quel point les variables de contrôles sont limitantes avec leurs entiers. Bien qu'il soit possible de mettre autre chose dans les variables, lorsqu'on entre en mode Debug, le jeu plante lorsqu'on essaye d'éditer les valeur... Ce temps est révolu. La Meche et moi avons concocter un petit script lorsque ce cher La Meche suivait son cours. Il s'agissait d'un exercice qui a plutôt bien tourné. Je n'ai corrigé que la partie des entiers qui n'étaient plus gérés. Maintenant, grâce à nos efforts combinés, lorsque vous modifié une variable, une petite fenêtre blanche apparaîtra sous la fenêtre de jeu. Entrez simplement la valeur puis appuyez sur ENTER. S'il s'agit d'un entier, il sera mis sous l'ancien format, s'il s'agit d'une chaîne, il sera enregistrer comme tel. Ainsi, plus de jeu qui plante sans raison. Notez que les flottants sont considéré comme string mais qu'une simple conversion dans votre jeu permet de les récupérer au format voulu.

Ce script s'insère normalement DANS LA SECTION MATERIAL AU DESSUS DU MAIN


Code:
#==============================================================================
# ** Scene_Debug
#------------------------------------------------------------------------------
#  This class performs debug screen processing.
#==============================================================================

class Scene_Debug < Scene_Base
  #--------------------------------------------------------------------------
  # * Update Left Window Input
  #--------------------------------------------------------------------------
  def update_left_input
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
      return
    elsif Input.trigger?(Input::C)
      Sound.play_decision
      wlh = 24
      if @left_window.mode == 0
        text1 = "C (Enter) : ON / OFF"
        @help_window.contents.draw_text(4, 0, 336, wlh, text1)
      else
        text1 = "C (Enter) : Gets Value"
        text2 = "Enter your value"
        text3 = "Press Enter"
        text4 = "Can be String or Integer"
        @help_window.contents.draw_text(4, wlh * 0, 336, wlh, text1)
        @help_window.contents.draw_text(4, wlh * 1, 336, wlh, text2)
        @help_window.contents.draw_text(4, wlh * 2, 336, wlh, text3)
        @help_window.contents.draw_text(4, wlh * 3, 336, wlh, text4)
      end
      @left_window.active = false
      @right_window.active = true
      @right_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # * Update Right Window Input
  #--------------------------------------------------------------------------
  def update_right_input
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @left_window.active = true
      @right_window.active = false
      @right_window.index = -1
      @help_window.contents.clear
    else
      current_id = @right_window.top_id + @right_window.index
      if @right_window.mode == 0
        if Input.trigger?(Input::C)
          Sound.play_decision
          $game_switches[current_id] = (not $game_switches[current_id])
          @right_window.refresh
        end
      elsif @right_window.mode == 1
       
          if Input.trigger?(Input::C)
            tmp = gets
            $game_variables[current_id] = ((tmp.to_i).to_s != tmp.to_s) ? tmp.to_s : tmp.to_i
            @right_window.draw_item(@right_window.index)
          end
      end
    end
  end
end

Et voici en image le résultat

[VX] Debug avec valeur STRING (avec puts et gets) Neodeb10


Dernière édition par MirainoHikari le Mer 23 Déc 2009 - 14:38, édité 1 fois
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] Debug avec valeur STRING (avec puts et gets) Empty
MessageSujet: Re: [VX] Debug avec valeur STRING (avec puts et gets)   [VX] Debug avec valeur STRING (avec puts et gets) Icon_minitimeMar 22 Déc 2009 - 20:12

Ouais notre script !
J'espère qu'il va être utile pour certaine personne...
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] Debug avec valeur STRING (avec puts et gets) Empty
MessageSujet: Re: [VX] Debug avec valeur STRING (avec puts et gets)   [VX] Debug avec valeur STRING (avec puts et gets) Icon_minitimeMer 23 Déc 2009 - 14:39

Je viens de corriger un petit bug qu'il y avait dans le gets. Désolé du désagrément.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
arthur420
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
arthur420


Masculin Age : 27
Avertissements : 1
Inscrit le : 03/01/2011
Messages : 55

[VX] Debug avec valeur STRING (avec puts et gets) Empty
MessageSujet: Re: [VX] Debug avec valeur STRING (avec puts et gets)   [VX] Debug avec valeur STRING (avec puts et gets) Icon_minitimeSam 29 Jan 2011 - 14:07

On doit appuyé sur quelle touche pour le faire marcher ?
Revenir en haut Aller en bas
Contenu sponsorisé




[VX] Debug avec valeur STRING (avec puts et gets) Empty
MessageSujet: Re: [VX] Debug avec valeur STRING (avec puts et gets)   [VX] Debug avec valeur STRING (avec puts et gets) Icon_minitime

Revenir en haut Aller en bas
 

[VX] Debug avec valeur STRING (avec puts et gets)

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

 Sujets similaires

-
» Problème de menus Debug/Sauvegarde.
» Astuces : Utiliser puts et print sous VX
» [RESOLU]Erreur : Script "Cache" ligne 75 : TypeErrorOccured canot convert nil into string
» Valeur ratachée aux dommages
» Valeur Maximale Variables [resolu]

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