Walki 1 vs 1 ze zmianą bohatera w danej chwili walczącego
Aktualny czas: 23-09-19, 15:00 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Odpowiedz 
[XP] Walki 1 vs 1 ze zmianą bohatera w danej chwili walczącego
Shadi Offline
*


Liczba postów: 17
Dołączył: 05-05-13

Pomógł: 0



Post: #1
Walki 1 vs 1 ze zmianą bohatera w danej chwili walczącego

Witajcie.
Otóż mam zamiar bez używania starter kita ze względu na to że przejście na starter kita byłoby bardzo pracochłonne oraz że szkoda mi już zrobionych systemów na zdarzeniach - żeby one się zmarnowały bo starter kit posiadałby ich odpowiedniki, upodobnić trochę bardziej swoją grę do oryginalnych pokemonów.
Teraz po głowie chodzi mi system walki 1vs1 ale z możliwością zmiany bohatera w trakcie walki i nie spośród wszystkich bohaterów jakich mam w bazie danych, ale jedynie spośród tego, co już jest w drużynie.
Nie zdecydowałem się czy bym to robił na zdarzeniach, czy skorzystał ze skryptu, choć ze skryptu byłoby wygodniej.
Szukam tutaj kogoś kto pomoże mi edytować skrypt lub zasugeruje jak rozwiązać dwa problemy ze zrobieniem tego na zdarzeniach.
Jeżeli chodzi o skrypt to jedyny, który by mnie interesował jest tutaj: https://forum.chaos-project.com/index.php?topic=5845.0
Jest jednak w nim kilka rzeczy, które chciałbym zmienić, które mi się nie podobają:
Otóż actor id oraz actor class id w mojej grze są zmienne - jeżeli gracz wybrał faceta, to wynoszą one 001, jeżeli kobietę to 002, zaś dopóki gracz nie dokonał wyboru - w intrze do gry - 003 (bohater ten nazywa się Nikt). I potrzebuję tutaj to ustawić. Ponadto wydaję mi się, że trzeba aby w obydwu przypadkach liczenie kolejności następnych zaczynało się od 004 bo taki jest dopiero ID następnego Pokemona/bohatera a przeciwna płeć oraz bohater-nikt nie powinien być liczony. Ale mogę się mylić, może jeżeli bohater nie jest w drużynie, to nawet jeżeli jest przeskok między 001 a 004, to dopiero 004 jest liczony. Nie wiem jak to działa.
Drugi problem natomiast polega na tym, aby rozbudować to tak, by zawsze tylko pierwszy w kolejności pokemon/bohater brał udział w walce oraz żeby zastąpić opcję fizycznego ataku w walce dla mnie zbędną aktywowaniem tej opcji ustawiania kolejności.
Trzeci problem polega na aktywowaniu zmiany bohatera automatycznie gdy tylko ten pierwszy umrze oraz by ten, który umarł nie mógł już być wybrany (chyba że to automatycznie tak działa).
Czwarty i ostatni polega na tym aby zablokować zmianę kolejności bohaterów lub pokemonów poza walką. Chodzi o to że używam skryptu gąsienicy (catepillar) i po prostu nie chcę byśmy kierowali pokemonem, a za tym szedł człowiek. Natomiast w walce nie jest to problemem, bo autor pozostawił możliwość skryptem $game_actors[<ACTOR_ID>].position = <POSITION> zmiany kolejności bohatera w czasie walki, więc mógłbym wrócić kolejność do oryginalnej po wygranej lub przegranej walce.
Cóż. To tyle, jeżeli chodzi o zrobienie tego systemu skryptem. Jeżeli chodzi zaś o zrobienie tego na zdarzeniach, to problemy są dwa: jeden - jak aktywować teleport na jakąś mapkę (byłaby to mapka gdzie zrobiłbym menu gdzie wybieramy pokemona/bohatera) w trakcie walki oraz by po walce gracz wrócił do danej walki i do konkretnego momentu gdzie ją przerwał. Drugi zaś polega na tym by w razie nie wykorzystania teleportu na mapę wyboru pokemona tylko zrobienia tego w okienku tekstowym wyświetlać w okienku wyboru nazwy tych bohaterów, których akurat gracz ma w drużynie. Natomiast myślę sobie że to było zbyt pracochłonne, więc prędzej bym zrezygnował z walk 1 vs 1, choć jeszcze nie podjąłem decyzji.
Inne skrypty party switcherów za bardzo mnie nie interesują, bo one zakładają zmianę z tego party które jest, na wybieranie spośród wszystkich bohaterów, którzy są w bazie danych. A mnie interesuje wybór tylko spośród tego, co gracz już ma w drużynie by jednego bohatera wystawiał do walki spośród tylko tego.
Cóż. To by było chyba na tyle. Wątpię, że znajdzie się ktoś, kto będzie w stanie mi pomóc, ale spróbować zawsze można. Miłego dnia.
24-08-19 10:57
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
Shadi Offline
*


