Pomoc [VXAce] - Zdarzenia chodzące po wodzie - z Vx na VX ACE
Root'N - Sob 24 Mar, 2012 11:23 Temat postu: Zdarzenia chodzące po wodzie - z Vx na VX ACECzeź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 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
Ayene - 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 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 - 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:
Finwe - 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 - 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.Ayene - 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 - 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ąć.