Otwarty przez: Ayene Czw 22 Paź, 2009 21:37
Nazwa lokacji na mapie
Autor
Wiadomość
SaE
Ranga RM:
Pomogła: 8 razy Dołączyła: 14 Paź 2007 Posty: 189
Wysłany: Nie 11 Paź, 2009 17:28
Nazwa lokacji na mapie
Witajcie ponownie Mejkerowcy ^^ Oto kolejny skrypt zamieszczony przez mnie, oczywiście nie mojego autorstwa, tylko Moghunter'a.
Zastosowanie skryptu - wyświetla on nawę lokacji, na której znajduje się bohater.
By skrypt działał poprawnie wrzuć obrazek Mpname.png do folderu Graphics/System
A to kod:
Spoiler:
Kod:
#__________________________________________________________________________
# Wyświetlanie nazwy lokacji
#__________________________________________________________________________
# By Moghunter
# korekta SaE
#__________________________________________________________________________
module MOG
# Nazwa czcionki
MPFONT = "Georgia"
# Zanik ON/OFF(True - False).
MPNMFD = true
# Czas zaniku
MPNMTM = 10
# Pozycja okna z nazwą mapy
# 0 = Górne lewo.
# 1 = Dolne lewo.
# 2 = Górne prawo.
# 3 = Dolne prawo.
MPNMPS = 2
# Przełącznik wyłączający nazwę lokacji.
# Włącz w zdarzeniach przełącznik, a nazwa mapy nie będzie się wyświetlać.
WM_SWITCH_VIS_DISABLE = 15
end
#_________________________________________________
###############
# Game_System #
###############
class Game_System
attr_accessor :fdtm
attr_accessor :mpnm_x
attr_accessor :mpnm_y
alias mog_vx06_initialize initialize
def initialize
mog_vx06_initialize
@fdtm = 255 + 40 * MOG::MPNMTM
if MOG::MPNMPS == 0
@mpnm_x = -300
@mpnm_y = 0
elsif MOG::MPNMPS == 1
@mpnm_x = -300
@mpnm_y = 320
elsif MOG::MPNMPS == 2
@mpnm_x = 640
@mpnm_y = 0
else
@mpnm_x = 640
@mpnm_y = 320
end
end
def mpnm_x
return @mpnm_x
end
def mpnm_y
return @mpnm_y
end
def fdtm
if @fdtm <= 0
@fdtm = 0
end
return @fdtm
end
end
############
# Game_Map #
############
class Game_Map
attr_reader :map_id
def mpname
$mpname = load_data("Data/MapInfos.rvdata")
$mpname[@map_id].name
end
end
###############
# Window Base #
###############
class Window_Base < Window
def nd_mapic
mapic = Cache.system("")
end
def draw_mpname(x,y)
mapic = Cache.system("Mpname") rescue nd_mapic
cw = mapic.width
ch = mapic.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 65, mapic, src_rect)
self.contents.font.name = MOG::MPFONT
self.contents.font.size = 22
self.contents.font.bold = true
self.contents.font.shadow = true
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 76, y + 27, 110, 32, $game_map.mpname.to_s,1)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 75, y + 26, 110, 32, $game_map.mpname.to_s,1)
end
end
##########
# Mpname #
##########
class Mpname < Window_Base
def initialize(x , y)
super($game_system.mpnm_x, $game_system.mpnm_y, 250, WLH + 70)
self.opacity = 0
refresh
end
def refresh
self.contents.clear
draw_mpname(10,0)
end
end
#############
# Scene_Map #
#############
class Scene_Map
alias mog_vx06_start start
def start
@mpnm = Mpname.new($game_system.mpnm_x, $game_system.mpnm_y)
@mpnm.contents_opacity = $game_system.fdtm
if $game_switches[MOG::WM_SWITCH_VIS_DISABLE] == false
@mpnm.visible = true
else
@mpnm.visible = false
end
mog_vx06_start
end
alias mog_vx06_terminate terminate
def terminate
mog_vx06_terminate
@mpnm.dispose
end
alias mog_vx06_update update
def update
mog_vx06_update
location_name_update
end
def location_name_update
$game_system.mpnm_x = @mpnm.x
$game_system.mpnm_y = @mpnm.y
if $game_switches[MOG::WM_SWITCH_VIS_DISABLE] == true or $game_system.fdtm <= 0
@mpnm.visible = false
else
@mpnm.visible = true
end
if MOG::MPNMPS == 0 or MOG::MPNMPS == 1
if @mpnm.x < 0
@mpnm.x += 5
elsif @mpnm.x >= 0
@mpnm.x = 0
end
else
if @mpnm.x > 300
@mpnm.x -= 5
elsif @mpnm.x <= 300
@mpnm.x = 300
end
end
@mpnm.contents_opacity = $game_system.fdtm
if MOG::MPNMFD == true
$game_system.fdtm -= 3
end
end
alias mog_vx06_update_transfer_player update_transfer_player
def update_transfer_player
return unless $game_player.transfer?
@mpnm.contents_opacity = 0
mog_vx06_update_transfer_player
if MOG::MPNMPS == 0
$game_system.mpnm_x = -340
$game_system.mpnm_y = 0
elsif MOG::MPNMPS == 1
$game_system.mpnm_x = -340
$game_system.mpnm_y = 320
elsif MOG::MPNMPS == 2
$game_system.mpnm_x = 640
$game_system.mpnm_y = 0
else
$game_system.mpnm_x = 640
$game_system.mpnm_y = 320
end
@mpnm.y = $game_system.mpnm_y
@mpnm.x = $game_system.mpnm_x
$game_system.fdtm = 255 + 60 * MOG::MPNMTM
@mpnm.refresh
end
end
$mogscript = {} if $mogscript == nil
$mogscript["location_name_vx"] = true
________________________ Nie ma śniegu, a na ulicach pełno bałwanów ^^
Rolf
Preferowany:
Dołączył: 27 Wrz 2009 Posty: 12
Wysłany: Nie 11 Paź, 2009 19:44
gdy włączam gre wyskakuje mi błąd. Pokazuje że z linijką 22 jest coś nie tak.
EDIT: Jak robie nowa gra to wsyzstko działa! ale jak np. wczytuje stary zapis to juz nie...ale pozatym wszystko gra.
Ciesze sie ze dalas caly kod o tak. szkoda ze inne skrypty ei sa tak wstawione
Ayene
Ranga RM:
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Nie 11 Paź, 2009 20:25
Jeżeli nadal chcesz rozwiązać problem, wklej tutaj kod z linijki 22 Przekonamy się, co dla kompilatora jest nie do przejścia
________________________
Qukus
Preferowany:
Dołączył: 20 Gru 2009 Posty: 10
Wysłany: Wto 22 Gru, 2009 17:26
No no niezły skrypcik...DZięki
________________________ ...Mam słabość do tych kroperk... xD
Deegi
Preferowany:
Dołączył: 15 Lis 2009 Posty: 29
Wysłany: Wto 22 Gru, 2009 22:12
Jeszcze dodam że możecie sobie zmienic obrazek pod tekstem, żeby bardziej pasował do waszej gry. Wazne by miał takie same wymiary. No niby oczywiste ale jak czasem czytam forum Pomocy VX to teraz dodaje takie info.
R.I.P.
Preferowany:
Pomógł: 9 razy Dołączył: 28 Mar 2010 Posty: 173 Skąd: Warszawa
Wysłany: Pon 29 Mar, 2010 12:43
Hehe śmieszny screenshot ale dobry skrypt ale są dwa takie skrypty na forum muszę za wiadomić ;p.
R.I.P.
Preferowany:
Pomógł: 9 razy Dołączył: 28 Mar 2010 Posty: 173 Skąd: Warszawa
Wysłany: Wto 30 Mar, 2010 13:48
Aaaa,dzięki AYEN właśnie chciałem poprawić w edytuj ;p, bo się skapłem.
kamiler65
Preferowany:
Dołączył: 19 Kwi 2010 Posty: 20 Skąd: Okolice izraela
Wysłany: Pon 31 Maj, 2010 19:01
a możesz zrobić tak by było po lewej?
CreeperCrisis
Preferowany:
Pomógł: 32 razy Dołączył: 01 Maj 2010 Posty: 395
Wysłany: Pon 31 Maj, 2010 19:04
Masz tak:
Kod: # Pozycja okna z nazwą mapy
# 0 = Górne lewo.
# 1 = Dolne lewo.
# 2 = Górne prawo.
# 3 = Dolne prawo.
MPNMPS = 2
Zmień na co chcesz.
tracersgta
Preferowany:
Pomógł: 45 razy Dołączył: 10 Sty 2011 Posty: 612 Skąd: mam wiedzieć?
Wysłany: Sro 12 Sty, 2011 14:01
Jak ktoś nie chce z obrazkiem to można i bez niego.
________________________ I'm a tiger! I roar. I hunt, I climb, I eat, I wash, I sleep!
Gość, jeżeli pomogłem daj "Pomógł"
Azux
Preferowany:
Pomógł: 8 razy Dołączył: 28 Lut 2011 Posty: 87
Wysłany: Pon 28 Lut, 2011 14:24
a jak zmienic polozenie napisow? poniewaz zrobilem wlasny obrazek lecz napisy "nie tarfily" w centrum
________________________
Pracuje nad "Rakrato"
Mapki: 0,3%
Skrypty: !?!?-%
Przedmioty: 0,1%
Quest: 0,3%
Mikołaj
Pomógł: 7 razy Dołączył: 11 Lut 2011 Posty: 84
Wysłany: Wto 01 Mar, 2011 16:35
Skrypt jest OK,nawet fajny .
Kornels
Preferowany:
Dołączył: 04 Mar 2011 Posty: 2
Wysłany: Pią 04 Mar, 2011 11:58
Fajne mi działa :D
bartek2940
Preferowany:
Pomógł: 1 raz Dołączył: 10 Kwi 2010 Posty: 88
Wysłany: Nie 06 Mar, 2011 20:46
Skrypt jest Kozacki!
Sam jeszcze sobie wykonałem obrazek
I jest wogule super!
Jednak trzeba uważać na długość nazwy lokacji, bo może trochę uciąć
________________________ Obecny projekt - Chwilowo brak
wojtas025c
Preferowany:
Dołączył: 29 Lip 2010 Posty: 106 Skąd: Lubin
Wysłany: Pon 07 Mar, 2011 18:10
Ej możesz zrobić że grafika ładuje się z folderu Data\img\ pls
________________________ "Jestem jaki jestem i nic tego nie zmieni"