UltimaForum

Wsparcie [XP] - State

Yoroiookami - Czw 13 Sty, 2011 21:20
Temat postu: State
Heloł :I wie ktoś jak zrobić state'a do skilla, który będzie odnawiał bohaterowi część HP co turę?
Tekjumen - Pią 14 Sty, 2011 16:46

Powiem Ci że widziałem gdzieś na necie skrypt ale nie powiem Ci gdzie bo to było dosyc dawno jeszcze przez reinstalką ;/ ale jak poszperasz to na bank znajdziesz!

EDIT: A jednak! http://www.ultimateam.pl/viewtopic.php?t=2355

Licze na "pomógł" ;)

Ayene - Sob 15 Sty, 2011 13:07

Można ewentualnie zmodyfikować def 'slip_damage_effect'.
Skorzystaj z tego:
Spoiler:

Kod:
module Ayene
  POISON_ID = 3   # ID statusu Poison
  REGEN_ID = 30   # ID statusu Regen
end

class Game_Battler   
  def slip_damage_effect   
    if @states.include?(Ayene::POISON_ID)
      self.damage = self.hp / 10
      if self.damage.abs > 0
        amp = [self.damage.abs * 15 / 100, 1].max
        self.damage += [rand(amp+1) + rand(amp+1) - amp, 1].max
      end
      self.hp -= self.damage     
    elsif @states.include?(Ayene::REGEN_ID)
      dam = -(self.maxhp / 10)
      if dam.abs > 0
        amp = [dam.abs * 15 / 100, 1].max
        dam -= rand(amp+1) + rand(amp+1) - amp
      end
      self.hp -= dam
      self.damage = 0 if self.damage == nil
      self.damage += dam         
    end 
    return true
  end 
end 


UWAGA! By status działał w bazie danych przy nowo utworzonym statusie Regen (trzeba jego id podać w skrypcie) należy zaznaczyć opcję 'Slip Damage'. Program będzie rozpoznawał, czy to poison, czy regen i odpowiednio odejmie lub doda obrażenia.
Wielkość dodawanego HP przy regenie podana jest w tej linijce:
Kod:
dam = -(self.maxhp / 10)

Czyli 1/10 maksymalnego HP. Można edytować wyrażenie w nawiasie i dać np. rand(50) - czyli losowa liczba w przedziale od 0 do 49 ;-)

Yoroiookami - Nie 16 Sty, 2011 21:53

Dziękuję bardzo wam obojgu ;)

Powered by phpBB modified by Przemo © 2003 phpBB Group