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: Ayene
Sob 05 Maj, 2012 19:28
Uniemożliwienie ataku w walce
Autor Wiadomość
Shadi 



Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Dołączył: 07 Lut 2010
Posty: 51
Wysłany: Pią 02 Mar, 2012 17:44
Uniemożliwienie ataku w walce
Witam, czy w standardowym systemie walki rpg makera zdarzeniem bądź skryptami da się zablokować możliwość atakowania naszym bohaterom których mamy w drużynie? Jeśli tak to jak? Jest mi to potrzebne, bo chcę zrobić w mojej grze walki na safari zone, w których możemy łapać pokemony tylko rzucając pokeballe, nie mając możliwości ich osłabiania, a używam standardowego systemu walki - nie używam starter kita.
 
 
 
Mateusz SSJ8 




Preferowany:
RPG Maker XP

Pomógł: 1 raz
Dołączył: 07 Sty 2012
Posty: 46
Skąd: Polska
Wysłany: Pią 02 Mar, 2012 20:27
W pierwszej kolejności zapoznaj się ze składnią Ruby, na którym opera się RGSS. Musisz wiedzieć, jak skrypty się składają. Dopiero wtedy możesz zabrać się za takie przedsięwzięcie. Ze mną też tak było. Też wklejałem cudze skrypty do swoich gier, zanim po raz pierwszy w życiu napisałem własny skrypt na potrzeby gry, którą robiłem (SSJ8_ABS do gry "ModernTown Shippuuden: The Return of Fnowflake Pirates"). I nie używaj zmiennych
Cytat:
@damage_pop = false
@damage = nil
@states_plus = []
@states_minus = []
@critical = nil
, jeśli nie chcesz mieć większych problemów. Zamiast tego użyj
Cytat:
class Game_ActionResult
attr_accessor :pop
def initialize
@pop = false
initialize_damage
initialize_states
initialize_critical
initialize_absorb
end
attr_accessor :damage_hp, :damage_sp, :damage_st
def initialize_damage
@damage_hp = 0
@damage_sp = 0
@damage_st = 0
end
attr_accessor :poison, :states_plus, :states_minus, :states_effect
def initialize_states
@poison = []
@states_plus = []
@states_minus = []
@states_effect = []
end
attr_accessor :critical_level, :critical_levels
def initialize_critical
@critical_level = -1
@critical_levels = []
end
attr_accessor :absorb_hp, :absorb_sp, :absorb_st
def initialize_absorb
@absorb_hp = false
@absorb_sp = false
@absorb_st = false
end
end
, pamiętając, że @critical_level zwraca tylko stan wynikowy ciosu
Cytat:
-1 = pudło
0 = unik
1 = trafienie
Więcej niż 1 = cios krytyczny


Będziesz musiał potem zmienić całą skryptologię, ale zyskasz trochę szybkości z wykonywaniem skryptów, jeśli dobrze wszystko rozplanujesz.
________________________
Ryzykując, że zrobisz super gniota, możesz zrobić super hit lub super gniota.
 
 
 
Shadi 



Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Dołączył: 07 Lut 2010
Posty: 51
Wysłany: Pią 02 Mar, 2012 20:39
Hmm. Nie,dzięki
Sorry, nie wiem czy się nie zrozumieliśmy, ale ja nie chcę całego zmieniać systemu dotyczącego obrazeń- żeby kontrolować czy atak trafi, tylko chcę mieć skrypt dzięki któremu wpisuje w poleceniach walki wywołaj skrypt wpisuje tam krótki kod i wtedy ataki nie działają w tej właśnie walce w której to umieściłem.
Ayene mi pomogła wcześniej z czymś takim żeby przez jakiś czas w walce grafiki bohaterów, niezależnie od tego jakich bohaterów mamy w drużynie, oprócz pierwszego nie były widoczne, więc może teraz coś wymyśli też. Wtedy z kolei miałem animację jak trener wypuszcza pokemony i właśnie pierwszy bohater zmieniał grafikę na kolejne klatki animacji wypuszczania, i nie chciałem by pozostali poza pierwszym bohaterowie nie byli widoczni.
Ayene mi pomogła, więc może teraz też da radę.
Poza tym, co do skryptów, to ja w tworzeniu gry prawie w całości opieram się na eventach więc jak do czegoś potrzebny jest skrypt to chyba logiczne ze proszę o pomoc?
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Nie 04 Mar, 2012 12:50
Czyli co... atakować miałaby tylko pierwsza osoba w drużynie? Myślę, że dałoby radę zablokować. Gorzej dać warunek, kto miałby jednak akcje wykonywać.
________________________


 
 
 
Shadi 



Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Dołączył: 07 Lut 2010
Posty: 51
Wysłany: Pon 05 Mar, 2012 16:20
Nie. Tym razem chciałbym żeby żaden bohater nie mógłby atakować ale właśnie tylko w wybranych walkach( walki w safari zone). Wystarczyłby mi skrypt za pomocą którego mógłbym tę możliwość ataku "wyłączyć" i " z powrotem włączyć".
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Wto 06 Mar, 2012 23:42
Nie do końca rozumiem ;-) Opisz mi dokładnie, jak to ma wyglądać, bo z tego wynika, że chcesz, aby gracz wszedł do walki, ale nie mógł podjąć akcji żadną postacią. Z kolei chcesz, aby w wybranym przez Ciebie momencie gry, mógł coś robić, bo tę opcję włączysz... tak? Ale w takim razie, jak zakończy się walka, skoro gracz nie może nic zrobić? Chcesz ją zautomatyzować, czy co? :->
________________________


 
 
 
Shadi 



Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Dołączył: 07 Lut 2010
Posty: 51
Wysłany: Sro 07 Mar, 2012 20:47
Jakby co to mogę to olać i nie sprawiać wam więcej problemów z dostosowaniem się do moich szalonych wymagań.
Chodzi o to że nie chcę wyłączyć akcji tylko możliwości ataku, bohaterowie w teamie mógłby się bronić, używać itemów itp. I ma to dotyczyć KILKU WYBRANYCH WALK, dlatego chcę mieć możliwość tego wyłączenia i przywrócenia do poprzedniego stanu jakimś krótkim skryptem że np w czasie takiej wybranej walki włączam to, a po niej wyłączam. Ogólnie to wyjaśniam czemu to ma służyć. Ja tworzę grę pokemon. W oryginalnych pokemonach na DS'a czy GBA jest coś takiego jak safari zone. I w takim safari zone, możemy rzucać safari ballami w celu złapania poka( 30 mamy do dyspozycji ich), albo rzucić mu jedzeniem lub kamyczkiem. Pokemon może nam uciec i wtedy jest "Koniec walki" Jak rzucimy kamyczkiem to rośnie szansa jego złapania, ale też rośnie szansa jego ucieczki. Jak rzucimy jedzeniem to rośnie wyłącznie jego szansa złapania. To wszystko dotąd udało mnie się odwzorować. Sęk w tym że w pokemonowym safari zone, zarówno nasze pokemony, jak i pok jakiego napotkamy nie mogą atakować. My możemy rzucać balle, lub cokolwiek, a pok albo nic nie zrobi albo ucieknie. Z powodu tego że nie wierzę by zablokowanie w tych właśnie wybranych walkach do safari możliwości ataku dla zarówno wroga jak i nas, było możliwe, a także chcę te walki safariowe utrudnić, wysunąłem poszukiwanie jakiejś formuły,skryptu, na to co jest wyżej napisane.
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 07 Mar, 2012 22:51
Najlepiej będzie modyfikować skrypt domyślny. Wejdź w skrypt 'Scene_Battle 1' i znajdź fragment:
Kod:
@actor_command_window.visible = false

pod nim dodaj:
Kod:
# Edycja START
    if $game_switches[12] 
      @actor_command_window.disable_item(0)
      @actor_command_window.disable_item(1)
    end
    # Edycja END

Następnie wejdź w skrypt 'Scene_Battle 3' i znajdź:
Kod:
when 0  # attack

pod tym dodaj:
Kod:
# Edycja START
        if $game_switches[12]
          $game_system.se_play($data_system.buzzer_se)
          return
        end 
        # Edycja END

Znajdź:
Kod:
when 1  # skill

po tym dodaj:
Kod:
# Edycja START
        if $game_switches[12]
          $game_system.se_play($data_system.buzzer_se)
          return
        end 
        # Edycja END

Zauważ, że trzy razy pojawia się liczba 12, to numer przełącznika, możesz go zmienić na inny dowolnie wybrany.
________________________


 
 
 
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