Ultima Forum

Pełna wersja: Dual Wielding
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Heloł. Chciałbym, żeby w mojej grze było ważne w której dłoni znajduje się broń. To znaczy, jeżeli postać jest praworęczna i używa miecza prawą dłonią, to powinna zadawać więcej obrażeń niż w przypadku użycia lewej ręki. Fajnie by było, gdybym mógł to jakoś ustawić procentowo i zmieniać wartości dla różnych bohaterów. :ehe:

Jeżeli za dużo roboty, to trudno, przeżyjem. :shock:
Bump. :I
plik "root/classes.rb"
Kod:
class RPG::Actor
attr_reader :id, :features, :user_effects, :target_effects
attr_accessor :name, :nickname, :description, :class_id, :level
def initialize(id)
@id = id
@name = ''
@nickname = ''
@description = ''
@class_id = 1
@level = [1, 100]
@features = []
@user_effects = []
@target_effects = []
@equips = Array.new(5) { |i| RPG::Equip.new(i) }
end
end
class RPG::Class
attr_reader :id, :features, :user_effects, :target_effects
attr_accessor :name, :position, :exp, :param, :gparam
def initialize(id)
@id = id
@name = ''
@position = 0
@exp = [10, 0, 10, 0]
@param = [1, 0, 0, 0, 0, 0, 1, 1]
@gparam = [0, 0, 0, 0, 0, 0, 0, 0]
@features = []
@user_effects = []
@target_effects = []
end
end
class RPG::Equip
attr_reader :item_class, :item_id
def initialize(index)
@index = index
@item_class = nil
@item_id = 0
end
def setup(itemclass, itemid)
@item_class = itemclass
@item_id = itemid
end
end
class RPG::Feature
attr_reader :code, :params
def initialize(code, *params)
@code = code
@params = params
end
end
class RPG::Effect
def initialize(code, action_condition, *params)
@code = code
@action_condition = action_condition
@params = params
end

plik "root/actor.rb"
Kod:
size = x
$data_actors = []
if size >= y
id = y
$data_actors[id] = RPG::Actor.new(id)
$data_actors[id].name = '#{Imię_bohatera}'
$data_actors[id].nickname = '#{Tytuł_bohatera}'
$data_actors[id].description = '#{Opis_bohatera}'
$data_actors[id].class_id = numer_klasy_bohatera_w_bazie_danych
$data_actors[id].level = [poziom_początkowy, poziom_końcowy]
$data_actors[id].features.push(RPG::Feature.new(kod_atrybutu, parametry_atrybutu))
$data_actors[id].user_effects.push(RPG::Effect.new(kod efektu, warunek_efektu, parametry_efektu))
$data_actors[id].target_effects.push(RPG::Effect.new(kod_efektu, warunek_efektu, parametry_efektu))
$data_actors[id].equips[indeks_przedmiotu].set(klasa_przedmiotu, numer_przedmiotu)
end

plik "root/class.rb"
Kod:
size = x
$data_classes = []
if size >= y
id = y
$data_classes[id] = RPG::Class.new(id)
$data_classes[id].name = ''
$data_classes[id].position = 0
$data_classes[id].exp = [30, 0, 30, 0]
$data_classes[id].param = [1, 0, 0, 0, 0, 0, 1, 1]
$data_classes[id].gparam = [0, 0, 0, 0, 0, 0, 0, 0]
$data_classes[id].features.push(RPG::Feature.new(kod_atrybutu, parametry_atrybutu))
$data_classes[id].user_effects.push(RPG::Effect.new(kod_efektu, warunek_efektu, parametry_efektu))
$data_classes[id].target_effects.push(RPG::Effect.new(kod_efektu, warunek_efektu, parametry_efektu))
end

Skrypt "DataManager" w RPG Makerze
Kod:
module DataManager

def self.init
load_database
load_game_objects
end

def self.load_database
load_from_script('root/classes.rb')
load_from_script('root/actor.rb')
load_from_script('root/class.rb')
$data_skills = Kernel.load_data(ścieżka_do_pliku_z_atakami)
$data_items = Kernel.load_data(ścieżka_do_pliku_z_przedmiotami)
$data_weapons = Kernel.load_data(ścieżka_do_pliku_z_broniami)
$data_armors = Kernel.load_data(ścieżka_do_pliku_z_elementami_zbroi)
$data_enemies = Kernel.load_data(ścieżka_do_pliku_z_wrogami)
$data_troops = Kernel.load_data(ścieżka_do_pliku_z_grupami_potworów)
$data_states = Kernel.load_data(ścieżka_do_pliku_ze_stanami)
$data_animations = Kernel.load_data(ścieżka_do_pliku_z_animacjami)
$data_tilesets = Kernel.load_data(ścieżka_do_pliku_z_tilesetami)
$data_common_events = Kernel.load_data(ścieżka_do_pliku_z_typowymi_zdarzeniami)
$data_system = Kernel.load_data(ścieżka_do_pliku_z_ustawieniami_systemu)
$data_map_info = Kernel.load_data(ścieżka_do_pliku_z_informacjami_o_mapach)
$data_vocabulary = Kernel.load_data(ścieżka_do_pliku_ze_słownikiem)
end

def self.load_game_objects
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_message = Game_Message.new
$game_timer = Game_Timer.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
end

def self.load_from_script(filename)
require File.expand_path('./') + '/' + filename
end
end

Pamiętaj, żeby w stałych odpowiedniej klasy ustawić kod atrybutu i efektu.
Przekierowanie