Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Skrypt - odnawianie HP
Autor Wiadomość
artekwnc 



Preferowany:
RPG Maker XP

Dołączył: 11 Paź 2009
Posty: 110
Wysłany: Nie 14 Mar, 2010 21:43
Skrypt - odnawianie HP
Mam wam do przedstawienia skrypt - nie mój, z rmxp.pl od Ferredingu

Na czym polega?

Skrypt ten co jakiś czas odnawia 1% SP i HP


Creditsy:
Dla Ferredingu!!!

UWAGI:
Skrypt odmierza tą jednostkę czasu tylko jeśli gracz ma włączoną mapę. Kiedy włączymy menu itp. skrypt nie nalicza klatek.


Skrypt:
Spoiler:

Kod:

#====================================================
#   Recovery On Map
#   by Ferredingu
#   8 kwietnia 2008 r
#   Edytowany
#   Poprawka by Ayene
#====================================================

FRAME = 200 #ilość kratek

class Game_System
  attr_accessor :recovery
  alias recovery_initialize initialize
  def initialize
    @recovery = 1
    recovery_initialize
  end
end

 
class Scene_Map
  alias recovery_update update
  def update
    #==================
    if $game_system.recovery == 1
      if Graphics.frame_count % FRAME == 0
        for i in 0...$game_party.actors.size
          if $game_party.actors[i].hp < $game_party.actors[i].maxhp
            $game_party.actors[i].hp += $game_party.actors[i].maxhp / 100
          end
          if $game_party.actors[i].sp < $game_party.actors[i].maxsp
            $game_party.actors[i].sp += $game_party.actors[i].maxsp / 100
          end
        end
      end
    end
    #==================
    if $game_system.recovery == 2
      if Graphics.frame_count % (FRAME/2) == 0
        for i in 0...$game_party.actors.size
          if $game_party.actors[i].hp < $game_party.actors[i].maxhp
            $game_party.actors[i].hp += $game_party.actors[i].maxhp / 100
          end
          if $game_party.actors[i].sp < $game_party.actors[i].maxsp
            $game_party.actors[i].sp += $game_party.actors[i].maxsp / 100
          end
        end
      end
    end
    #==================
    if $game_system.recovery == 3
      if Graphics.frame_count % (FRAME*2) == 0
        for i in 0...$game_party.actors.size
          if $game_party.actors[i].hp < $game_party.actors[i].maxhp
            $game_party.actors[i].hp += $game_party.actors[i].maxhp / 100
          end
          if $game_party.actors[i].sp < $game_party.actors[i].maxsp
            $game_party.actors[i].sp += $game_party.actors[i].maxsp / 100
          end
        end
      end
    end
    #==================
    recovery_update
  end
end



Instrukcja:
-W linijce 8, wartość którą wpiszemy odpowiada za ilość klatek po której HP i SP ma się odnowić. Liczba klatek podzielona przez 40 daje nam liczbę sekund po której ma się odnowić HP i SP (czyli jeśli jest 200 to 200/40=5 - co pięć sekund HP i SP się odnowi).
-Skrypt ma możliwość wyłączania odnawiania, robi się to poprzez funkcję w zdarzniu "Script..." i wpisując:
$game_system.recovery = 0 - jeśli ma się nie odnawiać
$game_system.recovery = 1 - jeśli ma się odnawiać normalnie
$game_system.recovery = 2 - jeśli ma się odnawiać dwa razy szybciej
$game_system.recovery = 3 - jeśli ma się odnawiać dwa razy wolniej
Ostatnio zmieniony przez Ayene Sob 26 Cze, 2010 18:14, w całości zmieniany 1 raz  
 
 
 
krychu18 




Dołączył: 28 Gru 2009
Posty: 20
Skąd: Rumia
Wysłany: Sob 27 Mar, 2010 18:39
mi on nie działa.
________________________
nigdy nie jest tak źle by nie mogło być gorzej.

Prośba :
http://www.ultimateam.pl/...p?p=25356#25356
 
 
pw115 



Preferowany:
RPG Maker XP

Pomógł: 10 razy
Dołączył: 19 Lut 2010
Posty: 235
Skąd: Katowice
Wysłany: Sob 27 Mar, 2010 19:58
Ponieważ masz nielegalną polską wersję
która jest pełna błędów powstałych podczas tłumaczenia
________________________
Pomocy:
http://pw115.myminicity.com/




 
 
Flanagan 




Preferowany:
RPG Maker VX

Pomógł: 9 razy
Dołączył: 26 Sty 2010
Posty: 181
Skąd: Ziemia
Wysłany: Nie 28 Mar, 2010 08:44
A można zrobić to tak że np. założe pierścień leczenia i mnie leczy dopiero?????

