AccueilFAQRechercherS’enregistrerConnexion
 

[Script] Ecrire le nom du héro au clavier

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
KeyLad
Inquisiteur
Inquisiteur


Sexe:Masculin
Age : 16
Inscrit le : 03 Oct 2007
Messages : 364
Localisation : France, Isère
Emploi/loisirs : Guitare, skate, ma copine
Projet en Cours : Projet 1

MessageSujet: [Script] Ecrire le nom du héro au clavier   Mer 3 Oct - 13:04

Nom du script : Gestion du clavier pour le nom du héro.
Utilité(s) : Sert à écrire le nom du héro avec les touches du clavier.


Créez un script au dessus de main, et appellez-le comme bon vous semble :

Code:
#Gestion de toutes les touches du clavier.
#Script otpimisé par Sunmat
#Script modifié par Phacog : rajout de touche et fonction keystate

$Key_BACK = 0x08 # BACKSPACE key
$Key_TAB = 0x09 # TAB key
$Key_RETURN = 0x0D # ENTER key
$Key_SHIFT = 0x10 # SHIFT key
$Key_PAUSE = 0x13 # PAUSE key
$Key_CAPITAL = 0x14 # CAPS LOCK key
$Key_ESCAPE = 0x1B # ESC key
$Key_SPACE = 0x20 # SPACEBAR
$Key_PRIOR = 0x21 # PAGE UP key
$Key_NEXT = 0x22 # PAGE DOWN key
$Key_END = 0x23 # END key
$Key_HOME = 0x24 # HOME key
$Key_LEFT = 0x25 # LEFT ARROW key
$Key_UP = 0x26 # UP ARROW key
$Key_RIGHT = 0x27 # RIGHT ARROW key
$Key_DOWN = 0x28 # DOWN ARROW key
$Key_SELECT = 0x29 # SELECT key
$Key_PRINT = 0x2A # PRINT key
$Key_SNAPSHOT = 0x2C # PRINT SCREEN key
$Key_INSERT = 0x2D # INS key
$Key_DELETE = 0x2E # DEL key

$Key_0 = 0x30 # 0 key
$Key_1 = 0x31 # 1 key
$Key_2 = 0x32 # 2 key
$Key_3 = 0x33 # 3 key
$Key_4 = 0x34 # 4 key
$Key_5 = 0x35 # 5 key
$Key_6 = 0x36 # 6 key
$Key_7 = 0x37 # 7 key
$Key_8 = 0x38 # 8 key
$Key_9 = 0x39 # 9 key

$Key_A = 0x41 # A key
$Key_B = 0x42 # B key
$Key_C = 0x43 # C key
$Key_D = 0x44 # D key
$Key_E = 0x45 # E key
$Key_F = 0x46 # F key
$Key_G = 0x47 # G key
$Key_H = 0x48 # H key
$Key_I = 0x49 # I key
$Key_J = 0x4A # J key
$Key_K = 0x4B # K key
$Key_L = 0x4C # L key
$Key_M = 0x4D # M key
$Key_N = 0x4E # N key
$Key_O = 0x4F # O key
$Key_P = 0x50 # P key
$Key_Q = 0x51 # Q key
$Key_R = 0x52 # R key
$Key_S = 0x53 # S key
$Key_T = 0x54 # T key
$Key_U = 0x55 # U key
$Key_V = 0x56 # V key
$Key_W = 0x57 # W key
$Key_X = 0x58 # X key
$Key_Y = 0x59 # Y key
$Key_Z = 0x5A # Z key
$Key_LWIN = 0x5B # Left Windows key (Microsoft Natural keyboard)
$Key_RWIN = 0x5C # Right Windows key (Natural keyboard)
$Key_APPS = 0x5D # Applications key (Natural keyboard)

$Key_NUMPAD0 = 0x60 # Numeric keypad 0 key
$Key_NUMPAD1 = 0x61 # Numeric keypad 1 key
$Key_NUMPAD2 = 0x62 # Numeric keypad 2 key
$Key_NUMPAD3 = 0x63 # Numeric keypad 3 key
$Key_NUMPAD4 = 0x64 # Numeric keypad 4 key
$Key_NUMPAD5 = 0x65 # Numeric keypad 5 key
$Key_NUMPAD6 = 0x66 # Numeric keypad 6 key
$Key_NUMPAD7 = 0x67 # Numeric keypad 7 key
$Key_NUMPAD8 = 0x68 # Numeric keypad 8 key
$Key_NUMPAD9 = 0x69 # Numeric keypad 9 key
$Key_MULTIPLY = 0x6A # Multiply key (*)
$Key_ADD = 0x6B # Add key (+)
$Key_SEPARATOR = 0x6C # Separator key
$Key_SUBTRACT = 0x6D # Subtract key (-)
$Key_DECIMAL = 0x6E # Decimal key
$Key_DIVIDE = 0x6F # Divide key (/)

$Key_F1 = 0x70 # F1 key
$Key_F2 = 0x71 # F2 key
$Key_F3 = 0x72 # F3 key
$Key_F4 = 0x73 # F4 key
$Key_F5 = 0x74 # F5 key
$Key_F6 = 0x75 # F6 key
$Key_F7 = 0x76 # F7 key
$Key_F8 = 0x77 # F8 key
$Key_F9 = 0x78 # F9 key
$Key_F10 = 0x79 # F10 key
$Key_F11 = 0x7A # F11 key
$Key_F12 = 0x7B # F12 key

$Key_NUMLOCK = 0x90 # NUM LOCK key
$Key_SCROLL = 0x91 # SCROLL LOCK key
$Key_LSHIFT = 0xA0 # Left SHIFT key
$Key_RSHIFT = 0xA1 # Right SHIFT key
$Key_LCONTROL = 0xA2 # Left CONTROL key
$Key_RCONTROL = 0xA3 # Right CONTROL key
$Key_L_ALT = 0xA4 # Left ALT key
$Key_R_ALT = 0xA5 # Right ALT key
$Key_DOLLARD = 0xBA # $ key
$Key_EGUAL = 0xBB # = key
$Key_SEP = 0xBC # , key
$Key_DASH = 0xBD # - key
$Key_DOTT = 0xBE # . key
$Key_DDOTT = 0xBF # : key
$Key_DEG = 0xDB # ) or ° key
$Key_DOTTS = 0xDF # ! key
$Key_POURCENT = 0xC0 # ù or % key
$Key_STAR = 0xDC # * or µ key
$Key_DOLLARD = 0xBA # $ key
$Key_GREAT = 0xE2 # < or > key
$Key_UNDER = 0xDD
$Key_SQUARD = 0xDE # ² key

GetKeyState = Win32API.new("user32","GetAsyncKeyState",['i'],'i')
GetKeyboardState = Win32API.new("user32","GetKeyState",['i'],'i')
GetSetKeyState = Win32API.new("user32","SetKeyboardState",['i'],'i')

def keystate(rkey)
  return true unless GetKeyboardState.call(rkey).between?(0,1)
  return false
end

def keyboard(rkey)
GetKeyState.call(rkey) & 0x01 == 1 #
end

def key(rkey, key = 0)
GetKeyboardState.call(rkey) & 0x01 == key #
end


Créez un autre script au dessus de main et appelez-le comme vous l' entandez, collez-y ceci :

Code:
#fonction text_input
#creé par Phacog le 20/02/07
#renvoie le caratère correspondant à la touche préssé
#gere les majuscule, les accents, les caractère accessible avec la touche [Alt Gr]

def text_input
  @under = "" unless @under != nil
  @char = ""
 
  if keyboard($Key_A)
    if @under == "¨"
      @char = "ä"
      @under = ""
    elsif @under == "^"
      @char = "â"
      @under = ""
    elsif @under =="~"
      @char = "ã"
      @under = ""
    elsif @under == "`"
      @char = "à"
      @under = ""
    else
      @char = "a"
    end
  elsif keyboard($Key_B)
    @char = "b"
  elsif  keyboard($Key_C)
    @char = "c"
  elsif keyboard($Key_D)
    @char = "d"
  elsif keyboard($Key_E)
    if keystate($Key_L_ALT) or keystate($Key_R_ALT)
      @char = "€"
    elsif @under == "¨"
      @char = "ë"
      @under = ""
    elsif @under == "^"
      @char = "ê"
      @under = ""
    elsif @under =="`"
      @char = "è"
      @under =""
    else
      @char = "e"
    end
  elsif keyboard($Key_F)
    @char = "f"
  elsif keyboard($Key_G)
    @char = "g"
  elsif keyboard($Key_H)
    @char = "h"
  elsif keyboard($Key_I)
    if @under == "¨"
      @char = "ï"
      @under = ""
    elsif @under == "^"
      @char = "î"
      @under = ""
    elsif @under == "`"
      @char = "ì"
      @under = ""
    else
      @char = "i"
    end
  elsif keyboard($Key_J)
    @char = "j"
  elsif keyboard($Key_K)
    @char = "k"
  elsif keyboard($Key_L)
    @char = "l"
  elsif keyboard($Key_M)
    @char = "m"
  elsif keyboard($Key_N)
    if @under == "~"
      @char = "ñ"
      @under = ""
    else
      @char = "n"
    end
  elsif keyboard($Key_O)
    if @under == "¨"
      @char = "ö"
      @under = ""
    elsif @under == "^"
      @char = "ô"
      @under = ""
    elsif @under == "~"
      @char = "õ"
      @under = ""
    elsif  @under == "`"
      @char = "ò"
      @under = ""
    else
      @char = "o"
    end
  elsif keyboard($Key_P)
    @char = "p"
  elsif keyboard($Key_Q)
    @char = "q"
  elsif keyboard($Key_R)
    @char = "r"
  elsif keyboard($Key_S)
    @char = "s"
  elsif keyboard($Key_T)
    @char = "t"
  elsif keyboard($Key_U)
    if @under == "¨"
      @char = "ü"
      @under = ""
    elsif @under == "^"
      @char = "û"
      @under = ""
    elsif @under == "`"
      @char = "ù"
      @under = ""
    else
      @char = "u"
    end
  elsif keyboard($Key_V)
    @char = "v"
  elsif keyboard($Key_W)
    @char = "w"
  elsif keyboard($Key_X)
    @char = "x"
  elsif keyboard($Key_Y)
    @char = "y"
  elsif keyboard($Key_Z)
    @char = "z"
  end
     
  if keystate($Key_SHIFT) or key($Key_CAPITAL,1)
    @char = @char.upcase
  end
 
  if keystate($Key_SHIFT) or key($Key_CAPITAL,1)
    if keyboard($Key_0)
      @char = "0"
    elsif keyboard($Key_1)
      @char = "1"
    elsif keyboard($Key_2)
      @char = "2"
    elsif keyboard($Key_3)
      @char = "3"
    elsif keyboard($Key_4)
      @char = "4"
    elsif keyboard($Key_5)
      @char = "5"
    elsif keyboard($Key_6)
      @char = "6"
    elsif keyboard($Key_7)
      @char = "7"
    elsif keyboard($Key_8)
      @char = "8"
    elsif keyboard($Key_9)
      @char = "9"
    elsif keyboard($Key_DEG)
      @char = "°"
    elsif keyboard($Key_EGUAL)
      @char = "+"
    elsif keyboard($Key_SEP)
      @char = "?"
    elsif keyboard($Key_DOTT)
      @char = "."
    elsif keyboard($Key_DDOTT)
      @char = "/"
    elsif keyboard($Key_DOTTS)
      @char = "§"
    elsif keyboard($Key_POURCENT)
      @char = "%"
    elsif keyboard($Key_STAR)
      @char = "µ"
    elsif keyboard($Key_DOLLARD)
      @char = "£"
    elsif keyboard($Key_GREAT)
      @char = ">"
    elsif keyboard($Key_UNDER)
      @under = "¨"
    end
  elsif keystate($Key_L_ALT) or keystate($Key_R_ALT)
    if keyboard($Key_2)
      @under = "~"
    elsif keyboard($Key_3)
      @char = "#"
    elsif keyboard($Key_4)
      @char = "{"
    elsif keyboard($Key_5)
      @char = "["
    elsif keyboard($Key_6)
      @char = "|"
    elsif keyboard($Key_7)
      @under = "`"
    elsif keyboard($Key_8)
      @char = "\\"
    elsif keyboard($Key_9)
      @char = "^"
    elsif keyboard($Key_0)
      @char = "@"
    elsif keyboard($Key_DEG)
      @char = "]"
    elsif keyboard($Key_EGUAL)
      @char = "}"
    elsif keyboard($Key_DOLLARD)
      @char = "¤"
    end   
  else
    if keyboard($Key_0)
      @char = "à"
    elsif keyboard($Key_1)
      @char = "&"
    elsif keyboard($Key_2)
      @char = "é"
    elsif keyboard($Key_3)
      @char = "\""
    elsif keyboard($Key_4)
      @char = "'"
    elsif keyboard($Key_5)
      @char = "("
    elsif keyboard($Key_6)
      @char = "-"
    elsif keyboard($Key_7)
      @char = "è"
    elsif keyboard($Key_8)
      @char = "_"
    elsif keyboard($Key_9)
      @char = "ç"
    elsif keyboard($Key_DEG)
      @char = ")"
    elsif keyboard($Key_EGUAL)
      @char = "="
    elsif keyboard($Key_SEP)
      @char = ","
    elsif keyboard($Key_DOTT)
      @char = ";"
    elsif keyboard($Key_DDOTT)
      @char = ":"
    elsif keyboard($Key_DOTTS)
      @char = "!"
    elsif keyboard($Key_POURCENT)
      @char = "ù"
    elsif keyboard($Key_STAR)
      @char = "*"
    elsif keyboard($Key_DOLLARD)
      @char = "$"
    elsif keyboard($Key_GREAT)
      @char = "<"
    elsif keyboard($Key_UNDER)
      @under = "^"
    elsif keyboard($Key_SQUARD)
      @char = "²"
    end       
  end
 
  if keyboard($Key_NUMPAD0)
    @char = "0"
  elsif keyboard($Key_NUMPAD1)
    @char = "1"
  elsif keyboard($Key_NUMPAD2)
    @char = "2"
  elsif keyboard($Key_NUMPAD3)
    @char = "3"
  elsif keyboard($Key_NUMPAD4)
    @char = "4"
  elsif keyboard($Key_NUMPAD5)
    @char = "5"
  elsif keyboard($Key_NUMPAD6)
    @char = "6"
  elsif keyboard($Key_NUMPAD7)
    @char = "7"
  elsif keyboard($Key_NUMPAD8)
    @char = "8"
  elsif keyboard($Key_NUMPAD9)
    @char = "9"
  elsif keyboard($Key_MULTIPLY)
    @char = "*"
  elsif keyboard($Key_ADD)
    @char = "+"
  elsif keyboard($Key_SUBTRACT)
    @char = "-"
  elsif keyboard($Key_DIVIDE)
    @char = "/"
  elsif keyboard($Key_DECIMAL)
    @char = "."
  end
 
  if keyboard($Key_SPACE)
    @char = " "
  end
 
  if @char != ""
    @char = @under + @char
    @under = ""
  end
 
  return @char
end

_________________
- Lisez les règles
- Faite de la pub


Dernière édition par le Mer 3 Oct - 13:07, édité 1 fois
Revenir en haut Aller en bas
KeyLad
Inquisiteur
Inquisiteur


Sexe:Masculin
Age : 16
Inscrit le : 03 Oct 2007
Messages : 364
Localisation : France, Isère
Emploi/loisirs : Guitare, skate, ma copine
Projet en Cours : Projet 1

MessageSujet: Re: [Script] Ecrire le nom du héro au clavier   Mer 3 Oct - 13:06

Créer encore une fois un autre script au dessus de main (c'est le dernier) :

Code:


################################################################
#                              Entrer le noms du héros au clavier
#                              Script fait par phacog le 20/02/07
#
#Utilisation : On appele ce script grâce à la commande "Inserer un script", en mettant le code :
#
#                  $scene = Entrer_Nom.new(id, max)
#
#    id correspond au numéro du héro
#        0 correspond au héros n°1
#        1 correspond au héros n°2
#          etc...
#
#    max correspond au nombre maximum de caractères
#    mettre 0 si on ne veut pas de maximum.
###############################################################


class Window_NameEdit2< Window_Base
 
  def initialize(actor, max_char) #création de la fenêtre
    super(0,0,480,200)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    @actor = actor
    @max_char = max_char
    refresh
  end
 ###################################################### 
  def refresh # disposition des textes et images sur la fenêtre
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 20, 480, 32, "Nom du héros :",1)
    self.contents.draw_text (0,120, 480,32, @max_char.to_s + " caractères maximum",1) unless @max_char == 0
    self.contents.font.color = normal_color
    self.contents.draw_text(140, 52, 200, 32, @actor.name, 1)
    draw_actor_graphic(@actor, 30, 80)
    draw_actor_graphic(@actor, 420, 80)
  end
######################################################## 
  def update
    super
    refresh
  end
 
end
#########################################################
class Entrer_Nom
 
  def initialize(id, max_char)
    @max_char = max_char
    @actor_id = id
    @actor = $game_party.actors[@actor_id]
    @nom_tableau = @actor.name.split(//)#le nom est mis dans un tableau
    @nom_tableau = @nom_tableau[0...@max_char] unless @max_char == 0#si il y a trop de caratctères dans le nom alors on efface les caractères en trop
    #initialisition du curseur
    @curseur = 0
    @temp_curseur = 10 # toutes les 10 frames le curseur change d'état
    @choix_curseur =  ["_"]*@temp_curseur +  ["  "]*@temp_curseur # dans un tableau on met les différents états du cuseur
    @choix_curseur = [""]*(@temp_curseur*2) unless (@max_char == 0 or @nom_tableau.size != @max_char) #pas de curseur si le nom est trop long
  end
 #####################################################
  def main
    @spriteset = Spriteset_Map.new #permet d'afficher l'arriere plan
    @affiche = Window_NameEdit2.new(@actor, @max_char)# crée la fenêtre
    @affiche.x = 80
    @affiche.y = 80
    @affiche.back_opacity = 200
   
    Graphics.transition
    loop do
      Graphics.update
      update
      if $scene != self
        break
      end
    end
   
    @affiche.dispose
    @spriteset.dispose
    Graphics.freeze
  end
################################################# 
  def update
    @curseur = (@curseur + 1)%(@temp_curseur * 2) # mis à jour du curseur
    @actor.name = @nom_tableau.to_s + @choix_curseur[@curseur]
    @affiche.update
    @spriteset.update
    update_touches     
  end
#################################################   
  def update_touches
   
    @char = text_input# récupère la touche tapé au clavier
   
    #si un caractère est tapé on le rajoute au nom en s'assurant de ne pas dépasser le max
    if @char != ""
      if @nom_tableau.size != @max_char or @max_char == 0
        $game_system.se_play($data_system.decision_se)
        @nom_tableau += [@char]
        #si le max est atteint, on désactive le curseur
        @choix_curseur = [""]*(@temp_curseur*2) unless @max_char == 0 or @nom_tableau.size != @max_char
      else
        $game_system.se_play($data_system.buzzer_se)
      end
    end
   
    if keyboard($Key_BACK)#efface un caractère si la touche [backspace] est tapé
      if @nom_tableau.size == 0
        $game_system.se_play($data_system.buzzer_se)
      else         
        $game_system.se_play($data_system.cancel_se)
        @nom_tableau.pop
        @choix_curseur = ["_"]*@temp_curseur + ["  "] *@temp_curseur
      end
    end
   
    if keyboard($Key_RETURN)#fin du script si la touche [entrer] est tapé
      $game_system.se_play($data_system.cancel_se)
      @actor.name = @nom_tableau.to_s
      $scene = Scene_Map.new
    end
  end
   
end


Maintenant il vous faut le fichier en dessous pour que cela fonctionne :
Le fichier Dll :
Téléchargement

Screen :

_________________
- Lisez les règles
- Faite de la pub
Revenir en haut Aller en bas
Korion
Enchanteur
Enchanteur


Sexe:Masculin
Age : 18
Inscrit le : 04 Aoû 2007
Messages : 168
Emploi/loisirs : lycéen fan de RPG

MessageSujet: Re: [Script] Ecrire le nom du héro au clavier   Mer 3 Oct - 21:00

sympa, mais t'aurais pas un moyen pour que le nom choisit apparaisse dans les dialogues ?
Revenir en haut Aller en bas
KeyLad
Inquisiteur
Inquisiteur


Sexe:Masculin
Age : 16
Inscrit le : 03 Oct 2007
Messages : 364
Localisation : France, Isère
Emploi/loisirs : Guitare, skate, ma copine
Projet en Cours : Projet 1

MessageSujet: Re: [Script] Ecrire le nom du héro au clavier   Mer 3 Oct - 22:13

Bonsoir, oui le nom même changé peut apparaître dans une boîte de dialogue.



Si tu n'as pas cette fonction tu peux utilisé le script 'Message Advence' , il y en a quatre (v1, v2, v3, v4).
_________________
- Lisez les règles
- Faite de la pub
Revenir en haut Aller en bas
Korion
Enchanteur
Enchanteur


Sexe:Masculin
Age : 18
Inscrit le : 04 Aoû 2007
Messages : 168
Emploi/loisirs : lycéen fan de RPG

MessageSujet: Re: [Script] Ecrire le nom du héro au clavier   Jeu 4 Oct - 0:18

je crois pas avoir cette commande, c'est ou, dans afficher un message ?
sinon, je veux bien le script qui permet de le faire, si ça te dérange pas de me le passer.
Revenir en haut Aller en bas
KeyLad
Inquisiteur
Inquisiteur


Sexe:Masculin
Age : 16
Inscrit le : 03 Oct 2007
Messages : 364
Localisation : France, Isère
Emploi/loisirs : Guitare, skate, ma copine
Projet en Cours : Projet 1

MessageSujet: Re: [Script] Ecrire le nom du héro au clavier   Jeu 4 Oct - 19:20

Oui c'est dans 'Afficher un message' , si tu n'as pas cette option voilà des liens vers des scripts :

http://rpg-sunrise.forums-rpg.com/Scripts-Libres-f26/Script-Message-Advence-t147.htm#838
_________________
- Lisez les règles
- Faite de la pub
Revenir en haut Aller en bas
eychiro
Initié
Initié


Sexe:Masculin
Age : 20
Inscrit le : 24 Aoû 2007
Messages : 29
Localisation : ajaccio, en corse
Emploi/loisirs : bts elec , jeux videos , sorties entres potes
Projet en Cours : Projet 1

MessageSujet: Re: [Script] Ecrire le nom du héro au clavier   Mer 10 Oct - 23:44

Alors moi je n'ai eu qu'a faire a la place du nom du héro un \N1 pour le nom du hero 1 et sa apparait en une sorte de YN1 voila .
ha je vien d'y penser j'ai téléchargé un script pour tout faire avec les messages sa joue surement mais désolé je ne sait plus ou je l' ai pris. megahappy
_________________
Revenir en haut Aller en bas
Shive
Empereur
Empereur


Sexe:Masculin
Age : 16
Inscrit le : 26 Juil 2007
Messages : 505
Localisation : Devant son ordi, avec ses potes et à la Réunion!
Emploi/loisirs : Lycéen à plein temps
Projet en Cours : Crisis, Within Rebellion

MessageSujet: Re: [Script] Ecrire le nom du héro au clavier   Jeu 11 Oct - 7:52

Petit post pour remercier Keylad de nous avoir posté ce topic de script.
Un grand merci à lui.

Cordialement, Shive
_________________

Revenir en haut Aller en bas

[Script] Ecrire le nom du héro au clavier

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

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Sunrise :: Alchimisterie :: Scripts :: Scripts Libres-