Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
5 participantes
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Tutoriais
Página 1 de 1
Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
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)
Maephel- Ocasional
- Mensagens : 212
Créditos : 18
Re: Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
Teste o script modificado por min, coloque acima do main:
Mude o nome da imagem "Actor MIN" para "RspwnBar"
Esse script só serve de teste, depois vou mudar.
- Código:
#----------------------------------------------------------------
# Respawn Script
# By blackcrow - 30/10/2014
#----------------------------------------------------------------
# Como usar ?
#-------------
# Para usar basta criar um item consumível no banco de
# dados e guardar o ID na variável ITEMS
#----------------------------------------------------------------
# Configuração
#-------------
# ANIM = ID da animação que será executada no respawn,false = nenhum
# LOAD = true para ativar a barra de carregamento do respawn, false = nenhum
# ITENS = ID do item no banco de dados, adicione os IDs entre
# vírgulas dentro dos colchetes. exemplo: ITEMS = [1,20,30]
#-----------------------------------------------------------------
module GoRespawn
ANIM = 15
LOAD = true
ITEMS = [34,35,36,37]
def self.Loading
@loading
end
def self.Loading=(v)
@loading = v
end
def self.is_item?(id)
for i in 0...ITEMS.size
if ITEMS[i] == id
$game_party.lose_item(id,1)
LOAD ? @loading = true : respawn
return true
end
end
return false
end
def self.respawn
$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_Netplay.closewindows
if ANIM
Network::Main.send_animation(ANIM)
$game_player.animation_id = ANIM
end
$game_temp.player_transferring = true
Chat.add("Respawn realizado com sucesso!")
end
end
class RespawnBar < RPG::Sprite
def initialize
super()
@base = RPG::Cache.picture("RspwnBase")
@bar = RPG::Cache.picture("RspwnBar")
@cont = 0
self.bitmap = Bitmap.new(@base.width,@base.height)
self.z = 999
end
def update
super
refresh if GoRespawn.Loading
end
def refresh
self.visible = true if !self.visible
self.bitmap.clear
self.x = $game_player.screen_x - 14
self.y = $game_player.screen_y - 50
@cont += 1
self.bitmap.blt(0,0,@base,Rect.new(0,0,@base.width,@base.height))
self.bitmap.blt(0,0,@bar,Rect.new(0,0,@bar.width*@cont/100,@bar.height))
if @cont == 100
self.visible = false
GoRespawn.Loading = false
@cont = 0
GoRespawn.respawn
end
end
end
class Scene_Map
alias alias_main_draw main_draw
alias alias_dispose dispose
alias alias_update update
def main_draw
@rspwnbar = RespawnBar.new if GoRespawn::LOAD
alias_main_draw
end
def dispose
@rspwnbar.dispose if @rspwnbar != nil
alias_dispose
end
def update
@rspwnbar.update if @rspwnbar != nil
alias_update
end
end
- Código:
def use_item(id, hotbarslot=0)
item = $data_items[id]
if item.is_a?(RPG::Item)
$game_temp.common_event_id = item.common_event_id if item.common_event_id > 0
if $game_party.item_can_use?(item.id)
if item.consumable
if $scene.equip_window.notreqlevel(0,item.id) > 0
Chat.add("#{Vocab::NOTREQLEVEL} #{item.name}.",Config::ERROR_COLOR)
return
end
return if GoRespawn.is_item?(item.id)
$game_party.actors[0].item_effect(item)
$game_system.se_play(item.menu_se)
Network::Main.send_animation(item.animation1_id)
$game_player.animation_id = item.animation1_id
Network::Main.send_vitals
$game_party.send_information
$game_party.actors[0].hotkey[hotbarslot] = 0 if $game_party.item_number(id) == 1 and Config::REMOVE_ITEM and hotbarslot > 0
$game_party.lose_item(item.id, 1)
end
end
end
end
Mude o nome da imagem "Actor MIN" para "RspwnBar"
Esse script só serve de teste, depois vou mudar.
blackcrow- Semi-Experiente
- Mensagens : 111
Créditos : 41
Re: Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
deu script is hanging
Maephel- Ocasional
- Mensagens : 212
Créditos : 18
Re: Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
Tente entrar no jogo novamente quando acontecer esse erro.
blackcrow- Semi-Experiente
- Mensagens : 111
Créditos : 41
Re: Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
E eu não entendi direito o script!
Maephel- Ocasional
- Mensagens : 212
Créditos : 18
Re: Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
Basta usar aquele script, n necessita de nenhum outro.
No banco de dados faça um item consumível e coloque o ID (o ID é o número do item no banco de dados) desse item na variável ITEMS = [ID do item]
No jogo use o item consumível que vc criou no banco de dados (para usar clique com o botão direito do mause no item).
Vc sabe o minimo de programação em Ruby ? se não, ficará perdido mesmo.
No banco de dados faça um item consumível e coloque o ID (o ID é o número do item no banco de dados) desse item na variável ITEMS = [ID do item]
No jogo use o item consumível que vc criou no banco de dados (para usar clique com o botão direito do mause no item).
Vc sabe o minimo de programação em Ruby ? se não, ficará perdido mesmo.
blackcrow- Semi-Experiente
- Mensagens : 111
Créditos : 41
Re: Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
ta atualizado! e mais facil de entender! com todo o respeito blackcrow
Maephel- Ocasional
- Mensagens : 212
Créditos : 18
Re: Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
@blackcrow
É que o script da barra dele serve pra outros sistemas já o seu contem uma barra dedicada ao mesmo
ele pode colocar junto os dois scripts tb o do item retorno e a class Window_Item
É que o script da barra dele serve pra outros sistemas já o seu contem uma barra dedicada ao mesmo
ele pode colocar junto os dois scripts tb o do item retorno e a class Window_Item
odairneto- Iniciante
- Mensagens : 47
Créditos : 7
Re: Teletransporte ao Respawn por item (NPM 4.9) [Com barrinha de load]
legal :o se eu for usar np algum dia adicionarei isso (pena que nunca vou usar hu3uh3uh3)
_________________
Assinatura removida pela Staff
^ Tenho nova, surprise
Swordsman- Semi-Experiente
- Mensagens : 89
Créditos : 13
Tópicos semelhantes
» [Resolvido] Como remover a barrinha de HP de um só monstro no UNP Pro 1.0?
» pegar item e por item no inventário por comando
» Respawn NP
» Respawn De Montros
» Respawn Point
» pegar item e por item no inventário por comando
» Respawn NP
» Respawn De Montros
» Respawn Point
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Tutoriais
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos