Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Amélioration de teleportation

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

1RPG Maker XP Amélioration de teleportation le Ven 24 Oct - 10:15

robin


Membre
Membre
Auteur : Wachunga

Fonction : Quand vous faites un évènement pour faire téléporter le héros vers une autre map, ce script permettra comme l'image ci dessous de se téléporter dans la lignée de l'évènement sans passer par cette évènement. Le héros se trouvera sur la même position X ou Y . (Comme dans Zelda)

Ouvrez l'éditeur de script ( F11 ) et créez en un nouveau au dessus de Main qui portera le nom de Maplink :
Code:
#-------------------------------------------------------------------------------

class Game_Event < Game_Character
alias ml_ge_init initialize
def initialize(map_id, event)
ml_ge_init(map_id, event)
if @event.name.upcase.include?('<MAPLINK>')
dir = nil
if @event.y == $game_map.height-1
dir = 2 unless @event.x == 0 or @event.x == $game_map.width-1
elsif @event.x == 0
dir = 4 unless @event.y == 0 or @event.y == $game_map.height-1
elsif @event.x == $game_map.width-1
dir = 6 unless @event.y == 0 or @event.y == $game_map.height-1
elsif @event.y == 0
dir = 8 unless @event.x == 0 or @event.x == $game_map.width-1
end
if dir != nil
@list.each { |command|
if command.code == 201
# make sure new location isn't be specified by variables
if command.parameters[0] == 0
$game_map.maplinks[dir] = Maplink.new(command.parameters)
break
end
end
}
end
end
end
end

#-------------------------------------------------------------------------------

class Game_Map
attr_accessor :maplinks

alias ml_gm_setup setup
def setup(map_id)
@maplinks = {}
ml_gm_setup(map_id)
end

def width(map_id = @map_id)
if map_id == @map_id
return @map.width
else
return load_data(sprintf("Data/Map%03d.rxdata", map_id)).width
end
end

def height(map_id = @map_id)
if map_id == @map_id
return @map.height
else
return load_data(sprintf("Data/Map%03d.rxdata", map_id)).height
end
end

end

#-------------------------------------------------------------------------------

class Maplink

def initialize(parameters)
@param = parameters
end

def activate
width = $game_map.width(@param[1])
height = $game_map.height(@param[1])
# modify x (p[2]) or y (p[3]) coordinates appropriately
if @param[2] == 0 or @param[2] == width-1
@param[3] = $game_player.y
elsif @param[3] == 0 or @param[3] == height-1
@param[2] = $game_player.x
end
# set up a dummy interpreter just for teleport
interpreter = Interpreter.new
interpreter.parameters = @param
interpreter.index = 0
interpreter.command_201
end

end

#-------------------------------------------------------------------------------

class Game_Player

alias ml_cett check_event_trigger_touch
def check_event_trigger_touch(x, y)
check_maplinks(x,y)
ml_cett(x,y)
end

def check_maplinks(x,y)
if $game_map.valid?(x, y) then return end
dir = nil
if y == $game_map.height then dir = 2
elsif x == -1 then dir = 4
elsif x == $game_map.width then dir = 6
elsif y == -1 then dir = 8
end
if dir != nil
if $game_map.maplinks[dir] != nil
$game_map.maplinks[dir].activate
end
end
end

end

#-------------------------------------------------------------------------------

class Interpreter
attr_accessor :parameters
attr_accessor :index
end

Remarque : A la ligne 7 vous pouvez modifier le nom a mettre pour activer le script.

Screen:

Voir le profil de l'utilisateur

2RPG Maker XP Re: Amélioration de teleportation le Ven 24 Oct - 14:07

Merci de l'apport Robin ^^

Voir le profil de l'utilisateur

3RPG Maker XP Re: Amélioration de teleportation le Sam 25 Oct - 13:27

Zack Fair


Membre Actif
Membre Actif
Merci pour le script robin .
En tout cas , c'est un add-on si on peut le dire , mais c'est valable.


***********Signature************

N'hésitez pas a me poser des questions , je peux toujours vous aider.
Vous débutez en Ruby ? Vous voulez créer vos propres scripts ? Alors , c'est la :http://make-and-graph.superforum.fr/cours-de-ruby-f53/?sid=e4ead003bf5ada2435676a0d824bc275
Suivez les cours que je poste , et vous allez surement étre des bons scripteurs !!
Voir le profil de l'utilisateur http://www.google.com

Contenu sponsorisé


Voir le sujet précédent Voir le sujet suivant Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum