Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  



Le Deal du moment : -17%
SSD interne Crucial SSD P3 1To NVME à ...
Voir le deal
49.99 €

Partagez
 

 [vx]switcher de héros

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
rascasse
Chevalier (niveau 2)
Chevalier (niveau 2)
rascasse

Masculin
Messages postés : 82
Date d'inscription : 13/03/2009
Jauge LPC :
[vx]switcher de héros 89152714003 / 1003 / 100[vx]switcher de héros 8915271400


[vx]switcher de héros Empty
MessageSujet: [vx]switcher de héros   [vx]switcher de héros EmptyMer 24 Juin 2009 - 13:54

Voilà un script qui permet de changer de héros par Créé par Kablue/Sihn, à partir du menu tournant de MakirouAru.
Citation :
#=============================================================================
# Switcheur de héros
#-----------------------------------------------------------------------------
# Créé par Kablue/Sihn, à partir du menu tournant de MakirouAru
# Conçu pour RMVX
# Version 2.1
#=============================================================================

# Touche d'activation (Changez uniquement le Y)
SWITCHEUR_KEY = Input::Y

# Son lors de l'apparition du switcheur
SE_START = "Decision2"

# Animation à jouer sur le héros si changement de celui-ci
ID_ANIMATION = 41

# Durée en frame de l'apparition du switcheur
TRANS_FRAMES = 15

# Durée en frame de la rotation entre deux héros du switcheur
MOVING_FRAMES = 10

# Rayon en pixel
RAYON = 64

# true : En forme d'élipse / false : En forme de cercle
ELIPSE = true

# true : Appuyez sur le bouton / false : Maintenez le bouton
AUTO_KEY = true

#=============================================================================
# Game_Temp
#=============================================================================
class Game_Temp

attr_accessor :switcheur_result

alias initialize_switcheur_result initialize
def initialize
initialize_switcheur_result
@switcheur_result = false
end

end

#=============================================================================
# Game_Party
#=============================================================================
class Game_Party
attr_accessor :actors
end

#=============================================================================
# Window_Switcheur
#=============================================================================
class Window_Switcheur < Window_Base

attr_accessor :index

def initialize
super(-16, -16, 576, 448)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = "Arial"
self.opacity = 0
self.back_opacity = 0
@commands = []
@items = []
for actor in $game_party.members
@commands.push(actor.name)
@items.push(Cache.character(actor.character_name))
end
@item_max = @commands.size
@index = 0
@cx = $game_player.screen_x + 16
@cy = $game_player.screen_y - 8
setup_move_start
refresh
end

def update
super
if @mode < 5
if Input.trigger?(Input::UP) or Input.trigger?(Input::LEFT)
Sound.play_cursor
ELIPSE ? setup_move_move(3) : setup_move_move(4)
return
elsif Input.trigger?(Input::DOWN) or Input.trigger?(Input::RIGHT)
Sound.play_cursor
ELIPSE ? setup_move_move(4) : setup_move_move(3)
return
elsif Input.trigger?(Input::B) and AUTO_KEY
Sound.play_cancel
$game_temp.switcheur_result = false
setup_move_end
return
elsif AUTO_KEY
if Input.trigger?(Input::C) or Input.trigger?(SWITCHEUR_KEY)
Sound.play_decision
$game_temp.switcheur_result = true
setup_move_end
return
end
else
unless Input.press?(SWITCHEUR_KEY)
Sound.play_decision
$game_temp.switcheur_result = true
setup_move_end
return
end
end
end
refresh
end

def refresh
self.contents.clear
case @mode
when 1
refresh_start
when 2
refresh_wait
when 3
refresh_move(1)
when 4
refresh_move(0)
when 5
refresh_end
end
if @mode != 6
cy = ELIPSE ? 32 : 0
rect = Rect.new(@cx - 272, @cy + cy, self.contents.width - 32, 32)
self.contents.draw_text(rect, @commands[@index], 1)
else
dispose
end
end

def refresh_start
d1 = 2.0 * Math::PI / @item_max
d2 = 1.0 * Math::PI / TRANS_FRAMES
r = RAYON - 1.0 * RAYON * @steps / TRANS_FRAMES
for i in 0...@item_max
j = i - @index
d = d1 * j + d2 * @steps
x = @cx + (r * Math.sin(d)).to_i
y = @cy - ((r * Math.cos(d)).to_i / elipse)
draw_item(x, y, i)
end
@steps -= 1
if @steps < 1
@mode = 2
end
end

def refresh_wait
d = 2.0 * Math::PI / @item_max
for i in 0...@item_max
j = i - @index
x = @cx + (RAYON * Math.sin(d * j)).to_i
y = @cy - ((RAYON * Math.cos(d * j)).to_i / elipse)
draw_item(x, y, i)
end
end

def refresh_move(mode)
d1 = 2.0 * Math::PI / @item_max
d2 = d1 / MOVING_FRAMES
d2 *= -1 if mode != 0
for i in 0...@item_max
j = i - @index
d = d1 * j + d2 * @steps
x = @cx + (RAYON * Math.sin(d)).to_i
y = @cy - ((RAYON * Math.cos(d)).to_i / elipse)
draw_item(x, y, i)
end
@steps -= 1
if @steps < 1
@mode = 2
end
end

def refresh_end
d1 = 2.0 * Math::PI / @item_max
d2 = 1.0 * Math::PI / TRANS_FRAMES
r = RAYON - 1.0 * RAYON * @steps / TRANS_FRAMES
for i in 0...@item_max
j = i - @index
d = d1 * j + d2 * @steps
x = @cx + (r * Math.sin(d)).to_i
y = @cy - ((r * Math.cos(d)).to_i / elipse)
draw_item(x, y, i)
end
@steps += 1
if @steps > TRANS_FRAMES
@mode = 6
end
end

def draw_item(x, y, i)
item = @items[i]
if $game_party.members[i].character_name.include?("$")
rect = Rect.new(0, 0, item.width / 3, item.height / 4)
opa = @index == i ? 255 : 128
self.contents.blt(x - item.width / 6, y - item.height / 8, item, rect, opa)
else
index = $game_party.members[i].character_index
rect = Rect.new((item.width / 4) * (index % 4), (item.height / 2) * (index / 3 % 2), item.width / 12, item.height / Cool
opa = @index == i ? 255 : 128
self.contents.blt(x - item.width / 12, y - item.height / 8, item, rect, opa)
end
end

def setup_move_start
@mode = 1
@steps = TRANS_FRAMES
end

def setup_move_move(mode)
return if $game_party.actors.size < 2
if mode == 3
@index -= 1
@index = @items.size - 1 if @index < 0
elsif mode == 4
@index += 1
@index = 0 if @index >= @items.size
else
return
end
@mode = mode
@steps = MOVING_FRAMES
end

def setup_move_end
@mode = 5
@steps = 0
end

def elipse
return ELIPSE ? -2 : 1
end

end

#=============================================================================
# Scene_Map
#=============================================================================
class Scene_Map

alias ring_system_update update
def update
if @switcheur_window != nil
if @switcheur_window.disposed?
if $game_temp.switcheur_result and @switcheur_window.index != 0
target_actor = $game_party.actors[@switcheur_window.index]
while $game_party.actors[0] != target_actor
actor = $game_party.actors[0]
$game_party.actors.delete_at(0)
$game_party.actors.push(actor)
end
$game_player.animation_id = ID_ANIMATION
$game_player.refresh
end
$game_temp.switcheur_result = false
@switcheur_window = nil
else
@switcheur_window.update
end
return
end
if Input.press?(SWITCHEUR_KEY) and $game_party.actors.size > 0
if SE_START != nil and SE_START != ""
Audio.se_play("Audio/SE/" + SE_START, 80, 100)
end
@switcheur_window = Window_Switcheur.new
end
ring_system_update
end

end
Revenir en haut Aller en bas
Elekami
Fondateur
Fondateur
Elekami

Masculin
Messages postés : 19071
Date d'inscription : 19/07/2008
Jauge LPC :
[vx]switcher de héros 8915271400100 / 100100 / 100[vx]switcher de héros 8915271400

[vx]switcher de héros Pater_10
[vx]switcher de héros Staffe10
[vx]switcher de héros Mythe_10
[vx]switcher de héros Membre11
[vx]switcher de héros Doyen10
[vx]switcher de héros Scanar10
[vx]switcher de héros Compos10
[vx]switcher de héros Testeu10
[vx]switcher de héros Membre15
[vx]switcher de héros Partag10
[vx]switcher de héros Projet10
[vx]switcher de héros Projet16
[vx]switcher de héros Riche_10
[vx]switcher de héros Travai10
[vx]switcher de héros Collec10
[vx]switcher de héros Collec11
[vx]switcher de héros Collec12
[vx]switcher de héros Collec13
[vx]switcher de héros Connar10


[vx]switcher de héros Empty
MessageSujet: Re: [vx]switcher de héros   [vx]switcher de héros EmptyVen 26 Juin 2009 - 14:22

Okay très bon script merci de ton aide.
Revenir en haut Aller en bas
https://www.ledijonshow.fr https://twitter.com/EleKoptes
 
[vx]switcher de héros
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Le concept] Le héros
» [XP] Les héros s'affichent sur la map
» Heros Fantasy
» [Résolu]Héros immobile
» Remarques sur la création d'un héros

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker VX :: Autres-
Sauter vers: