Event Reaction System (0.4)
- System reakcji zdarzeń -
Jeżeli bohater znajduje się w zasięgu wybranych zdarzeń, owe zdarzenia podejdą do bohatera.
Kompatybilność: RPG Maker XP i RPG Maker XPA
Jak działa Event Reaction System 0.4?
Skrypt umożliwia wybranym zdarzeniom na mapie reagowanie na obecność gracza w ich pobliżu. Eventy mogą automatycznie podążać za graczem, gdy ten znajdzie się w promieniu 5 kratek. Funkcjonalność ta sprawia, że można tworzyć różnorodne sytuacje w grze, np. wrogów, którzy śledzą gracza, lub NPC-ów, którzy reagują na jego obecność.
Najważniejsze cechy:
Możliwość zdefiniowania listy eventów (poprzez ID), które mają śledzić gracza na każdej mapie.Automatyczny ruch eventu w stronę gracza, jeśli znajduje się on w pobliżu.Opcja wyłączenia skryptu za pomocą globalnego przełącznika, co daje pełną kontrolę nad jego działaniem.Skrypt jest prosty do implementacji i w pełni dostosowany do indywidualnych potrzeb projektu - wystarczy edytować kilka podstawowych parametrów, aby dopasować jego zachowanie do specyfiki gry.
Instalacja
1. Otwórz w RPG Maker XP edytor skryptu ruby (skrót: F11).
2. Przed sekcją
Main, utwórz nowy moduł i nazwij go np. EVENTREACTION.
3. Do utworzonego powyższego modułu EVENTREACTION wklej poniższy skrypt.
4. Zapisz zmiany (i skonfiguruj skrypt) i gotowe!
##########################################################
#Event Reaction System 0.4
#Haxo Game Studios
#System odpowiada za reakcje zdarzen na gracza w okolicy
#
#Autor: Dawid Maxymilian Tomaszewski
#Adres mailowy: haxogamestudios@gmail.com
#Skrypt przeznaczony dla silnika RPG Maker XP i RPG Maker XPAce
#
#Licencja użytkowania skryptu "Event Reaction System 0.4"
#1. Postanowienia ogólne
#Niniejsza licencja reguluje zasady korzystania ze skryptu Event Reaction System w wersji 0.4,
#dalej zwanego "skryptem". Użytkownik, który korzysta ze skryptu, zgadza się na warunki niniejszej licencji.
#
#2. Zezwolenia
# - Korzystanie ze skryptu zarówno w grach komercyjnych, jak i niekomercyjnych.
# - Modyfikację kodu w celu dostosowania go do specyfiki projektu, pod warunkiem zachowania warunków licencji.
#
#3. Ograniczenia
# - Zakazuje się publikacji skryptu w tej lub zmodyfikowanej wersji na innych witrynach niż
# https://www.rpgmaker.pl/. Można uzyskać taką zgodę jedynie pisząc do mnie o udzielenie licencji zezwalającej
# na publikację w innym miejscu niż Twierdza.
# - Zakazuje się sprzedaży skryptu w jakiejkolwiek formie, zarówno oryginalnej, jak i zmodyfikowanej.
#
#4. Informacja o autorze
#Każdy projekt korzystający ze skryptu Event Reaction System 0.4
#musi spełniać następujące warunki dotyczące uznania autorstwa:
#
#Podczas uruchamiania opcji "Nowa gra" należy wyświetlić poniższe informacje na ekranie przez
#minimum 7 sekund, pomijając czas przejścia efektów wizualnych, takich jak tzw. "smooth":
#
#[=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=]
#
#Nazwa: Event Reaction System 0.4
#Autor: Dawid Maxymilian Tomaszewski
#Studio: Haxo Game Studios
#Witryna: https://www.rpgmaker.pl/
#YouTube: HaxoGameStudiosOfficial
#
#[=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=][=]
#
#Wymagane jest również umieszczenie tej informacji w napisach końcowych gry.
#
#5. Postanowienia końcowe
#Niniejsza licencja obowiązuje od momentu rozpoczęcia korzystania ze skryptu.
#Użytkownik nie nabywa żadnych dodatkowych praw poza określonymi w tej licencji.
#Autor skryptu zastrzega sobie prawo do zmiany warunków licencji w przyszłych wersjach skryptu.
#
#
##########################################################
class Game_Event
# Lista ID zdarzeń, które mają reagować na obecność gracza (na każdej mapie)
EVENT_IDS_TO_TRACK = [1, 2, 3] # Zamień te ID na odpowiednie ID Twoich zdarzeń
# ID przełącznika globalnego, który wylacza ten skrypt. W tym wypadku jest to przelacznik ID 50 ON
BLOCKING_SWITCH_ID = 50
alias_method :original_update, :update
def update
original_update
# Sprawdzamy, czy przełącznik blokujący jest wyłączony oraz czy event jest na liście śledzonych ID
if !blocking_switch_active? && EVENT_IDS_TO_TRACK.include?(@event.id)
approach_player if within_proximity_of_player?
end
end
# Sprawdza, czy przełącznik blokujący jest aktywny
def blocking_switch_active?
$game_switches[BLOCKING_SWITCH_ID] == true
end
# Sprawdza, czy gracz znajduje się w pobliżu eventu
def within_proximity_of_player?
distance_from_player <= 5
end
# Oblicza odległość między eventem a graczem
def distance_from_player
player_x = $game_player.x
player_y = $game_player.y
(x - player_x).abs + (y - player_y).abs
end
# Próbuje podejść do gracza
def approach_player
return if moving?
direction = find_direction_to_player
return unless direction
# Ruch w kierunku gracza
move_in_direction(direction)
end
# Znajduje kierunek do gracza
def find_direction_to_player
player_x = $game_player.x
player_y = $game_player.y
if x < player_x
return 6 # Prawo
elsif x > player_x
return 4 # Lewo
elsif y < player_y
return 2 # Dół
elsif y > player_y
return 8 # Góra
end
nil
end
# Wykonuje ruch w określonym kierunku
def move_in_direction(direction)
case direction
when 2 then move_down
when 4 then move_left
when 6 then move_right
when 8 then move_up
end
end
end
Konfiguracja
W skrypcie istnieją 2 linijki do konfiguracji:
1) EVENT_IDS_TO_TRACK = [1, 2, 3]
Linijka odpowiada za zdarzenia, które mają reagować na bohatera. Powyższy przykład, oznacza, że zdarzenia o numerze 1, 2, oraz 3, będą reagowały na bohatera, gdy ten znajdzie się w pobliżu. Jeżeli chcesz dopisać kolejne zdarzenie, to wiadomo chyba jak to zrobić (1, 2, 3, 5, 6 itp.)
2) BLOCKING_SWITCH_ID = 50
Linijka odpowiadająca za blokadę skryptu. Jeżeli przełącznik nr 50 zostanie uruchomiony (ON), to skrypt zostanie wyłączony, i zdarzenia wpisane w EVENT_IDS_TO_TRACK przestaną reagować na bohatera. Oczywiście nr przełącznika można zmienić na dowolny.
Licencja
Skrypt można wykorzystać zarówno w projektach komercyjnych, jak i niekomercyjnych, a także dowolnie go modyfikować. Zastrzegam jednak, że publikacja skryptu (w tej lub zmodyfikowanej wersji) poza Twierdzą RPG Makera jest zabroniona, chyba że uzyskano moją zgodę. Co więcej, zabrania się sprzedaży skryptu w jakiejkolwiek formie.
Każdy projekt korzystający z Event Reaction System 0.4 musi zawierać poniższą informację:
Nazwa: Event Reaction System 0.4
Autor: Dawid Maxymilian Tomaszewski
Studio: Haxo Game Studios
Witryna: https://www.rpgmaker.pl/
YouTube: HaxoGameStudiosOfficial
Informacja ta musi być widoczna przy uruchamianiu nowej gry przez minimum 7 sekund oraz w napisach końcowych.
Autor: HGS
Tekst: HGS
Email:
haxogamestudios@gmail.com