RESPAWN POR ITEM
descrição
Este script funicona no netplay master 4.9 com a função de teletransportar o jogador a um ponto salvo anteriormente, através do uso de um item
Primeiro passo
cole esse script acima do main:
- Código:
#================================================================
# Item de Retorno
#
# Autor: Maephel
# Colaborador: Odair Neto
#
# Basicamente é um item que quando chamado leva o jogador á um local
# seguro salvo anteriormente.
#
# Para salvar um ponto de retorno use o codigo em chamar script
# em um evento:
#
# $game_actors[1].set_respawnpoint(map,x,y)
# Substituindo:
#
# map pela id do mapa
# x pela coordenada x
# y pela coordenada y
#
#================================================================
module Item_return
#ID do item que teletransportará ao ponto salvo
ITEM = [34]
end
class Game_Map
alias respawn_initialize initialize
alias respawn_update update
def initialize
ini_vars_teleport
respawn_initialize
end
def update
check_teleport if @coords != nil
retorno
respawn_update
end
def ini_vars_teleport
@c_x_ini = nil
@c_y_ini = nil
@coords = nil
@coords_player = nil
@esta_teleportando = false
end
def check_teleport
x = $game_player.x
y = $game_player.y
@coords_player = x + y
if @coords != @coords_player
@esta_teleportando = false
@coords = nil
desligar_barra
end
end
def teleporting
@c_x_ini = $game_player.x
@c_y_ini = $game_player.y
@coords = @c_y_ini + @c_x_ini
ligar_barra
$barra_on = true
@esta_teleportando = true
end
def retorno
if @esta_teleportando == true
$game_variables[11] += 1 if $game_variables[11] <= 100
teleport_return if $game_variables[11] == 100
end
def teleport_return
desligar_barra
$game_temp.player_new_map_id = $game_party.actors[0].respawn_map
$game_temp.player_new_x = $game_party.actors[0].respawn_x
$game_temp.player_new_y = $game_party.actors[0].respawn_y
$game_temp.player_transferring = true
Network::Main.send_animation(15)
$game_player.animation_id = 15
$game_map.update
$game_player.turn_down
Chat.add("Você foi teleportado ao ponto de retorno com sucesso")
@esta_teleportando = false
end
end
end
Segundo passo
para o uso da barra acrescente o script de barra do Peaverin[este foi editado para funcionar como plug and play] (acima do main também):
- Código:
#==============================================================================
# Barra de load
# autor: Peaverin
# edição: Matheus Melo (plug and play)
#==============================================================================
module LOAD
# variavel que armazenará os valor que encherá a barra
VAR = 11
#switch que ativa a barra de carregamento
SWI = 10
end
def ligar_barra
$barra_on = true
$game_variables[11] = 0
$game_switches[10] = true
end
def desligar_barra
$barra_on = false
$game_variables[11] = 0
$game_switches[10] = false
end
class Min < RPG::Sprite
def initialize
super()
# Nome da Hud de base da barra.
@base = RPG::Cache.picture("Actor Base")
@base_rect = Rect.new(0, 0, @base.width, @base.height)
# Nome da Hud da barra cheia.
@M = RPG::Cache.picture("Actor MIN")
self.bitmap = Bitmap.new(@base.width, @base.height)
refresh
end
def update
super
refresh if something_changed?
end
def something_changed?
return true if @old_pic != $game_variables[LOAD::VAR]
return true if @old_x != $game_player.screen_x - 14
return true if @old_y != $game_player.screen_y - 50
return false
end
def refresh
@old_pic = $game_variables[LOAD::VAR]
if $game_switches[LOAD::SWI] == true
@old_x = $game_player.screen_x - 14
@old_y = $game_player.screen_y - 50
self.bitmap.clear
self.x = $game_player.screen_x - 14
self.y = $game_player.screen_y - 50
# Nessa parte abaixo creio que se define
# o limite maximoda barra no casso 100
# $game_variables[LOAD::VAR] / 100
# creio que se colocar /500 a barra
# a barra encherá quando a variavel chegar a 500.
@wid = @M.width * $game_variables[LOAD::VAR] / 100
@M_rect = Rect.new(0, 0, @wid, @base.height)
else
@old_x = $game_player.screen_x - 1000
@old_y = $game_player.screen_y - 1000
self.bitmap.clear
self.x = $game_player.screen_x - 1000
self.y = $game_player.screen_y - 1000
@wid = 0
@M_rect = Rect.new(0, 0, 0, 0)
end
self.bitmap.blt(0, 0, @base, @base_rect)
self.bitmap.blt(0, 0, @M, @M_rect)
end
end
## Modified by Peaverin
class Sprite_Character < RPG::Sprite
alias init initialize
alias upd update
def initialize(view, char)
init(view, char)
if @character.is_a?(Game_Player)
@minbar = Min.new
$minbar = @minbar
end
end
def update
if @character.is_a?(Game_Player) and @minbar != nil
@minbar.refresh
end
upd
end
end
Terceiro passo
adicione este script acima no main
- Código:
class Window_Item < Window_Selectable
alias new_item_initialize initialize
alias new_use_item use_item
def initialize
new_item_initialize
end
def use_item(id, hotbarslot=0)
item = $data_items[id]
if Item_return::ITEM.include?(item.id)
if $barra_on == true
Chat.add ("Você não pode teleportar agora")
else
$game_map.teleporting
end
end
new_use_item(id, hotbarslot=0)
end
end
Quarto passo
e por fim adicione esta imagens a pasta picture:
--------------------------------------------------------------
com o nome "Actor Base"
--------------------------------------------------------------
com nome "Actor MIN"
--------------------------------------------------------------
ambos sem aspas.
qualquer duvida é só perguntar se eu poder ajudar estamos ai! em breve vou postar pro script ser cancelado se sofrer dano.
Última edição por Maephel em Dom Dez 07, 2014 2:43 am, editado 6 vez(es)