Oniromancie: Scripts - Input amélioré


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

Jeux: Monster World RPG / Jeux: Pif et Hercule / News: Mise à jour de RPG Maker 2003 / Tutos: Création de charset / Jeux: FAYLINAWA /

Chat  (23 connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

68 connectés actuellement

9265291 visiteurs
depuis l'ouverture

551 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

RMXP Forum

EventGame

Vsgames ACHROME

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs




Input amélioré
Script pour RPG Maker XP
Ecrit par zeus81

Ce script est à mettre au dessus du main comme d'habitude.
De plus il faut rajouter dans le dossier du jeu ce fichier dll :
http://www.megaupload.com/fr/?d=2MUB9HO7
#Input amélioré
#Script créé (à moitié) par Zeus81
#
#Nouveautés :
#méthode release?(input) : retourne TRUE si la touche "input" vient d'être relachée sinon retourne FALSE
#méthode input? : retourne TRUE si une touche quelconque est pressée sinon retourne FALSE
#Avant on ne pouvais pas choisir les touches que l'on voulais pour son jeu.
#Mais maintenant c'est possible !!!
#Allez à la ligne 160 pour configurer les touches.
#
#Note : Ce script empêche l'utilisation de joystick et rend la configuration des touches faite avec F1 inutile.
module Input
#--------------------------------------------------------------------------
Mouse_Click_Gauche = 0x01
Mouse_Click_Droit = 0x02
Mouse_Bouton_Molette = 0x04
Mouse_4eme_Bouton = 0x05
Mouse_5eme_Bouton = 0x06
#--------------------------------------------------------------------------
Key_Retour = 0x08
Key_Tab = 0x09
Key__ = 0x0C #Touche 5 quand clavier numérique non vérrouillé
Key_Entree = 0x0D
Key_Maj_Gauche_et_Droit = 0x10
Key_Ctrl_Gauche_et_Droit = 0x11
Key_Alt_et_Alt_Gr = 0x12
Key_Pause = 0x13
Key_Verr_Maj = 0x14
Key_Echap = 0x1B
Key_Espace = 0x20
Key_Page_Precedente = 0x21
Key_Page_Suivante = 0x22
Key_Fin = 0x23
Key_Origine = 0x24
Key_Fleche_Gauche = 0x25
Key_Fleche_Haut = 0x26
Key_Fleche_Droite = 0x27
Key_Fleche_Bas = 0x28
Key_Impression_Ecran = 0x2C
Key_Inser = 0x2D
Key_Suppr = 0x2E
#--------------------------------------------------------------------------
Key_0 = 0x30
Key_1 = 0x31
Key_2 = 0x32
Key_3 = 0x33
Key_4 = 0x34
Key_5 = 0x35
Key_6 = 0x36
Key_7 = 0x37
Key_8 = 0x38
Key_9 = 0x39
#--------------------------------------------------------------------------
Key_A = 0x41
Key_B = 0x42
Key_C = 0x43
Key_D = 0x44
Key_E = 0x45
Key_F = 0x46
Key_G = 0x47
Key_H = 0x48
Key_I = 0x49
Key_J = 0x4A
Key_K = 0x4B
Key_L = 0x4C
Key_M = 0x4D
Key_N = 0x4E
Key_O = 0x4F
Key_P = 0x50
Key_Q = 0x51
Key_R = 0x52
Key_S = 0x53
Key_T = 0x54
Key_U = 0x55
Key_V = 0x56
Key_W = 0x57
Key_X = 0x58
Key_Y = 0x59
Key_Z = 0x5A
#--------------------------------------------------------------------------
Key_Windows_Gauche = 0x5B
Key_Windows_Droit = 0x5C
Key_Applications = 0x5D
#--------------------------------------------------------------------------
Numericpad_0 = 0x60
Numericpad_1 = 0x61
Numericpad_2 = 0x62
Numericpad_3 = 0x63
Numericpad_4 = 0x64
Numericpad_5 = 0x65
Numericpad_6 = 0x66
Numericpad_7 = 0x67
Numericpad_8 = 0x68
Numericpad_9 = 0x69
Numericpad_Multiplier = 0x6A # *
Numericpad_Additionner = 0x6B # +
Numericpad_Soustraire = 0x6D # -
Numericpad_Decimale = 0x6E # .
Numericpad_Diviser = 0x6F # /
#--------------------------------------------------------------------------
Key_F1 = 0x70
Key_F2 = 0x71
Key_F3 = 0x72
Key_F4 = 0x73
Key_F5 = 0x74
Key_F6 = 0x75
Key_F7 = 0x76
Key_F8 = 0x77
Key_F9 = 0x78
Key_F10 = 0x79
Key_F11 = 0x7A
Key_F12 = 0x7B
#--------------------------------------------------------------------------
Key_Verr_Num = 0x90
Key_Arret_Defil = 0x91
#--------------------------------------------------------------------------
Key_Maj_Gauche = 0xA0
Key_Maj_Droit = 0xA1
Key_Ctrl_Gauche = 0xA2
Key_Ctrl_Droit = 0xA3
Key_Alt = 0xA4
Key_Alt_Gr = 0xA5
#--------------------------------------------------------------------------
Key_Raccourci_Home = 0xAC
Key_Raccourci_Volume_Muet = 0xAD
Key_Raccourci_Volume_Moins = 0xAE
Key_Raccourci_Volume_Plus = 0xAF
Key_Raccourci_Play_Pause = 0xB3
Key_Raccourci_Outlook = 0xB4
Key_Raccourci_Windows_Media_Player = 0xB5
Key_Raccourci_Calculatrice = 0xB7
#--------------------------------------------------------------------------
Key_Monnaie = 0xBA # £ $
Key_Plus = 0xBB # +
Key_Virgule = 0xBC # ,
Key_Point = 0xBE # .
Key_Slash = 0xBF # /
Key_Pourcent = 0xC0 # %
Key_Degree = 0xDB # °
Key_Micro = 0xDC # µ
Key_Accent = 0xDD # ^
Key_Exposant = 0xDE # ²
Key_Exclam = 0xDF # !
Key_Superieur = 0xE2 # >
#--------------------------------------------------------------------------
AsyncKeyState = Win32API.new("user32","GetAsyncKeyState",['i'],'i')
#--------------------------------------------------------------------------
@input = []
for i in 0..32
@input = [0]
end
@last_dir = 0
@state = []
@last_state = []
@repeat_state = []
for i in 0..32
@state = 0
@last_state = 0
@repeat_state = 0
end
#--------------------------------------------------------------------------
#C'est facile il suffit de copier le nom de la touche que l'on veux entre les lignes 10 et 150
#et de l'attribuer au bouton que l'on désire, si-dessous.
#Il est aussi possible de mettre plusieurs touches sur un bouton en les séparants par des virgules.
#exemple : @input[C] = [Key_Entree , Key_Espace]
@input[DOWN] = [Key_Fleche_Bas]
@input[LEFT] = [Key_Fleche_Gauche]
@input[RIGHT] = [Key_Fleche_Droite]
@input[UP] = [Key_Fleche_Haut]
@input[A] = [Numericpad_Additionner]
@input[B] = [Numericpad_0]
@input[C] = [Key_Entree]
@input[X] = [Numericpad_1]
@input[Y] = [Numericpad_2]
@input[Z] = [Numericpad_3]
@input[L] = [Numericpad_4]
@input[R] = [Numericpad_5]
@input[SHIFT] = [Key_Maj_Gauche_et_Droit]
@input[CTRL] = [Key_Ctrl_Gauche_et_Droit]
@input[ALT] = [Key_Alt_et_Alt_Gr]
@input[F5] = [Key_F5]
@input[F6] = [Key_F6]
@input[F7] = [Key_F7]
@input[F8] = [Key_F8]
@input[F9] = [Key_F9]
#--------------------------------------------------------------------------
module_function
#--------------------------------------------------------------------------
def update
for input in 0..32
@repeat_state[input] += 1
@last_state[input] = @state[input]
@state[input] = 0
for i in 0...@input[input].size
case input
when 1
ok = (AsyncKeyState.call(@input[2]) != 0 and AsyncKeyState.call(@input[4]) != 0)
@state[input] += 1 if ok
when 3
ok = (AsyncKeyState.call(@input[2]) != 0 and AsyncKeyState.call(@input[6]) != 0)
@state[input] += 1 if ok
when 7
ok = (AsyncKeyState.call(@input[8]) != 0 and AsyncKeyState.call(@input[4]) != 0)
@state[input] += 1 if ok
when 9
ok = (AsyncKeyState.call(@input[8]) != 0 and AsyncKeyState.call(@input[6]) != 0)
@state[input] += 1 if ok
else
@state[input] += AsyncKeyState.call(@input[input])
end
end
end
end
#--------------------------------------------------------------------------
def trigger?(input)
return (@state[input] != 0 and @last_state[input] == 0)
end
#--------------------------------------------------------------------------
def repeat?(input)
if @state[input] != 0
if @repeat_state[input] == 1
return true
elsif @repeat_state[input] > 15
return ((@repeat_state[input]-16)%4 == 0)
end
else
@repeat_state[input] = 0
end
return false
end
#--------------------------------------------------------------------------
def press?(input)
return @state[input] != 0
end
#--------------------------------------------------------------------------
def release?(input)
return (@state[input] == 0 and @last_state[input] != 0)
end
#--------------------------------------------------------------------------
def input?
result = false
for input in 0..32
result = true if @state[input] != 0
end
return result
end
#--------------------------------------------------------------------------
def dir4
if press?(DOWN) and press?(LEFT)
if @last_dir == DOWN
return @last_state[DOWN] != 0 ? 4 : 2
else
return @last_state[DOWN] != 0 ? 2 : 4
end
elsif press?(DOWN) and press?(RIGHT)
if @last_dir == DOWN
return @last_state[DOWN] != 0 ? 6 : 2
else
return @last_state[DOWN] != 0 ? 2 : 6
end
elsif press?(UP) and press?(LEFT)
if @last_dir == UP
return @last_state[UP] != 0 ? 4 : 8
else
return @last_state[UP] != 0 ? 8 : 4
end
elsif press?(UP) and press?(RIGHT)
if @last_dir == UP
return @last_state[UP] != 0 ? 6 : 8
else
return @last_state[UP] != 0 ? 8 : 6
end
elsif press?(DOWN) and press?(UP)
return 0
elsif press?(LEFT) and press?(RIGHT)
return 0
elsif press?(DOWN)
@last_dir = DOWN
return 2
elsif press?(LEFT)
@last_dir = LEFT
return 4
elsif press?(RIGHT)
@last_dir = RIGHT
return 6
elsif press?(UP)
@last_dir = UP
return 8
else
return 0
end
end
#--------------------------------------------------------------------------
def dir8
if press?(DOWN) and press?(LEFT)
return 1
elsif press?(DOWN) and press?(RIGHT)
return 3
elsif press?(UP) and press?(LEFT)
return 7
elsif press?(UP) and press?(RIGHT)
return 9
elsif press?(DOWN) and press?(UP)
return 0
elsif press?(LEFT) and press?(RIGHT)
return 0
elsif press?(DOWN)
return 2
elsif press?(LEFT)
return 4
elsif press?(RIGHT)
return 6
elsif press?(UP)
return 8
else
return 0
end
end
#--------------------------------------------------------------------------
end


Romain68 - posté le 14/08/2008 à 16:30:13. (2587 messages postés)

J'ai essayé de mettre ce script avec celui du AMS Ultimate mais j'ai pas l'impression qu'il peuvent marcher ensemble...:'(
Quand je démarre le projet les script liés aux touche de saut et de course ne fonctionnent plus.
Sinon tu peux me dire comment STP!

Merci


Lutopia - posté le 23/01/2009 à 23:36:06. (29 messages postés)

Si c'était possible de réuploader le .dll ça serait génial ^^

Merci

Echo 152, la suite d'une guerre qui va bouleverser les esprits !


Zeus81 - posté le 16/11/2009 à 15:25:25. (11072 messages postés)

Se reporter ici pour une meilleure version.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis