Potrzebny BattleSystem
Wystąpiły następujące problemy:
Warning [2] Cannot modify header information - headers already sent by (output started at /home/ayene/public_html/forum/inc/languages/polish/global.lang.php:1) - Line: 1710 - File: inc/functions.php PHP 5.6.40 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/functions.php 1710 header
/inc/functions.php 1772 my_setcookie
/inc/functions_indicators.php 42 my_set_array_cookie
/showthread.php 578 mark_thread_read



Aktualny czas: 19-04-24, 05:18 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Odpowiedz 
[XP] Potrzebny BattleSystem
GraczMargonem Offline
*


Liczba postów: 5
Dołączył: 24-10-18

Pomógł: 0



Post: #1
Potrzebny BattleSystem

Cześć. Czy istnieje coś takiego jak Side View Battle System dla jednego gracza?
23-02-19 12:33
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a):
AlmostNoRuby Offline
*


Liczba postów: 174
Dołączył: 22-09-16

Pomógł: 33



Post: #2
RE: Potrzebny BattleSystem

Średnio rozumiem.
Chyba osoba pisząca skrypt na walkę widzianą z boku musi przewidzieć ewentualność, że będzie tylko jeden bohater w drużynie => każdy skrypt svbs będzie ogarniał także party z jednym bohaterem.

[Obrazek: userbar1.png]
25-02-19 16:45
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a): Kacpixswag
Kacpixswag Offline
*


Liczba postów: 4
Dołączył: 06-03-19

Pomógł: 1



Post: #3
RE: Potrzebny BattleSystem

Wiem jak ci pomóc
mam tutaj skrypt na dosyć ciekawy System walki
#=======================================================
#         Lune Frontal Battle System
# Autor: Raizen
# Tłumaczenie: Saskio
# Specjalnie dla Ultimateam.pl
# Kompatybilne z: RMVXAce
#=======================================================

# Instrukcja:
# Plug n' play, wklej skrypt nad 'Main' w edytorze skryptów.
#=======================================================

# Konfiguracja

module Lune_Frontal_Battle
# Grafiki nieżywych bohaterów.
# Aby dodać nowe postacie, po prostu przepisz kod:
# DeadG[1] = "Monster1", Numerek jeden oznacza ID bohatera, a "Monster1" to
# grafika nieżywej postaci.

DeadG = []

DeadG[1] = "Monster1"
DeadG[2] = "Monster1"
DeadG[3] = "Monster1"
DeadG[4] = "Monster1"
DeadG[5] = "Monster1"
DeadG[6] = "Monster1"
DeadG[7] = "Monster1"
DeadG[8] = "Monster1"
DeadG[9] = "Monster1"

# Umiejętności na bliski dystans, pamiętaj: ID_1 jest normalnym atakiem,
# i to będzie uważane jako normalny atak.
Dist = [1, 3, 4, 10, 21, 80, 81, 85, 100]

# Bronie dystansowe
# Pamiętaj, te numerki to są ID KLASY, nie ID BRONI!!!
Weapdist = [6, 10]

# Skille nie używane.
Nocast = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 80, 76, 77, 78, 85,
81, 83, 84, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 99, 102, 103, 104,
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
86, 100]

# ID Animacji Użycia (np. potiona)
Castid = 43
# Czas animacji.
Casttime = 20
end

#==============================================================================
# ==================  Nie edytuj dalej, chyba, że wiesz co robisz!  ===========
#==============================================================================

#==============================================================================
# Reescrita dos seguintes métodos
#  ==> Scene_Battle <==
# show_normal_animation
#  ==> Game_Actor <==
# use_sprite?
#==============================================================================

#==============================================================================
# Alias dos seguintes métodos

# ==> Scene_Battle <==
# update_basic
# start
# start_actor_command_selection
# dispose_spriteset

# ==> Game_Actor <==
# initialize
#==============================================================================

#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  Esta classe executa o processamento da tela de batalha.
#==============================================================================

class Scene_Battle < Scene_Base
  
  #--------------------------------------------------------------------------
  # * Aliasing
  #--------------------------------------------------------------------------
alias lune_front_update update_basic
alias lune_front_start start
alias lune_front_start_actor_command start_actor_command_selection
alias lune_front_dispose dispose_spriteset
    
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    create_battlers
    lune_front_start
  end
  #--------------------------------------------------------------------------
  # * Atualização das tropas
  #--------------------------------------------------------------------------
  def update_basic
    update_move_troops
    lune_front_update
    
  end

  #--------------------------------------------------------------------------
  # * Inicialização das variáveis
  #--------------------------------------------------------------------------
  def create_battlers
    @bitmap = Array.new(4) { Sprite_Battler.new(@viewport1) }
    @cw = []
    @ch = []
    @pattern = []
    @index = []
  for actor in $game_party.members
    draw_battler(actor.character_name, actor.character_index, 100 + actor.index*110, actor.index)
  end
end
  #--------------------------------------------------------------------------
  # * Criação dos gráficos dos personagens
  #--------------------------------------------------------------------------
   def draw_battler(character_name, index, x, y)
    return unless character_name
    @bitmap[y].bitmap = Cache.character(character_name)
    @bitmap[y].x = $game_party.members[y].screen_x = x
    @bitmap[y].y = $game_party.members[y].screen_y = 250
    $game_party.members[y].screen_x += 16
    $game_party.members[y].screen_y += 24
    @bitmap[y].z = 0
    @pattern[y] = 0
    @index[y] = index
    sign = character_name[/^[\!\$]./]
    if sign && sign.include?('$')
      @cw[y] = @bitmap[y].width / 3
      @ch[y] = @bitmap[y].height / 4
    else
      @cw[y] = @bitmap[y].width / 12
      @ch[y] = @bitmap[y].height / 8
    end
    sx = (@index[y] % 4 * 3) * @cw[y]
    sy = (@index[y] / 4 * 4 + 6 / 2) * @ch[y]
    @bitmap[y].src_rect.set(sx + @cw[y], sy, @cw[y], @ch[y])
  end
  #--------------------------------------------------------------------------
  # * Movimento dos gráficos dos personagens
  #--------------------------------------------------------------------------
  def move_actors_front(y, target = nil)
    return unless y
    unless target
      @bitmap[y].y -= 2 if @bitmap[y].y >= 220
      @pattern[y] = (@bitmap[y].y % 24) / 8
      sx = (@index[y] % 4 * 3 + @pattern[y]) * @cw[y]
      sy = (@index[y] / 4 * 4 + 6 / 2) * @ch[y]
      @bitmap[y].src_rect.set(sx, sy, @cw[y], @ch[y])
    else
      @distance_in_y = @bitmap[y].y - (@target.screen_y - 50)
      @distance_in_x = @bitmap[y].x - (@target.screen_x)
      if @bitmap[y].y >= @distance_in_y
      @bitmap[y].y -= @distance_in_y / 20
      @bitmap[y].x -= @distance_in_x / 18
      end
      @pattern[y] = (@bitmap[y].y % 24) / 8
      sx = (@index[y] % 4 * 3 + @pattern[y]) * @cw[y]
      sy = (@index[y] / 4 * 4 + 6 / 2) * @ch[y]
      @bitmap[y].src_rect.set(sx, sy, @cw[y], @ch[y])
    end
    
  end
  def move_actors_back(n)
    for y in 0...$game_party.members.size
      unless y == n
        @bitmap[y].y += 2 if @bitmap[y].y <= 248
        @distance_in_x = @bitmap[y].x - (100 + $game_party.members[y].index*110)
        @bitmap[y].x -= @distance_in_x / 15
      end
        character_name = $game_party.members[y].character_name
    if $game_party.members[y].dead?
      @index[y] = 0
      @bitmap[y].bitmap = Cache.character(Lune_Frontal_Battle::DeadG[$game_party.members[y].id]) if @bitmap[y].bitmap != Cache.character(Lune_Frontal_Battle::DeadG[$game_party.members[y].id])
    else
      @index[y] = $game_party.members[y].character_index
      @bitmap[y].bitmap = Cache.character(character_name) if @bitmap[y].bitmap != Cache.character(character_name)
    end
    @pattern[y] = (@bitmap[y].y % 24) / 8
    sx = (@index[y] % 4 * 3 + @pattern[y]) * @cw[y]
    sy = (@index[y] / 4 * 4 + 6 / 2) * @ch[y]
    @bitmap[y].src_rect.set(sx, sy, @cw[y], @ch[y])
    @bitmap[y].opacity += 4 unless @bitmap[y].opacity >= 255
    end
  end
  #--------------------------------------------------------------------------
  # * Atualização dos movimentos dos personagens
  #--------------------------------------------------------------------------
  def update_move_troops
    @startmove = nil if @party_command_window.active
    pattern = 0
    move_actors_front(@startmove, @target)
    move_actors_back(@startmove)    
  end
  #--------------------------------------------------------------------------
  # * atualização do indice.
  #--------------------------------------------------------------------------
  def start_actor_command_selection
    @startmove = BattleManager.actor.index
    lune_front_start_actor_command
  end
  def dispose_spriteset
    lune_front_dispose
    for y in 0...$game_party.members.size
    @bitmap[y].dispose
    end
  end
  
  #--------------------------------------------------------------------------
  # * atualização do indice no processamento.
  #--------------------------------------------------------------------------

  def process_action
    return if scene_changing?
    if !@subject || !@subject.current_action
      @subject = BattleManager.next_subject
      if @subject
      @subject.actor? ? @startmove = @subject.index : @startmove = nil
      end
    end
    return turn_end unless @subject
    if @subject.current_action
      @subject.current_action.prepare
      if @subject.current_action.valid?
        @status_window.open
        execute_action
      end
      @subject.remove_current_action
    end    
    process_action_end unless @subject.current_action
  end
  
  #--------------------------------------------------------------------------
  # * animações de ataque
  #--------------------------------------------------------------------------
  
  def show_attack_animation(targets)
    if @subject.actor?
      show_normal_animation(targets, @subject.atk_animation_id1, false)
      show_normal_animation(targets, @subject.atk_animation_id2, true)
    else
      show_monster_animation(targets, @subject.atk_animation_id1, false)
      abs_wait_short
    end
  end
  #--------------------------------------------------------------------------
  # * Exibição da animação normal
  #     targets      : lista dos alvos
  #     animation_id : ID da animação
  #     mirror       : inversão
  #--------------------------------------------------------------------------
  def show_monster_animation(targets, animation_id, mirror = false)
    animation_id = 1 if animation_id.nil?
      animation = $data_animations[animation_id]
    if animation
      targets.each do |target|
        @bitmap[target.index].opacity = 0
        target.animation_id = animation_id
        target.animation_mirror = mirror
        abs_wait_short unless animation.to_screen?
      end
      abs_wait_short if animation.to_screen?
    end
  end
    def show_normal_animation(targets, animation_id, mirror = false)
    animation = $data_animations[animation_id]
    if animation
      onecast = true
      targets.each do |target|
        @target = target unless from_distance?
        if !Lune_Frontal_Battle::Nocast.include?(@subject.current_action.item.id) and onecast
          abs_wait(Lune_Frontal_Battle::Casttime)
          @subject.animation_id = Lune_Frontal_Battle::Castid
          onecast = false
          abs_wait(30)
        end
        @bitmap[target.index].opacity = 0 if target.actor?
        target.animation_id = animation_id
        target.animation_mirror = mirror
        abs_wait_short unless animation.to_screen?
      end
      abs_wait_short if animation.to_screen?
    end
    @target = nil
  end
  #--------------------------------------------------------------------------
  # * verificação de ataque a distancia
  #--------------------------------------------------------------------------
  def from_distance?
    return true unless @subject.actor?
    return true if !Lune_Frontal_Battle::Dist.include?(@subject.current_action.item.id) and @subject.current_action.item.id != 1
    return true if Lune_Frontal_Battle::Weapdist.include?(@subject.weapon_type)
    return false
  end
end


#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  Esta classe gerencia os heróis. Ela é utilizada internamente pela classe
# Game_Actors ($game_actors). A instância desta classe é referenciada
# pela classe Game_Party ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Aliasing
  #--------------------------------------------------------------------------
alias lune_frontal_initialize initialize
  #--------------------------------------------------------------------------
  # * Variáveis públicas
  #--------------------------------------------------------------------------
  attr_accessor   :screen_x               # posição x na tela do battler
  attr_accessor   :screen_y               # posição y na tela do battler
  attr_accessor   :screen_z               # posição z na tela do battler
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     actor_id : ID do herói
  #--------------------------------------------------------------------------
  def initialize(actor_id)
    lune_frontal_initialize(actor_id)
    @screen_x = 0
    @screen_y = 0
    @screen_z = 0
  end
  def weapon_type
    weapons.any? {|weapon| return weapon.wtype_id }
  end
  def use_sprite?
    return true
  end
end

class Game_Enemy < Game_Battler
  def atk_animation_id1
  end
end
09-03-19 17:53
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a): Yoroiookami
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.