- BrandobscureMembre
- Nombre de messages : 528
Age : 28
Localisation : Belgique
Distinction : aucune
Date d'inscription : 03/01/2011
[résolu][VX-Ace]Switcher les héros.
Mer 17 Oct 2012 - 16:54
Bonjour,
J'aurais besoin d'aide,
Alors, je recherche un script qui permetrais de changer de héros
a l'appuie d'une touche.
Donc tout simplement j'appuie sur (W) et le héros change directement par un autre
qui est dans mon équipe, merci d'avance
J'aurais besoin d'aide,
Alors, je recherche un script qui permetrais de changer de héros
a l'appuie d'une touche.
Donc tout simplement j'appuie sur (W) et le héros change directement par un autre
qui est dans mon équipe, merci d'avance
- stribiliounouMembre
- Nombre de messages : 212
Age : 27
Localisation : Trou perdu
Distinction : aucune
Date d'inscription : 14/07/2012
Re: [résolu][VX-Ace]Switcher les héros.
Mer 17 Oct 2012 - 19:16
https://www.youtube.com/watch?v=pWuqYDBbHwY&feature=g-all-u
un superbe tutoriel en évènements, qui te permet de comprendre tout ce qui compose ton projet, et en plus je le trouve super bien ce tuto
un superbe tutoriel en évènements, qui te permet de comprendre tout ce qui compose ton projet, et en plus je le trouve super bien ce tuto
- BrandobscureMembre
- Nombre de messages : 528
Age : 28
Localisation : Belgique
Distinction : aucune
Date d'inscription : 03/01/2011
Re: [résolu][VX-Ace]Switcher les héros.
Mer 17 Oct 2012 - 19:27
Merci bien
Il y a juste un problème c'est que en fait se que je veux c'est changer le leader du jeu,
pas jouer 2 perso ^^
Il y a juste un problème c'est que en fait se que je veux c'est changer le leader du jeu,
pas jouer 2 perso ^^
- stribiliounouMembre
- Nombre de messages : 212
Age : 27
Localisation : Trou perdu
Distinction : aucune
Date d'inscription : 14/07/2012
Re: [résolu][VX-Ace]Switcher les héros.
Mer 17 Oct 2012 - 19:52
Ah mince :/ Mais dans ce cas là ça suffit pas par exemple de créer tes deux héros, et faire un évènement commun de ce style :
Si la touche... est appuyée :
Changer l'équipe...
avec un interrupteur de déclenchement...
Ca ne suffirait pas ?
Si la touche... est appuyée :
Changer l'équipe...
avec un interrupteur de déclenchement...
Ca ne suffirait pas ?
- BrandobscureMembre
- Nombre de messages : 528
Age : 28
Localisation : Belgique
Distinction : aucune
Date d'inscription : 03/01/2011
Re: [résolu][VX-Ace]Switcher les héros.
Mer 17 Oct 2012 - 20:24
En fait, j'ai activé la chenille, donc les héros se suivent,
et j'aimerais que si (W) est pressé, bein le 1er hero vas derrière celui
qui était derrière moi et que il vas devant donc qui deviennent le (Leader)
et j'aimerais que si (W) est pressé, bein le 1er hero vas derrière celui
qui était derrière moi et que il vas devant donc qui deviennent le (Leader)
- stribiliounouMembre
- Nombre de messages : 212
Age : 27
Localisation : Trou perdu
Distinction : aucune
Date d'inscription : 14/07/2012
Re: [résolu][VX-Ace]Switcher les héros.
Mer 17 Oct 2012 - 20:56
Je sais pas par quoi est géré cet ordre, désolé, j'avais pas très bien compris la question, enfin du moins j'avais pensé que la chenille n'était pas forcément activée ...
- EudyMembre
- Nombre de messages : 14
Age : 34
Distinction : aucune
Date d'inscription : 19/10/2012
Re: [résolu][VX-Ace]Switcher les héros.
Ven 19 Oct 2012 - 19:38
Je t'ai fais ça.
Tout d'abord un 1er script est nécessaire qui permet une gestion plus poussée des touches du clavier créé par OriginalWij and Yanfly.
Ensuite je t'ai fais un script qui devrait correspondre a ce que tu demandes :
Il faut donc mettre les deux pour que cela fonctionne.
Tu peux évidemment changer la touche à utiliser si besoin, j'ai aussi créé deux modes de permutation comme tu n'as pas précisé ce qui se passait au delà de 2 membres.
Voilà.
Tout d'abord un 1er script est nécessaire qui permet une gestion plus poussée des touches du clavier créé par OriginalWij and Yanfly.
- Code:
#==============================================================================
# ■ Input
#==============================================================================
module Input
#--------------------------------------------------------------------------
# constants - Created by OriginalWij and Yanfly
#--------------------------------------------------------------------------
DEFAULT = [:DOWN, :LEFT, :RIGHT, :UP, :A, :B, :C, :X, :Y, :Z, :L, :R,
:SHIFT, :CTRL, :ALT, :F5, :F6, :F7, :F8, :F9]
LETTERS = {}
LETTERS['A'] = 65; LETTERS['B'] = 66; LETTERS['C'] = 67; LETTERS['D'] = 68
LETTERS['E'] = 69; LETTERS['F'] = 70; LETTERS['G'] = 71; LETTERS['H'] = 72
LETTERS['I'] = 73; LETTERS['J'] = 74; LETTERS['K'] = 75; LETTERS['L'] = 76
LETTERS['M'] = 77; LETTERS['N'] = 78; LETTERS['O'] = 79; LETTERS['P'] = 80
LETTERS['Q'] = 81; LETTERS['R'] = 82; LETTERS['S'] = 83; LETTERS['T'] = 84
LETTERS['U'] = 85; LETTERS['V'] = 86; LETTERS['W'] = 87; LETTERS['X'] = 88
LETTERS['Y'] = 89; LETTERS['Z'] = 90
NUMBERS = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57]
NUMPAD = [96, 97, 98, 99, 100, 101, 102, 103, 104, 105]
BACK = 138; ENTER = 143; SPACE = 32; SCOLON = 186; ESC = 157
QUOTE = 222; EQUALS = 187; COMMA = 188; USCORE = 189; PERIOD = 190
SLASH = 191; LBRACE = 219; RBRACE = 221; BSLASH = 220; TILDE = 192
F10 = 121; F11 = 122; CAPS = 20; NMUL = 106; NPLUS = 107
NSEP = 108; NMINUS = 109; NDECI = 110; NDIV = 111;
Extras = [USCORE, EQUALS, LBRACE, RBRACE, BSLASH, SCOLON, QUOTE, COMMA,
PERIOD, SLASH, NMUL, NPLUS, NSEP, NMINUS, NDECI, NDIV]
#--------------------------------------------------------------------------
# initial module settings - Created by OriginalWij and Yanfly
#--------------------------------------------------------------------------
GetKeyState = Win32API.new("user32", "GetAsyncKeyState", "i", "i")
GetCapState = Win32API.new("user32", "GetKeyState", "i", "i")
KeyRepeatCounter = {}
module_function
#--------------------------------------------------------------------------
# alias method: update - Created by OriginalWij
#--------------------------------------------------------------------------
class <<self; alias input_update_debug update; end
def self.update
input_update_debug
for key in KeyRepeatCounter.keys
if (GetKeyState.call(key).abs & 0x8000 == 0x8000)
KeyRepeatCounter[key] += 1
else
KeyRepeatCounter.delete(key)
end
end
end
#--------------------------------------------------------------------------
# alias method: press? - Created by OriginalWij
#--------------------------------------------------------------------------
class <<self; alias input_press_debug press?; end
def self.press?(key)
return input_press_debug(key) if default_key?(key)
adjusted_key = adjust_key(key)
return true unless KeyRepeatCounter[adjusted_key].nil?
return key_pressed?(adjusted_key)
end
#--------------------------------------------------------------------------
# alias method: trigger? - Created by OriginalWij
#--------------------------------------------------------------------------
class <<self; alias input_trigger_debug trigger?; end
def self.trigger?(key)
return input_trigger_debug(key) if default_key?(key)
adjusted_key = adjust_key(key)
count = KeyRepeatCounter[adjusted_key]
return ((count == 0) || (count.nil? ? key_pressed?(adjusted_key) : false))
end
#--------------------------------------------------------------------------
# alias method: repeat? - Created by OriginalWij
#--------------------------------------------------------------------------
class <<self; alias input_repeat_debug repeat?; end
def self.repeat?(key)
return input_repeat_debug(key) if default_key?(key)
adjusted_key = adjust_key(key)
count = KeyRepeatCounter[adjusted_key]
return true if count == 0
if count.nil?
return key_pressed?(adjusted_key)
else
return (count >= 23 && (count - 23) % 6 == 0)
end
end
#--------------------------------------------------------------------------
# new method: default_key? - Created by Yanfly
#--------------------------------------------------------------------------
def self.default_key?(key)
return true if key.is_a?(Integer) && key < 30
return DEFAULT.include?(key)
end
#--------------------------------------------------------------------------
# new method: adjust_key - Created by OriginalWij
#--------------------------------------------------------------------------
def self.adjust_key(key)
key -= 130 if key.between?(130, 158)
return key
end
#--------------------------------------------------------------------------
# new method: key_pressed? - Created by OriginalWij
#--------------------------------------------------------------------------
def self.key_pressed?(key)
if (GetKeyState.call(key).abs & 0x8000 == 0x8000)
KeyRepeatCounter[key] = 0
return true
end
return false
end
#--------------------------------------------------------------------------
# new method: typing? - Created by Yanfly
#--------------------------------------------------------------------------
def self.typing?
return true if repeat?(SPACE)
for i in 'A'..'Z'
return true if repeat?(LETTERS[i])
end
for i in 0...NUMBERS.size
return true if repeat?(NUMBERS[i])
return true if repeat?(NUMPAD[i])
end
for key in Extras
return true if repeat?(key)
end
return false
end
#--------------------------------------------------------------------------
# new method: key_type - Created by Yanfly
#--------------------------------------------------------------------------
def self.key_type
return " " if repeat?(SPACE)
for i in 'A'..'Z'
next unless repeat?(LETTERS[i])
return upcase? ? i.upcase : i.downcase
end
for i in 0...NUMBERS.size
return i.to_s if repeat?(NUMPAD[i])
if !press?(SHIFT)
return i.to_s if repeat?(NUMBERS[i])
elsif repeat?(NUMBERS[i])
case i
when 1; return "!"
when 2; return "@"
when 3; return "#"
when 4; return "$"
when 5; return "%"
when 6; return "^"
when 7; return "&"
when 8; return "*"
when 9; return "("
when 0; return ")"
end
end
end
for key in Extras
next unless repeat?(key)
case key
when USCORE; return press?(SHIFT) ? "_" : "-"
when EQUALS; return press?(SHIFT) ? "+" : "="
when LBRACE; return press?(SHIFT) ? "{" : "["
when RBRACE; return press?(SHIFT) ? "}" : "]"
when BSLASH; return press?(SHIFT) ? "|" : "\\"
when SCOLON; return press?(SHIFT) ? ":" : ";"
when QUOTE; return press?(SHIFT) ? '"' : "'"
when COMMA; return press?(SHIFT) ? "<" : ","
when PERIOD; return press?(SHIFT) ? ">" : "."
when SLASH; return press?(SHIFT) ? "?" : "/"
when NMUL; return "*"
when NPLUS; return "+"
when NSEP; return ","
when NMINUS; return "-"
when NDECI; return "."
when NDIV; return "/"
end
end
return ""
end
#--------------------------------------------------------------------------
# new method: upcase? - Created by Yanfly
#--------------------------------------------------------------------------
def self.upcase?
return !press?(SHIFT) if GetCapState.call(CAPS) == 1
return true if press?(SHIFT)
return false
end
end # Input
Ensuite je t'ai fais un script qui devrait correspondre a ce que tu demandes :
- Code:
#==============================================================================
# Eudy_SwapOnMap
#------------------------------------------------------------------------------
# Permet de permuter sur la carte les membres de l'équipe en utilisant une
# touche spécifique (par défaut W)
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Modes de permutation
#------------------------------------------------------------------------------
# Par défaut le mode chenille (1) effectue le déroulement suivant :
# ORRDRE DES PERSONNAGES :
# AVANT=> APRES
# 1 2 3 4 => 2 3 4 1
#------------------------------------------------------------------------------
# Le mode échange (2) effectue le déroulement suivant :
# ORRDRE DES PERSONNAGES :
# AVANT=> APRES
# 1 2 3 4 => 2 1 3 4
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Ce script nécessite le script Input par OriginalWij et Yanfly
# pour la gestion des touches avancées (W)
# Si vous voulez utiliser une touche par défaut prise en charge par RPG Maker
# ce script deviens facultif, il suffit alors de changer SWAP_KEY
# ex: SWAP_KEY = :C
# Correspond à la touche Entrée/Espace par défaut de RPG Maker
#------------------------------------------------------------------------------
# CONFIGURATION
module EUDY_SWAPONMAP
# Touche de permutation
SWAP_KEY = Input::LETTERS['W']
# Mode de permutation
# 1 chenille
# 2 échange
SWAP_MODE = 1
end
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# * Frame Update
# main: Interpreter update flag
#--------------------------------------------------------------------------
alias eudy_swaponmap_update update
def update(main = false)
eudy_swaponmap_update
update_swap
end
#--------------------------------------------------------------------------
def update_swap
if(Input.trigger?(EUDY_SWAPONMAP::SWAP_KEY) && $game_party.members.size > 1)
if(EUDY_SWAPONMAP::SWAP_MODE==1)
for i in 0...($game_party.members.size-1)
$game_party.swap_order(i,i+1)
end
elsif(EUDY_SWAPONMAP::SWAP_MODE==2)
$game_party.swap_order(0,1)
end
end
end
end
Il faut donc mettre les deux pour que cela fonctionne.
Tu peux évidemment changer la touche à utiliser si besoin, j'ai aussi créé deux modes de permutation comme tu n'as pas précisé ce qui se passait au delà de 2 membres.
Voilà.
- BrandobscureMembre
- Nombre de messages : 528
Age : 28
Localisation : Belgique
Distinction : aucune
Date d'inscription : 03/01/2011
Re: [résolu][VX-Ace]Switcher les héros.
Ven 19 Oct 2012 - 20:13
Merci beaucoup, c'est exactement se que je cherchais,
je te remercie du fond du coeur pour ton aide.
je te remercie du fond du coeur pour ton aide.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum