KrĂłtki opis:
Fajny skrypt pozwalający utworzyć wiadomości które będą wyświetlane po najechaniu myszką na zdarzenie. Obsługa jest bardzo prosta więc dema nie potrzeba.
Autor:
Samarium
Tłumaczenie:
Etam (tłumaczenie częściowe - czyli to co potrzeba)
Kompatybilność:
RPG Maker VX
Skrypt:
Spoiler:
Kod:
#------------------------------------------------------------------------
# MouseOver Version 1.3
# RPG Maker VX
#
# Autor : Samarium
#
# Tłumaczenie : Etam
#
# Utworzony 12 Luty 2008
#
# Przetłumaczony 23 Lipiec 2012
#
# Funkcje : Pozwala wyświetlić okno z tekstem
#
# Zastosowanie: Bardzo proste! Dodaj komentarz zaczynajÄ…cy siÄ™ od [M]
# a następnie wpisz tekst który ma być wyświetlony
# Idź do linii 26, aby zmienić niektóre właściwości.
#
#------------------------------------------------------------------------
def element_event_id
return @element_event.keys # Array
end
def element_event_message(event)
return @element_event[event] # String
end
def element_event_size
return @element_event.size # Integer
end
def cod(list)
# initialisation des variables
for index in 0...list.size
parameters = list[index].parameters
# Si la commande est un commentaire et commence par [M]
if list[index].code == 108 and commentaire(parameters[0])
message_text = parameters[0] + "\n"
# Ajoute aux messages les lignes suivantes
for line_count in 1..5
if list[line_count] != nil
if list[index + line_count].code == 408
message_text += text_sub(list[index + line_count].parameters[0]) + "\n"
end
end
end
return true, message_text
end
end
return false, false
end
def commentaire(text)
# Cherche le [M] et l'efface
text.gsub!(/[\[Mm]\]/) { "\001" }
while ((c = text.slice!(/./m)) != nil)
if c == "\001"
text.sub!(/[\[Mm]\]/, "")
text_sub(text)
return true
end
end
return false
end
def mouse_global_pos
pos = [0, 0].pack('ll')
if @cursor_pos.call(pos) != 0
return pos.unpack('ll')
else
return nil
end
end
def mouse_pos(catch_anywhere = false)
x, y = screen_to_client(*mouse_global_pos)
width, height = client_size
# if catch_anywhere or (x >= 0 and y >= 0 and x < width and y < height)
return x, y
# else
# return $m.x, $m.y
# end
end
def del
if @oldcursor == nil
return
else
@SetClassLong.call(handel ,-12, @oldcursor)
@oldcursor = nil
end
end
end
$scr2cli = Win32API.new('user32', 'ScreenToClient', %w(l p), 'i')
$client_rect = Win32API.new('user32', 'GetClientRect', %w(l p), 'i')
$readini = Win32API.new('kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l')
$findwindow = Win32API.new('user32', 'FindWindowA', %w(p p), 'l')
def screen_to_client(x, y)
return nil unless x and y
pos = [x, y].pack('ll')
if $scr2cli.call(hwnd, pos) != 0
return pos.unpack('ll')
else
return nil
end
end
#---------------------------------------------------------------------
# Game_Pos_Screen_Mouse
#
# Retourne les positions de la souris grâce au module Mouse
#---------------------------------------------------------------------
class Game_Pos_Screen_Mouse
def initialize
@pos_x_mouse = @pos_y_mouse = 0
end
def screen_x
return @pos_x_mouse = Mouse.mouse_pos[0]
end
def screen_y
return @pos_y_mouse = Mouse.mouse_pos[1]
end
end
#---------------------------------------------------------------------
# Window_MouseOver
#
# Affichage de la fenêtre MouseOver. Calcule la taille de la feêtre
# selon la taille du texte.
#---------------------------------------------------------------------
ctab = text.scan(/./m)
for i in 0..ctab.size - 1
if ctab[i] == "\n"
# Prend la ligne la plus grande (pour la taille de la fenêtre)
if lign_size > max_size
max_size = lign_size
end
lign_size = x = 0
y += 1
next
end
lign_size += self.contents.text_size(ctab[i]).width
taille_height = self.contents.text_size(ctab[i]).height
# Affichage du texte
self.contents.draw_text(x, taille_height * y, 20, 20, ctab[i])
x += self.contents.text_size(ctab[i]).width
end
# Calcule de la taille de la fenêtre
@height = self.height = taille_height * y + 32
@width = self.width = max_size + 32
elsif @event_memoire == event
@mouseover_window.visible = false
@event_memoire = 0
end
else
@mouseover_window.visible = false
end
end
new_update
end
end
Screeny:
Spoiler:
Dodatkowe informacje:
Aby stworzyć okienko z wiadomością tworzymy w zdarzeniu komentarz o treści :
"[M]wiadomość którą chcemy zobaczyć" (ale bez cudzysłowiu )
Dzięki. Mam nadzieję że tłumaczenie wystarczy. Można go użyć zamiast skryptu "Nazwy zdarzeń na mapach", a wtedy nie będzie to kolidowało z cieniami zdarzeń.
pw1602 - Ja nie pisałem tego skryptu więc za bardzo ci nie pomogę. :D Spróbuj na nowym projekcie a jak nie to napisz jakich innych skryptów używasz.
Problem pewnie leży w tym że możliwe że masz polskiego ,,mejkera''. Jeśli tak to wklej ten skrypt do angielskiego rpg makera vx, albo jak powidział Etam spróbuj na nowym projekcie
To akurat nie jest błąd. Ja też używam polskiego RPG Makera i mi działa. Trzeba poczekać na kogoś kto będzie wiedział na czym polega ten błąd.
Skoro ma inne skrypty w swoim projekcie to znaczy że dobrze skopiował i ten
Pozatym zawsze można zmienić wcześniejsze skrypty na takie same tylko od innego autora, a efekt niemalże ten sam a gra wtedy może zadziała prawdiłowo
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