Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Zamknięty przez: Ayene
Czw 29 Mar, 2012 19:54
Zdarzenia chodzące po wodzie - z Vx na VX ACE
Autor Wiadomość
Root'N 




Preferowany:
RPG Maker VX

Pomógł: 2 razy
Dołączył: 23 Lis 2011
Posty: 16
Skąd: Kraków :)
Wysłany: Sob 24 Mar, 2012 11:23
Zdarzenia chodzące po wodzie - z Vx na VX ACE
Czeźdź, jest mi potrzebny skrypt - zdarzenia chodzące po wodzie - niestety nie ma go jesczcze na vx ace a go bardzo, ale to bardzo potrzebuje. Dam pomógł oczywiście.

Skrypcior:
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

________________________
Poffraczam! Nikt mnie nie zna, ale co tam...
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Pon 26 Mar, 2012 21:37
Sprawdź to:
Spoiler:

Kod:
#========================================================================
#  Zdarzenia chodzące po wodzie [VXAce]
#  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)
    check_passage(x, y, 0x1000)
  end

  def player_passable?(x, y)   
    check_passage(x, y, 0x1000)
  end
end

#========================================================================
class Game_CharacterBase 
  alias ayene_wat_pas_gamchar_pas? passable? 
  def passable?(x, y, d)
    x2 = $game_map.round_x_with_direction(x, d)
    y2 = $game_map.round_y_with_direction(y, d)
    return false unless $game_map.valid?(x2, y2)
    return true if @through || debug_through?   
    return false if collide_with_characters?(x2, y2)
    return $game_map.boat_passable?(x2, y2) if @boat_object
    return $game_map.airship_passable?(x2, y2) if @airship_object
    return $game_map.ship_passable?(x2, y2) if @ship_object
    ayene_wat_pas_gamchar_pas?(x, y, d)
  end 
end

#========================================================================
class Game_Event < Game_Character
  alias ayene_wat_pas_gameve_init initialize
  alias ayene_wat_pas_gameve_setup setup_page
 
  def initialize(*args)   
    @boat_object = false
    @ship_object = false
    @airship_object = false
    ayene_wat_pas_gameve_init(*args)
  end
 
  def setup_page(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?(x, y, d)
    case @vehicle_type
    when :boat
      $game_map.boat_passable?(x, y)
    when :ship
      $game_map.ship_passable?(x, y)
    when :airship
      true
    else     
      if $game_switches[Ayene::UM_SWITCH]
        $game_map.player_passable?(x, y)
      else
        super
      end     
    end   
  end
end

________________________


 
 
 
Root'N 




Preferowany:
RPG Maker VX

Pomógł: 2 razy
Dołączył: 23 Lis 2011
Posty: 16
Skąd: Kraków :)
Wysłany: Sro 28 Mar, 2012 07:43
Ayene - jesteś wielka! wszystko ładnie działa ^^

EDIT: Nie do końca ;/ , zdarzenia które mają komentarz \air zatrzymują się na innych zdarzeniach.

Screen:

________________________
Poffraczam! Nikt mnie nie zna, ale co tam...
 
 
Finwe 




Preferowany:
RPG Maker VXAce

Pomógł: 34 razy
Dołączył: 30 Lip 2011
Posty: 322
Skąd: Rzeszów
Wysłany: Sro 28 Mar, 2012 08:21
Tego nie obejdziesz.
Musiałbyś zmienić grafę tych ogni na ognisku i na drzewach
na te "poziome ognie" i nimi ruszać. Natomiast poziome
zmienić na te drugie i nimi dojść tam gdzie były te
"ogniskowe"/
 
 
 
Root'N 




Preferowany:
RPG Maker VX

Pomógł: 2 razy
Dołączył: 23 Lis 2011
Posty: 16
Skąd: Kraków :)
Wysłany: Sro 28 Mar, 2012 14:09
Aha rozumiem, jakoś spróbuje coś z tym zrobić. Temat można zamknąć chyba, że ktoś jeszcze ma coś do napisania.
________________________
Poffraczam! Nikt mnie nie zna, ale co tam...
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 28 Mar, 2012 18:51
Root'N, nie wiem, czy dobrze zrozumiałam, ale znajdź w skrypcie linijkę:
Kod:
return false if collide_with_characters?(x2, y2)

i zamień ją na:
Kod:
return false if collide_with_characters?(x2, y2) unless @airship_object
________________________


 
 
 
Root'N 




Preferowany:
RPG Maker VX

Pomógł: 2 razy
Dołączył: 23 Lis 2011
Posty: 16
Skąd: Kraków :)
Wysłany: Czw 29 Mar, 2012 15:49
Działa! Ayene serio jesteś niepowstrzymana ^^ ładnie działa. Nie zatrzymuje się teraz już na zdarzeniach. Jeszcze raz dzięki. Temat można zamknąć.
________________________
Poffraczam! Nikt mnie nie zna, ale co tam...
 
 
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
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
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene