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ść
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sob 26 Cze, 2010 18:16
Bulooo, no to przecież masz w pierwszym poście leczenie co określoną jednostkę czasu - 200 klatek, wystarczy zmienić tę wartość na mniejszą... pokombinuj trochę.
________________________


 
 
 
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 20:08
Nie udało mi się... sorki w skryptach się nie połapię...
Chciał bym Ayene żeby skrypt był ten stary co mi wcześniej dałaś z stanem tylko żeby dawał hp co sec.
Mogła byś mi go przekształcić.

Spróbowałem, dałem id przedmiotu ale nic
Spoiler:

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

FRAME = 10 #ilość kratek
PRZEDMIOT = [1, 20] # 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

________________________

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 20:22
Spróbuj to:
Spoiler:

Kod:
module Ayene
  POTION_ID = 16 # id statusu leczącego
  FRAME = 30 #ilość kratek
end
 
class Scene_Map
  alias recovery_update update
  def update   
    if Graphics.frame_count % Ayene::FRAME == 0
      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
    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: Sob 26 Cze, 2010 21:05
Wkleiłem raz ten skrypt tak aby mi dawał 1 hp. I działa
Ale 1 raz nie wystarczy więc wkleiłem więcej razy aby można było zrobić mikstury z różnymi ilościami hp.
Wygląda to tak


Ale wyskakuję mi taki błąd.




Dało by się go naprawić ?
________________________

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: Nie 27 Cze, 2010 09:27
Nie powinno się powielać tych samych skryptów, grozi to właśnie takim błędem.
Spróbuj ten skrypt:
Spoiler:

Kod:
module Ayene
  FRAME = 30 #ilość kratek 
  REGEN_ID = { # id statusu leczącego => ilość leczonego HP i SP
  16 => 1,
  17 => 5,
  18 => 15,
  }
end
 
class Scene_Map
  alias recovery_update update
  def update   
    if Graphics.frame_count % Ayene::FRAME == 0
      for i in 0...$game_party.actors.size   
      for a in 0...$game_party.actors[i].states.size
        if $game_party.actors[i].hp < $game_party.actors[i].maxhp and Ayene::REGEN_ID.include?($game_party.actors[i].states[a])
          $game_party.actors[i].hp += Ayene::REGEN_ID[$game_party.actors[i].states[a]]
        end
        if $game_party.actors[i].sp < $game_party.actors[i].maxsp and Ayene::REGEN_ID.include?($game_party.actors[i].states[a])
          $game_party.actors[i].sp += Ayene::REGEN_ID[$game_party.actors[i].states[a]]
        end
      end
      end
    end
    recovery_update
  end
end


Wystarczy, że stworzysz kilka osobnych statusów i każdemu id w skrypcie przyporządkujesz inną wartość leczonego hp. Dokładnie w tym fragmencie:
Kod:
  REGEN_ID = { # id statusu leczącego => ilość leczonego HP i SP
  16 => 1,
  17 => 5,
  18 => 15,
  }
________________________


 
 
 
Bulooo 




Preferowany:
RPG Maker XP

Pomógł: 3 razy
Dołączył: 27 Gru 2009
Posty: 79
Skąd: Wodzisław Śląski
Wysłany: Nie 27 Cze, 2010 09:30
A dało by się zrobić aby osobno regenerowało hp i osobno sp ?
bo teraz regeneruje hp i sp razem, a chciał bym osobno
________________________

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: Nie 27 Cze, 2010 09:36
A nie mogłeś od razu tego napisać. Zobacz, ile razy musiałam już ten skrypt modyfikować!
Spoiler:

Kod:
module Ayene
  FRAME = 30 #ilość kratek 
  REGEN_ID = { # id statusu leczącego => ilość leczonego [HP, SP]
  16 => [1, 1],
  17 => [5, 1] ,
  18 => [15, 5],
  }
end
 
class Scene_Map
  alias recovery_update update
  def update   
    if Graphics.frame_count % Ayene::FRAME == 0
      for i in 0...$game_party.actors.size   
      for a in 0...$game_party.actors[i].states.size
        if $game_party.actors[i].hp < $game_party.actors[i].maxhp and Ayene::REGEN_ID.include?($game_party.actors[i].states[a])
          $game_party.actors[i].hp += Ayene::REGEN_ID[$game_party.actors[i].states[a]][0]
        end
        if $game_party.actors[i].sp < $game_party.actors[i].maxsp and Ayene::REGEN_ID.include?($game_party.actors[i].states[a])
          $game_party.actors[i].sp += Ayene::REGEN_ID[$game_party.actors[i].states[a]][1]
        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: Nie 27 Cze, 2010 09:40
Dzięki Ayene i przepraszam
________________________

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
 
 
Marvel1795 



Preferowany:
RPG Maker VX

Dołączył: 01 Cze 2010
Posty: 13
Wysłany: Czw 20 Sty, 2011 15:05
A czy istnieje ten skrypt na VX?
Jeżeli on jest, to bardzo bym prosił o zamieszczenie linka.
________________________
Wróg mego wroga jest moim przyjacielem.
 
 
Shlizer 




Preferowany:
RPG Maker XP

Pomógł: 11 razy
Dołączył: 02 Sty 2011
Posty: 138
Skąd: /var/tmp
Wysłany: Czw 20 Sty, 2011 15:09
Hmm.. spróbuj zamienić wszystkie 'actors' na 'members'.. może zadziała.
________________________
Aversum Framework Demo
Aktualnie pracuję nad NSO =p
 
 
genialnyzolw 




Preferowany:
RPG Maker XP

Dołączył: 10 Kwi 2011
Posty: 8
Wysłany: Sro 04 Maj, 2011 15:13
hmm
a da się zrobić tak że jakiś bohater jak ma 0 hp (umiera) to się nie leczy ?
________________________

 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 04 Maj, 2011 17:00
Znajdź trzy razy linijkę:
Kod:
for i in 0...$game_party.actors.size

i pod nią dodaj:
Kod:
return if $game_party.actors[i].dead?
________________________


 
 
 
genialnyzolw 




Preferowany:
RPG Maker XP

Dołączył: 10 Kwi 2011
Posty: 8
Wysłany: Sro 04 Maj, 2011 20:50
Ok dzięki już działa jak należy
________________________

 
 
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