- Сообщений: 4
- Спасибо получено: 0
Нужен скрипт на имена над головой
VXACE
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Cannabis пишет: Нужно так что бы у каждого чара(события) было имя над головой,при передвижение оно должно двигаться с ним.
VXACE
Этот скрипт вам поможет.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- TechnoTurian
-
- Не в сети
- Осваиваюсь на форуме
-
- Сообщений: 35
- Спасибо получено: 3
MOG - Event Text Popup
#==============================================================================
# +++ MOG - Event Text Popup (v1.0) +++
#==============================================================================
# By Moghunter
# www.atelier-rgss.com
#==============================================================================
# Apresenta o um texto em cima do evento.
#==============================================================================
# Para ativa basta colocar um comentário com o prefixo:
#
# <Text - X>
#
# X - Texto apresentado no evento.
#
# Exemplo
#
# <Text - Teleport>
# <Text - Save Point>
#
#==============================================================================
module MOG_EVENT_TEXT_POPUP
#Definição da fonte.
FONT_NAME = "Arial"
FONT_SIZE = 16
FONT_BOLD = true
FONT_COLOR = Color.new(255,255,255)
#Definição da prioridade do Texto
SCREEN_Z = 1
end
#==============================================================================
# ■ Game CharacterBase
#==============================================================================
class Game_CharacterBase
attr_accessor :text
attr_accessor :opacity
attr_accessor :erased
end
#==============================================================================
# ■ Game Event
#==============================================================================
class Game_Event < Game_Character
#
# ● Initialize
#
alias mog_event_text_initialize initialize
def initialize(map_id, event)
mog_event_text_initialize(map_id, event)
end
#
# ● Setup Page Setting
#
alias mog_event_text_setup_page_settings setup_page_settings
def setup_page_settings
mog_event_text_setup_page_settings
setup_event_text
end
#
# ● Setup Event Text
#
def setup_event_text
return if @list == nil
for command in @list
if command.code == 108
if command.parameters[0] =~ /<Text = ([^>]*)>/
@text = $1
end
end
end
end
end
#==============================================================================
# ■ Sprite Character Text
#==============================================================================
class Sprite_Character_Text < Sprite_Base
include MOG_EVENT_TEXT_POPUP
#
# ● Initialize
#
def initialize(viewport = nil,character,sprite)
super(viewport)
text_size = character.text.to_s.split(//)
w = 32 + (FONT_SIZE / 2) * text_size.size rescue nil
w = 32 if w == nil or w < 32
self.bitmap = Bitmap.new(w,32)
self.bitmap.font.name = FONT_NAME
self.bitmap.font.size = FONT_SIZE
self.bitmap.font.bold = FONT_BOLD
self.bitmap.font.color = FONT_COLOR
self.bitmap.draw_text(0,0,self.width,self.height,character.text.to_s,1) rescue nil
update_position(character,sprite)
end
#
# ● Dispose
#
def dispose
super
self.bitmap.dispose
end
#
# ● Update Position
#
def update_position(character,sprite)
if character.erased
self.visible = false
return
end
self.x = character.screen_x - self.width / 2
self.y = character.screen_y - (sprite.height + self.height)
self.z = character.screen_z + SCREEN_Z
self.visible = character.transparent == true ? false : true
self.opacity = character.opacity
end
end
#==============================================================================
# ■ Sprite Character
#==============================================================================
class Sprite_Character < Sprite_Base
#
# ● Initialize
#
alias mog_event_text_initialize initialize
def initialize(viewport, character = nil)
mog_event_text_initialize(viewport, character)
@character_text = ""
create_event_text
end
#
# ● Create Event Text
#
def create_event_text
return if @character == nil
return if @character.text == nil
return if @character.text == @character_text
dispose_event_text
@event_text = Sprite_Character_Text.new(viewport,@character,self)
@character_text = @character.text
end
#
# ● Dispose
#
alias mog_event_text_dispose dispose
def dispose
mog_event_text_dispose
dispose_event_text
end
#
# ● Dispose Event Text
#
def dispose_event_text
return if @event_text == nil
@event_text.dispose
@event_text = nil
end
#
# ● Update
#
alias mog_event_text_update update
def update
mog_event_text_update
create_event_text
update_event_text
end
#
# ● Update Event Text
#
def update_event_text
return if @event_text == nil
@event_text.update_position(@character,self)
end
end
$mog_rgss3_event_text_popup = true
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Cannabis пишет: Установил не отображает ник!В чём проблема?Я даже не знаю
.
Ну откуда скрипту знать над каким ивентом ему положено отображать ник и какой?
Наука, к сожалению, пока не смогла создать такой умный скрипт.
Напишите на странице ивента коммментарий в виде [ETDname],
например, Comment:[ETDЛила]
B наступит счастье:
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- TechnoTurian
-
- Не в сети
- Осваиваюсь на форуме
-
- Сообщений: 35
- Спасибо получено: 3
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
TechnoTurian пишет: Выходит, все подобные скрипты пишут ники одним и тем же шрифтом? Можно его как-то сменить?
Тот скрипт на который дал ссылку я, явной настройки шрифта (кроме размера и цвета) не имеет и использует дефолтный для игры (в моем случае установлена "Anklada™").
В том скрипте на который вы дали ссылку за шрифт отвечает
FONT_NAME = "Arial" - вот название шрифта, который используется скриптом. Меняйте на здоровье.
Если вы имели в виду опцию, чтобы разные ники в игре писались разными шрифтами, то это надо скрипты дорабатывать.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Попробуй скрипт от LittleDrago скачать правда, он требует наличия скрипта Drago's core engine (ссылка у него на странице).Guren_san пишет:
Ни то, не другое. Не отображает имя, хотя ставлю все правильно в комментах
Всего хорошего, и спасибо за рыбу
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Sypherot пишет:
Попробуй скрипт от LittleDrago скачать правда, он требует наличия скрипта Drago's core engine (ссылка у него на странице).Guren_san пишет:
Ни то, не другое. Не отображает имя, хотя ставлю все правильно в комментах
Опять ничего не выходит, точнее не могу понять как заставить нпс отображаться с ником, англ не знаю
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
JackCL пишет: Guren_san, ну так сложно понять в чем именно у вас проблема. Залейте вашу демку куда-нибудь, посмотрим, что там.
yadi.sk/d/jxlj-l_vWBxFr
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Guren_san пишет:
JackCL пишет: Guren_san, ну так сложно понять в чем именно у вас проблема. Залейте вашу демку куда-нибудь, посмотрим, что там.
yadi.sk/d/jxlj-l_vWBxFr
350 мегабайт? Серьезно?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Скажите а как в этом скрипте изменить цвет имени над головой у определённого человека или группы?!Например бандиты с красными никами,а мирные граждане с зелёными?!JackCL пишет: Ну попробуйте старую версию:
ВНИМАНИЕ: Спойлер!Code:#============================================================================== # ** Event Text Display #============================================================================== # Author: Áص¹ (RGSS) # Edited by Death10 (RGSS3) # http://itbinhdan.com #============================================================================== # Comment: [ETDname][NNnickname] #============================================================================== #============================================================================== # ** Game_Character #============================================================================== class Game_Character #-------------------------------------------------------------------------- # * Defaults # # ~ Default Player Display Options (Non-Case Sensitive): # 'Name', 'Nickname', 'Class', 'Level', 'Hp', 'Sp' #-------------------------------------------------------------------------- ETD_Default_EventText_Color = Color.new(255, 255, 255) ETD_Default_PlayerText_Color = Color.new(255, 255, 255) ETD_Default_EventText_Color2 = Color.new(255, 255, 255) ETD_Default_PlayerText_Color2 = Color.new(255, 255, 255) ETD_Default_PlayerText = '' ETD_Default_PlayerText2 = '' #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :etd_display_shadow_color attr_accessor :etd_display_color attr_accessor :etd_display_text attr_accessor :etd_display_shadow_color2 attr_accessor :etd_display_color2 attr_accessor :etd_display_text2 #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias seph_etd_gmchr_init initialize #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize # Sets ETD Options @etd_display_color = self.is_a?(Game_Player) ? ETD_Default_PlayerText_Color : ETD_Default_EventText_Color @etd_display_color2 = self.is_a?(Game_Player) ? ETD_Default_PlayerText_Color2 : ETD_Default_EventText_Color2 # Original Initialization seph_etd_gmchr_init end end #============================================================================== # ** Game_Event #============================================================================== class Game_Event < Game_Character #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias seph_etd_gmevt_refresh refresh #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh # Original Refresh Method seph_etd_gmevt_refresh # Erase ETD Display Text @etd_display_text = nil @etd_display_text2 = nil # Checks to see if display text unless @list.nil? || @erased for i in 0...@list.size if @list[i].code == 108 @list[i].parameters[0].dup.gsub!(/\[[Ee][Tt][Dd](.+?)\]/) do @etd_display_color = ETD_Default_EventText_Color @etd_display_text = $1 end if @list[i].code == 108 @list[i].parameters[0].dup.gsub!(/\[[Nn][Nn](.+?)\]/) do @etd_display_color2 = ETD_Default_EventText_Color2 @etd_display_text2 = $1 end end end end end end end #============================================================================== # ** Game_Player #============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias seph_etd_gmplyr_refresh refresh alias etd_update update #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def etd # Gets First Actor actor = $game_party.members[0] # Determines Text case ETD_Default_PlayerText.dup.downcase when 'name' ; txt = actor.name when 'nickname' ; txt = actor.nickname when 'class' ; txt = actor.class.name when 'level' ; txt = "Level: #{actor.level}" when 'hp' ; txt = "HP: #{actor.hp} / #{actor.mhp}" when 'sp' ; txt = "SP: #{actor.sp} / #{actor.msp}" else ; txt = '' end # Determines Text case ETD_Default_PlayerText2.dup.downcase when 'name' ; txt2 = actor.name when 'nickname' ; txt2 = actor.nickname when 'class' ; txt2 = actor.class.name when 'level' ; txt2 = "Level: #{actor.level}" when 'hp' ; txt2 = "HP: #{actor.hp} / #{actor.mhp}" when 'sp' ; txt2 = "SP: #{actor.sp} / #{actor.msp}" else ; txt2 = '' end # Creates Text Display @etd_display_color = ETD_Default_PlayerText_Color @etd_display_text = txt @etd_display_color2 = ETD_Default_PlayerText_Color2 @etd_display_text2 = txt2 end def refresh seph_etd_gmplyr_refresh etd end def update etd_update etd end end #============================================================================== # ** Sprite_Character #============================================================================== class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- if @seph_etd_spchr.nil? alias seph_etd_spchr_update update alias seph_etd_spchr_dispose dispose @seph_etd_spchr = true end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Original update Method seph_etd_spchr_update # Character Display Update Method update_display_text update_display_text2 end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose # Original Dispose seph_etd_spchr_dispose # Dispose ETD Sprite dispose_etd_sprite dispose_etd_sprite2 end #-------------------------------------------------------------------------- # * Dispose ETD Sprite #-------------------------------------------------------------------------- def dispose_etd_sprite # Dispose ETD Sprite unless @_etd_text_sprite.nil? @_etd_text_sprite.dispose @_etd_text_sprite = nil end end def dispose_etd_sprite2 # Dispose ETD Sprite unless @_etd_text_sprite2.nil? @_etd_text_sprite2.dispose @_etd_text_sprite2 = nil end end #-------------------------------------------------------------------------- # * Update Display Sprite #-------------------------------------------------------------------------- def update_display_text # If Character Has No ETD if @character.etd_display_text.nil? # Dispose ETD Sprite dispose_etd_sprite return end # If ETD Text Sprite Doesn't Exist if @_etd_text_sprite.nil? # Create ETD Text Sprite create_etd_sprite return end # If ETD Sprite Parameters Don't Match Characters unless @_etd_display_text == @character.etd_display_text && @_etd_display_color == @character.etd_display_color && @_etd_display_shadow_color == @character.etd_display_shadow_color # Dispose Sprite dispose_etd_sprite # Recreate Sprite create_etd_sprite end # Update ETD Sprite Position @_etd_text_sprite.x = self.x @_etd_text_sprite.y = self.y - self.oy / 2 - 41 end def update_display_text2 # If Character Has No ETD if @character.etd_display_text2.nil? # Dispose ETD Sprite dispose_etd_sprite2 return end # If ETD Text Sprite Doesn't Exist if @_etd_text_sprite2.nil? # Create ETD Text Sprite create_etd_sprite2 return end # If ETD Sprite Parameters Don't Match Characters unless @_etd_display_text2 == @character.etd_display_text2 && @_etd_display_color2 == @character.etd_display_color2 && @_etd_display_shadow_color2 == @character.etd_display_shadow_color2 # Dispose Sprite dispose_etd_sprite2 # Recreate Sprite create_etd_sprite2 end # Update ETD Sprite Position @_etd_text_sprite2.x = self.x @_etd_text_sprite2.y = self.y - self.oy / 2 - 24 end #-------------------------------------------------------------------------- # * Create ETD Sprite #-------------------------------------------------------------------------- def create_etd_sprite # Creates Display Bitmap bitmap = Bitmap.new(162, 40) # Draws ETD Display Text bitmap.font.color = @character.etd_display_color bitmap.font.size = 16 bitmap.draw_text(0, 0, 161, 40, @character.etd_display_text, 1) # Creates Display Text Sprite @_etd_text_sprite = Sprite.new(self.viewport) @_etd_text_sprite.bitmap = bitmap @_etd_text_sprite.ox = 80 @_etd_text_sprite.oy = 20 @_etd_text_sprite.x = self.x @_etd_text_sprite.y = self.y - self.oy / 2 - 41 @_etd_text_sprite.z = 3000 @_etd_text_sprite.visible = true # Saves ETD Text @_etd_display_text = @character.etd_display_text @_etd_display_color = @character.etd_display_color @_etd_display_shadow_color = @character.etd_display_shadow_color end def create_etd_sprite2 # Creates Display Bitmap bitmap2 = Bitmap.new(162, 40) # Draws ETD Display Text bitmap2.font.color = @character.etd_display_color2 bitmap2.font.size = 22 bitmap2.draw_text(0, 0, 161, 40, @character.etd_display_text2, 1) # Creates Display Text Sprite @_etd_text_sprite2 = Sprite.new(self.viewport) @_etd_text_sprite2.bitmap = bitmap2 @_etd_text_sprite2.ox = 80 @_etd_text_sprite2.oy = 20 @_etd_text_sprite2.x = self.x @_etd_text_sprite2.y = self.y - self.oy / 2 - 24 @_etd_text_sprite2.z = 3000 @_etd_text_sprite2.visible = true # Saves ETD Text @_etd_display_text2 = @character.etd_display_text2 @_etd_display_color2 = @character.etd_display_color2 @_etd_display_shadow_color2 = @character.etd_display_shadow_color2 end end
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