Liczba postów: 17
Dołączył: 05-05-13

Pomógł: 0



Post: #2
RE: Walki 1 vs 1 ze zmianą bohatera w danej chwili walczącego

Tak się akurat złożyło, że po długich poszukiwaniach znalazłem dużo lepszy skrypt, który by zaspokajał moje potrzeby:
https://forum.chaos-project.com/index.ph...310.0.html
Jest tylko jedna rzecz, którą w nim potrzebuje zmienić tudzież dodać. By za pomocą wywołania skryptu można było zapamiętać wejściowy skład (przed rozpoczęciem zmian w składzie drużyny) i móc przywrócić go po walce. Ma to służyć temu żeby utrzymywać pozory że jest to jedynie manipulowanie wyborem walczącego, a nie składem drużyny w ogóle, poza tym żeby było gwarantowane że pierwszym bohaterem jest bohater z grafiką człowieka, a nie pokemona (catepillar).
Z góry dziękuję za pomoc. Miłego dnia.
(Ten post był ostatnio modyfikowany: 25-08-19 09:33 przez Shadi.)
24-08-19 15:30
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
Shadi Offline
*


Liczba postów: 17
Dołączył: 05-05-13

Pomógł: 0



Post: #3
RE: Walki 1 vs 1 ze zmianą bohatera w danej chwili walczącego

Próbowałem samemu jakoś sobie z tym problemem poradzić. Stworzyłem w tym celu system typowych zdarzeń który najpierw na przełącznikach zapisywałby przed użyciem skryptu Party Switchera Leona_Westbroke jakich bohaterów/pokemony mamy w drużynie - typu przełączniki o nazwie "pokemon a jest w drużynie" , a potem dodawał te pokemony do drużyny po walce. Przy czym najpierw byłby dodany starter, aby był pierwszy w drużynie, potem byłby usunięty z drużyny i przesunięty do rezerwy każdy pokemon który pozostał w drużynie po selekcji dokonanej przez Party Changer (polega ona na wybraniu tylko jednego bohatera do walki), a potem z powrotem dodany do drużyny. Ma to służyć temu, żeby starter zajął jego miejsce, pierwsze miejsce w drużynie. Tylko zamiast polecenia "zmień drużynę"/"change party" w rpg makerze dla kompatybilności z skryptem użyłem komend w nim polecanych do tego celu, to znaczy:
$game_party.remove_actor_to_party(006)
$game_party.add_actor_to_party(006)
Najprawdopodobniej z tego powodu, być może także dlatego, że chciałem aktywować skrypt w walce, nie jestem tutaj pewien, wyskoczył mi błąd:
Party Switcher line 287: NoMethodError occurred
W linijce 287 jest coś takiego napisane w tymże skrypcie: if $game_party.locked.include?(@actor.id)
Ma ktoś jakiś pomysł co z tym zrobić, czy da się to jakoś przezwyciężyć? Szkoda by było aby taki dobry party changer na nic się nie zdał. Z góry dziękuję za odpowiedź.
30-08-19 20:39
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
Yoroiookami Offline
*


Liczba postów: 924
Dołączył: 01-05-13

Pomógł: 112



Post: #4
RE: Walki 1 vs 1 ze zmianą bohatera w danej chwili walczącego

Potestowałem sobie i w RPG Maker XP usuwa i dodaje się tak:
$game_party.remove_actor(006)
$game_party.add_actor(006)

[Obrazek: mt4dzY7.png]
[Obrazek: k5KQGOe.png]
30-08-19 22:09
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
Shadi Offline
*


Liczba postów: 17
Dołączył: 05-05-13

Pomógł: 0



Post: #5
RE: Walki 1 vs 1 ze zmianą bohatera w danej chwili walczącego

Ale nie wiem czy ten skryt używa tych formuł, które są ogólnie do użytku w RPG Makerze, czy też zdefiniował nowe, z instrukcji wewnątrz skryptu:
#  Command Quick-list:
#    $game_party.remove_actor_from_party(actor_id)
#      -Removes an actor from the party, and puts them in reserve.
#    $game_party.add_actor_to_party(actor_id)
#      -Replaces the last actor in the party with the actor in reserve.
#    $game_party.locked.push(actor_id)
#      -Locks the actor in place.
#    $game_party.min_size = x
#    $game_party.max_size = x
#      -Sets the minimum and maximum party size.
Link do całości tutaj:
https://forum.chaos-project.com/index.ph...310.0.html
Wynika z tego, że jednak ten skrypt zdefiniował inne niż standardowo w RPG Makerze komendy do dodawania i usuwania. Niemniej spróbuję zrobić tak jak napisałaś.
(Ten post był ostatnio modyfikowany: 31-08-19 08:15 przez Shadi.)
31-08-19 08:12
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
AlmostNoRuby Offline
*


Liczba postów: 168
Dołączył: 22-09-16

Pomógł: 32



Post: #6
RE: Walki 1 vs 1 ze zmianą bohatera w danej chwili walczącego

Chwila, chwila. Sporo tekstu, nie nadążam, ale próbuję :nara:.
- W drużynie jest i trener, i wszystkie Pokemony.
- Chcesz, żeby kolejność drużyny na mapie była cały czas taka sama i zmieniała się tylko podczas walki.
- Walka rozpoczyna się od pierwszego Pokemona, czyli od drugiego członka drużyny (bo pierwszy jest trener, bo gąsieniczka).
- W każdym momencie można wybrać opcję zmiany Pokemona na innego, którego mamy przy sobie (w sensie, mamy komendę, żeby zmienić)
- Po (nokaucie? unieprzytomnieniu? omdleniu? jak to nazwać?) tego, który jest aktualnie, ma wejść kolejny z kolejki "rezerwowych".

[Obrazek: userbar1.png]
[Obrazek: 4869108.gif]
07-09-19 20:55
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
Shadi Offline
*


Liczba postów: 17
Dołączył: 05-05-13

Pomógł: 0



Post: #7
RE: Walki 1 vs 1 ze zmianą bohatera w danej chwili walczącego

O, oczekiwałem odpowiedzi na prywatnej wiadomości, a ty odpisałeś, tylko że tutaj. Miło jednak, że wreszcie to zrobiłeś.
A więc tak:
- Trener ma overworld trenera, natomiast w walce ma grafikę pokemona, a więc jest zarówno trenerem jak i pokemonem. Dlatego musi być po zakończeniu walki zawsze pierwszy w drużynie.
- Zgadza się, chcę aby kolejność drużyny była na mapie taka sama i zmieniała się tylko podczas walki
- Walka ma się rozpoczynać od pierwszego pokemona, bo jest zarówno trenerem, jak i Pokemonem
- Chciałbym aby w każdym momencie można było wybrać opcję zmiany Pokemona na innego, którego mamy w drużynie.
- Po nokaucie tego który jest aktualnie nie ma być wystawiany kolejny w drużynie, tylko tak jak w oryginalnych grach pokemon na konsole ma być wybór którego z tych jeszcze przytomnych chcemy wystawić.
- Chciałbym również żeby po nokaucie aktualnego pokemona przeciwnika był wybór czy chcemy zmienić swojego. To, żeby przeciwnik walczył na raz tylko jednym pokemonem i swojego zmieniał mogę zrobić na zdarzeniach - poprzez ukryte potwory. Natomiast do ciebie tutaj należy tylko to, aby była ta możliwość zmiany po stronie gracza - np: przez wywołanie skryptu.
Mam nadzieję, że chyba wszystko jest jasne teraz. Powodzenia w twoich pracach.
08-09-19 11:42
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.