AccueilFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

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

Aller en bas 
AuteurMessage
KeyLad
Inquisiteur
Inquisiteur
avatar

Masculin Nombre de messages : 365
Age : 26
Localisation : France, Isère
Emploi/loisirs : Guitare, skate, ma copine
Projet en Cours : Projet 1
Date d'inscription : 03/10/2007

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

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 - 6:37, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
KeyLad
Inquisiteur
Inquisiteur
avatar

Masculin Nombre de messages : 365
Age : 26
Localisation : France, Isère
Emploi/loisirs : Guitare, skate, ma copine
Projet en Cours : Projet 1
Date d'inscription : 03/10/2007

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

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
Voir le profil de l'utilisateur
Korion
Enchanteur
Enchanteur
avatar

Masculin Nombre de messages : 168
Age : 28
Emploi/loisirs : lycéen fan de RPG
Projet en Cours : Projet 1
Date d'inscription : 04/08/2007

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

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

Masculin Nombre de messages : 365
Age : 26
Localisation : France, Isère
Emploi/loisirs : Guitare, skate, ma copine
Projet en Cours : Projet 1
Date d'inscription : 03/10/2007

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

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
Voir le profil de l'utilisateur
Korion
Enchanteur
Enchanteur
avatar

Masculin Nombre de messages : 168
Age : 28
Emploi/loisirs : lycéen fan de RPG
Projet en Cours : Projet 1
Date d'inscription : 04/08/2007

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

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
Voir le profil de l'utilisateur
KeyLad
Inquisiteur
Inquisiteur
avatar

Masculin Nombre de messages : 365
Age : 26
Localisation : France, Isère
Emploi/loisirs : Guitare, skate, ma copine
Projet en Cours : Projet 1
Date d'inscription : 03/10/2007

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

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
Voir le profil de l'utilisateur
eychiro
Initié
Initié
avatar

Masculin Nombre de messages : 29
Age : 29
Localisation : ajaccio, en corse
Emploi/loisirs : bts elec , jeux videos , sorties entres potes
Date d'inscription : 24/08/2007

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

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
Voir le profil de l'utilisateur
Shive
Empereur
Empereur
avatar

Masculin Nombre de messages : 505
Age : 26
Localisation : Devant son ordi, avec ses potes et à la Réunion!
Emploi/loisirs : Lycéen à plein temps
Projet en Cours : Crisis, Within Rebellion
Date d'inscription : 26/07/2007

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

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
Voir le profil de l'utilisateur http://rpg-sunrise.forums-rpg.com/index.htm
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
[Script] Ecrire le nom du héro au clavier
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-
Sauter vers: