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 directement dans le jeu ! Empty coder en ruby directement dans le jeu !

le Lun 3 Nov 2008 - 22:32
Qui n'a jamais rêvé de modifier les scripts en jouant ?

je crois que c'est possible maintenant, via une sorte de console
coder en ruby directement dans le jeu ! Sans_t15


Echap pour fermer la console.
Entrée pour valider.
Rapport d'erreur

a coller au dessus de main:
Code:

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#                                                  Window_Irb
# par berka                                        v0.1                      Rgss2
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#===============================================================
#                         
#                www.rpgmakervx-fr.com                                         
#     
#===============================================================

class Window_Irb < Window_Base
  def initialize
    super(0,416+52,544,80)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity=150
    self.z=6000
    @script=""
    refresh
    update
  end
  def refresh
    self.contents.clear
    self.contents.draw_text(0,0, 544, 24, @script.to_s)
    self.contents.draw_text(0,0, 544, 24, @result.to_s) if !@result.nil?
  end
  def dispose
    while self.y<416+52
    self.y+=4
    Graphics.update
    end
    super
  end
  def update
    loop do
      self.y-=4 if self.y>416-52
      Graphics.update
      Keys.update
      refresh
      break if trigger?("esc")
      @script += " " if trigger?("space")
      if repeat?("del")
        text = ""
        (for i in 0...@script.size-1 do text+=@script[i].chr end) if @script.size != 0
        @script = text
      end   
      if press?("lmaj") || press?("rmaj") || active?("caps lock")
        @script+= "A" if trigger?("a")
        @script+= "B" if trigger?("b")
        @script+= "C" if trigger?("c")
        @script+= "D" if trigger?("d")
        @script+= "E" if trigger?("e")
        @script+= "F" if trigger?("f")
        @script+= "G" if trigger?("g")
        @script+= "H" if trigger?("h")
        @script+= "I" if trigger?("i")
        @script+= "J" if trigger?("j")
        @script+= "K" if trigger?("k")
        @script+= "L" if trigger?("l")
        @script+= "M" if trigger?("m")
        @script+= "N" if trigger?("n")
        @script+= "O" if trigger?("o")
        @script+= "P" if trigger?("p")
        @script+= "Q" if trigger?("q")
        @script+= "R" if trigger?("r")
        @script+= "S" if trigger?("s")
        @script+= "T" if trigger?("t")     
        @script+= "U" if trigger?("u")
        @script+= "V" if trigger?("v")
        @script+= "W" if trigger?("w")
        @script+= "X" if trigger?("x")
        @script+= "Y" if trigger?("y")
        @script+= "Z" if trigger?("z")
       
        @script+= "0" if trigger?("à")
        @script+= "1" if trigger?("&")
        @script+= "2" if trigger?("é")
        @script+= "3" if trigger?('"')
        @script+= "4" if trigger?("'")
        @script+= "5" if trigger?("(")
        @script+= "6" if trigger?("-")
        @script+= "7" if trigger?("è")
        @script+= "8" if trigger?("_")
        @script+= "9" if trigger?("ç")
        @script+= "°" if trigger?(")")
        @script+= "+" if trigger?("=")
        @script+= "¨" if trigger?("^")
        @script+= "£" if trigger?("$")
        @script+= "%" if trigger?("ù")
        @script+= "µ" if trigger?("*")
        @script+= ">" if trigger?("<")
        @script+= "?" if trigger?(",")
        @script+= "." if trigger?(";")
        @script+= "/" if trigger?(":")
        @script+= "§" if trigger?("!")
       
      elsif press?("lalt") || press?("ralt")
        @script+= "@" if trigger?("à")
        @script+= "~" if trigger?("é")
        @script+= '#' if trigger?('"')
        @script+= "{" if trigger?("'")
        @script+= "[" if trigger?("(")
        @script+= "|" if trigger?("-")
        @script+= "`" if trigger?("è")
        @script+= "\\" if trigger?("_")
        @script+= "^" if trigger?("ç")
        @script+= "]" if trigger?(")")
        @script+= "}" if trigger?("=")

      else
        @script+= "a" if trigger?("a")
        @script+= "b" if trigger?("b")
        @script+= "c" if trigger?("c")
        @script+= "d" if trigger?("d")
        @script+= "e" if trigger?("e")
        @script+= "f" if trigger?("f")
        @script+= "g" if trigger?("g")
        @script+= "h" if trigger?("h")
        @script+= "i" if trigger?("i")
        @script+= "j" if trigger?("j")
        @script+= "k" if trigger?("k")
        @script+= "l" if trigger?("l")
        @script+= "m" if trigger?("m")
        @script+= "n" if trigger?("n")
        @script+= "o" if trigger?("o")
        @script+= "p" if trigger?("p")
        @script+= "q" if trigger?("q")
        @script+= "r" if trigger?("r")
        @script+= "s" if trigger?("s")
        @script+= "t" if trigger?("t")
        @script+= "u" if trigger?("u")
        @script+= "v" if trigger?("v")
        @script+= "w" if trigger?("w")
        @script+= "x" if trigger?("x")
        @script+= "y" if trigger?("y")
        @script+= "z" if trigger?("z")
        @script+= "à" if trigger?("à")
        @script+= "&" if trigger?("&")
        @script+= "é" if trigger?("é")
        @script+= '"' if trigger?('"')
        @script+= "'" if trigger?("'")
        @script+= "(" if trigger?("(")
        @script+= "-" if trigger?("-")
        @script+= "è" if trigger?("è")
        @script+= "_" if trigger?("_")
        @script+= "ç" if trigger?("ç")
        @script+= ")" if trigger?(")")
        @script+= "=" if trigger?("=")
        @script+= "^" if trigger?("^")
        @script+= "$" if trigger?("$")
        @script+= "ù" if trigger?("ù")
        @script+= "*" if trigger?("*")
        @script+= "<" if trigger?("<")
        @script+= "," if trigger?(",")
        @script+= ";" if trigger?(";")
        @script+= ":" if trigger?(":")
        @script+= "!" if trigger?("!")
       
      end
      @script+= "0" if trigger?("0")
      @script+= "1" if trigger?("1")
      @script+= "2" if trigger?("2")
      @script+= "3" if trigger?("3")
      @script+= "4" if trigger?("4")
      @script+= "5" if trigger?("5")
      @script+= "6" if trigger?("6")
      @script+= "7" if trigger?("7")
      @script+= "8" if trigger?("8")
      @script+= "9" if trigger?("9")
      @script+= "+" if trigger?("+")
      @script+= "-" if trigger?("n-")
      @script+= "/" if trigger?("/")
      @script+= "*" if trigger?("n*")
      @script+= "." if trigger?(".")
     
      execution if trigger?("enter")
      refresh
    end
    dispose
  end
  def execution
    begin
      eval(@script)
    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 = @script.split(/\n/)
      msg += "Ligne de l'Erreur:\n\t#{lines[(line - 1)]}\n\n"
      msg += "Script exécuté:\n\t#{@script}"
      print(msg)
    end
    return true
  end
end

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#par lordrik et TLN

Key = Win32API.new("user32","GetAsyncKeyState",['i'],'i')
State = Win32API.new("user32","GetKeyState",['i'],'i')
GetPress = Win32API.new('user32', 'keybd_event', ['i', 'i', 'i'], ' ')
Alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
Chiffre = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
Commande = ["enter", "space", "esc", "shift", "ctrl", "alt"]
Fleche = ["left", "right", "up", "down"]
Fonction = ["F1", "F2", "F3", "F4",  "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12"]
Souris = ["click gauche", "click droit", "click milieu"]
def press?(n);R[n][0];end
def trigger?(n);R[n][1]==1;end
def dbtrigger(n);R[n][1]==2;end
def repeat?(n);R[n][2] %= 4;R[n][2].zero? && R[n][0];end
def hold(n);(R[n][2]%20).zero? && R[n][0];end
def release?(n);R[n][1]==-1;end
def active?(n);State.call(TAB_KEY[n]) & 1==1;end
def getpress(n)
  GetPress.call(TAB_KEY[n], 0, 0)
  GetPress.call(TAB_KEY[n], 0, 2)
end
class Keys
  def Keys.update(*tab)
    if tab != []
      tab.each do |n|
        m = R[n][0]
        pr = Key.call(TAB_KEY[n]) != 0
        tr = m == pr ? 0 : (pr ? (R[n][2].between?(1, 9) ? 2 : 1) : -1)
        count = tr > 0 ? 0 : [R[n][2]+1, 20].min
        R[n] = [pr, tr, count]
      end
    else
      TAB_KEY.keys.each do |n|
        m = R[n][0]
        pr = Key.call(TAB_KEY[n]) != 0
        tr = m == pr ? 0 : (pr ? (R[n][2].between?(1, 9) ? 2 : 1) : -1)
        count = tr > 0 ? 0 : [R[n][2]+1, 20].min
        R[n] = [pr, tr, count]
      end
    end
  end
