Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Sro 16 Gru, 2009 12:21
Rozszerzenie Ekwipunku
~ Rozszerzenie Ekwipunku VX ~
Krótki opis
Skrypt umożliwia dodanie nowych lokacji w ekwipunku i wyróżnienie przedmiotów (takich jak Buty lub Naramienniki), które dotąd były zaklasyfikowane jako 'akcesoria'.
Autor skryptu
KGC
Tłumaczenie i poprawki
Ayene [yurika@o2.pl]
Kompatybilność
Tylko VX
UWAGA!!!
Skrypt jest w dużym stopniu przerobiony (okrojony - według mnie - z niepotrzebnych udziwnień). Zaleca się uważne przetestowanie jego działania.
Skrypt
Spoiler:
Kod:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ Tytuł: Equipment Extension / Rozszerzenie Ekwipunku
#_/ Autor: KGC
#_/ Tłumaczenie i korekta: Ayene
#_/ www.ultimateam.pl
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ Skrypt umożliwia dodanie nowych lokacji w ekwipunku i wyróżnienie
#_/ przedmiotów (takich jak Buty lub Naramienniki), które dotąd były
#_/ zaklasyfikowane jako 'akcesoria'.
#_/----------------------------------------------------------------------------
#_/ INSTRUKCJA
#_/
#_/ By skorzystać z funkcji musisz umieścić w oknie 'Notes' pancerza w bazie
#_/ danych notatkę <equipkind TypEkwipunku>, gdzie TypEkwipunku to konkretna
#_/ lokacja zdefiniowana poniżej (patrz EXTRA_EQUIP_KIND), np.
#_/ Wpisanie notatki <equipkind Nogi> sprawi, że wybrany pancerz będzie
#_/ przyporządkowany nogom.
#_/
#_/
#_/ Dodatkowe polecenia
#_/
#_/ * set_actor_equip_type(ID_Postaci, [TypEkwipunku])
#_/ Pozwala ręcznie ustalić sloty ekwipunku konkretnej postaci.
#_/ np. set_actor_equip_type(2, [0, 2, 3, 3, 3])
#_/ Gdzie:
#_/ 0:Broń / Tarcza 1:Hełm 2:Zbroja 3:Akcesoria 4:"Nogi" 5:"Ramiona"
#_/ Tym samym postać o nr id 2 będzie miała w ekwipunku:
#_/ broń i tarczę, hełm oraz trzy akcesoria.
#_/
#_/ * change_actor_equipment(ID_Postaci, slot_ekwipunku, ID_Przedmiotu)
#_/ Pozwala zmienić ekwipunek wybranej postaci pod warunkiem, że wybrany
#_/ przedmiot znajduje się w inwentarzu drużyny.
#_/ UWAGA! slot_ekwipunku różni się od Typu Ekwipnuku:
#_/ 0:Broń 1: Tarcza 2:Hełm 3:Zbroja 4:Akcesoria 5:"Nogi" 6:"Ramiona"
#_/
#_/ np. change_actor_equipment(1, 3, 15)
#_/ Zmieni bohaterowi o id 1 (Ralph domyślnie) zbroją (3) na Chainmail
#_/ (15 w bazie danych)
#_/ Wskazówka: ustawienie ID_Przedmiotu na 0 usunie go z ekwipunku (nadal będzie
#_/ w inwentarzu).
#_/
#_/============================================================================
#_/ Instalacja: Umieść skrypt nad Main
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
module KGC
module EquipExtension
# Dodatkowe rodzaje ekwipunku:
# Tutaj możesz dodać nowe 'sloty' ekwipunku.
# Każdej nowej lokacji przyporządkowany jest numer.
# Pierwsze cztery numery przyporządkowane czterem typom ekwipunku
# (Tarcza, Hełm, Zbroja, Akcesoria) to kolejno 0, 1, 2, 3.
# Poniższe dwa typy zatem mają przydzielone cyfry 4 i 5. Oczywiście można dodać
# ich dowolną ilość.
# Przykład: EXTRA_EQUIP_KIND = ["Nogi", "Ramiona", "Księga zaklęć"]
EXTRA_EQUIP_KIND = ["Nogi", "Ramiona"]
# Lokacje ekwipunku
# Tutaj można wybrać listę lokacji, która wyświetlać się będzie w menu.
# Istotna jest kolejność!
# 0:Broń / Tarcza 1:Hełm 2:Zbroja 3:Akcesoria 4:"Nogi" 5:"Ramiona"
EQUIP_TYPE = [0, 1, 2, 5, 4, 3, 3]
end
end
#=============================================================================#
# KONIEC KONFIGURACJI #
#=============================================================================#
$imported = {} if $imported == nil
$imported["EquipExtension"] = true
# Wpisz <equipkind Lokacja> w Notatkach przedmiotu w bazie danych i w miejsce
# lokacji wpisz rodzaj ekwipunku.
# Przykład: <equipkind Nogi> lub <EQUIP_KIND Nogi> sprawi, że dany przedmiot
# będzie przyporządkowany nogom
module Regexp
module Armor
EQUIP_KIND = /<(?:EQUIP_KIND|equipkind)\s*(.+)>/i
end
end
end
def set_actor_equip_type(actor_id, equip_type = nil)
actor = $game_actors[actor_id]
return if actor == nil
actor.equip_type = equip_type
end
def change_actor_equipment(actor_id, index, item_id)
actor = $game_actors[actor_id]
return if actor == nil
actor.change_equip_by_id(index, item_id)
end
end
end
class RPG::BaseItem
def create_equip_extension_cache
@__equip_type = []
end
def equip_type
create_equip_extension_cache if @__equip_type == nil
return @__equip_type
end
end
#==============================================================================
# RPG::Armor
#==============================================================================
class RPG::Armor < RPG::BaseItem
def create_equip_extension_cache
super
@__kind = -1
self.note.split(/[\r\n]+/).each { |line|
if line =~ KGC::EquipExtension::Regexp::Armor::EQUIP_KIND
e_index = KGC::EquipExtension::EXTRA_EQUIP_KIND.index($1)
next if e_index == nil
@__kind = e_index + 4
end
}
end
unless $@
alias kind_KGC_EquipExtension kind
def kind
create_equip_extension_cache if @__kind == nil
return (@__kind == -1 ? kind_KGC_EquipExtension : @__kind)
end
end
end
extra_armor_number.times { |i|
if extra_armor_id[i] == item.id
@extra_armor_id[i] = 0
break
end
}
restore_battle_skill if $imported["SkillCPSystem"]
restore_passive_rev if $imported["PassiveSkill"]
end
alias class_id_equal_KGC_EquipExtension class_id=
def class_id=(class_id)
class_id_equal_KGC_EquipExtension(class_id)
return if extra_armor_number == 0
for i in 5..armor_number
change_equip(i, nil) unless equippable?(equips[i])
end
end
end
unit = ($imported["LargeParty"] ?
$game_party.all_members : $game_party.members)
actor = unit[actor_index]
@equip_index = [@equip_index, actor.armor_number].min
end
alias create_item_windows_KGC_EquipExtension create_item_windows
def create_item_windows
create_item_windows_KGC_EquipExtension
def update_item_windows
kind = equip_kind(@equip_window.index)
for i in 0...EQUIP_TYPE_MAX
@item_windows[i].visible = (kind == i)
@item_windows[i].update
end
@item_window = @item_windows[kind]
end
def equip_kind(index)
if index == 0
return 0
else
return @actor.equip_type[index - 1] + 1
end
end
unless $imported["ExtendedEquipScene"]
def update_status_window
if @equip_window.active
@status_window.set_new_parameters(nil, nil, nil, nil)
elsif @item_window.active
temp_actor = Marshal.load(Marshal.dump(@actor))
temp_actor.change_equip(@equip_window.index, @item_window.item, true)
new_atk = temp_actor.atk
new_def = temp_actor.def
new_spi = temp_actor.spi
new_agi = temp_actor.agi
@status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi)
end
@status_window.update
end
end
alias update_item_selection_KGC_EquipExtension update_item_selection
def update_item_selection
if Input.trigger?(Input::C)
index = @equip_window.index
item = @item_window.item
unless item == nil ||
@actor.equippable?(item)
Sound.play_buzzer
return
end
end
class Scene_File < Scene_Base
alias read_save_data_KGC_EquipExtension read_save_data
def read_save_data(file)
read_save_data_KGC_EquipExtension(file)
Graphics.frame_reset
end
end
Demo
niepotrzebne
Screenshot
Spoiler:
Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.
Mam pomysł:
Gdyby ktoś chciał usunąć slot "Akcesoria" z ekwipunku to wystarczy, że w Data w słowniku wpisze zamiast słowa "Akcesoria" np: słowo "Pierścień". W połączeniu ze skryptem od Ayene będziemy mogli nosić dwa pierścienie.
Pomógł: 1 raz Dołączył: 06 Gru 2009 Posty: 99 Skąd: z Huty Mińskiej
Wysłany: Sro 16 Gru, 2009 21:30
spróbuj z tym (tylko zmień sobie początek...) :
Spoiler:
Kod:
# ==========================================================
# ~ Rozszerzone okno statusu ~
# Data publikacji: 11.10.2009
# Autor: KGC
# Tłumaczenie i poprawki: Ayene [yurika@o2.pl]
# Zapraszam na stronę UltimaForum - http://www.ultimateam.pl
# ==========================================================
# Instalacja: Umieść ten skrypt nad Main w Edytorze Skryptu.
# Do poprawnego działania wymagane jest umieszczenie w projekcie gry skryptu
# Bitmapa (by KGC). Skrypt dostępny jest na stronie www.ultimateam.pl
# ==========================================================
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# --------------------------- POCZĄTEK SKRYPTU ---------------------------------
$data_states = load_data("Data/States.rvdata") if $data_states == nil
$data_system = load_data("Data/System.rvdata") if $data_system == nil
module KGC
module ExtendedStatusScene
# ---------------------------- POCZĄTEK EDYCJI ---------------------------------
# Tekst w profilu
PROFILE = []
# W tym miejscu można wpisać tekst, który ma się wyświetlać w profilu.
# Poniższy fragment skryptu należy wypełnić według wzoru:
# PROFILE[ID] = 'Tekst w Profilu'
# Dozwolone jest formatownie tekstu - zmiana koloru (\C[numer]
# Wyświetlanie imienia bohatera - \N[ID]
# Przejście do następnej linijki - \|
PROFILE[1] =
'Podjęte misje: \v[1]\|' +
'Wykonane misje: \v[2]\|' +
'\|' +
'\|' +
''
PROFILE[2] =
'Name: \N[1]\|' +
'\C[2]Wpisz co chcesz\C[0]\|' +
'\|' +
'Tutaj wpisz informacje o bohaterze z ID 1 \|' +
'To jest kolejna linijka tekstu'
# Styl wyświetlania odporności
# 0 .. Układ graficzny
# 1 .. Wykaz procentowy
# 2 .. Układ graficzny i wykaz procentowy
RESIST_STYLE = 2
# Styl wykazu procentowego
# 0 .. wykazuje procentowo szansę uzyskania przez bohatera konkretnego stanu
# np. jeśli bohater w bazie danych ma ustawioną odporność na status 'śmierć'
# i ma ona wartość A, oznacza to, że bohater ma 100% szansy na jego uzyskanie.
# 1 .. wykazuje procentowo szansę obrony przed konkretnym statusem
# np. jeśli bohater w bazie danych ma ustawioną odporność na status 'śmierć'
# i ma ona wartość A, oznacza to, że bohater ma 0% szansy na obronę przed nim.
RESIST_NUM_STYLE = 0
# Zakres statusów/odporności
# od 1 do tylu ile jest w bazie danych
STATE_RANGE = [1...$data_states.size]
# ----------------------------- KONIEC EDYCJI ----------------------------------
end
end
# -----------NIE EDYTUJ PONIŻEJ, CHYBA ŻE WIESZ CO ROBISZ ^^--------------------
$imported = {} if $imported == nil
$imported["ExtendedStatusScene"] = true
module KGC::ExtendedStatusScene
module_function
#--------------------------------------------------------------------------
# - Konwertowanie zasięgu na liczbę
#--------------------------------------------------------------------------
def convert_integer_array(array, type = nil)
result = []
array.each { |i|
case i
when Range
result |= i.to_a
when Integer
result |= [i]
end
}
case type
when :element
result.delete_if { |x| x >= $data_system.elements.size }
when :state
result.delete_if { |x|
x >= $data_states.size ||
$data_states[x].nonresistance ||
$data_states[x].priority == 0
}
end
return result
end
# Sprawdzanie listy atrybutów
CHECK_ELEMENT_LIST = convert_integer_array(ELEMENT_RANGE, :element)
# Sprawdzanie listy statusów
CHECK_STATE_LIST = convert_integer_array(STATE_RANGE, :state)
# Styl wyświetlania
case RESIST_STYLE
when 0
RESIST_STYLE_SYMBOL = :num
when 1
RESIST_STYLE_SYMBOL = :chart
else
RESIST_STYLE_SYMBOL = :both
end
end
#=========================================================
# Window_StatusCommand
#------------------------------------------------------------------------------
# Dodanie nowych opcji do okna statusu
#=========================================================
class Window_StatusCommand < Window_Command
#--------------------------------------------------------------------------
# - Rozpoczęcie
#--------------------------------------------------------------------------
def initialize
commands = []
KGC::ExtendedStatusScene::COMMANDS.each { |c|
commands << KGC::ExtendedStatusScene::COMMAND_NAME[c]
}
super(160, commands)
self.height = WLH * 5 + 32
self.active = true
end
#--------------------------------------------------------------------------
# - Dodanie nowych komend
#--------------------------------------------------------------------------
def command
return KGC::ExtendedStatusScene::COMMANDS[index]
end
#--------------------------------------------------------------------------
# - Nstępna strona
#--------------------------------------------------------------------------
def cursor_pagedown
return if Input.repeat?(Input::R)
super
end
#--------------------------------------------------------------------------
# - Poprzednia strona
#--------------------------------------------------------------------------
def cursor_pageup
return if Input.repeat?(Input::L)
super
end
end
unless $imported["GenericGauge"]
self.contents.draw_text(x, y + WLH * 0, 240, WLH, s1, 2)
self.contents.draw_text(x, y + WLH * 1, 240, WLH, s2, 2)
end
end
end
#=========================================================
# Window_StatusDetail
#------------------------------------------------------------------------------
# Dodanie okna wyświetlającego szczegółowe informacje o bohaterze.
#=========================================================
@state_chart_sprite = Sprite_Base.new
@state_chart_sprite.bitmap = Bitmap.new(height - 32, height - 32)
@state_chart_sprite.ox = @state_chart_sprite.width / 2
@state_chart_sprite.oy = @state_chart_sprite.height / 2
@state_chart_sprite.blend_type = 1
@state_chart_sprite.opacity = 0
@state_chart_sprite.visible = false
end
#--------------------------------------------------------------------------
# - Zamknięcie
#--------------------------------------------------------------------------
def dispose
@element_chart_sprite.bitmap.dispose
@element_chart_sprite.dispose
@state_chart_sprite.bitmap.dispose
@state_chart_sprite.dispose
super
end
#--------------------------------------------------------------------------
# - Wartość Z
#--------------------------------------------------------------------------
def z=(value)
super(value)
@element_chart_sprite.z = z + 1 if @element_chart_sprite != nil
@state_chart_sprite.z = z + 1 if @state_chart_sprite != nil
end
#--------------------------------------------------------------------------
# - Kategorie
#--------------------------------------------------------------------------
def category=(category)
return if @category == category
@category = category
refresh
end
#--------------------------------------------------------------------------
# - Odświeżanie
#--------------------------------------------------------------------------
def refresh
@element_chart_sprite.visible = false
@state_chart_sprite.visible = false
return if @category == nil
self.contents.clear
case @category
when :param
draw_parameter_list
when :resist
draw_resistance
when :element_resist
draw_element_resistance(0, 0,
KGC::ExtendedStatusScene::RESIST_STYLE_SYMBOL)
when :state_resist
draw_state_resistance(0, 0,
KGC::ExtendedStatusScene::RESIST_STYLE_SYMBOL)
when :profile
draw_profile
end
Graphics.frame_reset
end
#--------------------------------------------------------------------------
# - Tworzenie listy parametrów
#--------------------------------------------------------------------------
def draw_parameter_list
y = 0
KGC::ExtendedStatusScene::PARAMS.each { |param|
draw_parameter(param, 0, y)
y += WLH
}
x = 192
contents.font.color = system_color
contents.draw_text(x, 0, 120, WLH, Vocab::equip)
@actor.equips.each_with_index { |item, i|
draw_item_name(item, x, WLH * (i + 1))
}
contents.font.color = normal_color
end
#--------------------------------------------------------------------------
# - Tworzenie parametrów
#--------------------------------------------------------------------------
def draw_parameter(param, x, y)
case param
when :atk
draw_actor_parameter(@actor, x, y, 0)
when :def
draw_actor_parameter(@actor, x, y, 1)
when :spi
draw_actor_parameter(@actor, x, y, 2)
when :agi
draw_actor_parameter(@actor, x, y, 3)
when :hit
draw_actor_parameter(@actor, x, y, 4)
when :eva
draw_actor_parameter(@actor, x, y, 5)
when :cri
draw_actor_parameter(@actor, x, y, 6)
when :cp
return unless $imported["SkillCPSystem"]
return unless KGC::SkillCPSystem::SHOW_STATUS_CP
draw_actor_cp(@actor, x, y, 156)
end
end
#--------------------------------------------------------------------------
# - Tworzenie parametrów bohatera
#--------------------------------------------------------------------------
def draw_actor_parameter(actor, x, y, type)
return super(actor, x, y, type) if type <= 3
names = KGC::ExtendedStatusScene::PARAMETER_NAME
case type
when 4
parameter_name = names[:hit]
parameter_value = actor.hit
when 5
parameter_name = names[:eva]
parameter_value = actor.eva
when 6
parameter_name = names[:cri]
parameter_value = actor.cri
end
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2)
end
#--------------------------------------------------------------------------
# - Tworzenie odporności
#--------------------------------------------------------------------------
def draw_resistance
case KGC::ExtendedStatusScene::RESIST_STYLE
when 0
type = :num
else
type = :chart
end
x = 0
contents.font.color = system_color
contents.draw_text(x, 0, 120, WLH,
KGC::ExtendedStatusScene::PARAMETER_NAME[:element_resist])
contents.font.color = normal_color
x = draw_element_resistance(x, WLH, type)
contents.font.color = normal_color
end
#--------------------------------------------------------------------------
# - Tworzenie odporności na atrybuty
#--------------------------------------------------------------------------
def draw_element_resistance(x, y, type)
if KGC::ExtendedStatusScene::CHART_HIGHQUALITY
Bitmap.smoothing_mode = TRGSSX::SM_ANTIALIAS
end
if [:chart, :both].include?(type) && $imported["BitmapExtension"]
x = draw_element_resistance_chart(x, y)
@element_chart_sprite.visible = true
end
if [:num, :both].include?(type)
x = draw_element_resistance_num(x, y)
end
Bitmap.smoothing_mode = TRGSSX::SM_DEFAULT
return x
end
#--------------------------------------------------------------------------
# - Tworzenie wykresu odporności na atrybuty
#--------------------------------------------------------------------------
def draw_element_resistance_chart(x, y)
r = (contents.height - y - 56) / 2
cx = x + r + 28
cy = y + r + 28
pw = (Bitmap.smoothing_mode == TRGSSX::SM_ANTIALIAS ? 2 : 1)
elements = KGC::ExtendedStatusScene::CHECK_ELEMENT_LIST
draw_chart_line(cx, cy, r, elements.size, 3, pw)
# wykres
points = []
elements.each_with_index { |e, i|
n = @actor.element_rate(e)
n = 100 - n if KGC::ExtendedStatusScene::RESIST_NUM_STYLE == 1
n = [[n, -100].max, 200].min
dr = r * (n + 100) / 100 / 3
rad = Math::PI * (360.0 * i / elements.size - 90.0) / 180.0
dx = cx + Integer(dr * Math.cos(-rad))
dy = cy + Integer(dr * Math.sin(rad))
points << [dx, dy]
return (x + cx + r + 42)
end
#--------------------------------------------------------------------------
# - Tworzenie wykazu procentowego odporności na atrybuty
#--------------------------------------------------------------------------
def draw_element_resistance_num(x, y)
origin_y = y
contents.font.color = normal_color
KGC::ExtendedStatusScene::CHECK_ELEMENT_LIST.each { |i|
if y + WLH > contents.height
x += 84
y = origin_y
end
draw_icon(KGC::ExtendedStatusScene::ELEMENT_ICON[i], x, y)
n = @actor.element_rate(i)
n = 100 - n if KGC::ExtendedStatusScene::RESIST_NUM_STYLE == 1
rate = sprintf("%4d%%", n)
contents.draw_text(x + 24, y, 52, WLH, rate, 2)
y += WLH
}
return (x + 96)
end
#--------------------------------------------------------------------------
# - Tworzenie odporności na statusy
#--------------------------------------------------------------------------
def draw_state_resistance(x, y, type)
if KGC::ExtendedStatusScene::CHART_HIGHQUALITY
Bitmap.smoothing_mode = TRGSSX::SM_ANTIALIAS
end
if [:chart, :both].include?(type) && $imported["BitmapExtension"]
x = draw_state_resistance_chart(x, y)
@state_chart_sprite.visible = true
end
if [:num, :both].include?(type)
x = draw_state_resistance_num(x, y)
end
Bitmap.smoothing_mode = TRGSSX::SM_DEFAULT
return x
end
#--------------------------------------------------------------------------
# - Tworzenie wykresu odporności na statusy
#--------------------------------------------------------------------------
def draw_state_resistance_chart(x, y)
r = (contents.height - y - 56) / 2
cx = x + r + 28
cy = y + r + 28
pw = (Bitmap.smoothing_mode == TRGSSX::SM_ANTIALIAS ? 2 : 1)
states = KGC::ExtendedStatusScene::CHECK_STATE_LIST
draw_chart_line(cx, cy, r, states.size, 2, pw)
# wykres
points = []
states.each_with_index { |s, i|
state = $data_states[s]
n = @actor.state_probability(s)
n = 100 - n if KGC::ExtendedStatusScene::RESIST_NUM_STYLE == 1
dr = r * n / 100
rad = Math::PI * (360.0 * i / states.size - 90.0) / 180.0
dx = cx + Integer(dr * Math.cos(-rad))
dy = cy + Integer(dr * Math.sin(rad))
points << [dx, dy]
Póki wybieram Nową Grę, wszystko jest ok, ale gdy zapiszę stan gry i próbuję go wczytać, wyskakuje:
Cytat:
Script 'Ekwipunek' line 107: NoMethodError occured.
undefined method `restore_equip' for #<Game_Actor:0x2bbbe98>
________________________ Embrace your dreams... And... whatever happens... protect your honor...
Interesuje Cię moja gra ? Dowiedz się więcej TUTAJ lub na FORUM GRY
No i jest w porządku :) Ayene, jak zwykle niezawodna ! Dziękuję :)
[ Dodano: Nie 20 Gru, 2009 15:41 ]
Sory, za double post. Chyba zostanę Bug Finder'em, albo czymś takim.
Po wejściu do statusu (skrypt "Rozszerzone Okno Statusu" z tego forum) wyskakuje:
Cytat:
Script 'Status' line 403: NameError occured.
unintialized constant KGC::EquipExtension::SHOW_STATUS_EP
________________________ Embrace your dreams... And... whatever happens... protect your honor...
Interesuje Cię moja gra ? Dowiedz się więcej TUTAJ lub na FORUM GRY
Kurka wodna, Ayene, przez ten kocioł ze świętami kompletnie tracę zmysły programisty ! Na szczęście Ty, jak zawsze niezawodna :) Dzięki wielkie !!
________________________ Embrace your dreams... And... whatever happens... protect your honor...
Interesuje Cię moja gra ? Dowiedz się więcej TUTAJ lub na FORUM GRY
def update
super
update_basic(true)
update_info_viewport
if $game_message.visible
@info_viewport.visible = false
@message_window.visible = true
end
unless $game_message.visible
return if judge_win_loss
update_scene_change
if @target_enemy_window != nil
update_target_enemy_selection
elsif @target_actor_window != nil
update_target_actor_selection
elsif @skill_window != nil
update_skill_selection
elsif @item_window != nil
update_item_selection
elsif @party_command_window.active
update_party_command_selection
elsif @actor_command_window.active
update_actor_command_selection
elsif @equip_window != nil
update_equip
else
process_battle_event
process_action
process_battle_event
end
end
end
def update_actor_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
prior_actor
elsif Input.trigger?(Input::C)
case @actor_command_window.index
when 0
Sound.play_decision
@active_battler.action.set_attack
start_target_enemy_selection
when 1
Sound.play_decision
start_skill_selection
when 2
Sound.play_decision
@active_battler.action.set_guard
next_actor
when 3
Sound.play_decision
start_item_selection
when 4 # Ekwipunek
Sound.play_decision
start_equip_selection
end
end
end
def create_equip_windows
@item_windows = []
kind = equip_kind(@equip_index)
for i in 0...EQUIP_TYPE_MAX
@item_windows[i] = Window_EquipItem.new(0, 208, 544, 80, @active_battler, i)
@item_windows[i].help_window = @help_window
@item_windows[i].visible = (kind == i)
@item_windows[i].y = 208
@item_windows[i].height = 80
@item_windows[i].active = false
@item_windows[i].index = -1
end
end
def update_equip_windows
kind = equip_kind(@equip_window.index)
for i in 0...EQUIP_TYPE_MAX
@item_windows[i].visible = (kind == i)
@item_windows[i].update
end
@equip_item_window = @item_windows[kind]
end
def equip_kind(index)
if index == 0
return 0
else
return @active_battler.equip_type[index - 1] + 1
end
end
def update_equip
@help_window.update
update_equip_window
update_equip_windows
update_equip_status_window
if @equip_window.active
update_equip_selection
elsif @equip_item_window.active
update_equip_item_selection
end
end
def update_equip_selection
if Input.trigger?(Input::B)
Sound.play_cancel
end_equip_selection
elsif Input.trigger?(Input::C)
if @active_battler.fix_equipment
Sound.play_buzzer
else
Sound.play_decision
@equip_window.active = false
@equip_item_window.active = true
@equip_item_window.index = 0
end
end
end
def end_equip_selection
if @equip_window != nil
@equip_window.dispose
@equip_window = nil
@equip_status_window.dispose
@equip_status_window = nil
@help_window.dispose
@help_window = nil
@actor_command_window.active = true
for window in @item_windows
window.dispose
end
end
end
def update_equip_item_selection
if Input.trigger?(Input::B)
Sound.play_cancel
@equip_window.active = true
@equip_item_window.index = -1
@equip_item_window.active = false
elsif Input.trigger?(Input::C)
Sound.play_equip
@active_battler.change_equip(@equip_window.index, @equip_item_window.item)
@equip_window.active = true
@equip_window.refresh
@equip_item_window.active = false
@equip_item_window.index = -1
for equip_item_window in @item_windows
equip_item_window.refresh
end
end
end
end
Dzienx pomogło
Lecz się dziwie ponieważ zazwyczaj pojawia się coś takiego jak VOCAB,lub jest czytelne gdzie można zmienić słowniczek.Może to z tłumaczenia na PL.Ale jest oK
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