O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

M+ TransferEvents (Ace)

Iniciado por M3T, 15/10/2013 às 16:33

M+ TransferEvents
v1.1 VX Ace



Versão XP
Versão VX

Introdução e características
Este é 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 Uso

Todas 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 - RPG Maker VX Ace
   Feito em: 15/10/13
  
   - 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.rvdata2", mapid))
    map.events[eventid].x = to_x
    map.events[eventid].y = to_y
    nei = $game_map.events.keys.last+1
    map.events[eventid].id = nei
    $game_map.events[nei] = Game_Event.new($game_map.map_id, map.events[eventid])
    SceneManager.scene.spriteset = Spriteset_Map.new
  end
end
#------------------------------M+ Scripts 2013------------------------------#


Enfim, caso encontrem erros ou bug's, me avisem aqui no tópico mesmo, e eu verei o que vou fazer.

Achei bem interessante, não testei mas parece ser muito bom.

Irá ajudar muito mesmo, os eventer's. Assim não precisa ficar copiando e colando em todos os mapas, os mesmos eventos.