end
TAB_KEY = {
"click gauche" => 1, "sg" => 1, "click droit" => 2, "sd" => 2, "click milieu" => 4, "sm" => 4, "del" => 8, "tab" => 9, "enter" => 13, "shift" => 16, "ctrl" => 17,
"alt" => 18, "pause" => 19, "caps lock" => 20, "esc" => 27, "space" => 32, "pg up" => 33, "pg down" => 34, "end" => 35, "home" => 36, "left" => 37, "up" => 38,
"right" => 39, "down" => 40, "impr" => 44, "insert" => 45, "suppr" => 46, "à" => 48, "&" => 49, "é" => 50, '"' => 51, "'" => 52, "(" => 53, "-" => 54, "è" => 55,
"_" => 56, "ç" => 57, "a" => 65, "b" => 66, "c" => 67, "d" => 68, "e" => 69, "f" => 70, "g" => 71, "h" => 72, "i" => 73, "j" => 74, "k" => 75, "l" => 76, "m" => 77,
"n" => 78, "o" => 79, "p" => 80, "q" => 81, "r" => 82, "s" => 83, "t" => 84, "u" => 85, "v" => 86, "w" => 87, "x" => 88, "y" => 89, "z" => 90, "lwin" => 91, "rwin" => 92,
"fn" => 93, "altgr" => 95, "0" => 96,"1" => 97, "2" => 98, "3" => 99, "4" => 100, "5" => 101, "6" => 102, "7" => 103, "8" => 104, "9" => 105, "n*" => 106, "+" => 107,
"num" => 108, "n-" => 109, "." => 110, "/" => 111, "F1" => 112, "F2" => 113, "F3" => 114, "F4" => 115, "F5" => 116, "F6" => 117, "F7" => 118, "F8" => 119,
"F9" => 120, "F10" => 121, "F11" => 122, "F12" => 123, "vernum" => 144, "verdefil" => 145, "lmaj" => 160, "rmaj" => 161, "lctrl" => 162, "rctrl" => 163,
"lalt" => 164, "ralt" => 165, "$" => 186, "=" => 187, "," => 188, ";" => 190, ":" => 191, "ù" => 192, ")" => 219, "*" => 220, "^" => 221, "²" => 222, "!" => 223, "<" => 226
}
R = TAB_KEY.clone
R.keys.each { |k| R[k] = [false, false, 10]}
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 directement dans le jeu ! Empty Re: coder en ruby directement dans le jeu !

le Lun 3 Nov 2008 - 23:04
Bon j'admets que c'est génial mais je ne vois pas trop l'utilité en fait ^^"
Coco'
Coco'
Staffeux retraité

Nombre de messages : 6577
Age : 26
Localisation : Nord/Douai
Distinction : EL DICTATOR COCO'
Coco-Dieu en puissance

coder en ruby directement dans le jeu ! Magikarpe Grand gourou suppléant de la secte des MAGIKARP
Leader charismatique des 2beStaffieux

N°1 du forum
Président, vice-présidents et membres honoraires de la cour suprême du forum
Président de l'association des grosses distinctions CMB
Date d'inscription : 02/07/2008
https://www.rpgmakervx-fr.com

coder en ruby directement dans le jeu ! Empty Re: coder en ruby directement dans le jeu !

le Lun 3 Nov 2008 - 23:39
C'est ça le truc que je t'ai fait venir en te parlant tout à l'heure?

C'est sympa Smile et ça peux être utile Smile
Elscorto
Elscorto
Membre

Nombre de messages : 486
Age : 34
Localisation : Dans sa tombe en ce moment
Distinction : Homme de goût en chef.
Date d'inscription : 10/07/2008

coder en ruby directement dans le jeu ! Empty Re: coder en ruby directement dans le jeu !

le Mar 4 Nov 2008 - 9:52
Sympa mais comme dit Aray,ça peut servir à quoi?
AnthO'
AnthO'
Membre

Nombre de messages : 2202
Age : 26
Localisation : Orléans
Distinction : Panda d'élite

[Wax Rolling Eyes]
Date d'inscription : 05/01/2008
http://anthonybourgouin.fr

coder en ruby directement dans le jeu ! Empty Re: coder en ruby directement dans le jeu !

le Mar 4 Nov 2008 - 9:58
Moi non plus, si ce n'est pour donner au joueur le choix d'actionner des Scripts et de les faire beuger
par la même occasion ^^'
Là je voie pas trop....
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 directement dans le jeu ! Empty Re: coder en ruby directement dans le jeu !

le Mar 4 Nov 2008 - 18:14
Aray ? c'est toi qui me demande a quoi ca sert ?

imagine, tu veux activer un interrupteur, modifier une variable, tester une methode, ouvrir une fenetre séparément d'une scene...
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum