Saut
Description
Permet au Héros de sauter par-dessus des obstacles sur la carte.
Auteur(s) : Huitzilopoctli
Note du script: Pas de noteInstallation
Copiez le code, ouvrez l'éditeur de script (F11) et créez en un nouveau au dessus de "Main".
Nommez ce script "Jump_Script" et collez-y ce code:
#==============================================================================
# ■ Jump Script
#------------------------------------------------------------------------------
# Enables jumping around the map
# Made by: Huitzilopoctli @ rmxp.net
# Traduction Française par: Martial de Final-RPG
#------------------------------------------------------------------------------
#
# Appuyez sur la touche Z (ou Shift) pour sauter
# Le joueur sera capable de sauter au-dessus de tous les Tiles traversable, ou
# tous les Tiles qui ont le même ID que la variable JumpID (l. 27)
# Le joueur doit atterir sur une case sans évènement qui pourrait le bloquer
# Si le joueur ne peut pas sauter 2 cases, il ne sautera que d'une case, et s'il
# ne peut pas non plus, il ne fera rien
# Pour empêcher le joueur de sauter au-dessus d'un évènement particulier, il
# faut que sa première commande d'évènement soit un commentaire contenant ce mot:
# \Tall
# Pour créer un Tile 'Tall' qui empêchera le joueur de sauter au-dessus même
# si la case du dessous est "sautable", il faut fixer l'ID de ce Tile a une
# valeur différente de la valeur de la variable JumpID
#==============================================================================
#==============================================================================
# ● Customisation
#==============================================================================
JumpID = 1 # L'ID du terrain par dessus lequel on peut sauter
#==============================================================================
# ● Game_Player
#==============================================================================
class Game_Player < Game_Character
def leap
xdir = (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
ydir = (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
dist = 0
clear_jump = true
clear_land1 = true
e = $game_map.events[$game_map.check_event(@x + xdir, @y + ydir)]
if e
clear_jump = !(e.list[0].code == 108 && e.list[0].parameters[0] =~ "\Tall")
clear_land1 = e.through
end
clear_land2 = true
e = $game_map.events[$game_map.check_event(@x + xdir * 2, @y + ydir * 2)]
if e
clear_land2 = e.through
end
pass1 = $game_map.passable?(@x + xdir, @y + ydir, @direction)
pass2 = $game_map.passable?(@x + xdir * 2, @y + ydir * 2, @direction)
jumpid = $game_map.terrain_tag(@x + xdir, @y + ydir) == JumpID
dist = 0
if clear_jump
if clear_land2 & pass2 & (jumpid | pass1)
dist = 2
elsif clear_land1 & pass1
dist = 1
end
end
route = RPG::MoveRoute.new
route.list.clear
route.list.push(RPG::MoveCommand.new(37))
route.list.push(RPG::MoveCommand.new(14, [xdir * dist, ydir * dist]))
route.list.push(RPG::MoveCommand.new(38))
route.list.push(RPG::MoveCommand.new(0))
route.repeat = false
$route = route
Audio.se_play("Audio/SE/015-jump01")
$game_player.force_move_route(route)
end
alias update_primary update
def update
update_primary
leap if Input.trigger?(Input::A) && !moving?
end
end
Appuyez sur la touche Z (ou Shift) pour sauter.
Le joueur sera capable de sauter au-dessus de tous les Tiles traversable, ou tous les Tiles qui ont le même ID que la variable JumpID (voir ligne 27)
Le joueur doit atterrir sur une case sans évènement solide (qui pourrait le bloquer).
Si le joueur ne peut pas sauter 2 cases, il ne sautera que d'une case, et s'il ne peut pas non plus, il sautera sur place.
Pour empêcher le joueur de sauter au-dessus d'un évènement particulier, il faut que sa première commande d'évènement soit un commentaire contenant ceci: "\Tall" (sans les guillemets)
Pour créer un Tile 'Tall' qui empêchera le joueur de sauter au-dessus même si la case du dessous est "sautable", il faut fixer l'ID de ce Tile a une valeur différente de la valeur de la variable JumpID.
Télécharger la démo du script
(Téléchargée 497 fois !)
le 13/08/2009 à 18:03:42
Vu 3582 fois Dernière modification par Martial
le 30/04/2011 à 02:54:25
(édité 2 fois !)
Page: 1
BibiTony92 a écrit:
Script sans bug, très sympa. Merci !
Message posté le 13/06/2012 à 18:46:47 IP: 78.220.36.47