Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Porównanie sił 1vs1 [ver. 1.9]
Autor Wiadomość
przemusiek25 



Pomógł: 21 razy
Dołączył: 26 Sty 2012
Posty: 84
Wysłany: Czw 07 Cze, 2012 13:04
Porównanie sił 1vs1 [ver. 1.9]
~ Porównanie sił 1 vs 1 ~


Krótki opis:
Skrypt powstał z myślą o wszystkich osobach które przy tworzeniu potworów
i graczy zastanawiają się jakie będzie miało to znaczenie w walce.

Poniższy skrypt przedstawia ile zaatakuje bohater i potwór w konfrontacji
1 vs 1, I ile tur obie strony potrzebują do wykończenia swojego rywala.
Można zmieniać także statystyki potwora, bohatera lub umiejętności.
Skrypt przeznaczony jest dla testerów i twórców, a nie dla graczy.
Przed użyciem zalecane jest przeczytać instrukcje w skrypcie.

Autor:
Przemusiek25

Skrypt:
Spoiler:

Kod:
#==============================================================================
#   Porównanie sił 1vs1.
#--------------------------------------
#   Wersja 1.9.01  << Ostatnia zmiana: Płynniejsze działanie skryptu
#   Autor: Przemusiek25
#   Data utworzenia: 7 Czerwiec 2012
#   Data aktualizacji: 9 Czerwiec 2012
#--------------------------------------
#   Skrypt powstał z myślą o wszystkich osobach które przy tworzeniu potworów
#   i graczy zastanawiają się jakie będzie miało to znaczenie w walce.
#
#   Poniższy skrypt przedstawia ile zaatakuje bohater i potwór w konfrontacji
#   1 vs 1, I ile tur obie strony potrzebują do wykończenia swojego rywala.
#   Można zmieniać także statystyki potwora, bohatera lub umiejętności.
#   Skrypt przeznaczony jest dla testerów i twórców, a nie dla graczy.
#
#   Instrukcja: Aby wywołać skrypt stwórz zdarzenie i wywołaj skrypt:
#   $scene = Scene_Sprawdzanie.new
#
#   Sterowanie:
#   Strzałka w dół i górę:
#     Wybieranie
#   Strzałka w prawo
#     Okno zmieniania statystyk >> Dodawanie o 1
#     Okno wyboru danych >> Zmiana Potwora, Lewelu, Typu Ataku, Umiejętności
#                               +1 ID     |   +1  |  Umiejęt. |     +1 ID  |
#   Strzałka w lewo
#     Okno zmieniania statystyk >> Odejmowanie o 1
#     Okno wyboru danych >> Zmiana Potwora, Lewelu, Typu Ataku, Umiejętności
#                               -1 ID     |   -1  |  Zwykły.  |     -1 ID  |
#   Enter (przycisk C w rpgmakerze)
#     Przejście do kolejnego okna
#   Esc (przycisk B w rpgmakerze)
#     Przejście do poprzedniego okna
#     
#   Kolejność okien:
#   Wybór Bohatera > Wybór Danych > Zmiana Statystyk
#
#   Okno zmiany statystyk zmienia statystyki zależnie od tego z jakiego okna
#   go wywołujemy, jeśli podczas wyboru potwora to zmienia stat potwora, jeśli
#   levelu zmienia stat bohatera, jeśli umiejętności to stat umiejętności.
#
#   !!UWAGA zmieniane statystyki nie zapisują się do bazy, po wyłączniu testu
#   są te same co przy jego włączeniu, jeśli chcesz zapisać zmiane statystyk
#   poprostu użyj notatnika lub kartki, a następnie po wyłączeniu testu
#   projektu wpisz je do bazy.
#   
#   Aby wyjść ze sceny wystarczy cofnąć do okna wyboru bohatera i nacisnąć Esc
#==============================================================================

class Window_Dodaj_Stat < Window_Command
  #--------------------------------------------------------------------------
  # * Inicjalizacja  << Okno Dodawania i Odejmowania Statystyk
  #--------------------------------------------------------------------------
  def initialize
    s1 = "Atak"
    s2 = "Obrona"
    s3 = "Magia"
    s4 = "Max HP"
    super(170, [s1, s2, s3, s4], 1, 4)
    draw_item(0, true)
    draw_item(1, true)
    draw_item(2, true)
    draw_item(3, true)
    self.active = false
    self.x = 374
    self.y = 0
    id = 0
    pokaz_stat($game_party.members[0])
  end  # def
  #--------------------------------------------------------------------------
  # * Pokazywanie statystyk
  #     id : potwor, umiejetnosc lub bohater
  #--------------------------------------------------------------------------
  def pokaz_stat(id)
    if id != nil and id != 0
      self.contents.clear
      if id.is_a?(RPG::Skill)
        self.contents.draw_text(4, 0, 120, WLH, "Moc: "+(id.base_damage).to_s, 0)
        self.contents.draw_text(4, WLH, 120, WLH, "Do ATK: "+(id.atk_f).to_s+"%", 0)
        self.contents.draw_text(4, WLH*2, 120, WLH, "Do MAG: "+(id.spi_f).to_s+"%", 0)
        self.contents.draw_text(4, WLH*3, 120, WLH, "Rozbieżność: "+(id.variance).to_s+"%", 0)
      else
        self.contents.draw_text(4, 0, 120, WLH, "Atak: "+(id.atk).to_s, 0)
        self.contents.draw_text(4, WLH, 120, WLH, "Obrona: "+(id.def).to_s, 0)
        self.contents.draw_text(4, WLH*2, 120, WLH, "Magia: "+(id.spi).to_s, 0)
        self.contents.draw_text(4, WLH*3, 120, WLH, "Max HP: "+(id.maxhp).to_s, 0)
      end # if
    end # if
  end # def
end # Window


class Potwor_Lewel_Umiejetnosc < Window_Command
  #--------------------------------------------------------------------------
  # * Inicjalizacja  << Okno Zmiany Potwora, Lewelu, Typu Ataku oraz Umiejętności
  #--------------------------------------------------------------------------
  def initialize
    s1 = "Potwór"
    s2 = "Level"
    s3 = "Zwykły Atak"
    s4 = "Umiejętność"
    super(234, [s1, s2, s3, s4], 1, 4)
    draw_item(0, true)
    draw_item(1, true)
    draw_item(2, true)
    draw_item(3, true)
    self.active = false
    self.x = 140
    self.y = 0
    idpotwor = 1
    lewel = 1
    atak = 1
    umiejetnosc = 1
    pokaz_dane(idpotwor,lewel,atak,umiejetnosc)
  end # def
  #--------------------------------------------------------------------------
  # * Pokazywanie informacji
  #     idpotwor : ID potwora w bazie
  #     lewel : Level bohatera
  #     atak : Zwykły Atak lub Umiejętność
  #     umiejetnosc : ID umiejetnosci w bazie
  #--------------------------------------------------------------------------
  def pokaz_dane(idpotwor,lewel,atak,umiejetnosc)
    self.contents.clear
    self.contents.draw_text(4, 0, 204, WLH, "ID:"+idpotwor.to_s+" "+$data_enemies[idpotwor].name, 0)
    self.contents.draw_text(4, WLH, 204, WLH, "Lewel: "+lewel.to_s, 0)
    if atak == 1
      self.contents.draw_text(4, WLH*2, 204, WLH, "Zwykły Atak ", 0)
    else
      self.contents.draw_text(4, WLH*2, 204, WLH, "Umiejętność ID: "+umiejetnosc.to_s, 0)
    end # if
    self.contents.draw_text(4, WLH*3, 204, WLH, $data_skills[umiejetnosc].name, 0)
  end # def
end # Window


class Window_Bohater_Dane < Window_Base
  #--------------------------------------------------------------------------
  # * Inicjalizacja  << Okno Wyświetla informacje o obrażeniach zadawanych
  #                     przez Bohatera
  #--------------------------------------------------------------------------
  def initialize
    super(0, 128, 272, 288)
    refresh($game_actors[1],1)
  end # def
 
  #--------------------------------------------------------------------------
  # * Odświeżanie okna, czyli pokazywanie informacji
  #     bohater : bohater
  #     idpotwor : ID potwora w bazie
  #     atak : Zwykły Atak lub Umiejętność
  #     umiejetnoscid : ID umiejetnosci w bazie
  #--------------------------------------------------------------------------
  def refresh(bohater,idpotwora,atak=1,umiejetnoscid=1)
    self.contents.clear
    if $game_party.members.size == 0
      self.contents.draw_text(4, WLH, 272, WLH, "Brak Bohatera", 0)
      return
    elsif $game_party.members.size == 1 and (bohater == $game_party.members[1] or bohater == $game_party.members[2] or bohater == $game_party.members[3])
      self.contents.draw_text(4, WLH, 272, WLH, "Brak Bohatera", 0)
      return
    elsif $game_party.members.size == 2 and (bohater == $game_party.members[2] or bohater == $game_party.members[3])
      self.contents.draw_text(4, WLH, 272, WLH, "Brak Bohatera", 0)
      return
    elsif $game_party.members.size == 3 and bohater == $game_party.members[3]
      self.contents.draw_text(4, WLH, 272, WLH, "Brak Bohatera", 0)
      return
    end # if
    potwor = $data_enemies[idpotwora]
    umiej = $data_skills[umiejetnoscid]
    if atak == 1
      obliczanie_ataku(bohater,potwor)
    elsif atak == 2
      obliczanie_obrazen_umiejetnosci(bohater,potwor,umiej)
    end # if
    self.contents.draw_text(36, 0, 232, WLH, bohater.name, 0)
    self.contents.draw_text(4, WLH, 232, WLH, "Obrażenia: "+@minimum.to_s+" - "+@maximum.to_s, 0)
    if atak == 1
      if bohater.weapon_id != 0
        bron = $data_weapons[bohater.weapon_id]
        if bron.dual_attack
          self.contents.draw_text(4, WLH, 232, WLH, "(x2)", 2)
        end # if
      end # if
      ranga = 7
      for atr in bohater.element_set
        rang = potwor.element_ranks[atr]
        if rang < ranga
          ranga = rang
        end # if
      end # for
      if ranga == 7; ranga = 3; end # if
      wynik = [0,"200%","150%","100%","50%","0%","-100%"][ranga]
      ranga = [0,"A: ","B: ","C: ","D: ","E: ","F: "][ranga]
      self.contents.draw_text(4, 0, 232, WLH, ranga+wynik, 2)
    elsif atak == 2
      if umiej.scope == 3
        self.contents.draw_text(4, WLH, 232, WLH, "(x2)", 2)
      end # if
      ranga = 7
      for atr in umiej.element_set
        rang = potwor.element_ranks[atr]
        if rang < ranga
          ranga = rang
        end # if
      end # for
      if ranga == 7; ranga = 3; end # if
      wynik = [0,"200%","150%","100%","50%","0%","-100%"][ranga]
      ranga = [0,"A: ","B: ","C: ","D: ","E: ","F: "][ranga]
      self.contents.draw_text(4, 0, 232, WLH, ranga+wynik, 2)
    end # if
    self.contents.draw_text(4, WLH*2, 232, WLH, "Pokona po:     MaxHP("+(potwor.maxhp).to_s+")", 0)
    self.contents.font.size = 15
    minimum_tur = 0
    maximum_tur = 0
    for tura in 1..10
      self.contents.draw_text(4, WLH*(2+tura*0.7), 232, WLH, "Tura: "+tura.to_s, 0)
      hppotwora = potwor.maxhp
      hppotwora -= @minimum*tura
      if hppotwora <= 0
        if minimum_tur == 0
          self.contents.font.color = text_color(3)
          minimum_tur = tura
        end # if
      end # if
      self.contents.draw_text(4, WLH*(2+tura*0.7), 162, WLH, (@minimum*tura).to_s, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(4, WLH*(2+tura*0.7), 187, WLH, "-", 2)
      hppotwora = potwor.maxhp
      hppotwora -= @maximum*tura
      if hppotwora <= 0
        if maximum_tur == 0
          self.contents.font.color = text_color(3)
          maximum_tur = tura
        end # if
      end # if
      self.contents.draw_text(4, WLH*(2+tura*0.7), 232, WLH, (@maximum*tura).to_s, 2)
      self.contents.font.color = normal_color
    end #for
    self.contents.font.size = Font.default_size
    if maximum_tur == 0
      for tura in 1..99
        hppotwora = potwor.maxhp
        hppotwora -= @maximum*tura
        if hppotwora <= 0
          if maximum_tur == 0
            maximum_tur = tura
            break
          end # if
        end # if
      end # for
    end # if
    if minimum_tur == 0
      for tura in 1..99
        hppotwora = potwor.maxhp
        hppotwora -= @minimum*tura
        if hppotwora <= 0
          if minimum_tur == 0
            minimum_tur = tura
            break
          end # if
        end # if
      end # for
    end  # if
    self.contents.draw_text(4, WLH*(2+11*0.7), 162, WLH, "Od "+maximum_tur.to_s+" Do "+minimum_tur.to_s+" tur(a)", 2)
  end   # def
 
  #--------------------------------------------------------------------------
  # * Obliczanie zwykłego ataku
  #     bohater : bohater
  #     potwor : potwor
  #--------------------------------------------------------------------------
  def obliczanie_ataku(bohater,potwor)
    obrazenia = bohater.atk * 4 - potwor.def * 2       
    obrazenia = 0 if obrazenia < 0
    ranka = 7
    for atr in bohater.element_set
      rank = potwor.element_ranks[atr]
      if rank < ranka
        ranka = rank
      end # if
    end # for
    if ranka == 7; ranka = 3; end # if
    result = [0,200,150,100,50,0,-100][ranka]
    obrazenia *= result
    obrazenia /= 100
    @minimum = obrazenia*4/5
    @maximum = obrazenia*6/5
    @maximum/2 if bohater.super_guard
    @minimum/2 if bohater.super_guard
    if bohater.weapon_id != 0
      bron = $data_weapons[bohater.weapon_id]
      if bron.dual_attack
        @minimum *= 2
        @maximum *= 2
      end # if
    end # if
  end # def

  #--------------------------------------------------------------------------
  # * Obliczanie umiejetności
  #     bohater : bohater
  #     potwor : potwor
  #     umiej : umiejetność
  #--------------------------------------------------------------------------
  def obliczanie_obrazen_umiejetnosci(bohater,potwor,umiej)
    obrazenia = umiej.base_damage                       
    if obrazenia > 0                                   
      obrazenia += bohater.atk * 4 * umiej.atk_f / 100     
      obrazenia += bohater.spi * 2 * umiej.spi_f / 100     
      unless umiej.ignore_defense                     
        obrazenia -= potwor.def * 2 * umiej.atk_f / 100   
        obrazenia -= potwor.spi * 1 * umiej.spi_f / 100   
      end # unless
      obrazenia = 0 if obrazenia < 0                     
    elsif obrazenia < 0                               
      obrazenia -= bohater.atk * 4 * umiej.atk_f / 100     
      obrazenia -= bohater.spi * 2 * umiej.spi_f / 100     
    end # if
    ranka = 7
    for atr in umiej.element_set
      rank = potwor.element_ranks[atr]
      if rank < ranka
        ranka = rank
      end # if
    end # for
    if ranka == 7; ranka = 3; end # if
    result = [0,200,150,100,50,0,-100][ranka]
    obrazenia *= result
    obrazenia /= 100
    @minimum = obrazenia*(100-umiej.variance)
    @minimum /= 100
    @maximum = obrazenia*(100+umiej.variance)
    @maximum /= 100
    @maximum/2 if bohater.super_guard
    @minimum/2 if bohater.super_guard 
    if umiej.scope == 3
      @minimum *= 2
      @maximum *= 2
    end # if
  end # def
end # Window


class Window_Potwor_Dane < Window_Base
  #--------------------------------------------------------------------------
  # * Inicjalizacja  << Okno Wyświetla informacje o obrażeniach zadawanych
  #                     przez Potwora
  #--------------------------------------------------------------------------
  def initialize
    super(272, 128, 272, 288)
    refresh($game_actors[1],1)
  end # def
 
  #--------------------------------------------------------------------------
  # * Odświeżanie okna, czyli pokazywanie informacji
  #     bohater : bohater
  #     idpotwor : ID potwora w bazie
  #     atak : Zwykły Atak lub Umiejętność
  #     umiejetnoscid : ID umiejetnosci w bazie
  #--------------------------------------------------------------------------
  def refresh(bohater,idpotwora,atak=1,umiejetnoscid=1)
    self.contents.clear
    if $game_party.members.size == 0
      self.contents.draw_text(4, WLH, 272, WLH, "Brak Bohatera", 0)
      return
    elsif $game_party.members.size == 1 and (bohater == $game_party.members[1] or bohater == $game_party.members[2] or bohater == $game_party.members[3])
      self.contents.draw_text(4, WLH, 272, WLH, "Brak Bohatera", 0)
      return
    elsif $game_party.members.size == 2 and (bohater == $game_party.members[2] or bohater == $game_party.members[3])
      self.contents.draw_text(4, WLH, 272, WLH, "Brak Bohatera", 0)
      return
    elsif $game_party.members.size == 3 and bohater == $game_party.members[3]
      self.contents.draw_text(4, WLH, 272, WLH, "Brak Bohatera", 0)
      return
    end # if
    potwor = $data_enemies[idpotwora]
    umiej = $data_skills[umiejetnoscid]
    if atak == 1
      obliczanie_ataku(potwor,bohater)
    elsif atak == 2
      obliczanie_obrazen_umiejetnosci(potwor,bohater,umiej)
    end       # if
    self.contents.draw_text(36, 0, 232, WLH, potwor.name, 0)
    self.contents.draw_text(4, WLH, 232, WLH, "Obrażenia: "+@minimum.to_s+" - "+@maximum.to_s, 0)
    if atak == 2
      if umiej.scope == 3
        self.contents.draw_text(4, WLH, 232, WLH, "(x2)", 2)
      end # if
      ranga = 7
      for atr in umiej.element_set
        rang = bohater.class.element_ranks[atr]
        if rang < ranga
          ranga = rang
        end # if
      end # for
      if ranga == 7; ranga = 3; end # if
      wynik = [0,"200%","150%","100%","50%","0%","-100%"][ranga]
      ranga = [0,"A: ","B: ","C: ","D: ","E: ","F: "][ranga]
      self.contents.draw_text(4, 0, 232, WLH, ranga+wynik, 2)
    end # if
    self.contents.draw_text(4, WLH*2, 232, WLH, "Pokona po:     MaxHP("+(bohater.maxhp).to_s+")", 0)
    self.contents.font.size = 15
    minimum_tur = 0
    maximum_tur = 0
    for tura in 1..10
      self.contents.draw_text(4, WLH*(2+tura*0.7), 232, WLH, "Tura: "+tura.to_s, 0)
      hppotwora = bohater.maxhp
      hppotwora -= @minimum*tura
      if hppotwora <= 0
        if minimum_tur == 0
          self.contents.font.color = text_color(3)
          minimum_tur = tura
        end # if
      end # if
      self.contents.draw_text(4, WLH*(2+tura*0.7), 162, WLH, (@minimum*tura).to_s, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(4, WLH*(2+tura*0.7), 187, WLH, "-", 2)
      hppotwora = bohater.maxhp
      hppotwora -= @maximum*tura
      if hppotwora <= 0
        if maximum_tur == 0
          self.contents.font.color = text_color(3)
          maximum_tur = tura
        end # if
      end # if
      self.contents.draw_text(4, WLH*(2+tura*0.7), 232, WLH, (@maximum*tura).to_s, 2)
      self.contents.font.color = normal_color
    end # for
    self.contents.font.size = Font.default_size
    if maximum_tur == 0
      for tura in 1..99
        hppotwora = bohater.maxhp
        hppotwora -= @maximum*tura
        if hppotwora <= 0
          if maximum_tur == 0
            maximum_tur = tura
            break
          end # if
        end # if
      end # for
    end # if
    if minimum_tur == 0
      for tura in 1..99
        hppotwora = bohater.maxhp
        hppotwora -= @minimum*tura
        if hppotwora <= 0
          if minimum_tur == 0
            minimum_tur = tura
            break
          end # if
        end # if
      end # for
    end   # if
    self.contents.draw_text(4, WLH*(2+11*0.7), 162, WLH, "Od "+maximum_tur.to_s+" Do "+minimum_tur.to_s+" tur(a)", 2)
  end   # def
 
  #--------------------------------------------------------------------------
  # * Obliczanie zwykłego ataku
  #     bohater : bohater
  #     potwor : potwor
  #--------------------------------------------------------------------------
  def obliczanie_ataku(potwor,bohater)
    @obrazenia = potwor.atk * 4 - bohater.def * 2       
    @obrazenia = 0 if @obrazenia < 0
    @minimum = @obrazenia*4/5
    @maximum = @obrazenia*6/5         
  end # def
 
  #--------------------------------------------------------------------------
  # * Obliczanie umiejetności
  #     bohater : bohater
  #     potwor : potwor
  #     umiej : umiejetność
  #--------------------------------------------------------------------------
  def obliczanie_obrazen_umiejetnosci(potwor,bohater,umiej)
    obrazenia = umiej.base_damage                       
    if obrazenia > 0                                   
      obrazenia += potwor.atk * 4 * umiej.atk_f / 100     
      obrazenia += potwor.spi * 2 * umiej.spi_f / 100     
      unless umiej.ignore_defense                     
        obrazenia -= bohater.def * 2 * umiej.atk_f / 100   
        obrazenia -= bohater.spi * 1 * umiej.spi_f / 100   
      end # unless
      obrazenia = 0 if obrazenia < 0                     
    elsif obrazenia < 0                               
      obrazenia -= potwor.atk * 4 * umiej.atk_f / 100     
      obrazenia -= potwor.spi * 2 * umiej.spi_f / 100     
    end # if
    ranka = 7
    for atr in umiej.element_set
      rank = bohater.class.element_ranks[atr]
      if rank < ranka
        ranka = rank
      end # if
    end # for
    if ranka == 7; ranka = 3; end # if
    result = [0,200,150,100,50,0,-100][ranka]
    obrazenia *= result
    obrazenia /= 100
    @minimum = obrazenia*(100-umiej.variance)
    @minimum /= 100
    @maximum = obrazenia*(100+umiej.variance)
    @maximum /= 100
    if umiej.scope == 3
      @minimum *= 2
      @maximum *= 2
    end # if
  end # def
end # Window

class Scene_Sprawdzanie < Scene_Base
  #--------------------------------------------------------------------------
  # * Start Sceny << Ustawienia wyświetlania okien oraz reakcji na naciskanie
  #                   klawiszy
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    tworz_wybor_bohatera
    @bohater_dane_window = Window_Bohater_Dane.new
    @potwor_dane_window = Window_Potwor_Dane.new
    @dodaj_stat_window = Window_Dodaj_Stat.new
    @glowne_window = Potwor_Lewel_Umiejetnosc.new
    @bohater_dane_window.active = false
    @potwor_dane_window.active = false
    @bohater = 0
    @idpotwora = 1
    @lvlgracza = 1
    @atak = 1
    @umiejetnosc_id = 1
  end # def
 
  #--------------------------------------------------------------------------
  # * Terminate czyli: Gdy wyjdzie ze sceny
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @wybor_bohater_window.dispose
    @bohater_dane_window.dispose
    @potwor_dane_window.dispose
    @dodaj_stat_window.dispose
    @glowne_window.dispose
  end   # def
 
  #--------------------------------------------------------------------------
  # * Odświeżanie
  #--------------------------------------------------------------------------
  def update
    update_menu_background
    @wybor_bohater_window.update
    @bohater_dane_window.update
    @potwor_dane_window.update
    @dodaj_stat_window.update
    @glowne_window.update
    if @wybor_bohater_window.active
      update_wybor_bohater_selection
    elsif @dodaj_stat_window.active
      dodawanie_stat
    elsif @glowne_window.active
      glowne_okno_aktywne
    end # if
    if Input.trigger?(Input::RIGHT) or Input.trigger?(Input::LEFT) or
      Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)
      @bohater_dane_window.refresh(@bohater,@idpotwora,@atak,@umiejetnosc_id)
      @potwor_dane_window.refresh(@bohater,@idpotwora,@atak,@umiejetnosc_id)
    end # if
  end # def

  #--------------------------------------------------------------------------
  # * Tworzenie okna wyboru bohatera
  #--------------------------------------------------------------------------
  def tworz_wybor_bohatera
    if $game_party.members.size > 0
      s1 = $game_party.members[0].name
    else
      s1 = "Brak Bohatera"
    end # if
    if $game_party.members.size > 1
      s2 = $game_party.members[1].name
    else
      s2 = "Brak Bohatera"
    end # if
    if $game_party.members.size > 2
      s3 = $game_party.members[2].name
    else
      s3 = "Brak Bohatera"
    end # if
    if $game_party.members.size > 3
      s4 = $game_party.members[3].name
    else
      s4 = "Brak Bohatera"
    end # if
    @wybor_bohater_window = Window_Command.new(140, [s1, s2, s3, s4], 1, 4)
    @wybor_bohater_window.index = 0
    if $game_party.members.size == 0
      @wybor_bohater_window.draw_item(0, false)
    end # if
    if $game_party.members.size <= 1
      @wybor_bohater_window.draw_item(1, false)
    end # if
    if $game_party.members.size <= 2
      @wybor_bohater_window.draw_item(2, false)
    end # if
    if $game_party.members.size <= 3
      @wybor_bohater_window.draw_item(3, false)
    end # if
  end # def
 
  #--------------------------------------------------------------------------
  # * Wybór Bohater << Gdy okno wyboru bohatera jest aktywne
  #--------------------------------------------------------------------------
  def update_wybor_bohater_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @wybor_bohater_window.index == 0
        Sound.play_buzzer
        return
      elsif $game_party.members.size <= 1 and @wybor_bohater_window.index == 1
        Sound.play_buzzer
        return
      elsif $game_party.members.size <= 2 and @wybor_bohater_window.index == 2
        Sound.play_buzzer
        return
      elsif $game_party.members.size <= 3 and @wybor_bohater_window.index == 3
        Sound.play_buzzer
        return
      end # if
      Sound.play_decision
      @wybor_bohater_window.active = false
      @glowne_window.active = true
    end # if
    @bohater = $game_party.members[@wybor_bohater_window.index]
    @dodaj_stat_window.pokaz_stat(@bohater)
    if $game_party.members.size == 0
      @lvlgracza = 1
      return
    elsif $game_party.members.size == 1 and (@bohater == $game_party.members[1] or @bohater == $game_party.members[2] or @bohater == $game_party.members[3])
      @lvlgracza = 1
      return
    elsif $game_party.members.size == 2 and (@bohater == $game_party.members[2] or @bohater == $game_party.members[3])
      @lvlgracza = 1
      return
    elsif $game_party.members.size == 3 and @bohater == $game_party.members[3]
      @lvlgracza = 1
      return
    end  # if
    @lvlgracza = $game_party.members[@wybor_bohater_window.index].level
    @glowne_window.pokaz_dane(@idpotwora,@lvlgracza,@atak,@umiejetnosc_id)
  end # def
 
  #--------------------------------------------------------------------------
  # * Dodawanie statystyk << gdy okno dodawania statystyk jest aktywne
  #--------------------------------------------------------------------------
  def dodawanie_stat
    if Input.trigger?(Input::RIGHT)
      Sound.play_decision
      if @dodaj_stat == 3
        if @atak == 1
          @dodaj_stat = 2
        else
          @dodaj_stat = 4
        end #if
      end #if
      if @dodaj_stat == 1
        case @dodaj_stat_window.index
        when 0
          $data_enemies[@idpotwora].atk += 1
        when 1
          $data_enemies[@idpotwora].def += 1
        when 2
          $data_enemies[@idpotwora].spi += 1
        when 3
          $data_enemies[@idpotwora].maxhp += 1
        end # case
        @dodaj_stat_window.pokaz_stat($data_enemies[@idpotwora])
      end # if
      if @dodaj_stat == 2
        case @dodaj_stat_window.index
        when 0
          @bohater.atk += 1
        when 1
          @bohater.def += 1
        when 2
          @bohater.spi += 1
        when 3
          @bohater.maxhp += 1
        end #case
        @dodaj_stat_window.pokaz_stat(@bohater)
      end # if
      if @dodaj_stat == 4
        case @dodaj_stat_window.index
        when 0
          $data_skills[@umiejetnosc_id].base_damage += 1
        when 1
          ($data_skills[@umiejetnosc_id].atk_f += 1) if $data_skills[@umiejetnosc_id].atk_f < 100
        when 2
          ($data_skills[@umiejetnosc_id].spi_f += 1) if $data_skills[@umiejetnosc_id].spi_f < 100
        when 3
          ($data_skills[@umiejetnosc_id].variance += 1) if $data_skills[@umiejetnosc_id].variance < 100
        end # case
        @dodaj_stat_window.pokaz_stat($data_skills[@umiejetnosc_id])
      end # if
    elsif Input.trigger?(Input::LEFT)
      Sound.play_decision
      if @dodaj_stat == 3
        if @atak == 1
          @dodaj_stat = 2
        else
          @dodaj_stat = 4
        end #if
      end #if
      if @dodaj_stat == 1
        case @dodaj_stat_window.index
        when 0
          ($data_enemies[@idpotwora].atk -= 1) if $data_enemies[@idpotwora].atk > 1
        when 1
          ($data_enemies[@idpotwora].def -= 1) if $data_enemies[@idpotwora].def > 1
        when 2
          ($data_enemies[@idpotwora].spi -= 1) if $data_enemies[@idpotwora].spi > 1
        when 3
          ($data_enemies[@idpotwora].maxhp -= 1) if $data_enemies[@idpotwora].maxhp > 1
        end # case
        @dodaj_stat_window.pokaz_stat($data_enemies[@idpotwora])
      end # if
      if @dodaj_stat == 2
        case @dodaj_stat_window.index
        when 0
          (@bohater.atk -= 1) if @bohater.atk > 1
        when 1
          (@bohater.def -= 1) if @bohater.def > 1
        when 2
          (@bohater.spi -= 1) if @bohater.spi > 1
        when 3
          (@bohater.maxhp -= 1) if @bohater.maxhp > 1
        end # case
        @dodaj_stat_window.pokaz_stat(@bohater)
      end # if
      if @dodaj_stat == 4
        case @dodaj_stat_window.index
        when 0
          $data_skills[@umiejetnosc_id].base_damage -= 1
        when 1
          ($data_skills[@umiejetnosc_id].atk_f -= 1) if $data_skills[@umiejetnosc_id].atk_f > 0
        when 2
          ($data_skills[@umiejetnosc_id].spi_f -= 1) if $data_skills[@umiejetnosc_id].spi_f > 0
        when 3
          ($data_skills[@umiejetnosc_id].variance -= 1) if $data_skills[@umiejetnosc_id].variance > 0
        end # case
        @dodaj_stat_window.pokaz_stat($data_skills[@umiejetnosc_id])
      end # if
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      @glowne_window.active = true
      @dodaj_stat_window.active = false
    end # if
  end # def
 
  #--------------------------------------------------------------------------
  # * Główne okno << Zmiana Potworów, Lewelu gracza, Typu ataku oraz Umiejętności
  #--------------------------------------------------------------------------
  def glowne_okno_aktywne
    @przec = []
    for wrogowie in $data_enemies
      @przec << wrogowie
    end # for
    @przec.compact!
    @wrogow_max = @przec.size
    @umiej = []
    for umiejetnosci in $data_skills
      @umiej << umiejetnosci
    end # for
    @umiej.compact!
    @umiejetnosci_max = @umiej.size
    if Input.trigger?(Input::RIGHT)
      Sound.play_decision
      case @glowne_window.index
      when 0 # Potwór
        @idpotwora += 1
        if @idpotwora > @wrogow_max
          @idpotwora = 1
        end # if
        @potwor = $data_enemies[@idpotwora]
        @dodaj_stat_window.pokaz_stat(@potwor)
      when 1 # Lewel
        @lvlgracza += 1
        if @lvlgracza > 99
          @lvlgracza = 1
        end # if
        @bohater.change_level(@lvlgracza, false)
        @dodaj_stat_window.pokaz_stat(@bohater)
      when 2 # Typ ataku
        @atak = 2
      when 3 # Umiejętnośc
        @umiejetnosc_id += 1
        if @umiejetnosc_id > @umiejetnosci_max
          @umiejetnosc_id = 1
        end # if
        @umiejetnosc = $data_skills[@umiejetnosc_id]
        @dodaj_stat_window.pokaz_stat(@umiejetnosc)
      end #case
      @glowne_window.pokaz_dane(@idpotwora,@lvlgracza,@atak,@umiejetnosc_id)
    elsif Input.trigger?(Input::LEFT)
      Sound.play_decision
      case @glowne_window.index
      when 0 # Potwór
        @idpotwora -= 1
        if @idpotwora < 1
          @idpotwora = @wrogow_max
        end # if
        @potwor = $data_enemies[@idpotwora]
        @dodaj_stat_window.pokaz_stat(@potwor)
      when 1 # Lewel
        @lvlgracza -= 1
        if @lvlgracza < 1
          @lvlgracza = 99
        end # if
        @bohater.change_level(@lvlgracza, false)
        @dodaj_stat_window.pokaz_stat(@bohater)
      when 2 # Typ ataku
        @atak = 1
      when 3 # Umiejętność
        @umiejetnosc_id -= 1
        if @umiejetnosc_id < 1
          @umiejetnosc_id = @umiejetnosci_max
        end # if
        @umiejetnosc = $data_skills[@umiejetnosc_id]
        @dodaj_stat_window.pokaz_stat(@umiejetnosc)
      end #case
      @glowne_window.pokaz_dane(@idpotwora,@lvlgracza,@atak,@umiejetnosc_id)
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      @wybor_bohater_window.active = true
      @glowne_window.active = false
      @glowne_window.pokaz_dane(@idpotwora,@lvlgracza,@atak,@umiejetnosc_id)
    elsif Input.trigger?(Input::C)
      Sound.play_decision
      case @glowne_window.index
      when 0 # Potwór
        @dodaj_stat = 1
        @dodaj_stat_window.active = true
        @glowne_window.active = false
      when 1 # Level
        @dodaj_stat = 2
        @dodaj_stat_window.active = true
        @glowne_window.active = false
      when 2
        @dodaj_stat = 3
        @dodaj_stat_window.active = true
        @glowne_window.active = false
      when 3 # Umiejętność
        @dodaj_stat = 4
        @dodaj_stat_window.active = true
        @glowne_window.active = false
      end # case
      @glowne_window.pokaz_dane(@idpotwora,@lvlgracza,@atak,@umiejetnosc_id)
    end # if
    if @glowne_window.index == 0
      @potwor = $data_enemies[@idpotwora]
      @dodaj_stat_window.pokaz_stat(@potwor)
    elsif @glowne_window.index == 1
      @dodaj_stat_window.pokaz_stat(@bohater)
    elsif @glowne_window.index == 2
      if @atak == 1
        @dodaj_stat_window.pokaz_stat(@bohater)
      elsif @atak == 2
        @umiejetnosc = $data_skills[@umiejetnosc_id]
        @dodaj_stat_window.pokaz_stat(@umiejetnosc)
      end # if
    elsif @glowne_window.index == 3
      @umiejetnosc = $data_skills[@umiejetnosc_id]
      @dodaj_stat_window.pokaz_stat(@umiejetnosc)
    end # if
  end # def
 
end #Scene_Sprawdzanie


Screeny:
Spoiler:



Dodatkowe informacje:
Skrypt to wersja 1.9, skrypt nadal jest otwartym projektem, jeśli macie sugestię
proszę napiszcie poniżej :)
 
 
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