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: Nhadala
Nie 02 Wrz, 2012 09:52
Problem z systemem pływania
Autor Wiadomość
Shadi 



Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Dołączył: 07 Lut 2010
Posty: 51
Wysłany: Sro 29 Sie, 2012 16:56
Problem z systemem pływania
Witajcie. :)
Niedawno, postanowiłem zmienić w mojej grze system pływania. Dlaczego?
Stary system, polegał na tym, że na brzegu ustawiłem zablokowane przeźroczyste eventy i w momencie użycia ataku "pływanie" odpalał się common event, który ruszał graczem Through ON, aby mógł przejść przez te zablokowane eventy. Brzeg wody i sama woda, były oznaczone innymi terrain tagami. Kiedy gracz wchodził na Terrain tag samej wody to ustawiało go na Through OFF.
Teraz jednak uznałem że ten system nie jest dobry, ponieważ wówczas, gracz może wcale nie pójść do wody, tylko połazić sobie po budynkach itp, skoro blokada mu nie robi przeszkód.
Postanowiłem więc go zmienić. Zmiana miała polegać na tym, że po uruchomieniu przełącznika event uruchomiałaby się druga strona eventu. Na pierwszej event byłby zablokowany, a na drugiej nie. Dzisiaj próbowałem wdrożyć do gry nowy system, ale pojawił się problem - po użyciu ataku, zablokowane eventy się nie odblokowują. Ktoś wie co jest nie tak?
Jakby co, to daje kilka screenów:
Event"Blokada"
https://dl.dropbox.com/u/10678415/eventstrona1.png
https://dl.dropbox.com/u/10678415/eventstrona2.png
Pierwszy Common Event - który włącza/wyłącza pływanie:
https://dl.dropbox.com/u/10678415/common1.png
Drugi Common Event - który sprawdza, kiedy gracz dojdzie na wodę( warunek terrain tagu) i wówczas włącza spowrotem blokadę:
https://dl.dropbox.com/u/10678415/common2.png
Trzeci Common event - który sprawdza, kiedy gracz dojdzie na coś co nie jest ani wodą, ani brzegiem wody i wówczas włącza spowrotem blokadę:
https://dl.dropbox.com/u/10678415/common3.png
Z góry dziękuję za pomoc. A! Napisałem zarówno tutaj jak i na rmxp.pl więc jakby ktoś z rmxp mi wcześniej pomógł to poinformuję.
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 30 Sie, 2012 08:14
A nie byłoby Tobie lepiej, gdybyś użył skryptu na pływanie? http://www.ultimateam.pl/viewtopic.php?t=2588
________________________


 
 
 
Shadi 



Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Dołączył: 07 Lut 2010
Posty: 51
Wysłany: Czw 30 Sie, 2012 09:20
Dzięki Ayene, ale ja już znam ten skrypt i on mi nie odpowiada, ponieważ on jedynie zmienia grafikę gracza na pływającą, kiedy ten wejdzie do wody. Mnie również zależy na tym żeby "granice wody" były zablokowane, a kiedy użyjemy pływania żeby się odblokowywały, po czym przejdziemy przez nie, znów się zablokowały. Tak samo jak wrócimy na ląd, żeby z powrotem się zablokowały.
Czemu to ma służyć? Temu, że na moich mapkach w pobliżu wody będą eventy poruszające się randomowo ( pokemony, ludzie na plaży).I nie chcę żeby miały możliwość wejścia do wody.
Woda nie może być zablokowona, bo wówczas gracz nie będzie mógł na nią wejść. Więc jaki sposób? Ustawić na linii brzegu zablokowane eventy, które pod wpływem przełącznika się oblokują.
Sęk w tym że system nie działa i chciałbym wiedzieć właśnie, jaki błąd popełniłem. :-)
Może wyrażam sę zbyt stanowczo ale i tak jestem wdzięczny za pomoc, tylko chcę pokazać, że to nie o to chodzi.
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 30 Sie, 2012 09:23
Czyli przekładając to na mój język, chcesz ustawić eventy, które będą chodzić np. tylko po wodzie tak?
________________________


 
 
 
Shadi 



Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Dołączył: 07 Lut 2010
Posty: 51
Wysłany: Czw 30 Sie, 2012 09:30
Można tak powiedzieć. Generalnie chodzi o przekroczenie granicy - żeby poza graczem eventy które są na wodzie- nie mogły wejść na ląd i eventy które są na lądzie - nie mogły wejść do wody.
Po prostu robię grę w realiach pokemonów, a tam to nie jest możliwe generalnie, a nie chcę żeby grający w moją grę ludzie doświadczyli przykrego rozczarowania, że jakiś koleś z "zewnątrz" po prostu łazi sobie po wodzie.
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 30 Sie, 2012 10:06
OK, pomyślę nad tym wieczorkiem, bo w pracy nie mam rm-a. Możliwe że da radę pokombinować coś z komentarzami w zdarzeniu podobnie jak w tym skrypcie na VX-a :arrow: http://www.ultimateam.pl/viewtopic.php?t=2942
________________________


 
 
 
Leoś 




Pomógł: 2 razy
Dołączył: 13 Maj 2010
Posty: 45
Wysłany: Czw 30 Sie, 2012 13:46
Coś takiego przydałoby się do Xp. dotąd nie wiedziałem takiego skryptu. Chętnie skorzystam, jak się uda tobie zrobic Ayene.
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sob 01 Wrz, 2012 13:32
No OK, spróbuj tego skryptu. Wystarczy, że ustawisz terrain tag jakiegoś tile np. wody na 2 i na tej wodzie ustawisz zdarzenie, którego komentarz wpiszesz:
Kod:
\terrain 2

To samo możesz dać z wysoką trawą. Ustawiasz jej terrain tag 3 i w zdarzeniach w tej trawie wpisujesz komentarz:
Kod:
\terrain 3

Efekt będzie taki, że zdarzenia te będą poruszać się tylko na przyporządkowanych terenach.

Spoiler:

Kod:
class Game_Event < Game_Character
   
  alias ayene_wat_pas_gamchar_pas? passable?
  alias ayene_wat_pas_gameve_update update 
 
  def passable?(x, y, d)
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)   
    for event in $game_map.events.values
      if event.x == new_x and event.y == new_y
        unless event.through
          if self != $game_player
            return false
          end
          if event.character_name != ""
            return false
          end
        end
      end
    end
    if $game_player.x == new_x and $game_player.y == new_y
      unless $game_player.through
        if @character_name != ""
          return false
        end
      end
    end
    if @boat_object != 0 and $game_map.terrain_tag(x, y) == @boat_object
      if $game_map.terrain_tag(new_x, new_y) == @boat_object
        return true
      else
        return false
      end     
    end
    return ayene_wat_pas_gamchar_pas?(x, y, d)
  end

  def update
    ayene_wat_pas_gameve_update
    if @page != nil
      if @page.list[0].code == 108
        @boat_object = @page.list[0].parameters[0].split(/\\TERRAIN/i)[1].to_i
      end
    end
  end
end


W połączeniu z systemem pływania można uzyskać całkiem fajny efekt.
________________________


 
 
 
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