[VXAce] Wywołanie przez nazwe zdarzenia - Wersja do druku
Ultima Forum
[VXAce] Wywołanie przez nazwe zdarzenia - Wersja do druku

+- Ultima Forum (https://forum.ultimateam.pl)
+-- Dział: RPG Maker (/Forum-RPG-Maker)
+--- Dział: Wsparcie (/Forum-Wsparcie)
+--- Wątek: [VXAce] Wywołanie przez nazwe zdarzenia (/Thread-VXAce-Wywo%C5%82anie-przez-nazwe-zdarzenia)



Wywołanie przez nazwe zdarzenia - X-Tech - 02-08-14 21:08

Jak wygląda komenda, która sprawdzi czy zdarzenie o podanym id nazywa sie "noworodek" to ma być warunek:

jeśl event o id .... nazywa sie "noworodek" (nazwa jest w pole górne w lewej części eventa zwykle tam pisze jego numer id ale można to zmienić na co sie chce ja zmieniłem na "noworodek") może zajść akcja:


RE: Wywołanie przez nazwe zdarzenia - Ayene - 02-08-14 21:54

Dopisz do klasy "Game_Event" definicję:
Kod:
def name
    @event.name
  end
Wówczas warunek wygląda tak:
Kod:
if $game_map.events[ID].name == "noworodek"



RE: Wywołanie przez nazwe zdarzenia - X-Tech - 02-08-14 21:55

Dzięki. Pewnie to działa, ale nie rozumiem zapisu. Nie rozumiem co się tutaj dzieje.


RE: Wywołanie przez nazwe zdarzenia - Ayene - 02-08-14 22:17

Sprawdź klasę Game_Map. Widnieje tam odwołanie do hasha z events. Hash ten wrzuca do tej klasy nową klasę - Game_Event, która z kolei w initialize przywołuje zmienną event. Zmienna ta odwołuje się z kolei do ukrytej w RGSS3 klasy RPG::Event, która ma atrybut name. Żeby zatem odwołać się do niego bezpośrednio trzeba było dodać definicję.


RE: Wywołanie przez nazwe zdarzenia - X-Tech - 02-08-14 22:44

a już czaje hashe to są te elementy w {} powoli to ogarniam.
Jeśli dobrze ogarniam hashe to są tablice, w których się przyporządkowuje jakimś
elementom zupełnie inne elementy.


RE: Wywołanie przez nazwe zdarzenia - Ayene - 03-08-14 10:38

Hashe to takie faktycznie nieco inne tablice, które pozwalają na przypisanie wartości (value) tzw. kluczom (keys).
Kod:
hash{ key => value }
lub
Kod:
hash = {}
hash[key] = value
na dobrą sprawę otrzymasz coś na rodzaj tablicy, przy czym nie poruszasz się po hashu indeksami, lecz właśnie kluczami.


RE: Wywołanie przez nazwe zdarzenia - X-Tech - 03-08-14 11:16

No właśnie to ogarnąłem, że Hashe to tablice z szybszym dostępem do środka. Wystarczy po nazwie elementów lecieć. Fajne to jest akurat.

Teraz tylko ogarniam hierarchie. Poczytam o nowym tego rodzaju elemencie i zastanawiam się od zera jaki dostęp do środka mają z zewnątrz inne elementy/klasy i jak z wewnątrz sięgać na zewnątrz, bo o ile wiem że mamy dziedziczenie/aliasy/super i działają podobnie/inaczej to teraz hashe dodały nową komplikacje. Ciężko określić położenie np: kiedy doda się hasha w klasie, która dziedzieczy, albo w klasie od której inna dziedziczy. Pytanie teraz jak tam sięgać i jaki jest zasięg i na odwrót. Nie cierpię tego. Chyba muszę znowu eksperymentować od zera, aby sprawdzać zasięg i położenie.


RE: Wywołanie przez nazwe zdarzenia - Ayene - 03-08-14 11:24

Masz taki zasięg hasha, jaki sobie wybierzesz. Przecież, jeśli deklarujesz, że hashem czy tablicą jest zmienna instancji, to zasięg masz zmiennej instancji... Ale hashem może myć też zmienna globalna... itd.