UltimaForum

Wsparcie [VX] - "Pod wodą":]

Hemp Gru - Pon 07 Cze, 2010 20:04
Temat postu: "Pod wodą":]
Siema dawno mnie tu nie było xD...
Otóż mam kolejny problem!
Znalazłem na necie charactersy ryb i mam też skrypt na zdarzenia chodzące po wodzie...
Ale przejdźmy do konkretów! :-P
Gdy stawiam character na wodzie i biorę, żeby się ruszał to on wygląda jakby był nad wodą...
A chodzi mi żeby był podtopiony! Czyli pod wodą! Proszę o szybką odpowiedź!
Pozdro JasiekRPG

Asantos - Pon 07 Cze, 2010 21:16

Nie można nic zrobić chyba. Możesz co najwyżej zrobić recolor tych ryb na niebieski odcień, lepszego efektu nie otrzymasz.
PaKiTos - Wto 08 Cze, 2010 08:31

... jest jedna rzecz ... zamiast wysokiej trawy ustaw wodę ...
Ayene - Wto 08 Cze, 2010 10:26

Jasiekrpg, podmień skrypt z poruszającymi się zdarzeniami po wodzie na poniższy:
Spoiler:

Kod:
#========================================================================
#  Zdarzenia chodzące po wodzie
#  by Ayene
#  21.03.2010
www.ultimateam.pl
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Skrypt umożliwia przede wszystkim poruszanie się zdarzeń po wodzie.
# Wpierw krótkie wyjaśnienie:
# Domyślnie łódka (boat) porusza się po wodzie płytkiej (jaśniejsza niebieska),
# statek (ship) pływa po wodzie głębokiej i płytkiej, a zepelin (airship) porusza się
# wszędzie (nie może tylko lądować na wodzie).
#
# Ustawianie chodzenia po wodzie zdarzeniom odbywa się zgodnie z powyższą zasadą.
# Wpisując komentarz w zdarzeniu:
# \boat - zdarzenie będzie się poruszać jak łódka
# \ship - analogicznie do statku
# \air - będzie chodzić po wszystkim
# \fish - zdarzenie - ryba, porusza się po każdej wodzie.
#
# Komentarz jest pobierany z aktualnej strony zdarzenia.
#
# Skrypt umożliwia również chodzenie po wodzie drużynie. Wystarczy włączyć
# przełącznik zadeklarowany poniżej.
#========================================================================
# Instalacja: Wystarczy umieścić nad Main
#========================================================================
module Ayene
  UM_SWITCH = 20  # przełącznik, który umożliwia chodzenie drużynie po wodzie
end

#========================================================================
class Game_Map
  def airship_passable?(x, y)
    return passable?(x, y, 0x10)
  end 
 
  def player_passable?(x, y)   
    if $game_switches[Ayene::UM_SWITCH]
      return passable?(x, y, 0x10)     
    else
      return passable?(x, y)
    end     
  end
end

#========================================================================
class Game_Character
 
  alias ayene_wat_pas_gamchar_pas? passable?
 
  def passable?(*args)
    return false if collide_with_characters?(*args) unless (@through or debug_through?)
    return $game_map.airship_passable?(*args) if @airship_object
    return $game_map.ship_passable?(*args) if @ship_object
    return $game_map.boat_passable?(*args) if @boat_object
    return $game_map.ship_passable?(*args) if @fish_object
    ayene_wat_pas_gamchar_pas?(*args)
  end
  alias ayene_wat_pas_gamchar_upbude update_bush_depth
 
  def update_bush_depth
    ayene_wat_pas_gamchar_upbude
    if @fish_object
      @bush_depth = 32
    end   
  end
end

#========================================================================
class Game_Event < Game_Character
  alias ayene_wat_pas_gameve_init initialize
  alias ayene_wat_pas_gameve_setup setup
 
  def initialize(*args)   
    @boat_object = false
    @ship_object = false
    @airship_object = false
    @fish_object = false
    ayene_wat_pas_gameve_init(*args)
  end
 
  def setup(new_page)
    @page = new_page
    if @page != nil       
      if @page.list[0].code == 108
        @boat_object = @page.list[0].parameters[0][/\\BOAT/i] != nil
        @ship_object = @page.list[0].parameters[0][/\\SHIP/i] != nil
        @airship_object = @page.list[0].parameters[0][/\\AIR/i] != nil
        @fish_object = @page.list[0].parameters[0][/\\FISH/i] != nil
      end     
    end 
    ayene_wat_pas_gameve_setup(new_page)
  end 
end

#========================================================================
class Game_Player < Game_Character
  def map_passable?(*args)
    case @vehicle_type
    when 0
      return $game_map.boat_passable?(*args)
    when 1
      return $game_map.ship_passable?(*args)
    when 2
      return true
    else     
      return $game_map.player_passable?(*args)
    end
  end
end


Dodałam w nim zdarzenie - rybę. Gdy wstawisz komentarz w zdarzenie: '\FISH', wówczas ryba będzie wyglądała, jakby była pod wodą.

Hemp Gru - Sro 09 Cze, 2010 06:16

Dzięki Ayene jak zwykle jesteś niezawodna! :-P
Do zamknięcia!

Szczurek - Sro 09 Cze, 2010 07:40

Jeszcze dodam, że dobry efekt można uzyskać także przez ustawienie przezroczystości na ok 100.
Ja stosuje ten manewr + atrybut through + puste eventy naokoło zbiornika, żeby nie wychodził poza wodę ;-)
Efekt chyba ten sam :-)

Ayene - Sro 09 Cze, 2010 08:49

Szczurek, wszystko w porządku, lecz jeśli ma być to duży zbiornik wodny, puste eventy mogą w niewielkim stopniu lagować, ale pomysł ogólnie dobry ;-) Temat zamykam.

Powered by phpBB modified by Przemo © 2003 phpBB Group