UltimaForum

Skrypty [VX] - Cień pod zdarzeniami

KillYou - Sob 23 Sty, 2010 21:03
Temat postu: Cień pod zdarzeniami
Zacznijmy od tego, że skrypt nie jest mój, ale go przetłumaczyłem (zielone napisy w skrypcie)

Instalacja:
1.Umieść skrypt nad 'Main'
2.Potrzebujesz tego obrazka:
Spoiler:




Skrypt:

Spoiler:

Kod:

  # ■ Cienie pod zdarzeniami [VX]
   # Autor : Minto
   # Tłumaczenie i poprawki: KillYou
   #------------------------------------------------------------------------------
   # Skrypt umożliwia dodanie cienia pod zdarzenie
   #==========================================================================
   # Zapisz obrazek w Gra/Graphics/picture jako 'Shadow'
   # Użyj "S%", w nazwie zdarzenia, aby cień działał.
   #==========================================================================
   # Sprite_Shadow_Module
   #------------------------------------------------------------------------------
   module Sprite_Shadow_Module
     def dispose
       unless @character_shadow.nil? then
         @character_shadow.bitmap.dispose
         @character_shadow.dispose
       end
       super
     end
     #--------------------------------------------------------------------------
     # Opcje
     #--------------------------------------------------------------------------
     def character_shadow_set
       @character_shadow = Sprite.new(self.viewport)
       # W linijce 26 wpisz nazwę  obrazka "cień"
       @character_shadow.bitmap = Cache.picture("Shadow")
       # Przejrzystość
       @character_shadow.opacity = (self.character.opacity / 2)
       # Rozmiar cienia / pozycja
       @shadow_size = @character_shadow.bitmap.width
       @character_shadow.zoom_x = ((@cw * 100) / @shadow_size) / 100.0
       @character_shadow.zoom_y = @character_shadow.zoom_x
       ox_rate = ((32 * 100) / @cw) / 100.0
       oy_rate = ((48 * 100) / @ch) / 100.0
       @character_shadow.ox = self.ox * ox_rate
       @character_shadow.oy = ((self.oy * oy_rate) / 2) - 4
       @last_character_name = @character_name.dup
       # ‰e‚ð�X�V
       update_character_shadow
     end
     #--------------------------------------------------------------------------
     #--------------------------------------------------------------------------
     def update_character_shadow
       if @character_shadow == nil then
         return
       end
       if @character.jumping? then
         @character_shadow.visible = false
         return
       end
       if @last_character_name_shadow != @character_name
         @last_character_name_shadow = @character_name
         @shadow_size = @character_shadow.bitmap.width
         @character_shadow.zoom_x = ((@cw * 100) / @shadow_size) / 100.0
         @character_shadow.zoom_y = @character_shadow.zoom_x
         @zoom_ox = @character_shadow.zoom_x
         @zoom_oy = @character_shadow.zoom_y
         ox_rate = ((32 * 100) / @cw) / 100.0
         oy_rate = ((48 * 100) / @ch) / 100.0
         @character_shadow.ox = self.ox * ox_rate
         @character_shadow.oy = ((self.oy * oy_rate) / 2) - 4
       end
       @character_shadow.x = self.x
       @character_shadow.y = self.y
       @character_shadow.zoom_x = @zoom_ox * self.zoom_x
       @character_shadow.zoom_y = @zoom_oy * self.zoom_y
       @character_shadow.visible = (self.visible and @character_name != "")
       @character_shadow.opacity = (self.character.opacity / 2)
     end
   end
   #==========================================================================
   # W grze_zdarzenie
   #------------------------------------------------------------------------------
   class Game_Event < Game_Character
     attr_reader   :event
   end
   #==========================================================================
   # Sprite_Character
   #------------------------------------------------------------------------------
   class Sprite_Character < Sprite_Base
     include(Sprite_Shadow_Module)
     alias :MINTO_Character_Shadow_initialize :initialize
     def initialize(viewport, character = nil)
       MINTO_Character_Shadow_initialize(viewport, character)
       case @character
       when Game_Player then
         character_shadow_set
       when Game_Event then
             # Cień pod zdarzeniem
         if @character.event.name.include?("S%") == true then
           character_shadow_set
         end
       end
     end
     #--------------------------------------------------------------------------
     #--------------------------------------------------------------------------
     alias :update_MINTO_Character_Shadow :update
     def update
       update_MINTO_Character_Shadow
       update_character_shadow
     end
   end



Screen :
Spoiler:


Miłego cienia :)

UWAGA: Skrypt trochę gryzie się z skryptem 'Nazwy zdarzeń na mapie', co widzicie
na screenie.

Czeliosss - Sro 27 Sty, 2010 20:46

Fajny skrypt, a dało by się do xp?
KillYou - Sro 27 Sty, 2010 21:04

Napewno dało by się, ale nie jestem specjalistą od edytowania skryptów. Szczególnie, jak mam edytować pod inny Rpg maker. Spróbuj zapytać o pomoc kogoś, kto się na tym zna.
Czeliosss - Sro 27 Sty, 2010 21:58

Zgaduje, że do Ayene.
Flanagan - Czw 28 Sty, 2010 09:09

Fajny ten scrypt małe pytanko jak zrobiłeś mape w grze i imiona nad charami

I CZELIOSSS NIE NIEZROBIE CI SYGNY I ODZEP SIĘ :evil:

KillYou - Czw 28 Sty, 2010 09:26

songoxyz, Czeliosss ma tak ustawione, że jak ktoś zaloguje się
na swoim koncie to u niego wybije twój nick.


Minimapa - http://www.ultimateam.pl/viewtopic.php?t=2074
nazwy zdarzeń - http://www.ultimateam.pl/viewtopic.php?t=2250

krychapl - Wto 09 Lut, 2010 20:56

Można ten skrypt zrobić jakoś bez tego S% w nazwie zdarzenia?
Ayene - Wto 09 Lut, 2010 21:05

Po co chcesz to zmienić? Poniższy fragment za to odpowiada:
Kod:
if @character.event.name.include?("S%") == true then

Usuń S% i zostaw puste "", ale wówczas cień będzie pod każdym zdarzeniem.

Gabe33 - Sro 01 Wrz, 2010 11:03

HELP.
Mi wyskakuje takie coś.
Brakuje pliku o nazwie No Shuch file or Directory - Graphics/Pictures/Shadow.
;-( ;-( ;-( ;-( ;-( ;-( ;-( ;-( ;-( ;-( ;-( ;-( ;-(

CreeperCrisis - Sro 01 Wrz, 2010 12:25

Gabe33, dodaj obrazek pod nazwą "Shadow" do folderu "Pictures".
Sabikku - Sro 01 Wrz, 2010 13:33

Trzeba zmienić w dwóch miejscach, Cache na RPG::Cache i Sprite_Base na RPG::Sprite. Powinno działać pod XP:
Spoiler:

Kod:
# &#9632; Cienie pod zdarzeniami [VX]
# Autor : Minto
# Tłumaczenie i poprawki: KillYou
#------------------------------------------------------------------------------
# Skrypt umożliwia dodanie cienia pod zdarzenie
#==========================================================================
# Zapisz obrazek w Gra/Graphics/picture jako 'Shadow'
# Użyj "S%", w nazwie zdarzenia, aby cień działał.
#==========================================================================
# Sprite_Shadow_Module
#------------------------------------------------------------------------------
module Sprite_Shadow_Module
def dispose
unless @character_shadow.nil? then
@character_shadow.bitmap.dispose
@character_shadow.dispose
end
super
end
#--------------------------------------------------------------------------
# Opcje
#--------------------------------------------------------------------------
def character_shadow_set
@character_shadow = Sprite.new(self.viewport)
# W linijce 26 wpisz nazwę obrazka "cień"
@character_shadow.bitmap = RPG::Cache.picture("shadow")
# Przejrzystość
@character_shadow.opacity = (self.character.opacity / 2)
# Rozmiar cienia / pozycja
@shadow_size = @character_shadow.bitmap.width
@character_shadow.zoom_x = ((@cw * 100) / @shadow_size) / 100.0
@character_shadow.zoom_y = @character_shadow.zoom_x
ox_rate = ((32 * 100) / @cw) / 100.0
oy_rate = ((48 * 100) / @ch) / 100.0
@character_shadow.ox = self.ox * ox_rate
@character_shadow.oy = ((self.oy * oy_rate) / 2) - 4
@last_character_name = @character_name.dup
# &#8240;e&#8218;&#240;&#65533;X&#65533;V
update_character_shadow
end
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
def update_character_shadow
if @character_shadow == nil then
return
end
if @character.jumping? then
@character_shadow.visible = false
return
end
if @last_character_name_shadow != @character_name
@last_character_name_shadow = @character_name
@shadow_size = @character_shadow.bitmap.width
@character_shadow.zoom_x = ((@cw * 100) / @shadow_size) / 100.0
@character_shadow.zoom_y = @character_shadow.zoom_x
@zoom_ox = @character_shadow.zoom_x
@zoom_oy = @character_shadow.zoom_y
ox_rate = ((32 * 100) / @cw) / 100.0
oy_rate = ((48 * 100) / @ch) / 100.0
@character_shadow.ox = self.ox * ox_rate
@character_shadow.oy = ((self.oy * oy_rate) / 2) - 4
end
@character_shadow.x = self.x
@character_shadow.y = self.y
@character_shadow.zoom_x = @zoom_ox * self.zoom_x
@character_shadow.zoom_y = @zoom_oy * self.zoom_y
@character_shadow.visible = (self.visible and @character_name != "")
@character_shadow.opacity = (self.character.opacity / 2)
end
end
#==========================================================================
# W grze_zdarzenie
#------------------------------------------------------------------------------
class Game_Event < Game_Character
attr_reader :event
end
#==========================================================================
# Sprite_Character
#------------------------------------------------------------------------------
class Sprite_Character < RPG::Sprite
include(Sprite_Shadow_Module)
alias :MINTO_Character_Shadow_initialize :initialize
def initialize(viewport, character = nil)
MINTO_Character_Shadow_initialize(viewport, character)
case @character
when Game_Player then
character_shadow_set
when Game_Event then
# Cień pod zdarzeniem
if @character.event.name.include?("S%") == true then
character_shadow_set
end
end
end
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
alias :update_MINTO_Character_Shadow :update
def update
update_MINTO_Character_Shadow
update_character_shadow
end
end


Kiti1000 - Pią 21 Sty, 2011 11:05

tiaa >:D
Drawestien - Pią 21 Sty, 2011 18:49

Czy da się zrobić na wczoraj żeby ten cien był zgodny z nazwami zdarzeń :?:
Ayene - Wto 25 Sty, 2011 15:08

Drawestien, skrypty działają razem bez zarzutu.
doa1996 - Pią 25 Lis, 2011 18:45

skrypt jest fajny, dzięki niemu gra wygląda o wiele lepiej
tracersgta - Pią 25 Lis, 2011 19:16

Cytat:
Wysłany: Wto 25 Sty, 2011 15:08


Odkopałeś ten temat tylko żeby napisać "Dzięki! Przyda się!" -.-

MrQubo - Sob 06 Paź, 2012 00:56

W edycji skryptu z tymi nazwami zdarzeń jest opcja, aby pomijało dane znaki, wystarczy dać, aby pomijało S% i tyle. ;-)

Powered by phpBB modified by Przemo © 2003 phpBB Group