Galera Eu Tenho um Script Que Faz com Que Apareça o Nome do Personagem e dos NPC encima deles com o Comentario "nome" ele funcionava perfeitamente mas criei um mapa e fiz um npc la e fiz mais de 15 eventos e todos eu coloquei o comentario "nome" dai quando eu fui abrir o game ele deu esse erro!
Por Favor me Ajuda Alguem Preciso Muito Desse Script!
o Game é Offline!
o Erro se repete numa dungeon minha onde tem muitos eventos tambem!
Esse é o Script!
Por Favor me Ajuda Alguem Preciso Muito Desse Script!
o Game é Offline!
o Erro se repete numa dungeon minha onde tem muitos eventos tambem!
Esse é o Script!
- Spoiler:
- #===================================================================
# Nome dos Eventos 1.1
# Autor: Madajuv
#-------------------------------------------------------------------
# O script gera efeitos visuais, ele mostra o nome do personagem
# e/ou dos eventos do mapa em cima, ou em baixo dos mesmos.
# Pode-se ativar ou não que a distância entre o personagem e os
# eventos alteram a opacidade do nome do evento.
# Para fazer aparecer o nomes de um evento, crie um comentário
# no seu evento e nesse comentário você deve escrever:
#
# nome
#
# Letras maiúsculas, ou minúsculas, ou misto, tanto faz.
#
#-------------------------------------------------------------------
# Log
#-------------------------------------------------------------------
# Versão 1.0
# - O script por si só
# Versão 1.1
# - Correção do bug de mostrar nome de eventos/personagem
# "invisível" ou apagado (no caso dos eventos).
#
# Outras configurações, são editadas abaixo.
#===================================================================
# Edite Aqui:
#-------------------------------------------------------------------
module Mada
# O nome aparece no topo do char ou abaixo dele?
# true para topo, false para abaixo dele
NDE_Topo = true
# Distância entre o gráfico do char e o nome
NDE_Dist = 12
# Tamanho da fonte do nome
NDE_Tam_Fonte = 14
# Cor das letras do nome, em RGB
NDE_Cor = [255, 255, 255]
# Desenhar uma borda para o nome?
# true para sim, false para não
NDE_Borda = true
# Cor da borda, em RGB
NDE_Borda_Cor = [0, 0, 0]
# O nome é escrito em negrito?
# true para sim, false para não
NDE_Negrito = true
# O nome é escrito em itálico?
# true para sim, false para não
NDE_Italico = false
# Aparece o nome do personagem?
# true para sim, false para não
NDE_Personagem = true
# Ativar efeito de opacidade de acordo com a distância?
# true para sim, false para não
NDE_Opa_Dist = true
# Valor que define o quão rápido o nome dos eventos some:
# Interfere somente se você usar o efeito distância-opacidade
NDE_Opa_fator = 2
end
#-------------------------------------------------------------------
# Fim da Edição
#===================================================================
class Game_Event < Game_Character
attr_reader :erased
def name; return @event.name; end; end
class Nome < Sprite
def initialize(viewport, character = nil)
super(viewport); @character = character;
self.bitmap = Bitmap.new(120, 24)
nome = @character.is_a?(Game_Player) ? $game_actors[1].name : @character.name
self.bitmap.font.size = Mada::NDE_Tam_Fonte
self.bitmap.font.bold = Mada::NDE_Negrito
self.bitmap.font.italic = Mada::NDE_Italico
if Mada::NDE_Borda
self.bitmap.font.color = Color.new(Mada::NDE_Borda_Cor[0], Mada::NDE_Borda_Cor[1], Mada::NDE_Borda_Cor[2])
self.bitmap.draw_text(-1, -1, 120, 24, nome, 1)
self.bitmap.draw_text(1, -1, 120, 24, nome, 1)
self.bitmap.draw_text(-1, 1, 120, 24, nome, 1)
self.bitmap.draw_text(1, 1, 120, 24, nome, 1)
end
self.bitmap.font.color = Color.new(Mada::NDE_Cor[0], Mada::NDE_Cor[1], Mada::NDE_Cor[2])
self.bitmap.draw_text(0, 0, 120, 24, nome, 1)
self.ox = 60; self.oy = 12
@top = Mada::NDE_Topo
@bit1 = "RPG::Cache.tile($game_map.tileset_name, @t_id, 0)"
@bit2 = "RPG::Cache.character(@ch_n, 0)"
self.opacity = 255
update
end
def update
super
if @t_id != @character.tile_id || @ch_n != @character.character_name
@t_id = @character.tile_id; @ch_n = @character.character_name
bit = @t_id >= 384 ? eval(@bit1) : eval(@bit2)
@desv_y = bit.height/4
end
self.x = @character.screen_x
self.y = @top ? top_soma : bai_soma
self.opacity = 255 - Mada::NDE_Opa_fator*dista if Mada::NDE_Opa_Dist
apa
end
def top_soma; return @character.screen_y - (@desv_y + Mada::NDE_Dist); end;
def bai_soma; return @character.screen_y + Mada::NDE_Dist; end;
def dista; return (@character.x - $game_player.x)**2 + (@character.y - $game_player.y)**2; end;
def apa
if @character.character_name == '' || @character.opacity == 0
dispose
return
end
end
end
class Spriteset_Map
alias mad_nde_sm_i initialize
def initialize
mad_nde_sm_i
@cn = []
for i in $game_map.events.keys
for j in $game_map.events[i].list
if j.code == 108 || j.code == 408
if j.parameters[0].downcase.include?("nome")
@cn.push(Nome.new(@viewport2, $game_map.events[i]))
break
end
end
end
end
@cn.push(Nome.new(@viewport2, $game_player)) if Mada::NDE_Personagem
end
alias mad_nde_sm_d dispose
def dispose
@cn.each { |nome| nome.dispose }
mad_nde_sm_d
end
alias mad_nde_sm_u update
def update
unless @cn.nil?
for i in 0...@cn.size
@cn[i].update
if @cn[i].disposed?
@cn[i] = nil
end
end
@cn.compact!
end
mad_nde_sm_u
end
end