UltimaForum

Skrypty [VX] - Zdarzenia chodzące po wodzie [VX]

Ayene - Nie 21 Mar, 2010 16:40
Temat postu: Zdarzenia chodzące po wodzie [VX]
~ Zdarzenia chodzące po wodzie [VX] ~

Krótki opis
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:
Kod:
\boat - zdarzenie będzie się poruszać jak łódka
\ship - analogicznie do statku
\air - będzie chodzić po wszystkim


Komentarz jest pobierany z aktualnej strony zdarzenia.

Skrypt umożliwia również chodzenie po wodzie drużynie. Wystarczy włączyć przełącznik zadeklarowany w skrypcie.

Autor skryptu
Ayene [yurika@o2.pl]

Kompatybilność
Tylko VX

Skrypt
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
#
# 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 
    ayene_wat_pas_gamchar_pas?(*args)
  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
    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
      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


Demo
niepotrzebne

Screenshot
niepotrzebny

Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.

Piszcie w razie problemów.

CreeperCrisis - Nie 06 Cze, 2010 20:33

Dzięki, przyda się przy wstawianiu motylka lub czegoś. :mrgreen:
cj2 - Pon 07 Cze, 2010 11:22

Statku handlarskiego :-) Przynajmniej ja tak go zastosowałem :-P
Killerczyc - Pią 06 Sie, 2010 13:47

Hej, mogłabyś zrobić nowy pojazd ?
Który mógłby tylko poruszać się po lądzie ?!

Ayene - Nie 22 Sie, 2010 08:53

Wystarczy zmienić grafikę bohatera z domyślnej na grafikę wehikułu.
Killerczyc - Nie 22 Sie, 2010 09:40

Tak, ale kiedy wyjde to ten 'pojazd' znika przemieniając się w bohatera...
Ale mam już skrypt podmieniający łódkę na pojazd lądowy, jest tu gdzieś na forum...

[ Dodano: Sro 15 Wrz, 2010 17:01 ]
Hej, mógł by jakiś skrypter zrobić tak by:
-Po wejściu na tile wody gracz zmieniał grafike?!
-Po wejściu na tile wody prętkość poruszania się gracza się zmiejszy?!

Szalitar - Pią 11 Mar, 2011 18:14

Wpisując komentarz w zdarzeniu:

Gdzie się wpisuję komentarz w zdarzeniu?

Christo - Pią 11 Mar, 2011 18:43

Pierwsze menu na samym dole. Pisze tam Komentarz.
Szalitar - Pią 11 Mar, 2011 22:13

Faranir napisał/a:
Pierwsze menu na samym dole. Pisze tam Komentarz.


Dzięki ;) Pirania już pływa ;D


Powered by phpBB modified by Przemo © 2003 phpBB Group