M+ TransferEvents
v1.1 VX
Versão XP (http://centrorpg.com/rgss/m-transferevents-5064/)
Versão Ace (http://centrorpg.com/rgss3/m-transferevents-(ace))
Introdução e característicasEste é um script meio simples, eu mesmo esperava que ele ficasse um pouco maior, mas após terminá-lo, percebi a sua simplicidade. Enfim, como o nome já pode dizer, esse script faz com que você tenha a liberdade de transferir um evento de um mapa para o outro, no caso, o mapa atual. O criei pensando nos eventers que querem criar ABS's e para não precisar ficar colocando uns eventos em todos os mapas. E a idéia veio dos demais sistemas de batalha para RPG Maker XP, onde só tem um mapa com aqueles eventos, e esses eventos eram chamados nos outros mapas.
Tenham bom uso.
Instruções de UsoTodas as instruções são encontradas dentro do script, no tópico 2. Utilização.
Script#-----------------------------M+ TransferEvents-----------------------------#
#----------------------------------Por M3T----------------------------------#
=begin
Versão 1.01
- O que mudou?
Existia um bug em que se você criou muitos eventos em um mapa e deletou
bastante, e depois usou o comando de transferir evento, provavelmente algum
evento original foi deletado. Nesta versão, este bug foi corrigido.
1. Descrição |
Este script faz com que você possa criar um evento do outro mapa no mapa atual,
na posição que quiser.
Me inspirei nos diversos sistemas de batalha para RPG Maker XP que tem por aí,
onde existe um mapa só para as ferramentas, e os outros mapas chamam eventos
desse mapa.
2. Utilização |
No evento em que vai chamar o evento de outro mapa, no lugar onde desejar, coloque
um comando de chamar script com o seguinte comando:
transfer_event(id_do_mapa, id_do_evento, posicaox, posicaoy)
Onde:
id_do_mapa = o id do mapa no qual vai ser retirado o evento
id_do_evento = o id do evento que está no outro mapa e você quer transferí-lo
posicaox = coordenada X do mapa atual em que vai aparecer o evento do outro mapa
posicaoy = coordenada Y do mapa atual em que vai aparecer o evento do outro mapa
3. Exemplo |
transfer_event(1, 5, 16, 7)
Neste exemplo acima, o evento de id 5 do mapa de id 1 irá aparecer na coordenada
X 16 e Y 7 do mapa atual.
Pode não parecer, mas é bem simples.
Enfim, tenha bom uso. Não devo nenhum crédito para ninguém, pois foi observando
os scripts Game_Map, Scene_Map e Game_Event que fui montando o script.
=end
$transfer_events = 1.01
class Scene_Map
attr_accessor :spriteset
end
class Game_Interpreter
def transfer_event(mapid, eventid, to_x=0, to_y=0)
map = load_data(sprintf("Data/Map%03d.rvdata", mapid))
map.events[eventid].x = to_x
map.events[eventid].y = to_y
neweventid = $game_map.events.keys.last.id+1
map.events[eventid].id = neweventid
$game_map.events[neweventid] = Game_Event.new($game_map.map_id, map.events[eventid])
$scene.spriteset = Spriteset_Map.new
end
end
#------------------------------M+ Scripts 2011------------------------------#
Enfim, caso encontrem erros ou bug's, me avisem aqui no tópico mesmo, e eu verei o que vou fazer.
Se não lembro desse script, de fato ele é bem útil para ABSs e quem sabe táticos. Obrigado por trazer Matt, espero mais trabalhos seus, quero ver se esses 10 messes fora não atrapalharam em nada na sua skill.