Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Dodawanie odporności i krytyków do ekwipunku
Autor Wiadomość
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
  Wysłany: Sob 23 Cze, 2012 15:56
Dodawanie odporności i krytyków do ekwipunku
~ Dodawanie odporności i krytyków do ekwipunku ~


~ SKRYPT NIE DZIAŁA. TRWAJĄ NAPRAWY. ~
~ PRZEPRASZAMY! O.O ~


Krótki opis:
Skrypt pozwala dodać do konkretnej broni/pancerza odporności na atrybuty i statusy, a także zwiększyć (lub zmniejszyć) prawdopodobieństwo występowania krytyków.
Kompatybilność: tylko RPG Maker VX.
Teoretycznie jest kompatybilny ze wszystkimi skryptami. Również z "Rozszerzone okno statusu" oraz "Rozszerzenie Ekwipunku" autorstwa KGC.

Autor:
Avara

Instrukcja:
Spoiler:

INSTRUKCJA

W okienku "Note" danej broni lub pancerza wpisujemy
<Atrybuty 1>
<ODP ATR 15>
aby do odporności na atrybut o id nr 1 dodać 15%. Możemy wpisywać wartości
ujemne dla wartości odporności, a także dodawać odporności na kilka atrybutów
jednocześnie, np:
<atrybuty 1, 3, 7>
<odp Atr 15, -3, 18>
co daje nam dla atrybutu o id 1 +15%, o id 3 -3%, o id 7 +18% do odporności
na te atrybuty. Przy wpisywaniu ujemnej wartości odporności, pomiędzy minusem
a cyfrą nie może być spacji!

Możemy całe wyrazy wpisywać WIELKIMI LITERAMI, małymi literami, bądź dowolnie
pierwsze WIELKĄ LITERĄ, jak na przykładach.

Tak samo z odpornościami na dany status.
<statusy 3, 5>
<odp Sta -14, 2>
Taki zapis daje nam -14% odporności na status o id 3 i dodaje 2% odporności na
status nr 5.

Możemy w ten sposób zmienić dowolną liczbę odporności na atrybuty i statusy.

Aby dodać krytyki wystarczy wpisać:
<Krytyki 7>
Wówczas dana część ekwipunku doda nam 7% do możliwości wystąpienia krytyków.


DODATKOWE INFORMACJE

Jeśli suma odporności na dany atrybut wyniesie poniżej zera, wówczas będziemy
otrzymywać większe obrażenia o dany procent, zaś jeśli wyniesie powyżej 100%,
to będzie się nam uzupełniać hp o tą nadwyżkę (np. przy 115% to 15%) * podstawowe
obrażenia.

W przybadku odporności na dany status oraz krytyków nie ma żadnych dodatkowych
lub zmienionych zdarzeń podczas walki.

Nawet jeśli przypiszemy odporności na status "Śmierć" 100%, to nic nam to nie
zmieni. Nasz bohater nadal będzie śmiertelny.


Skrypt:
Spoiler:

Kod:
=begin
[------------------------------------------------------------------------------]
|                Dodawanie odporności i krytyków do ekwipunku                  |
|                                Autor:  Avara                                 |
|                                  Wersja 1.0                                  |
[------------------------------------------------------------------------------]
  Skrypt poswala na zwiększenie bądź zmniejszenie odpornosci na atrybuty
  i statusy, a także zmianę wartości krytyków danego bohatera, poprzez
  noszony ekwipunek.
[------------------------------------------------------------------------------]
                                   INSTRUKCJA
  W okienku "Note" danej broni lub pancerza wpisujemy
      <Atrybuty 1>
      <ODP ATR 15>
  aby do odporności na atrybut o id nr 1 dodać 15%. Możemy wpisywać wartości
  ujemne dla wartości odporności, a także dodawać odporności na kilka atrybutów
  jednocześnie, np:
      <atrybuty 1, 3, 7>
      <odp Atr 15, -3, 18>
  co daje nam dla atrybutu o id 1 +15%, o id 3 -3%, o id 7 +18% do odporności
  na te atrybuty. Przy wpisywaniu ujemnej wartości odporności, pomiędzy minusem
  a cyfrą nie może być spacji!
  Możemy całe wyrazy wpisywać WIELKIMI LITERAMI, małymi literami, bądź dowolnie
  pierwsze WIELKĄ LITERĄ, jak na przykładach.
  Tak samo z odpornościami na dany status.
      <statusy 3, 5>
      <odp Sta -14, 2>
  Taki zapis daje nam -14% odporności na status o id 3 i dodaje 2% odporności na
  status nr 5.
  Możemy w ten sposób zmienić dowolną liczbę odporności na atrybuty i statusy.
  Aby dodać krytyki wystarczy wpisać:
      <Krytyki 7>
  Wówczas dana część ekwipunku doda nam 7% do możliwości wystąpienia krytyków.
 
                              DODATKOWE INFORMACJE
  Jeśli suma odporności na dany atrybut wyniesie poniżej zera, wówczas będziemy
  otrzymywać większe obrażenia o dany procent, zaś jeśli wyniesie powyżej 100%,
  to będzie się nam uzupełniać hp o tą nadwyżkę (np. przy 115% to 15%) * podstawowe
  obrażenia.
  W przybadku odporności na dany status oraz krytyków nie ma żadnych dodatkowych
  lub zmienionych zdarzeń podczas walki.
  Nawet jeśli przypiszemy odporności na status "Śmierć" 100%, to nic nam to nie
  zmieni. Nasz bohater nadal będzie śmiertelny.
[------------------------------------------------------------------------------]
=end
module Avara # <--- NIE TYKAĆ!
  module Odpornosci_i_Krytyki # <--- NIE TYKAĆ!
#[-----------------------------------------------------------------------------]
#                                KONFIGURACJA
#[-----------------------------------------------------------------------------]
    SUMA_ATRYBUTOW = 16 # wpisz sumę wszystkich atrybutów (patrz Baza Danych)
    SUMA_STATUSOW = 16 # wpisz sumę wszystkich statusów (patrz Baza Danych)
#[-----------------------------------------------------------------------------]
#                             KONIEC KONFIGURACJI
#   Dalej niczego nie ruszać, chybaże na własną odpowiedzialność!
#[-----------------------------------------------------------------------------]
    JAKI_ATR = /<(?:ATRYBUTY|Atrybuty|atrybuty)[ ]*(\d+(?:[ ]*,[ ]*\d+)*)>/i
    JAKI_STA = /<(?:STATUSY|Statusy|statusy)[ ]*(\d+(?:[ ]*,[ ]*\d+)*)>/i
    ODP_ATR = /<(?:ODP ATR|odp atr|Odp Atr|Odp atr|
    odp Atr)[ ]*(-*\d+(?:[ ]*,[ ]*(-*\d+))*)>/i
    ODP_STA = /<(?:ODP STA|odp sta|Odp Sta|Odp sta|
    odp Sta)[ ]*(-*\d+(?:[ ]*,[ ]*(-*\d+))*)>/i
    KRYTYKI = /<(?:KRYTYKI|Krytyki|krytyki)\s*(-*\d+)>/i
  end
end

class RPG::BaseItem
  def atrybut
    jaki_atrybut = []
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when Avara::Odpornosci_i_Krytyki::JAKI_ATR
        $1.scan(/\d+/).each { |num|
          atrybut = num.to_i
          jaki_atrybut.push(atrybut)}
      end}
    return jaki_atrybut if self.note[Avara::Odpornosci_i_Krytyki::JAKI_ATR] != nil
    return []
  end
 
  def odpornosc_na_atrybut
    odpornosc = []
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when Avara::Odpornosci_i_Krytyki::ODP_ATR
        $1.scan(/-*\d+/).each { |num|
          odp = num.to_i
          odpornosc.push(odp)}
      end}
    return odpornosc if self.note[Avara::Odpornosci_i_Krytyki::ODP_ATR] != nil
    return []
  end
 
  def status
    jaki_status = []
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when Avara::Odpornosci_i_Krytyki::JAKI_STA
        $1.scan(/\d+/).each { |num|
          status = num.to_i
          jaki_status.push(status)}
      end}
    return jaki_status if self.note[Avara::Odpornosci_i_Krytyki::JAKI_STA] != nil
    return []
  end
 
  def odpornosc_na_status
    odpornosc = []
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when Avara::Odpornosci_i_Krytyki::ODP_STA
        $1.scan(/-*\d+/).each { |num|
          odp = num.to_i
          odpornosc.push(odp)}
      end}
    return odpornosc if self.note[Avara::Odpornosci_i_Krytyki::ODP_STA] != nil
    return []
  end
 
  def krytyki
    return $1.to_i if self.note[Avara::Odpornosci_i_Krytyki::KRYTYKI] != nil
    return 0
  end
end

class Game_Actor < Game_Battler
  attr_accessor :atrybut_odp
  attr_accessor :status_odp
  attr_accessor :krytyki
  alias av_odpornosci_setup setup
  def setup (actor_id)
    av_odpornosci_setup (actor_id)
    @atrybut_odp = []
    @status_odp = []
    @krytyki = 0
    for x in 1..Avara::Odpornosci_i_Krytyki::SUMA_ATRYBUTOW
      @atrybut_odp[x] = 0
    end
    for y in 1..Avara::Odpornosci_i_Krytyki::SUMA_STATUSOW
      @status_odp[y] = 0
    end
    equips.each_index { |i| odpornosci (equips[i]) }
  end
 
  alias av_odpornosci_cha_equ change_equip
  def change_equip (equip_type, item, test = false)
    odpornosci (equips[equip_type], false)
    av_odpornosci_cha_equ (equip_type, item, test)
    odpornosci (item)
  end
 
  def odpornosci (item = nil, sign = true)
    return if item == nil
    atrybuty = []
    atrybuty = item.atrybut
    odp_atr = []
    odp_atr = item.odpornosc_na_atrybut
    for x in 0...atrybuty.size
      @atrybut_odp[atrybuty[x]] += odp_atr[x]
    end
    statusy = []
    statusy = item.status
    odp_sta = []
    odp_sta = item.odpornosc_na_status
    for y in 0...statusy.size
      @status_odp[statusy[y]] += odp_sta[y]
    end
    kryt = sign ? item.krytyki : -item.krytyki
    @krytyki += kryt
  end
 
  alias av_odpornosci_el_ra element_rate
  def element_rate(element_id)
    av_odpornosci_el_ra(element_id)
    rank = self.class.element_ranks[element_id]
    result = [0,200,150,100,50,0,-100][rank] - @atrybut_odp[element_id]
    for armor in armors.compact
      result /= 2 if armor.element_set.include?(element_id)
    end
    for state in states
      result /= 2 if state.element_set.include?(element_id)
    end
    return result
  end
 
  alias av_odpornosci_st_pr state_probability
  def state_probability(state_id)
    av_odpornosci_st_pr(state_id)
    if $data_states[state_id].nonresistance
      return 100
    else
      rank = self.class.state_ranks[state_id]
      result = [0,100,80,60,40,20,0][rank] - @status_odp[state_id]
      return result
    end
  end
 
  alias av_odpornosci_cri cri
  def cri
    av_odpornosci_cri
    n = 4 + @krytyki
    n += 4 if actor.critical_bonus
    for weapon in weapons.compact
      n += 4 if weapon.critical_bonus
    end
    return n
  end
end


Screeny:
Spoiler:






~ SKRYPT NIE DZIAŁA. TRWAJĄ NAPRAWY. ~
~ PRZEPRASZAMY! O.O ~


Dodatkowe informacje:
Screeny zrobione dzięki skryptowi "Rozszerzone okno statusu" autorstwa KGC. (Kliknij screeny, aby powiększyć.)
Co do drugiego obrazka: podstawowa wartość krytyków to 4.
Demo: niepotrzebne.

Radzę używać z umiarkowaniem ;-) W razie czego proszę pisać. Mile widziane również komentarze ;-)
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

Ostatnio zmieniony przez Avara Pon 18 Mar, 2013 14:21, w całości zmieniany 1 raz  
 
 
 
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Dołączył: 24 Lut 2010
Posty: 751
Wysłany: Wto 26 Cze, 2012 16:24
Przyda się :mrgreen: wielkie dzięki! Więcej podobnych skryptów proszem. :I
 
 
ayasha 



Preferowany:
RPG Maker VX

Dołączył: 23 Lip 2011
Posty: 4
Wysłany: Czw 28 Lut, 2013 19:29
Mam problem ze skryptem . :o
Robię np. buty które dają 5% odporności na ogień .
Postac ma standardowo 0% (sprawdzam to w skrypcie Rozszerzenie Statusu).
Zakładam buty - postac ma 5%
ściagam buty - 10%
znowu zakładam - 15%
ściągam buty - 20 %

wtf . ?
To wina skryptu na resy/kryty w Itemach czy tego co rozszerza status . ?
 
 
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Czw 28 Lut, 2013 20:38
Ten skrypt napisałam już dawno (prawie rok >.<) temu. To chyba wina skryptu. Wówczas wydawało mi się, że jest wszystko w porządku. Usiądę do niego niedługo i zobaczę co i jak. Ale to już nie dzisiaj. Miałam bardzo męczący dzień i zaraz kładę się spać :krowka: Dzięki za wskazanie błędu ;-)
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

 
 
 
Ada 




Preferowany:
RPG Maker VX

Dołączyła: 01 Mar 2013
Posty: 5
Skąd: Płock
Wysłany: Pią 01 Mar, 2013 16:44
Cytat:
Postac ma standardowo 0% (sprawdzam to w skrypcie Rozszerzenie Statusu).
Zakładam buty - postac ma 5%
ściagam buty - 10%
znowu zakładam - 15%
ściągam buty - 20 %


O jak miło , że napisałeś to za mnie . :przytul:

Tak to dokładnie wygląda . : http://youtu.be/RUL0rJlqth0

A wpisane mam tak . :
Kod:
<equipkind Buty>
     <atrybuty 1>
      <odp atr 015>
 
 
makerowiec64 




Preferowany:
RPG Maker 95

Pomógł: 2 razy
Dołączył: 02 Wrz 2012
Posty: 181
Skąd: się tu wziąłem?
Wysłany: Sob 02 Mar, 2013 11:58
Fajne! Tyle ze w takiej grze (nie podam tytulu) bylo cos podobnego tyle ze byl jeszcze chyba inne cos niz ten atak krytyk itd. Ale pomimo tego i tak mi sie podoba. Z tym skryptem przegonisz wieksza czesc skryptow Ayene ;-)
________________________
99 % świrów czyta mój podpis z ręką na myszce.
Nie odchylaj ręki - jest już za późno :haha:

Wiem,to mogłem zrobić w większym rozmiarze.Przypatrz się bardziej!
 
 
 
Naleśnik 



Pomógł: 1 raz
Dołączył: 11 Gru 2011
Posty: 34
Wysłany: Czw 07 Mar, 2013 22:54
Och może być ciekawe zobaczę sobie później to :)
 
 
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