Jeśli nie to szkoda bo potrzebuje czegoś takiego
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Nie 28 Mar, 2010 13:20
Skrypt jest błędny, powinien w pętli zwierać po actors[i]. Poprawiłam go nieco i dodałam opcję z przedmiotem leczącym (songoxyz):

Spoiler:

Kod:
#====================================================
#   Recovery On Map
#   by Ferredingu
#   8 kwietnia 2008 r
#   Edytowany
#   Korekta by Ayene
#====================================================

FRAME = 200 #ilość kratek
PRZEDMIOT = [31, 32] # id przedmiotu leczącego

class Game_System
  attr_accessor :recovery
  alias recovery_initialize initialize
  def initialize
    @recovery = 1
    recovery_initialize
  end
end

 
class Scene_Map
  alias recovery_update update
  def update   
    #==================
    if $game_system.recovery == 1
      if Graphics.frame_count % FRAME == 0
        for i in 0...$game_party.actors.size
          if PRZEDMIOT.include?($game_party.actors[i].armor4_id)
            if $game_party.actors[i].hp < $game_party.actors[i].maxhp
              $game_party.actors[i].hp += $game_party.actors[i].maxhp / 100
            end
            if $game_party.actors[i].sp < $game_party.actors[i].maxsp
              $game_party.actors[i].sp += $game_party.actors[i].maxsp / 100
            end
          end
        end
      end
    end
    #==================
    if $game_system.recovery == 2
      if Graphics.frame_count % (FRAME/2) == 0
        for i in 0...$game_party.actors.size
          if PRZEDMIOT.include?($game_party.actors[i].armor4_id)
            if $game_party.actors[i].hp < $game_party.actors[i].maxhp
              $game_party.actors[i].hp += $game_party.actors[i].maxhp / 100
            end
            if $game_party.actors[i].sp < $game_party.actors[i].maxsp
              $game_party.actors[i].sp += $game_party.actors[i].maxsp / 100
            end
          end
        end
      end
    end
    #==================
    if $game_system.recovery == 3
      if Graphics.frame_count % (FRAME*2) == 0
        for i in 0...$game_party.actors.size
          if PRZEDMIOT.include?($game_party.actors[i].armor4_id)
            if $game_party.actors[i].hp < $game_party.actors[i].maxhp
              $game_party.actors[i].hp += $game_party.actors[i].maxhp / 100
            end
            if $game_party.actors[i].sp < $game_party.actors[i].maxsp
              $game_party.actors[i].sp += $game_party.actors[i].maxsp / 100
            end
          end         
        end
      end
    end
    #==================
    recovery_update
  end
end

________________________


 
 
 
Bulooo 




Preferowany:
RPG Maker XP

Pomógł: 3 razy
Dołączył: 27 Gru 2009
Posty: 79
Skąd: Wodzisław Śląski
Wysłany: Pią 25 Cze, 2010 21:41
Ayene możesz mi wytłumaczyć jak zrobić aby ten skrypt dawał mi co krok 1 hp ?
... A najlepiej żeby po wypiciu miksturki mi rosło hp... coś w stylu diablo...
________________________

Wiem że chcesz zagrać, a nie chce ci się przepisywać ip, Skopiuj: 80.72.37.12:27025

http://grawbank.tk/276/bulo < Zbieram na xBoxa
 
 
erienus 




Preferowany:
RPG Maker XP

Pomógł: 29 razy
Dołączył: 12 Lut 2010
Posty: 300
Wysłany: Sob 26 Cze, 2010 09:44
Ayene a jak zrobić by określony przedmiot leczył przez np 2 minuty.
________________________
Kolekcjonuję "Pomógł". Jeżeli ci pomogłem i chcesz wzbogacić moją kolekcję, kliknij "Pomógł".
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sob 26 Cze, 2010 10:23
Bulooo, możesz zastosować ten skrypt:
Spoiler:

Kod:
module Ayene
  POTION_ID = 17 # id przedmiotu leczącego
end
 
class Game_Party
  alias ayene_gmparty_inc_steps increase_steps 
  def increase_steps
    ayene_gmparty_inc_steps
    for i in 0...$game_party.actors.size
      if $game_party.actors[i].hp < $game_party.actors[i].maxhp and $game_party.actors[i].states.include?(Ayene::POTION_ID)
        $game_party.actors[i].hp += 1
      end
      if $game_party.actors[i].sp < $game_party.actors[i].maxsp and $game_party.actors[i].states.include?(Ayene::POTION_ID)
        $game_party.actors[i].sp += 1           
      end
    end   
  end
end


Stworzyć nowy status, np. Potion. Wpisać ID tego statusu w skrypcie:
Kod:
POTION_ID = 17

Ustawić przedmiot, który ten status by wywoływał i wszystko powinno działać.
________________________


 
 
 
Bulooo 




Preferowany:
RPG Maker XP

Pomógł: 3 razy
Dołączył: 27 Gru 2009
Posty: 79
Skąd: Wodzisław Śląski
Wysłany: Sob 26 Cze, 2010 10:39
Nowy status ? Czyli.
Niekumam

Mam to tak



Kod:
module Ayene
  POTION_ID = 1 # id przedmiotu leczącego
end
 
class Game_Party
  alias ayene_gmparty_inc_steps increase_steps
  def increase_steps
    ayene_gmparty_inc_steps
    for i in 0...$game_party.actors.size
      if $game_party.actors[i].hp < $game_party.actors[i].maxhp and $game_party.actors[i].states.include?(Ayene::POTION_ID)
        $game_party.actors[i].hp += 1
      end
      if $game_party.actors[i].sp < $game_party.actors[i].maxsp and $game_party.actors[i].states.include?(Ayene::POTION_ID)
        $game_party.actors[i].sp += 1           
      end
    end   
  end
end



I poza wklejeniem tego skryptu coś jeszcze trzeba.
Bo jak nie to mi nie leczy po 1 hp. leczy całość odrazu
________________________

Wiem że chcesz zagrać, a nie chce ci się przepisywać ip, Skopiuj: 80.72.37.12:27025

http://grawbank.tk/276/bulo < Zbieram na xBoxa
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sob 26 Cze, 2010 10:43
Źle napisałam, id nie przedmiotu leczącego tylko statusu leczącego. Czyli wejdź w bazę danych, zakładkę States i dodaj 17 (chyba że już jakieś masz) i nazwij do np. Potion albo Regen, jak wolisz. Następnie stwórz przedmiot leczący, ustaw by nie leczył hp tylko wbijał ten nowy status. A w skrypcie ustaw:
Kod:
POTION_ID = 17
________________________


 
 
 
Bulooo 




Preferowany:
RPG Maker XP

Pomógł: 3 razy
Dołączył: 27 Gru 2009
Posty: 79
Skąd: Wodzisław Śląski
Wysłany: Sob 26 Cze, 2010 10:50
Działa :)
A ile będzie trwać ta regeneracja ?
i na przyszłość jak zrobić aby rosło np po 5 hp ?
________________________

Wiem że chcesz zagrać, a nie chce ci się przepisywać ip, Skopiuj: 80.72.37.12:27025

http://grawbank.tk/276/bulo < Zbieram na xBoxa
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sob 26 Cze, 2010 10:52
Tak, jak normalny status.
Wystarczy zamienić:
Kod:
$game_party.actors[i].hp += 1

na
Kod:
$game_party.actors[i].hp += 5
________________________


 
 
 
Bulooo 




Preferowany:
RPG Maker XP

Pomógł: 3 razy
Dołączył: 27 Gru 2009
Posty: 79
Skąd: Wodzisław Śląski
Wysłany: Sob 26 Cze, 2010 10:55
Kurcze bo ja mam abs mr mo's i nie wiem czemu mi nie znikają statusy ...
Pisałem już na pomoc

NP. Żeby mi zregenerowało 15 hp i się skończyło
________________________

Wiem że chcesz zagrać, a nie chce ci się przepisywać ip, Skopiuj: 80.72.37.12:27025

http://grawbank.tk/276/bulo < Zbieram na xBoxa
 
 
erienus 




Preferowany:
RPG Maker XP

Pomógł: 29 razy
Dołączył: 12 Lut 2010
Posty: 300
Wysłany: Sob 26 Cze, 2010 12:40
Skrypt jest zajesuper ^^ dzięki
________________________
Kolekcjonuję "Pomógł". Jeżeli ci pomogłem i chcesz wzbogacić moją kolekcję, kliknij "Pomógł".
 
 
Bulooo 




Preferowany:
RPG Maker XP

Pomógł: 3 razy
Dołączył: 27 Gru 2009
Posty: 79
Skąd: Wodzisław Śląski
Wysłany: Sob 26 Cze, 2010 14:26
Dało by się zmienić aby hp dodawało co sekundę a nie tylko jak się chodzi ?
________________________

Wiem że chcesz zagrać, a nie chce ci się przepisywać ip, Skopiuj: 80.72.37.12:27025

http://grawbank.tk/276/bulo < Zbieram na xBoxa
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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