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.
Piszcie w razie problemów.Teyan - Sro 16 Gru, 2009 12:58 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.Greed - Sro 16 Gru, 2009 21:25 Nawet bardzo fajny tylko nie współgra ze skryptem "Rozszerzone okno statusu" bionicl - 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]
Nawet bardzo fajny tylko nie współgra ze skryptem "Rozszerzone okno statusu"
Oto sposób na kompatybilność skryptów:
Znajdź w skrypcie z rozszerzonym statusem definicję (klasa Window_Status):
Kod:
def draw_basic(x, y)
draw_actor_face(@actor, 0, (contents.height - 96) / 2)
draw_actor_name(@actor, x, y)
draw_actor_class(@actor, x + 120, y)
draw_actor_level(@actor, x, y + WLH)
draw_actor_state(@actor, x, y + WLH * 2)
draw_actor_hp(@actor, x + 120, y + WLH)
draw_actor_mp(@actor, x + 120, y + WLH * 2)
end
i po niej dodaj:
Kod:
def draw_equipments(x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
item_number = [@actor.equips.size, @actor.armor_number + 1].min
item_number.times { |i|
draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1)) }
end
Teraz wszystko powinno 'śmigać' Szczurek - Sob 19 Gru, 2009 15:18 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>
Ayene - Sob 19 Gru, 2009 19:20 Teraz powinno być w porządku - podmień skrypt z pierwszego posta.Szczurek - Nie 20 Gru, 2009 00:55 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
Ayene - Nie 20 Gru, 2009 21:52 Znajdź w skrypcie "Rozszerzone okno statusu" i usuń fragment:
Kod:
when :ep
return unless $imported["EquipExtension"]
return unless KGC::EquipExtension::SHOW_STATUS_EP
draw_actor_ep(@actor, x, y, 156)
Szczurek - Nie 20 Gru, 2009 22:05 Kurka wodna, Ayene, przez ten kocioł ze świętami kompletnie tracę zmysły programisty ! Na szczęście Ty, jak zawsze niezawodna :) Dzięki wielkie !!bionicl - Pon 01 Mar, 2010 17:57 A dało by się zrobić, aby skrypt współgrał z walką (był taki skrypt że w walce też jest Ekwipunek)?Ayene - Wto 02 Mar, 2010 09:24 Umieść to pod skryptem z rozszerzeniem ekwipunku:
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
mjack1234 - Sob 17 Kwi, 2010 20:39 Mam pytanko.
Próbowałem zmieniać wszystko ale nie działało.Gdzie mogę zmienić "słowniczek"?
(chodzi mi aby zmienić Nogi i Ramiona po angielsku)Ayene - Nie 18 Kwi, 2010 19:27 Linijka:
Kod:
EXTRA_EQUIP_KIND = ["Nogi", "Ramiona"]
Wystarczyło skorzystać z szukajki, a znalazłbyś słowo Nogi użyte w skrypcie.mjack1234 - Pon 19 Kwi, 2010 14:13 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 oKNevermind - Pią 23 Kwi, 2010 15:43 Mam pytanie, czemu wszystkie ikony w grze mam przy używaniu tego skryptu, na niebieskim tle?
Korzystam z ikon umieszczonych w tym temacie.Sabikku - Pią 23 Kwi, 2010 15:46 Najwidoczniej przy importowaniu ich do projektu nie kliknąłeś na tło, ustawiając przezroczystość.CreeperCrisis - Nie 09 Maj, 2010 17:24 Mam pytanko... Dodałem:
- Arms
- Legs
- Magic Book po dwa razy
- Magic Aura po dwa razy
- o i po dwa pierścienie (akcesoria)
Chciałbym jeszcze coś dodać... Jak myślicie:
Jest broń, tarcza, a pod tym będzie Broń pomocnicza. Może być?Sabikku - Nie 09 Maj, 2010 17:32 Może być, choć w ogóle niepotrzebne. W żadnym jrpgu nie widziałem powyżej 6 :).CreeperCrisis - Nie 09 Maj, 2010 17:34 A może to jest inne rpg.
EDIT: a może zamiast broni pomocniczej dodam "ELEMENTAL" po trzy razy.
Dodaje element do twojego ataku. Hmm...Nevermind - Sro 12 Maj, 2010 20:16 Wybaczcie, ale znów mam problem.
Tworzę eq itp. Wpisuję w notatniku <equipkind RodzajEkwipunku>
I co nie tak? Więc, bohater dostaje ten dajmy na to naszyjnik, to nie może go założyć. Dodatkowo nie widać go w ogóle w menu. Co mam zrobić?Ayene - Czw 13 Maj, 2010 06:57 Bo to nie ma być tekst '<equipkind RodzajEkwipunku>' tylko za RodzajEkwipunku należy wpisać lokację dla tego ekwipunku, np.
Kod:
<equipkind Nogi>
Nevermind - Czw 13 Maj, 2010 16:38
Ayene napisał/a:
należy wpisać lokację dla tego ekwipunku, np.
Kod:
<equipkind Nogi>
To właśnie to robię, rodzaj eq dałem za przykład CreeperCrisis - Czw 13 Maj, 2010 17:57 Wejdź do DATABASE i sprawdź zakładkę CLASS. Zobacz, czy jest zaznaczony ten przedmiot.Nevermind - Pią 14 Maj, 2010 11:55 Głupek ze mnie.
Sprawdzałem chyba ze sto razy czy wszystko dobrze wpisuję, a zapomniałem o takim szczególe <zalamka>. Dzięki.Asantos - Sro 02 Cze, 2010 19:47 A jest jakiś mało skomplikowany sposób, aby rozszerzenia ekwipunku nie przydzielać osobno postaciom tylko klasom? Czy też jest zbyt skomplikowany?CreeperCrisis - Sro 02 Cze, 2010 21:06 Aha czyli ci chodzi że np. mag może mieć np. 3 pierścienie a wojownik tylko 1. Tak?Asantos - Czw 03 Cze, 2010 10:40 Dokładnie. I przy okazji. Jeśli chcę zrobić różne rodzaje broni, które nie będą tylko pod postacią "broń", to muszę je przenieść do pancerzy, bo tylko tam można ustawiać rodzaj ekwipunku?CreeperCrisis - Pią 04 Cze, 2010 12:38 tak. dokładnie.Asantos - Pią 04 Cze, 2010 15:39 A co z rozdzielaniem ekwipunku wobec klas? Ktoś odpowie?CreeperCrisis - Pią 04 Cze, 2010 18:41 Jest takie coś:
Kod:
#_/ * 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])
wywołaj ten skrypt po dodaniu postaci do drużyny. Działa
EDIT: do klas to nic nie znalazłem lecz gdy np. zmienisz klasę to wywołaj skrypt, czy masz takie coś jak w Final Fantasy V możesz zmieniać klasę w każdej chwili Asantos - Sob 05 Cze, 2010 09:58 Wiem, że można to wywołać, ale chciałem, aby zmieniało się automatycznie w postaci typowego zdarzenia. Jest to wykonalne, aczkolwiek potrzebuję komendy "skrypt" i w niej zawartego warunku co do klasy. Jeżeli ktoś potrafi proszę o napisanie takiego warunku: "czy bohater posiada aktualnie tę klasę postaci?"Ayene - Czw 10 Cze, 2010 09:43
Kod:
$game_actors[ID_BOH].class_id == ID_KLA
gdzie:
ID_BOH - to Id postaci w bazie danych
ID_KLA - to id klasy w bazie danych
Wpisujesz to w 'Warunek' / 'Conditional Branch' (4 strona "script").Asantos - Czw 24 Cze, 2010 12:19 Dziękuję za warunek. Dopiero teraz zauważyłem.Lukortech - Czw 12 Sie, 2010 10:06 Miło.
Postaram się szybciutko skorzystać ze skryptu i przychylnie (mam nadzieję) się o nim wypowiedzieć.
EDIT:
Moja wypowiedź brzmi; "Fajny skrypt, pozwala na innowacyjne wyjścia jeśli chodzi o ekwipunek, lecz niestety jest duży minus, nie zawsze załapuje itemki. Mam na myśli to że tworząc smoczy pierścień (wiem, nie jestem oryginalny) i dodając według zaleceń skryptu notkę to do chyba 50 działa a potem nie łapie tego przedmiotu jako pierścień tylko pokazuje wyłącznie w przedmiotach.... Nieciekawie to wygląda.
Postaram się opisać mój problem jak najszybciej i załączyć screeny.PtasiAGrypAA - Wto 26 Paź, 2010 20:15 Ja mam takie pytanie: stworzylem rodzaj ekwipunku : Odzież - stworzylem pancerz Czarna szata asasyna i chce aby przy zalożeniu jej, zmienila sie grafika bohatera- wszystko mam porysowane itp. tylko czy da sie cos zrobic np. jakas zmienna , zeby przy zalożeniu szaty zmieniala sie automatycznie grafa bohatera?? Pliss help, bardzo tego potrzebuje! Poster27 - Sro 03 Lis, 2010 17:02 A ja chciałbym, żeby od razu na początku gry (początkowe wyposażenie) np. branzoleta była w odpowiednim slocie.Ayene - Sro 03 Lis, 2010 19:07 Poster27, to zrób na początku gry równoległe zdarzenie i użyj polecenia script w edycji zdarzeń:
Poster27 - Pią 05 Lis, 2010 18:48 Działa ;D Dzięki Ayene!PtasiAGrypAA - Sob 13 Lis, 2010 02:07
Poster27 napisał/a:
Działa ;D Dzięki Ayene!
Tak ale co z ta szata? Jestescie mi w stanie pomoc??Poster27 - Sro 17 Lis, 2010 15:11 PtasiAGrypAA, zajrzyj do tematu:
http://www.ultimateam.pl/viewtopic.php?t=2044filipek32 - Czw 28 Kwi, 2011 16:22 Ehhh, nie wiem czemu ale jak robie Buty, Rękawice i inne to mi nie wczytuje w grze, nie mam tam do wyboru Gloves, Boots mam tylko Shield, Body, Accesory, Helmet :/
Jak to zroibc?:< jak by ktos mogl na youtube.pl , lub spryciarze.pl :P bo zabardzo nie wiem jak to zrobic;//
Uploaded with ImageShack.ushttp://img199.imageshack.us/i/hghji.jpg/Angius - Czw 28 Kwi, 2011 16:55
Kod:
#_/ 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.
#_/
Zastosowałeś się do tego? Każdy przedmiot musi mieć ustawiony typ.filipek32 - Pią 29 Kwi, 2011 21:43 Emm, dalej nie wiem jak to zrobic:(( nie moge znalezsc tego equipkind wgl. nie wiem gdzie to wpisac, no ale bradzo brzydala by mi sie ta opcja:/ Porsze o nagranie jkiegos pomocnika [Dam pomoge] :))Angius - Pią 29 Kwi, 2011 21:48 Ustawiasz przedmiot w bazie danych, tak?
W prawym dolnym rogu masz puste okienko.
Tam wpisujesz <equipkind nogi>, <equipkind ręce>, czy co tam chcesz.
Nikt nie będzie nagrywał tutoriala do każdego jednego skryptu, bez przesady...filipek32 - Pią 29 Kwi, 2011 21:49 Aaaaaa :D:D juz zrozumialem, bo nie moglem znalezsc tego Notes ^^ dzieki ;)Theron - Wto 11 Paź, 2011 18:23 Wielkie dzięki :)
Oba działają, i status i ekwipunek
Ayene - jesteś wielka ! :)PaayJer - Wto 11 Paź, 2011 18:31 Czy do przedmiotów zaliczanych tu można dać ze skryptów:
-Wymagania dla broni i pancerza VX
-Bonus HP/MP VX
Bonus i wymagania? W notatce?flang3r - Pon 21 Lis, 2011 21:28 A ja mam pytanie. Czy można ten skrypt jakoś zmodyfikować tak, żeby dodać sobie sloty do ulepszenia broni? Np mam karabin, zakładam na ulepszenie celownik laserowy, który poprawia mi celność i dodaje tym samym animację broni z namierzanym laserem? Wszystko mam ustawione, animacje itp, celownik zrobiony w slocie broń, tylko nie wiem jak to zmodyikować:/
Tylko nie mówcie, że muszę sobie podarować dodatkową animację i przekopiować celownik do zakładki pancerze:/Angius - Wto 22 Lis, 2011 11:08 Musisz sobie podarować dodatkową animację i przekopiować celownik do zakładki pancerze.wojtelos - Pon 28 Lis, 2011 15:34 A dało by się zrobić takie coś ,że np. jak założę drugą broń Tarcza mi się zdejmuje ??
(Tarcze mam jako dodatkowe pole (<equipkind Tarcza>)).Finwe - Pon 28 Lis, 2011 15:40 2 bronie? Możesz zrobić zrobić zakładkę broni prawo- i lewo- ręcznych. Z czego te lewo to jako "Tarcza". I już.
Jak pomogłem daj pomógł.wojtelos - Pon 28 Lis, 2011 15:45 A będzie wtedy możliwość noszenia albo 2 broni albo broni i tarczy?(Tak chodź by w TES V)Angius - Pon 28 Lis, 2011 15:46 Tak, bo zamiast tarczy wskoczy ci broń.wojtelos - Pon 28 Lis, 2011 15:49 To jeszcze jedno pytanie :D Czy będzie to współgrać ze skryptem "Walka w czasie rzeczywistym"??Angius - Pon 28 Lis, 2011 15:50 Myślę, że powinno. Acz nie wiem, jak będzie wyświetlana druga broń.wojtelos - Pon 28 Lis, 2011 15:54 A możesz mi to jakoś dokładniej wytłumaczyć jak to zrobić??Bo jakoś tego nie łapie :DAngius - Pon 28 Lis, 2011 15:55 Wchodzisz w zakładkę "pancerze", tworzysz nową tarczę, ustawiasz jej atak i w otatkach dajesz odpowiedni tag.wojtelos - Pon 28 Lis, 2011 15:58 A jaki to tag jeśli mogę zapytać :DAngius - Pon 28 Lis, 2011 16:00 Przeczytaj w konfiguracji skryptu... To nie jest zagadnienie z czytania ze zrozumieniem nawet, to jest myślenie ze zrozumieniem...wojtelos - Pon 28 Lis, 2011 16:08 A dało by się zrobić tak ,że w bazie danych w zakładce Bohaterowie zaznaczam opcje 2 bronie,a skryptem tworze zakładkę Tarcze ,ale jak mam założone 2 bronie i założę Tarcze to ta 2 broń znika??Angius - Pon 28 Lis, 2011 16:10 Toć to jedno i to samo, czy w broniach stworzysz tarcze, czy w tarczach bronie...wojtelos - Pon 28 Lis, 2011 16:17 Ale jak zrobię np. Tarcze w broniach to atakuje tarczą , a jak zrobię broń w tarczach to się broni mieczem.Angius - Pon 28 Lis, 2011 16:20 Eee..? Jeśli chcesz dwie bronie lub broń i tarczę to:
1. W broniach ustawiasz tarcze, dajesz dwie bronie, więc możesz używa broni i tarczy (tarcza bronią) lub dwóch broni
2. W tarczach ustawiasz broń, dajesz jedną broń, więc możesz używać broni i tarczy lub dwóch broni (jedna tarczą)
Wychodzi na to samo przeca o.Owojtelos - Pon 28 Lis, 2011 16:23 No tak to było by to samo w zwykłej standardowej walce ,ale nie w walce w czasie rzeczywistym Bo jak zrobie np. Tarcze w Broni to moja postać zamiast się bronić nią atakuje.Angius - Pon 28 Lis, 2011 16:25 A rób jak chcesz, wiesz już jak tracersgta - Pon 28 Lis, 2011 17:11 W ABS'ie Vlada, wszytsko będzie działało... Jeżeli użyjesz innego, niewiem... Ale chyba podobnie... "Tarcza" to tak naprawdę miecz, więc zadaje punkty obrażeń, a nie paruje ciosy...Asydian - Wto 20 Gru, 2011 11:20 Tak więc.. Skrypt się gryzie z rozszerzonym statusem.. nie wiem czemu skoro jest z pod KGC i sam sprawdza resztę skryptów nie działa. W trakcie wchodzenia w status postaci wyskakuje błąd.
Script 'ExtendedStatusScene' line 400: NameError occurred uninitialized constant KGC::EquipExtension::SHOW_STATES_EP
;/
Prosiłbym o pomoc gdyż chciałbym użyć obydwu tych skryptów.Vrona - Wto 20 Gru, 2011 11:24 Rozwiązanie problemu jest na pierwszej stronie.Poszukaj.Asydian - Wto 20 Gru, 2011 11:36 O matko.. wybaczcie nie zauważyłem tego tak byłem zaaferowany błędem.. Tylko idiote z siebie zrobiłem
EDIT: Skoro już wszystko działa mam nowy problem. A więc jak ustawić by w statusie były pokazane np 4 lub 5 dodatkowe elementy ekwipunku bo teraz jest tak że pokazuje 3 a 4 dodany "manualnie" jest ucięty (wychodzi poza obszar ekranu)?
Nie musi być 5 slotów ale ten 4 bardzo by mi się przydał a standardowo widać przerwę miedzy
vx'owymi a dodanymi wiec może dało by się to upchnąć? Theron - Czw 22 Gru, 2011 17:00 Tak nawiązując do wcześniejszego tematu... chodzi o tę broń i tarczę itp... Jest też skrypt od ORGINAL wija który pozwala nosić albo 2 bronie, albo broń i tarczę... albo 2 tarcze :D
#==============================================================================
# NOTE: The newest version is the ONLY supported version!
#
# v1.0
# - Initial release
# v1.1
# - Equipment loss bug fixed
#==============================================================================
#==============================================================================
# Ten skrypt pozwala założyć postaci która ma ustawiony " 2 bronie " założyć
# - 2 bronie
# - broń i tarczę
# - 2 tarcze
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# Public Instance Variables (New)
#--------------------------------------------------------------------------
attr_accessor :weapon1_shield
attr_accessor :weapon2_shield
#--------------------------------------------------------------------------
# Setup (Mod)
#--------------------------------------------------------------------------
alias ow_dualwield_game_actor_setup setup unless $@
def setup(actor_id)
ow_dualwield_game_actor_setup(actor_id)
@weapon1_shield = @weapon2_shield = false
end
#--------------------------------------------------------------------------
# Get Weapon Object Array (Mod)
#--------------------------------------------------------------------------
alias ow_dualwield_game_actor_weapons weapons unless $@
def weapons
if two_swords_style
result = []
result.push($data_weapons[@weapon_id]) unless @weapon1_shield
result.push($data_weapons[@armor1_id]) unless @weapon2_shield
return result
else
ow_dualwield_game_actor_weapons
end
end
#--------------------------------------------------------------------------
# Get Armor Object Array (Mod)
#--------------------------------------------------------------------------
alias ow_dualwield_game_actor_armors armors unless $@
def armors
if two_swords_style
result = []
result.push($data_armors[@weapon_id]) if @weapon1_shield
result.push($data_armors[@armor1_id]) if @weapon2_shield
result.push($data_armors[@armor2_id])
result.push($data_armors[@armor3_id])
result.push($data_armors[@armor4_id])
return result
else
ow_dualwield_game_actor_armors
end
end
#--------------------------------------------------------------------------
# Get Equipped Item Object Array (Mod)
#--------------------------------------------------------------------------
alias ow_dualwield_game_actor_equips equips unless $@
def equips
if two_swords_style
result = []
result.push($data_weapons[@weapon_id]) unless @weapon1_shield
result.push($data_armors[@weapon_id]) if @weapon1_shield
result.push($data_weapons[@armor1_id]) unless @weapon2_shield
result.push($data_armors[@armor1_id]) if @weapon2_shield
result.push($data_armors[@armor2_id])
result.push($data_armors[@armor3_id])
result.push($data_armors[@armor4_id])
return result
else
return weapons + armors
end
end
#--------------------------------------------------------------------------
# Change Equipment (designate ID) (Mod)
#--------------------------------------------------------------------------
alias ow_dualwield_game_actor_change_equip_by_id change_equip_by_id unless $@
def change_equip_by_id(equip_type, item_id, test = false)
if two_swords_style
if (equip_type == 0 and !@weapon1_shield) or
(equip_type == 1 and !@weapon2_shield)
change_equip(equip_type, $data_weapons[item_id], test)
else
change_equip(equip_type, $data_armors[item_id], test)
end
else
ow_dualwield_game_actor_change_equip_by_id(equip_type, item_id, test)
end
end
#--------------------------------------------------------------------------
# Change Equipment (designate object) (Mod)
#--------------------------------------------------------------------------
alias ow_dualwield_game_actor_change_equip change_equip unless $@
def change_equip(equip_type, item, test = false)
ow_dualwield_game_actor_change_equip(equip_type, item, test)
if item != nil
case equip_type
when 0
@weapon1_shield = item.is_a?(RPG::Armor)
when 1
@weapon2_shield = item.is_a?(RPG::Armor)
end
end
end
#--------------------------------------------------------------------------
# Discard Equipment (Mod)
#--------------------------------------------------------------------------
alias ow_dualwield_game_actor_discard_equip discard_equip unless $@
def discard_equip(item)
if two_swords_style
if item.is_a?(RPG::Weapon)
if @weapon_id == item.id and !@weapon1_shield
@weapon_id = 0
elsif @armor1_id == item.id and !@weapon2_shield
@armor1_id = 0
end
elsif item.is_a?(RPG::Armor)
if @weapon_id == item.id and @weapon1_shield
@weapon_id = 0
elsif @armor1_id == item.id and @weapon2_shield
@armor1_id = 0
elsif @armor2_id == item.id
@armor2_id = 0
elsif @armor3_id == item.id
@armor3_id = 0
elsif @armor4_id == item.id
@armor4_id = 0
end
end
else
ow_dualwield_game_actor_discard_equip(item)
end
end
#--------------------------------------------------------------------------
# Determine if Equippable (Mod)
#--------------------------------------------------------------------------
alias ow_dualwield_game_actor_equippable? equippable? unless $@
def equippable?(item)
if two_swords_style
if item.is_a?(RPG::Weapon)
return self.class.weapon_set.include?(item.id)
elsif item.is_a?(RPG::Armor)
return self.class.armor_set.include?(item.id)
end
return false
else
ow_dualwield_game_actor_equippable?(item)
end
end
end
class Window_EquipItem < Window_Item
#--------------------------------------------------------------------------
# Whether to include item in list (Mod)
#--------------------------------------------------------------------------
alias ow_dualwield_window_equipitem_include? include? unless $@
def include?(item)
return true if item == nil
if @actor.two_swords_style and @equip_type < 2
return false if !item.is_a?(RPG::Weapon) and !item.is_a?(RPG::Armor)
return false if item.is_a?(RPG::Armor) and item.kind != 0
return @actor.equippable?(item)
else
ow_dualwield_window_equipitem_include?(item)
end
end
end
EzioMasterPl - Czw 23 Lut, 2012 11:17 Ayene ja mam problem.
Z tego dodatkowego ekwipunku zakładają mi się tylko ręce.
Jak chce założyc buty lub akcesoria , to po prostu znika po założeniu.EzioMasterPl - Pon 27 Lut, 2012 15:49
Ayene napisał/a:
Wrzuć swój projekt na mediafire.com i wyślij mi na PW.
Wyślę , tylko nie zdziw się jak zobaczysz mapkę , bo wrzuciłem nowi tilesty i jeszcze nie uporałem się z poprawieniem tych 2 map :D.Ayene - Pon 27 Lut, 2012 18:18 Przede wszystkim, z błędów które wyłapałam:
1. Nie musisz dodatkowo definiować '<equipkind Głowa>' bo od tego jest domyślne ustawienie jako 'Helmet', czyli 'Hełm'.
2. To samo tyczy się '<equipkind Akcesoria>', bo to automatycznie masz jako 'Accessory'.
Reszta działa poprawnie. Nadałeś atrybut Nogi 'Skórzanym butom', to w ekwipunku będziesz je mógł założyć tylko na nogi.EzioMasterPl - Pon 27 Lut, 2012 21:48
Ayene napisał/a:
Przede wszystkim, z błędów które wyłapałam:
1. Nie musisz dodatkowo definiować '<equipkind Głowa>' bo od tego jest domyślne ustawienie jako 'Helmet', czyli 'Hełm'.
2. To samo tyczy się '<equipkind Akcesoria>', bo to automatycznie masz jako 'Accessory'.
Reszta działa poprawnie. Nadałeś atrybut Nogi 'Skórzanym butom', to w ekwipunku będziesz je mógł założyć tylko na nogi.
I tak akcesoria i nogi znikają po założeniu :(
A jak myślisz fajnie zacząłem robic tę grę? A i start powinien byc koło łóżka Eremiasza.twardziel - Wto 28 Sie, 2012 19:24 Mam taki problem, między innymi w każdym skrypcie, postać nazywa się "KAMIL", i "KAROLINA", wytłumaczy mi ktoś dlaczego, i jak to zmienić?aragorn7015 - Wto 28 Sie, 2012 19:36 Eee zmien w bazie danych imiona? A potem w systemie ustaw tych których chesz żeby występowali w twojej grze? Skrypty zazwyczaj nie zmieniaja imienia bohatera... Możliwe że cię źle zrozumiałem.
Nazywają się tak ponieważ tak jest w każdym podstawowym RTP do Polskiej wersji makera Vxtwardziel - Wto 28 Sie, 2012 20:47 Racja, dzięki. :)