UltimaForum

Wsparcie [XP] - szybka walka

dominikos - Sro 17 Mar, 2010 15:59
Temat postu: szybka walka
Witam potrzebuję skryptu na szybką walkę jak np w grze margonem.
Melvin - Sro 17 Mar, 2010 16:30

Cytat:
szybką walkę

Możesz dokładniej?

Czeliosss - Sro 17 Mar, 2010 17:30

Z tego co zrozumiałem to chodzi mu o taką opcję w walce.
Atakuj Szybka Walka Uciekaj
Atakuj to walka manualna, Szybka Walka to walka automatyczna, a Uciekaj nie muszę tłumaczyć.

dominikos - Sro 17 Mar, 2010 17:55

Czeliosss o to mi właśnie chodzi
Ayene - Sro 17 Mar, 2010 19:14

Zobacz, czy o to Tobie chodziło. Zrobione na poczekaniu, więc wymagany test.
To bardzo prosty mechanizm.
Spoiler:

Kod:
# Auto-Battle XP by Ayene
# www.ultimateam.pl

class Window_PartyCommand < Window_Selectable 
  def initialize
    super(0, 0, 640, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 160
    @commands = ["Walka", "Auto", "Ucieczka"]
    @item_max = 3
    @column_max = 3
    draw_item(0, normal_color)
    draw_item(1, normal_color)
    draw_item(2, $game_temp.battle_can_escape ? normal_color : disabled_color)
    self.active = false
    self.visible = false
    self.index = 0
  end
  def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(80 + index * 160 + 4, 0, 128 - 10, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index], 1)
  end
  def update_cursor_rect
    self.cursor_rect.set(80 + index * 160, 0, 128, 32)
  end
end

class Scene_Battle
  def update_phase2   
    if Input.trigger?(Input::C)     
      case @party_command_window.index
      when 0         
        $game_system.se_play($data_system.decision_se)       
        start_phase3
      when 1
        for i in $game_party.actors
          i.current_action.kind = 0
          i.current_action.basic = 0
        end       
        start_phase4
      when 2
        if $game_temp.battle_can_escape == false         
          $game_system.se_play($data_system.buzzer_se)
          return
        end       
        $game_system.se_play($data_system.decision_se)       
        update_phase2_escape
      end
      return
    end
  end   
end


Czeliosss - Czw 18 Mar, 2010 19:32

Pozwoliłem go sobie przetestować i mam małe zastrzeżenie. Dokładnie jak bierze się auto walkę to działa tylko na jedną kolejkę, a zgaduję, że dominikos chciałby na całą walkę.
Pzdr.

dominikos - Pią 19 Mar, 2010 15:23

No tak mi potrzeba na całą walkę, i żeby prędkość walki (jak się da) przyspieszyć pod szybką walkę.

[ Dodano: Sob 20 Mar, 2010 08:10 ]
Mi błąd w 34 linijce wyskakuje

[ Dodano: Sob 20 Mar, 2010 08:16 ]
Poprawka w 35.

Ayene - Sob 20 Mar, 2010 21:00

dominikos, jakiej treści błąd Tobie wyskakuje? Na razie lepszego skryptu nie zrobię.

Powered by phpBB modified by Przemo © 2003 phpBB Group