Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Wto 29 Gru, 2009 23:45
Nazwy zdarzeń na mapie
~ Nazwy zdarzeń na mapie [VX] ~
Krótki opis
Skrypt wyświetla nazwy nad zdarzeniami (patrz screen)
Autor skryptu
Woratana [woratana@hotmail.com]
Tłumaczenie i poprawki
Ayene [yurika@o2.pl]
Kompatybilność
Tylko VX
Skrypt
Spoiler:
Kod:
#===============================================================
# [VX] Unoszące się nazwy zdarzeń
# Skrypt wyświetla na mapie nazwy zdarzeń
#--------------------------------------------------------------
# Autor: Woratana [woratana@hotmail.com]
# Tłumaczenie i poprawki: Ayene [yurika@o2.pl]
#--------------------------------------------------------------
# Umieść skrypt nad Main
#=================================================================
module Ayene
KOLOR_CZCIONKI = Color.new(0,0,127, 255) # Kolor RGB i przezroczystość 0~255
ROZMIAR_CZCIONKI = 16 # Rozmiar czcionki
NAZWA_CZCIONKI = "Arial" # Czcionka (folder Fonts)
KURSYWA = false # Kursywa (true / false)
POGRUBIENIE = false # Pogrubienie (true / false)
end
class Sprite_Character < Sprite_Base
#=================================================================
# POCZĄTEK KONFIGURACJI
#=================================================================
FLOAT_NAME_SHOW_ALL = false
# Czy chcesz, aby wyświetlały się nazwy wszystkich zdarzeń?
# (true - tak / false - nie)
# Jeżeli wybrano u góry false, nazwę zdarzenia można wyświetlić dopisując [FS]
# w jego edycji...
# np. Statek[FS]
FLOAT_NAME_SHOW_TAG = '[FS]'
# Jeżeli wybrano u góry true, nazwę zdarzenia można ukryć dopisując [FNS]
# w jego edycji...
# np. Statek[FNS]
FLOAT_NAME_NOT_SHOW_TAG = '[FNS]'
# Tutaj można ukryć słowa, które mają się nie wyświetlać w nazwie zdarzenia
# np. FLOAT_NAME_NOT_SHOW_WORDS = ['[ny]', '[ss]', 'lol']
# Wówczas w nazwie zdarzenia nie wyświetlą się słowa [ny], [ss] i lol.
FLOAT_NAME_NOT_SHOW_WORDS = []
FLOAT_NAME_X_OFFSET = 10 # Przesunięcie nazwy zdarzenia w poziomie (+ / -)
FLOAT_NAME_Y_OFFSET = 0 # Przesunięcie nazwy zdarzenia w pionie (+ / -)
FLOAT_NAME_Z = 198 # Przesunięcie nazwy zdarzenia nad (+) lub pod (-) inne zdarzenia.
#=================================================================
# KONIEC KONFIGURACJI
#=================================================================
alias wora_floatevn_sprcha_dis dispose
alias wora_floatevn_sprcha_upd update
def dispose
if !@charname_box.nil? and @charname_box.is_a?(Sprite)
@charname_box.bitmap.dispose
@charname_box.dispose
end
wora_floatevn_sprcha_dis
end
def update
wora_floatevn_sprcha_upd
if @character.is_a?(Game_Event)
if @charname_box.nil?
if (FLOAT_NAME_SHOW_ALL and !@character.event.name.include?(FLOAT_NAME_NOT_SHOW_TAG)) or
(!FLOAT_NAME_SHOW_ALL and @character.event.name.include?(FLOAT_NAME_SHOW_TAG))
@float_charname = @character.event.name.dup
not_show_words = FLOAT_NAME_NOT_SHOW_WORDS.clone.push FLOAT_NAME_SHOW_TAG,
FLOAT_NAME_NOT_SHOW_TAG
not_show_words.each {|w| @float_charname.gsub!(w) {''} }
@charname_box = Sprite.new
@charname_box.z = FLOAT_NAME_Z
bitmap = Bitmap.new(1,1)
nsize = bitmap.text_size(@float_charname)
bitmap.dispose
@charname_box.bitmap = Bitmap.new(nsize.width, nsize.height)
@charname_box.bitmap.font.color = Ayene::KOLOR_CZCIONKI
@charname_box.bitmap.font.size = Ayene::ROZMIAR_CZCIONKI
@charname_box.bitmap.font.name = Ayene::NAZWA_CZCIONKI
@charname_box.bitmap.font.italic = Ayene::KURSYWA
@charname_box.bitmap.font.bold = Ayene::POGRUBIENIE
@charname_box.bitmap.draw_text(0, 0, nsize.width, nsize.height, @float_charname)
else
@charname_box = 0
end
end
if @charname_box.is_a?(Sprite)
@charname_box.x = self.x - (@charname_box.width / 2) + FLOAT_NAME_X_OFFSET
@charname_box.y = self.y - self.oy - @charname_box.height + FLOAT_NAME_Y_OFFSET
end
end
end
end
class Game_Event < Game_Character
attr_reader :event
end
Demo
niepotrzebne
Screenshot
Spoiler:
Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.
Mam mały problem. Kiedy otwieram grę wyskakuje mi okno
"Nazwy Zdarzeń" numer 66. Jest tam u mnie jakies charname_box itd.
O co z tym chodzi?
________________________ Pozdrawiam, bo nie chcę zawsze pisać powyżej - KillYou
PS Jeżeli nie rozumiesz (pomoc) co jest napisane powyżej, to wrzucę screeny :)
The Elect
Twórca: KillYou
Pomocnicy Pr0mes, Spino333, Janus, Kacperer
============================================================
============================================================
Tekst Podpisu:
Podpis - dozwolona ilość znaków:500
Poradził mi Spino, obydwaj mamy tak samo, a u mnie tylko ta
jedna linijka nie działa!
WHY?
[ Dodano: Sro 30 Gru, 2009 14:50 ]
Sorki, już mi działa! To było związane z napisami końcowymi!
________________________ Pozdrawiam, bo nie chcę zawsze pisać powyżej - KillYou
PS Jeżeli nie rozumiesz (pomoc) co jest napisane powyżej, to wrzucę screeny :)
The Elect
Twórca: KillYou
Pomocnicy Pr0mes, Spino333, Janus, Kacperer
============================================================
============================================================
Tekst Podpisu:
Podpis - dozwolona ilość znaków:500
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Sro 30 Gru, 2009 21:23
Co do wyglądu czcionki to podmieniłam skrypt z pierwszego posta - wymagał niewielkich modyfikacji.
Co zaś tyczy się nieistniejących zdarzeń... muszę trochę nad tym pomyśleć. Jak widzisz Woratana tego nie przewidział
Deegi, mam ten sam problem, i też to, że zawsze gdy zdarzenie się skończy (usunie)
to jego nazwa nadal zostaje.
________________________ Pozdrawiam, bo nie chcę zawsze pisać powyżej - KillYou
PS Jeżeli nie rozumiesz (pomoc) co jest napisane powyżej, to wrzucę screeny :)
The Elect
Twórca: KillYou
Pomocnicy Pr0mes, Spino333, Janus, Kacperer
============================================================
============================================================
Tekst Podpisu:
Podpis - dozwolona ilość znaków:500
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Czw 31 Gru, 2009 02:29
Myślałam, myślałam i wymyśliłam, lecz nie jest to zadowalające rozwiązanie, gdyż trzeba trochę się namęczyć. Otóż istnieje odwołanie do skryptu, które zmienia nazwę eventu/zdarzenia, ale tylko na mapie, na którym to odwołanie zostanie zastosowane. Czyli gdy będziemy się znajdować na mapie ID004, to zmienić możemy nazwę zdarzenia tylko z tej mapy - i to jest niestety największy mankament tego rozwiązania.
Niemniej jednak dla tych, którzy uważają, że warto się potrudzić, zamieszczam wspomniane odwołanie:
Gdzie:
ID zdarzenia - to ID eventu/zdarzenia
Nowa nazwa - tłumaczyć nie trzeba
Odwołanie można wykorzystać w następujący sposób.
1. Dla zdarzeń, których jeszcze nie ma nazwę zdarzenia w edycji dajemy 'Cosik', a po aktywacji konkretnego przełącznika (albo po spełnieniu innego warunku) za pomocą wspomnianego odwołania zmieniamy nazwę na 'Cosik[FS]'.
2. Dla zdarzeń. których już nie ma, a ich nazwa nadal sie wyświetla odwrotnie do powyższego przykładu: w edycji 'Cosik[FS]', a po zmianie 'Cosik' lub 'Cosik[FSN]'
1. Uwaga! Jeżeli chcemy, aby nazwa zdarzenia pojawiła się na naszych oczach (zaktualizowała się na bieżąco, a nie po opuszczeniu mapy) po odwołaniu należy umieścić skrypt:
Kod:
$scene = Scene_Map.new
2. Uwaga! Jeśli ktoś chce wykorzystać powyższe odwołanie bez korzystania ze skryptu 'Nazwy zdarzeń', dla poprawnego działania, powinien w Edytorze Skryptów umieścić taki oto skrypt:
Kod:
class Game_Event < Game_Character
attr_reader :event
end
I to wszystko Jeżeli za bardzo namieszałam, to wrzucę demo.
[ Dodano: Sob 30 Sty, 2010 20:50 ]
A skrypt świetny.
________________________ ...Amelanduil & FireBlade words will be remembered... ...Amelanduil & FireBlade acts will be remembered... ...Amelanduil & FireBlade never gonna die...
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum