Jordinateur Blob
Nombre de messages : 260 Localisation : Devant mon ordinateur !(enfin sa dépend, peut-être avec ma copine aussi ^^) Humeur/Caractère : Aller a l'école T_T Date d'inscription : 12/05/2006
| Sujet: Systeme de téléportation spécial map-monde Sam 20 Mai - 14:34 | |
| Voici un scripts pour utile pour les maps-monde... By Wachunga Il vous permettra tout comme si vous vous promenez sur un globe, de faire le tour de ce globe, puis de revenir au point de départ...Si par exemple, vous vous trouvez sur votre map monde, et que vous partez de Lindblum et que vous arrivez à Alexandrie, vous continuerez toujours tout droit et vous arriverez de nouveau au point de départ sans pour autant vous être fait téléporté, comme si votre map était infini, sauf que c'est seulement une impression, c'est l'ordinateur qui répéte chaque lieu et qui le colle là où votre map se terminer... Ouvrez l'éditeur de script ( F11 ) et créez en un nouveau au dessus de 'Main' qui portera le nom de 'Maplink' et collez le code ci-dessous : Modifiable à la ligne 7 - 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
| |
|