밑의 스크립트 정리가 안되요..ㅠㅠ
오류만 나고..도와주세요..
부탁드립니다..ㅠㅠ
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆장비 확장 - KGC_EquipExtension◆
#_/----------------------------------------------------------------------------
#_/ 장비 관련의 기능을 확장합니다.
#_/============================================================================
#_/ ≪장비품 설정 상세화[EquipDetailSetting]≫보다 위
#_/ ≪클래스 설정 상세화[ClassDetailSetting]≫보다 위
#_/ ≪한계 돌파[LimitBreak]≫보다 위
#_/ ≪장비 화면 개조[EquipAlter]≫보다 아래
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ★ 커스터마이즈 항목 ★
#==============================================================================
module KGC
# ◆확장 장비 타입 정의
# 배열의 최초가 타입 5 에 상당.이후 6,7,8... (와)과 계속 된다.
EEX_EQUIP_TYPE_EXT = ["완부", "각부"]
# ◆장비품의 타입(1:순 2:두 3:신체 4:장식품 5이후:↑에 정의)
# ※어떻게 지정해도, 반드시 처음은 무기가 됩니다.
EEX_EQUIP_TYPE = [1, 2, 3, 4, 4, 5, 6]
# ◆쌍수검시의 무기수
# 쌍수검시는↑의 선두로부터 (EEX_TS_NUMBER - 1) 개가 무기로 옮겨진다
EEX_TS_NUMBER = 2
# ◆장비란의 이름
# 증가한 장비 타입의 명칭도 여기서 지정.
EEX_EQUIP_NAME = [
$data_system.words.weapon, # 무기
$data_system.words.armor1, # 타입 1(방패)
$data_system.words.armor2, # 타입 2(머리)
$data_system.words.armor3, # 타입 3(신체)
$data_system.words.armor4, # 타입 4(장식품)
EEX_EQUIP_TYPE_EXT[0], # 타입 5(속성명을 그대로 사용)
EEX_EQ UIP_TYPE_EXT[1] # 타입 6(속성명을 그대로 사용)
] # ←이 ] 는 지우지 않는 것
# ◆확장 장비 화면에 표시하는 장비란개시 번호
# 무기를 0 , 최초의 방어구를 1 으로 한 번호(인덱스).
EEX_EQUIP_EX_INDEX = 0
# ◆확장 장비 화면 배경 투과
EEX_EQUIP_EX_BACK_TRANSPARENT = true
# ◆확장 장비 화면 「장비 변경」명칭
EEX_EQUIP_EX_COMMAND_EQUIP = "장비 변경"
# ◆확장 장비 화면 「최강 장비」명칭
EEX_EQUIP_EX_COMMAND_STRONGEST_EQUIP = "최강 장비"
# ◆확장 장비 화면 「전해제」명칭
EEX_EQUIP_EX_COMMAND_ALL_RELEASE = "전해제"
# ◆확장 장비 화면 「장비 변경」 헬프
EEX_EQUIP_EX_HELP_EQUIP = "장비 무기를 변경합니다."
# ◆확장 장비 화면 「최강 장비」헬프
EEX_EQUIP_EX_HELP_STRONGEST_EQUIP = "자동적으로, 가장 강력한 장비로 변경합니다."
# ◆확장 장비 화면 「전해제」헬프
EEX_EQUIP_EX_HELP_ALL_RELEASE = "모든 장비품을 제외합니다. "
# ◆EP(Equip Point) 제를 사용한다
EEX_USE_EP = true
# ◆소비 EP기정치
# 소비 EP가 지정되어 있지 않은 장비품으로 사용
EEX_EP_COST_DEFAULT = 1
# ◆EP상한치
EEX_EP_MAX = 15
# ◆EP하한치
EEX_EP_MIN = 1
# ◆최대 EP산출식
# 【lv…레벨】
# 자동적으로 정수 변환되므로, 결과가 소수가 되어도 OK.
EEX_EP_FORMULA = "lv * 0.6"
# ◆「EP」의 명칭
EEX_EP_NAME = "EP"
# ◆장비 화면의 EP최대치 묘화
# 이름이 숨기는 경우는 false 로 해 주세요.
EEX_DRAW_EP_MAX = true
# ◆소비 EP치의 색(아이템명의 구멍을 뒤따르는 녀석)
EEX_EP_COLOR = Color.new(128, 255, 255)
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
$imported["EquipExtension"] = true
# 양손 소유 속성
$game_special_elements["two_handed"] = $data_system.elements.index("양손 소유")
if KGC::EEX_EQUIP_TYPE_ EXT.size > 0
for element in KGC::EEX_EQUIP_TYPE_EXT.compact
$game_special_elements["EEX_#{element}"] = $data_system.elements.index(element)
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#--------------------------------------------------------------------------
# ● 확장 장비 화면 호출
# actor_index : 액터 INDEX
#--------------------------------------------------------------------------
def call_equip_extend(actor_index = 0)
# 플레이어의 자세를 교정
$game_player.straighten
# 확장 장비 화면으로 전환해
$scene = Scene_EquipExtend.new(actor_index)
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ ★☆★
#==============================================================================
# ■ RPG::Weapon
#==============================================================================
class RPG::Weapon
#--------------------------------------------------------------------------
# ● 이름 취득
#--------------------------------------------------------------------------
def name
return @name.gsub(/[.*]/) {""}
end
#--------------------------------------------------------------------------
# ● 오리지날 나토리 이득
#-------------------------------------------------------------------- ------
def original_name
return @name
end
#--------------------------------------------------------------------------
# ● 소비 EP취득
#--------------------------------------------------------------------------
def ep_cost
return @name =~ /[EP[ ]*(d+)]/i ? $1.to_i : KGC::EEX _EP_COST_DEFAULT
end
#--------------------------------------------------------------------------
# ● 장비 타입 취득
#--------------------------------------------------------------------------
def equip_type
if @name =~ /[ET[ ]*([0-9,]+)]/i
type = $1.split(/[,]/).compact
for i in 0...type.size
type[i] = type[i].to_i
end
type.insert(0, 0) if type[0] != 0
return type
else
return nil
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================= =
# ■ RPG::Armor
#==============================================================================
class RPG::Armor
#--------------------------------------------------------------------------
# ● 이름 취득
#--------------------------------------------------------------------------
def name
return @name.gsub(/[.*]/) {""}
end
#--------------------------------------------------------------------------
# ● 오리지날 나토리 이득
#--------------------------------------------------------------------------
def original_name
return @name
end
#------------------------------ --------------------------------------------
# ● 소비 EP취득
#--------------------------------------------------------------------------
def ep_cost
return @name =~ /[EP[ ]*(d+)]/i ? $1.to_i : KGC::EEX_EP_COST_DEFAULT
end
#----------------------------------------------------------- ---------------
# ● 종류 취득
#--------------------------------------------------------------------------
def kind
if @guard_element_set.size > 0
for element in @guard_element_set.compact
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
if element == $game_special_elemen ts["EEX_#{KGC::EEX_EQUIP_TYPE_EXT[i]}"]
return i + 4
end
end
end
end
return @kind
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_Actor
#=========== ===================================================================
class Game_Actor <Game_Battler @WEAPON_FIX.PUSH(FALSE) 防具 :ARMOR_ID :ARMOR_FIX 公開インスタンス変数 DEF アクター ACTOR="$data_actors[actor_id]" #-------------------------------------------------------------------------- ● SETUP(ACTOR_ID) 防具固定 @ARMOR_FIX[3]="actor.armor3_fix" ACTOR_ID @WEAPON_FIX="[actor.weapon_fix]" I SELF.EQUIP_TYPE.SIZE @ARMOR_FIX="[false]" ATTR_ACCESSOR : ALIAS SETUP 0 1...KGC::EEX_TS_NUMBER @ARMOR_FIX[2]="actor.armor2_fix" SETUP_KGC_EQUIPEXTENSION # @WEAPONS セットアップ IN @ARMOR1_ID="@armor2_id=@armor3_id=@armor4_id=0" END @ARMOR_FIX[1]="actor.armor1_fix" IF FOR ID @ARMOR_FIX[4]="actor.armor4_fix" <<> 5
for i in 5...self.equip_type.size
@armor_fix[i] = false
end
end
@armor_id = [0]
if @weapons[0] == 0 || !$data_weapons[@weapons[0]].element_set.include?($game_special_elements["two_handed"])
@armor_id[1] = actor.armor1_id
else
@armor_id[1 ] = 0
end
@armor_id[2] = actor.armor2_id
@armor_id[3] = actor.armor3_id
@armor_id[4] = actor.armor4_id
if self.equip_type.size > 5
for i in 5...self.equip_type.size
@armor_id[i] = 0
end
end
# 원래의 처리를 실행
setup_KGC_EquipExtension(actor_id)
@equip_type, @equip_type_weapon = nil, nil
@two_swords, @two_handed = false, 0
@ts_number, @attack_count = nil, 0
if KGC::EEX_EQUIP_TYPE.size > 5
for i in 5...KGC::EEX_EQUIP_TYPE.size
# 방어구 ID, 고정 플래그를 초기화
@armor_id[i], @armor_fix[i] = 0, false
# 오 트스테이트를 갱신
update_auto_state(nil, $data_armors[self.armor_id[i]])
end
end
end
#--------------------------------------------------------------------------
# ● 장비 타입 취득
#--------------------------------------------------------------------------
def equip_type
typ e = (@equip_type_weapon != nil && @equip_type_weapon != []) ?
@equip_type_weapon : (@equip_type != nil && @equip_type != []) ?
@equip_type : KGC::EEX_EQUIP_TYPE
if type[0] != 0
type.insert(0, 0)
end
return type
end
#------------------------------------------ --------------------------------
# ● 장비 타입 설정
#--------------------------------------------------------------------------
def equip_type=(type)
@equip_type = type
end
#--------------------------------------------------------------------------
# ● 장비품 타입 변경 적용
#---------------- ----------------------------------------------------------
def equip_type_apply
last_equip_type = self.equip_type.dup
if self.weapon_id > 0
@equip_type_weapon = $data_weapons[self.weapon_id].equip_type
else
@equip_type_weapon = nil
end
# 장비 불가능하게 된 것은 제외한다
for i in (self.two_swords? ? self.ts_number : 1)...last_equip_type.size
next if @armor_id[i] == nil
if (armor = $data_armors[@armor_id[i]]) != nil &&
self.equip_type[i] != armor.kind + 1
self.equip(i, 0)
end
end
@armor_id = @armor_id[0...self.equip_ type.size]
end
#--------------------------------------------------------------------------
# ● 최대 EP취득
#--------------------------------------------------------------------------
def max_ep
formula = KGC::EEX_EP_FORMULA.gsub(/lv/i) {"@level"}
return [[Integer(eval(formula)), KGC::EEX_EP_MIN].max, KGC::EEX_EP_MAX].min
end
#--------------------------------------------------------------------------
# ● EP취득
#--------------------------------------------------------------------------
def ep
if self.two_swords?
n = 0
for i in 0...self.ts_numb er
n += (weapon = $data_weapons[self.weapon_id(i)]) != nil ?
weapon.ep_cost : 0
end
else
n = (weapon = $data_weapons[self.weapon_id]) != nil ? weapon.ep_cost : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
n += ( armor = $data_armors[self.armor_id[i]]) != nil ? armor.ep_cost : 0
end
return self.max_ep - n
end
#--------------------------------------------------------------------------
# ● 쌍수검 상태 취득
#--------------------------------------------------------------------------
def two_sword s?
return @two_swords
end
#--------------------------------------------------------------------------
# ● 쌍수검 설정
#--------------------------------------------------------------------------
def two_swords=(value)
# 쌍수검이 되었을 경우
if value && !@two_swords
# 양손 소유를 해제
self.two_handed = false
# 쌍수검으로 장비 불가능하게 되는 방어구를 벗는다
for i in 1...self.ts_number
self.equip(i, 0)
end
# 쌍수검이 해제되었을 경우
elsif !value && @two_swords
# 원래 방어구인 부분의 무기를 벗는다
for i in 1...self.ts_number
self.equip(i, 0)
@weapons[i], @weapon_fix[i] = 0, false
end
end
@two_swords = value
end
#--------------------------------------------------------------------------
# ● 쌍수검 무기수취득
#--------------------------------------------------------------------------
def ts_number
return @ts_number != nil ? @ts_number : KGC::EEX_TS_NUMBER
end
#--------------------------------------------------------------------------
# ● 쌍수검 무기수설정
#--------------------------------------------------------------------------
def ts_number=(number)
@ts_number = number
end
#-------------------------------------- ------------------------------------
# ● 양손 소유 상태 취득
#--------------------------------------------------------------------------
def two_handed?
return @two_handed
end
#--------------------------------------------------------------------------
# ● 양손 소유 설정
#--------------------- -----------------------------------------------------
def two_handed=(value)
# 양손 소유가 되었을 경우
if value && !@two_handed
# 쌍수검을 해제
self.two_swords = false
# 최초의 방어구를 벗는다
self.equip(1, 0)
# 최초의 방어구를 고정
@armor_fix[1] = true
# 양손 소유가 해제되었을 경우
elsif !value && @two_handed
# 최초의 방어구 고정을 해제
@armor_fix[1] = false
end
@two_handed = value
end
#--------------------------------------------------------------------------
# ● 공격 회수 취득
#--------------------------------------------------------------------------
def attack_count
@attack_count = 0 if @attack_count == nil
return @attack_count
end
#--------------------------------------------------------------------------
# ● 공격 회수 설정
#--------------------------------------------------------------------------
def attack_count=(value)
@attack_count = 0 if @attack_count == nil
@attack_count = value
end
#--------------------------------------------------------------------------
# ● 무기 ID 의 취득
#--------------------------------------------------------------------------
def weapon_id(type = 0)
@weapons[type] = 0 if @weapons[type ] == nil
return @weapons[type]
end
#--------------------------------------------------------------------------
# ● 무기 ID 의 설정
#--------------------------------------------------------------------------
def weapon_id=(n)
@weapons[0] = n
end
#------------------------------ --------------------------------------------
# ● 무기 ID 의 설정(쌍수검용)
#--------------------------------------------------------------------------
def set_weapon(type, n)
@weapons[type] = n
end
#--------------------------------------------------------------------------
# ● 방어구 ID 의 취득
#--------------------------------------------------------------------------
def armor_id
type = self.equip_type.dup
for i in 1...type.size
if @armor_id[i] == nil
@armor_id[i] = 0
end
end
return @armor_id
end
#------------------------------------- -------------------------------------
# ● 방어구 ID 1 의 취득(호환용)
#--------------------------------------------------------------------------
def armor1_id
return self.armor_id[1]
end
#--------------------------------------------------------------------------
# ● 방어구 ID 1 의 설정(호환용)
#- -------------------------------------------------------------------------
def armor1_id=(id)
@armor_id[1] = id
end
#--------------------------------------------------------------------------
# ● 방어구 ID 2 의 취득(호환용)
#-------------------------------------------------------------------- ------
def armor2_id
return self.armor_id[2]
end
#--------------------------------------------------------------------------
# ● 방어구 ID 2 의 설정(호환용)
#--------------------------------------------------------------------------
def armor2_id=(id)
@armor_id[2] = id
end
#--- -----------------------------------------------------------------------
# ● 방어구 ID 3 의 취득(호환용)
#--------------------------------------------------------------------------
def armor3_id
return self.armor_id[3]
end
#--------------------------------------------------------------------- -----
# ● 방어구 ID 3 의 설정(호환용)
#--------------------------------------------------------------------------
def armor3_id=(id)
@armor_id[3] = id
end
#--------------------------------------------------------------------------
# ● 방어구 ID 4 의 취득(호환용)
#---------------------------------- ----------------------------------------
def armor4_id
return self.armor_id[4]
end
#--------------------------------------------------------------------------
# ● 방어구 ID 4 의 설정(호환용)
#--------------------------------------------------------------------------
def armor4_id=(id)
@armor_id[4] = id
end
#--------------------------------------------------------------------------
# ● 기본 공격력의 취득
#--------------------------------------------------------------------------
def base_atk
if $game_temp.in_battle
if self.two_swords?
weapon = $data_wea pons[self.weapon_id(@attack_count)]
n = weapon != nil ? weapon.atk : 0
else
weapon = $data_weapons[self.weapon_id]
n = weapon != nil ? weapon.atk : 0
n *= 1.5 if self.two_handed?
end
else
if self.two_swords?
n = 0
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.atk : 0
end
else
weapon = $data_weapons[self.weapon_id]
n = weapon != nil ? weapon.atk : 0
n *= 1.5 if self.two_handed?
end
end
return Integer(n)
end
#--------------------------------------------------------------------------
# ● 속성 보정치의 취득
# element_id : 속성 ID
#--------------------------------------------------------------------------
def element_rate(element_id)
# 속성 유효도에 대응하는 수치를 취득
table = [0, 200,150,100,50,0,-100]
result = table[$data_classes[@class_id].element_ranks[element_id]]
# 방어구로 이 속성이 방어되고 있는 경우는 반감
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
val = self.armor_id[i]
next if val == nil
armor = $data_armors[val]
if a rmor != nil && armor.guard_element_set.include?(element_id)
result /= 2
end
end
# 스테이트에서 이 속성이 방어되고 있는 경우는 반감
for i in @states
if $data_states[i].guard_element_set.include?(element_id)
result /= 2
end
end
return result
end
#----------- ---------------------------------------------------------------
# ● 스테이트 방어 판정
# state_id : 스테이트 ID
#--------------------------------------------------------------------------
def state_guard?(state_id)
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
val = self.armor_id[i]
next if val == nil
armor = $data_armors[val]
if armor != nil
if armor.guard_state_set.include?(state_id)
return true
end
end
end
return false
end
#-------------------------------------------------------- ------------------
# ● 기본 완력의 취득
#--------------------------------------------------------------------------
def base_str
n = $data_actors[@actor_id].parameters[2, @level]
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.str_plus : 0
end
else
weapon = $data_weapons[self.weapon_id]
n += weapon != nil ? weapon.str_plus : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.str_plus : 0
end
n = [[n, 1].max, 999].min unless $imported["LimitBreak"]
return n
end
#--------------------------------------------------------------------------
# ● 기본 손재주가 있음의 취득
#----------------------------------------------------------------------- ---
def base_dex
n = $data_actors[@actor_id].parameters[3, @level]
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.dex_plus : 0
end
else
weapon = $data_weapons[self.weapon_i d]
n += weapon != nil ? weapon.dex_plus : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.dex_plus : 0
end
n = [[n, 1].max, 999].min unless $imported["LimitBreak"]
return n
end
#--------------------------------------------------------------------------
# ● 기본 민첩함의 취득
#--------------------------------------------------------------------------
def base_agi
n = $data_actors[@actor_id].parameters[4, @level]
if self.two_swords?
fo r i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.agi_plus : 0
end
else
weapon = $data_weapons[self.weapon_id]
n += weapon != nil ? weapon.agi_plus : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.agi_plus : 0
end
n = [[n, 1].max, 999].min unless $imported["LimitBreak"]
return n
end
#--------------------------------------------------------------------------
# ● 기본 마력의 취득
#--------------------------------------------------------------------------
def base_int
n = $data_actors[@actor_id].parameters[5, @level]
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? wea pon.int_plus : 0
end
else
weapon = $data_weapons[self.weapon_id]
n += weapon != nil ? weapon.int_plus : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.int _plus : 0
end
n = [[n, 1].max, 999].min unless $imported["LimitBreak"]
return n
end
#--------------------------------------------------------------------------
# ● 기본 물리 방어의 취득
#--------------------------------------------------------------------------
def base_pdef
n = 0
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.pdef : 0
end
else
weapon = $data_weapons[self.weapon_id]
n += weapon != nil ? weapon.pdef : 0
end
for i in (sel f.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.pdef : 0
end
return n
end
#--------------------------------------------------------------------------
# ● 기본 마법 방어의 취득
#----------------------- ---------------------------------------------------
def base_mdef
n = 0
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.mdef : 0
end
else
weapon = $data_weapons[self.weapon_ id]
n += weapon != nil ? weapon.mdef : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.mdef : 0
end
return n
end
#-------------------------------------------- ------------------------------
# ● 기본 회피 수정의 취득
#--------------------------------------------------------------------------
def base_eva
n = 0
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != ni l ? armor.eva : 0
end
return n
end
#--------------------------------------------------------------------------
# ● 장비의 변경
# equip_type : 장비 타입
# id : 무기 or 방어구 ID (0 이라면 장비 해제)
#--------------------------------------------------------------------------
def equip(equip_type, id)
case equip_type
when (self.two_swords? ? 0...self.ts_number : 0) # 무기
if id == 0 || $game_party.weapon_number(id) > 0
# EP판정
if KGC::EEX_USE_EP && id > 0
# EP부족의 경우는 돌아온다
if $data_weapons[id].ep_cost > self.ep
r eturn
end
end
# 쌍수검 이외로 양손 소유 무기를 장비하는 경우
if !self.two_swords? && id > 0 &&
$data_weapons[id].element_set.include?($game_special_elements["two_handed"])
# 최초의 방어구를 벗는다
self.equip(1, 0)
end
$game_party.gain_weapon(self.w This page is too long to be completely translated. The remainder of this page will not be translated. eapon_id(equip_type), 1)
self.set_weapon(equip_type, id)
$game_party.lose_weapon(id, 1)
end
#when (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
else # 防具
# 二刀流以外で、両手持ち武器を装備しており、最初の防具を変更する場合は戻る
if !self.two_swords? && equip_type == 1 && self.weapon_id > 0 &&
$data_weapons[self.weapon_id].element_set.include?($game_special_elements["two_handed"])
return
end
if id == 0 || $game_party.armor_number(id) > 0
# EP判定
if KGC::EEX_USE_EP && id > 0
# EP不足の場合は戻る
if $data_armors[id].ep_cost > self.ep
return
end
end
update_auto_state(@armor_id[equip_type] != nil ?
$data_armors[@armor_id[equip_type]] : nil, $data_armors[id])
if @armor_id[equip_type] != nil && @armor_id[equip_type] > 0
$game_party.gain_armor(@armor_id[equip_type], 1)
end
@armor_id[equip_type] = id
$game_party.lose_armor(id, 1)
end
end
end
#--------------------------------------------------------------------------
# ● 装備固定判定
# equip_type : 装備タイプ
#--------------------------------------------------------------------------
def equip_fix?(equip_type)
case equip_type
when (self.two_swords? ? 0...self.ts_number : 0) # 武器
return @weapon_fix[equip_type]
#when (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
else # 防具
return @armor_fix[equip_type]
end
return false
end
#--------------------------------------------------------------------------
# ● 通常攻撃 攻撃側アニメーション ID の取得
#--------------------------------------------------------------------------
def animation1_id
if self.two_swords?
weapon = $data_weapons[self.weapon_id(self.attack_count)]
return weapon != nil ? weapon.animation1_id : 0
else
weapon = $data_weapons[self.weapon_id]
return weapon != nil ? weapon.animation1_id : 0
end
end
#--------------------------------------------------------------------------
# ● 通常攻撃 対象側アニメーション ID の取得
#--------------------------------------------------------------------------
def animation2_id
if self.two_swords?
weapon = $data_weapons[self.weapon_id(self.attack_count)]
return weapon != nil ? weapon.animation2_id : 0
else
weapon = $data_weapons[self.weapon_id]
return weapon != nil ? weapon.animation2_id : 0
end
end
#--------------------------------------------------------------------------
# ● クラス ID の変更
# class_id : 新しいクラス ID
#--------------------------------------------------------------------------
def class_id=(class_id)
if $data_classes[class_id] != nil
@class_id = class_id
# 装備できなくなったアイテムを外す
if self.two_swords?
for i in 0...self.ts_number
equip(i, 0) unless equippable?($data_weapons[self.weapon_id(i)])
end
else
equip(0, 0) unless equippable?($data_weapons[self.weapon_id])
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
equip(i, 0) unless equippable?($data_armors[self.armor_id[i]])
end
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_EquipLeft
#==============================================================================
unless $imported["EquipAlter"]
class Window_EquipLeft <Window_Base 1...@ACTOR.TS_NUMBER SELF.CONTENTS.FONT.COLOR="@actor.ep==0" REFRESH SELF.CONTENTS.DRAW_TEXT(196, DEF #-------------------------------------------------------------------------- ● 2) TYPE I KGC::EEX_DRAW_EP_MAX SELF.CONTENTS.DRAW_TEXT(172, ? < : @ACTOR.TWO_SWORDS? SELF.CONTENTS.DRAW_TEXT(180, ELSE KNOCKOUT_COLOR ALIAS WINDOW_EQUIPRIGHT SELF.CONTENTS.DRAW_TEXT(212, @EQUIP_TYPE="@actor.equip_type.dup" SELF.CONTENTS.DRAW_TEXT(140, 元の処理を実行 RETURN 1) WINDOW_SELECTABLE ■ 装備タイプを取得 # @EQUIP_TYPE[I]="0" @ACTOR.EQUIP_TYPE_APPLY @ACTOR.EP.TO_S, 16, KGC::EEX_USE_EP IN KGC::EEX_EP_NAME) 0, END 24, NORMAL_COLOR FOR タイプの取得 IF SELF.INDEX /", @ACTOR.MAX_EP.TO_S, #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ 32, REFRESH_KGC_EQUIPEXTENSION @EQUIP_TYPE[SELF.INDEX] リフレッシュ> = @equip_type.size
self.index = @equip_type.size - 1
end
# ウィンドウ内容を作成
self.contents.dispose
self.contents = Bitmap.new(width - 32, @equip_type.size * 32)
@data = []
if @actor.two_swords?
for i in 0...@actor.ts_number
@data.push($data_weapons[@actor.weapon_id(i)])
end
for i in @actor.ts_number...@equip_type.size
@data.push($data_armors[@actor.armor_id[i]])
end
else
@data.push($data_weapons[@actor.weapon_id])
for i in 1...@equip_type.size
@data.push($data_armors[@actor.armor_id[i]])
end
end
@item_max = @data.size
self.contents.font.color = system_color
for i in 0...@equip_type.size
if @actor.two_swords? && i <@actor.ts_number 0...@COMMANDS.SIZE 80, DEF NORMAL_COLOR && 3) SELF.CONTENTS.DRAW_TEXT(120, ITEM1.ATK INITIALIZE(ACTOR) 224, ITEM.EP_COST.TO_S, ATK2="@item" SELF.CONTENTS.DRAW_TEXT(212, ATK1 SELF.CONTENTS.DRAW_TEXT(196, アクターを取得 WINDOW_EQUIPEXTENDCONTROL DRAW_ITEM_NAME($DATA_WEAPONS[@ACTOR.WEAPON_ID], 22 MDEF2 OPACITY) MDEF1 200, NEXT") 選択中の装備品 SELF.CONTENTS.DRAW_TEXT(172, 16, @ITEM_WIDTH="(width" DRAW_ACTOR_GRAPHIC(@ACTOR, 2) 368, 160, 変更前の素早さ ACTOR.EQUIPPABLE?(@ITEM) Y, @ACTOR.EXP_S, 0...$GAME_PARTY.ACTORS.SIZE 装備可能な場合 現在の装備品を取得 DRAW_ACTOR_LEVEL(@ACTOR, SELF.CONTENTS.DRAW_TEXT(516, #------------------------------------------------------------------------------ ACTOR.EQUIP_TYPE[J]="@item.kind" REFRESH 1) RETURN ATTR_ACCESSOR オブジェクト初期化 1...ACTOR.EQUIP_TYPE.SIZE SELF.CONTENTS.FONT.SIZE="18" 変更前の腕力 96, 持っている数") @DATA[I].EP_COST.TO_S, @ACTOR.MAX_EP.TO_S, ACTOR="$game_party.actors[i]" 72, ● @ITEM.ATK ACTOR.NAME) 1...@ACTOR.EQUIP_TYPE.SIZE @ITEM.MDEF 0, COLOR.NEW(0, ICON="RPG::Cache.icon(item1.icon_name)" 0) @NEW_ATK @LAST_STR="@actor.str" ICON.RECT, 装備可能なら通常文字色に、不可能なら無効文字色に設定 IN 216, SPRINTF("%+D", SELF.CONTENTS.DRAW_TEXT(204, IF SELF.CONTENTS.DRAW_TEXT(92, ITEM1.NAME) @ITEM.IS_A?(RPG::WEAPON) SELF.CONTENTS.DRAW_TEXT(572, WINDOW_EQUIPEXTENDSTATUS 変更前の魔力 DRAW_ITEM(INDEX) @LAST_INT="@actor.int" :NEW_EQUIP SELF.CONTENTS.DRAW_TEXT(140, WINDOW_EQUIPLEFT ITEM1.MDEF WINDOW_BASE RPG::ITEM /", I, DRAW_ITEM_NAME($DATA_WEAPONS[@ACTOR.WEAPON_ID(I)], 336, ■ I) @HELP_WINDOW.SET_TEXT(KGC::EEX_EQUIP_EX_HELP_ALL_RELEASE) @LAST_EQUIP="nil" 128 SELF.BACK_OPACITY="160" SELF.CONTENTS="Bitmap.new(width" @HELP_WINDOW.SET_TEXT(KGC::EEX_EQUIP_EX_HELP_STRONGEST_EQUIP) DRAW_ACTOR_HP(@ACTOR, SELF.CONTENTS.DRAW_TEXT(468, 項目の描画 DRAW_ITEM_KGC_EQUIPEXTENSION :LAST_AGI SELF.CURSOR_RECT.SET(@ITEM_WIDTH 64, DRAW_ACTOR_STATE(@ACTOR, ICON, 64) SELF.CONTENTS.DRAW_TEXT(320 0)) パラメータの変化値を描画 初期能力値を保存 WHEN :LAST_DEX 40, 0...@DATA.SIZE $IMPORTED["HELPEXTENSION"] ALIAS NUMBER="$game_party.armor_number(@item.id)" @ITEM_WIDTH, HEIGHT DRAW_ACTOR_NAME(@ACTOR, アクターの名前を描画 92, ELSE FOR SELF.CONTENTS.FILL_RECT(RECT, DRAW_ITEM_NAME(@DATA[I], SUPER(ACTOR) 144, KGC::EEX_EQUIP_NAME[@ACTOR.EQUIP_TYPE[I]]="nil" 元の処理を実行 DRAW_ITEM 120, @ACTOR.ARMOR_ID[I] RPG::ARMOR KGC::EEX_EQUIP_EX_COMMAND_ALL_RELEASE] 公開インスタンス変数 KNOCKOUT_COLOR 212, 28, 304, #-------------------------------------------------------------------------- KGC::EEX_DRAW_EP_MAX SELF.INDEX SELF.CONTENTS.DRAW_TEXT(4, WINDOW_EQUIPITEM @ACTOR.EP.TO_S, $IMPORTED["STATUSALTER"] SELF.CONTENTS.DRAW_TEXT(X 172) @ACTOR.TWO_SWORDS? 拡張装備画面で、アクターのパラメータ変化を表示するウィンドウです。 WINDOW_SHOPSTATUS DRAW_ACTOR_SP(@ACTOR, KGC::EEX_EP_NAME) SELF.CONTENTS.CLEAR @COMMANDS.SIZE 240, $DATA_SYSTEM.WORDS.PDEF) @ITEM.PDEF SELF.CONTENTS.DRAW_TEXT(320, RECT="Rect.new(@item_width" @COLUMN_MAX="@commands.size" 320 @DATA[I] BREAK 32, ヘルプテキスト更新 @COMMANDS[I], 武器の場合 32) @ITEM_MAX="@commands.size" EXP") (288 カーソルの矩形更新 400, UPDATE_HELP アイテムを描画 NUMBER.TO_S, @NEW_EQUIP="nil" @HELP_WINDOW.SET_TEXT(KGC::EEX_EQUIP_EX_HELP_EQUIP) 84, 0...@ACTOR.TS_NUMBER KGC::EEX_USE_EP ITEM1.PDEF SELF.CONTENTS.DRAW_TEXT(124, OPACITY="self.contents.font.color==normal_color" 112, 項目番号 64 @LAST_AGI="@actor.agi" 112) WINDOW_SELECTABLE ITEM1 255 DRAW_ITEM_NAME($DATA_ARMORS[ @ITEM.IS_A?(RPG::ITEM) Y X="4" 6) PDEF2="@item" PDEF1 @LAST_DEX="@actor.dex" 防具の場合 256, ], CHANGE), $DATA_SYSTEM.WORDS.DEX) J INDEX I $DATA_SYSTEM.WORDS.AGI) KGC::EEX_EQUIP_NAME[@ACTOR.EQUIP_TYPE[I]]) RPG::WEAPON CHANGE="pdef2" 変更前の器用さ NEXT 192 640, @ITEM.IS_A?(RPG::ARMOR) ? 48, < 48) : SELF.CONTENTS.FONT.COLOR="@actor.atk" CASE 5) DRAW_ACTOR_PARAMETER(@ACTOR, 192, ITEM SELF.CONTENTS.DRAW_TEXT(180, 4 @ACTOR.TS_NUMBER...@ACTOR.EQUIP_TYPE.SIZE 192) 24, 2 1 0 装備品追加情報 $DATA_SYSTEM.WORDS.INT) / SELF.CONTENTS.BLT(X, - @ITEM + * @ACTOR.NEXT_REST_EXP_S, $DATA_SYSTEM.WORDS.STR) :LAST_STR $DATA_SYSTEM.WORDS.MDEF) % 44 WINDOW_STATUS # @COMMANDS="[KGC::EEX_EQUIP_EX_COMMAND_EQUIP," UPDATE_CURSOR_RECT !="nil" SELF.CONTENTS.DRAW_TEXT(548, #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ INDEX, 4, 装備") 128, KGC::EEX_EQUIP_EX_COMMAND_STRONGEST_EQUIP, 4) リフレッシュ INITIALIZE 装備画面で、操作を選択するウィンドウです。 KGC::EEX_EQUIP_NAME[0]) DRAW_ITEM_KGC_EQUIPEXTENSION(INDEX) KGC::EEX_EQUIP_EX_BACK_TRANSPARENT :LAST_INT END $DATA_SYSTEM.WORDS.ATK) SELF.CONTENTS.DRAW_TEXT(RECT, DRAW_ACTOR_CLASS(@ACTOR, SELF.Z="1000" SUPER(0, SELF.Y="288" SELF.X="368" 32> @new_atk ? text_color(2) :
@actor.atk <@new_atk SELF.CONTENTS.FONT.COLOR="@actor.pdef" SELF.CONTENTS.DRAW_TEXT(80, @ACTOR.ATK.TO_S, 2) ? : ELSE TEXT_COLOR(3) !="nil" 36, 64, @NEW_ATK.TO_S, @NEW_PDEF END NORMAL_COLOR IF 32,> @new_pdef ? text_color(2) :
@actor.pdef <@new_pdef SELF.CONTENTS.FONT.COLOR="@actor.mdef" SELF.CONTENTS.DRAW_TEXT(80, 2) @ACTOR.PDEF.TO_S, ? @NEW_PDEF.TO_S, : ELSE TEXT_COLOR(3) 96, !="nil" @NEW_MDEF 36, END NORMAL_COLOR IF 32,> @new_mdef ? text_color(2) :
@actor.mdef <@new_mdef SELF.CONTENTS.FONT.COLOR="@last_str" SELF.CONTENTS.DRAW_TEXT(80, 2) ? : ELSE TEXT_COLOR(3) 128, !="nil" 36, @NEW_STR @ACTOR.MDEF.TO_S, END NORMAL_COLOR IF @NEW_MDEF.TO_S, 32,> @new_str ? text_color(2) :
@last_str <@new_str SELF.CONTENTS.FONT.COLOR="@last_dex" @NEW_DEX 2) ? : ELSE TEXT_COLOR(3) SELF.CONTENTS.DRAW_TEXT(200, !="nil" @NEW_STR.TO_S, 36, END NORMAL_COLOR IF 32, @ACTOR.STR.TO_S,> @new_dex ? text_color(2) :
@last_dex <@new_dex SELF.CONTENTS.FONT.COLOR="@last_agi" @NEW_AGI 2) ? : ELSE TEXT_COLOR(3) SELF.CONTENTS.DRAW_TEXT(200, !="nil" @NEW_DEX.TO_S, 36, 64, END NORMAL_COLOR IF 32, @ACTOR.DEX.TO_S,> @new_agi ? text_color(2) :
@last_agi <@new_agi SELF.CONTENTS.FONT.COLOR="@last_int" 2) ? @NEW_AGI.TO_S, : ELSE TEXT_COLOR(3) SELF.CONTENTS.DRAW_TEXT(200, 96, !="nil" @ACTOR.AGI.TO_S, 36, @NEW_INT END NORMAL_COLOR IF 32,> @new_int ? text_color(2) :
@last_int <@new_int @NEW_PDEF="new_pdef" NEW_ST[3] NORMAL_COLOR 36, END 1...@ACTOR.TS_NUMBER FOR オブジェクト初期化 368, SELF.CONTENTS="Bitmap.new(width" 2) @LAST_EQUIP="@new_equip" #------------------------------------------------------------------------------ @NEW_STR="new_st[0]" @EQUIP_TYPE[I]="0" ELSE SELF.INDEX NEW_ST="[nil," TEXT_COLOR(3) 64, DEF SET_NEW_PARAMETERS(NEW_ATK, SELF.CONTENTS.FONT.COLOR="normal_color" INITIALIZE(ACTOR) $IMPORTED["HELPEXTENSION"] 装備変更後のパラメータ設定 @NEW_MDEF="new_mdef" アイテムの取得 ● アクター NIL]) @NEW_INT.TO_S, WINDOW_SELECTABLE 416) ITEM SUPER(0, @NEW_AGI="new_st[2]" @NEW_ATK="new_atk" @ACTOR="actor" || @NEW_DEX="new_st[1]" #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ SELF.CONTENTS.DRAW_TEXT(200, IN IF ■ 128, REFRESH SELF.BACK_OPACITY="160" 拡張装備画面で、アクターが現在装備しているアイテムを表示するウィンドウです。 I @ACTOR.TWO_SWORDS? @EQUIP_TYPE="@actor.equip_type.dup" HEIGHT ACTOR ? < @DATA[SELF.INDEX] 32, : タイプの取得 NEW_PDEF, 32) SELF.ACTIVE="false" - @EQUIP_TYPE[SELF.INDEX] RETURN #-------------------------------------------------------------------------- リフレッシュ NIL, TYPE NEW_MDEF, # !="new_st[3]" @ACTOR.INT.TO_S, KGC::EEX_EQUIP_EX_BACK_TRANSPARENT @ACTOR.EQUIP_TYPE_APPLY 装備タイプを取得 SELF.HEIGHT="352" WINDOW_EQUIPEXTENDLIST SELF.Y="128"> = @equip_type.size
self.index = @equip_type.size - 1
end
# アイテムを追加
@data = []
if @actor.two_swords?
for i in 0...@actor.ts_number
@data.push($data_weapons[@actor.weapon_id(i)])
end
for i in @actor.ts_number...@equip_type.size
@data.push($data_armors[@actor.armor_id[i]])
end
else
@data.push($data_weapons[@actor.weapon_id])
for i in 1...@equip_type.size
@data.push($data_armors[@actor.armor_id[i]])
end
end
@equip_type = @equip_type[KGC::EEX_EQUIP_EX_INDEX...@equip_type.size]
@data = @data[KGC::EEX_EQUIP_EX_INDEX...@data.size]
@item_max = @data.size
# ウィンドウ内容を作成
self.contents.dispose
self.contents = Bitmap.new(width - 32, @equip_type.size * 32)
self.contents.font.color = system_color
for i in 0...@equip_type.size
if @equip_type[i] == 0 && @actor.two_swords? && i <@actor.ts_number && @COLUMN_MAX="1" 拡張装備画面で、装備変更の候補となるアイテムの一覧を表示するウィンドウです。 @DATA[I] KGC::EEX_EQUIP_NAME[0]) END FOR オブジェクト初期化 SELF.CONTENTS="nil" 2) #------------------------------------------------------------------------------ KGC::EEX_EQUIP_NAME[@EQUIP_TYPE[I]]="nil" $GAME_PARTY.WEAPON_NUMBER(I) ELSE SELF.INDEX="-1" 64, DEF INITIALIZE(ACTOR, SELF.CONTENTS.FONT.COLOR="KGC::EEX_EP_COLOR" $IMPORTED["HELPEXTENSION"] WINDOW_EQUIPEXTENDITEM アイテムの取得 SELF.CONTENTS.DRAW_TEXT(4, 92, 320, ● WEAPON_SET="$data_classes[@actor.class_id].weapon_set" アクター WINDOW_SELECTABLE 416) ITEM (0〜3) UPDATE_HELP @ACTOR="actor" SUPER(368, #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ IN SELF.ITEM.DESCRIPTION) EQUIP_TYPE IF KGC::EEX_EQUIP_NAME[@EQUIP_TYPE[I]]) KGC::EEX_USE_EP DRAW_ITEM_NAME(@DATA[I], ■ @DATA="[]" 装備部位 EQUIP_TYPE) 240, REFRESH SELF.BACK_OPACITY="160" ヘルプテキスト更新 I, I I) @EQUIP_TYPE="0" ACTOR ? < @DATA[SELF.INDEX] 32, NEXT @DATA[I].EP_COST.TO_S, : 装備可能な武器を追加 SELF.ACTIVE="false" RETURN #-------------------------------------------------------------------------- * リフレッシュ # 1...$DATA_WEAPONS.SIZE !="nil" SELF.CONTENTS.DRAW_TEXT(92, @HELP_WINDOW.SET_TEXT(SELF.ITEM="nil" KGC::EEX_EQUIP_EX_BACK_TRANSPARENT SELF.CONTENTS.DISPOSE SELF.HEIGHT="352" 0...@DATA.SIZE SELF.Y="128" 32> 0 && weapon_set.include?(i)
@data.push($data_weapons[i])
end
end
end
# 装備可能な防具を追加
if @equip_type != 0
armor_set = $data_classes[@actor.class_id].armor_set
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0 && armor_set.include?(i)
if $data_armors[i].kind == @equip_type-1
@data.push($data_armors[i])
end
end
end
end
# 空白を追加
@data.push(nil)
# ビットマップを作成し、全項目を描画
@item_max = @data.size
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max-1
draw_item(i)
end
end
#--------------------------------------------------------------------------
# ● 項目の描画
# index : 項目番号
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
y = index * 32
case item
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(0, y + 4, icon, icon.rect)
self.contents.font.color = normal_color
self.contents.draw_text(32, y, 212, 32, item.name, 0)
self.contents.draw_text(244, y, 16, 32, ":", 1)
self.contents.draw_text(260, y, 24, 32, number.to_s, 2)
if KGC::EEX_USE_EP && item != nil
self.contents.font.color = KGC::EEX_EP_COLOR
self.contents.draw_text(220, y, 24, 32, item.ep_cost.to_s, 2)
end
end
#--------------------------------------------------------------------------
# ● ヘルプテキスト更新
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Interpreter (分割定義 3)
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# ● 条件分岐
#--------------------------------------------------------------------------
def command_111
# ローカル変数 result を初期化
result = false
# 条件判定
case @parameters[0]
when 0 # スイッチ
result = ($game_switches[@parameters[1]] == (@parameters[2] == 0))
when 1 # 変数
value1 = $game_variables[@parameters[1]]
if @parameters[2] == 0
value2 = @parameters[3]
else
value2 = $game_variables[@parameters[3]]
end
case @parameters[4]
when 0 # と同値
result = (value1 == value2)
when 1 # 以上
result = (value1 >= value2)
when 2 # 以下
result = (value1 <=value2) RESULT="(value1" 超 WHEN 3 # VALUE2)> value2)
when 4 # 未満
result = (value1 <value2) セルフスイッチ 以外 RESULT="(value1" WHEN 5 2 # !="value2)" @EVENT_ID END IF> 0
key = [$game_map.map_id, @event_id, @parameters[1]]
if @parameters[2] == 0
result = ($game_self_switches[key] == true)
else
result = ($game_self_switches[key] != true)
end
end
when 3 # タイマー
if $game_system.timer_working
sec = $game_system.timer / Graphics.frame_rate
if @parameters[2] == 0
result = (sec >= @parameters[1])
else
result = (sec <=@parameters[1]) 防具 CASE BREAK エネミー 0...ACTOR.TS_NUMBER アクター ACTOR 名前 ゴールド 武器 パーティにいる I RESULT="($game_party.gold" ACTOR.ARMOR_ID[I]="@parameters[3]" WHEN ELSE @PARAMETERS[2]="0" 7 6 ACTOR.WEAPON_ID(I)="@parameters[3]" 5 4 3 2 1 ACTOR.TWO_SWORDS? 0 出現している スキル # !="nil" キャラクター ENEMY IN END FOR IF CHARACTER 1...ACTOR.EQUIP_TYPE.SIZE @PARAMETERS[1]) ステート> = @parameters[1])
else
result = ($game_party.gold <=@parameters[1]) RESULT="($game_party.item_number(@parameters[1])" WHEN 8 # END アイテム @PARAMETERS[1])> 0)
when 9 # 武器
result = ($game_party.weapon_number(@parameters[1]) > 0)
when 10 # 防具
result = ($game_party.armor_number(@parameters[1]) > 0)
when 11 # ボタン
result = (Input.press?(@parameters[1]))
when 12 # スクリプト
result = eval(@parameters[1])
end
# 判定結果をハッシュに格納
@branch[@list[@index].indent] = result
# 判定結果が真だった場合
if @branch[@list[@index].indent] == true
# 分岐データを削除
@branch.delete(@list[@index].indent)
# 継続
return true
end
# 条件に該当しない場合 : コマンドスキップ
return command_skip
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Equip
#==============================================================================
class Scene_Equip
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
alias main_KGC_EquipExtension main
def main
# アクターを取得
@actor = $game_party.actors[@actor_index]
# アイテムウィンドウを作成
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6} = Window_EquipItem.new(@actor, i + 5)")
if $imported["MenuAlter"] && KGC::MA_MENU_TRANSPARENT
eval("@item_window#{i + 6}.back_opacity = 160")
end
end
end
# 元の処理を実行
main_KGC_EquipExtension
# アイテムウィンドウを解放
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.dispose if @item_window#{i + 6} != nil")
end
end
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
# ヘルプウィンドウを設定
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.help_window = @help_window")
end
end
# アイテムウィンドウの可視状態設定
@item_window1.visible = (@right_window.type == 0)
@item_window2.visible = (@right_window.type == 1)
@item_window3.visible = (@right_window.type == 2)
@item_window4.visible = (@right_window.type == 3)
@item_window5.visible = (@right_window.type == 4)
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.visible = (@right_window.type == i + 5)")
end
end
# 現在装備中のアイテムを取得
item1 = @right_window.item
# 現在のアイテムウィンドウを @item_window に設定
eval("@item_window = @item_window#{@right_window.type + 1}")
# ライトウィンドウがアクティブの場合
if @right_window.active
# 装備変更後のパラメータを消去
@left_window.set_new_parameters(nil, nil, nil)
end
# アイテムウィンドウがアクティブの場合
if @item_window.active
# 現在選択中のアイテムを取得
item2 = @item_window.item
# 装備を変更
last_hp = @actor.hp
last_sp = @actor.sp
if @actor.two_swords?
case @right_window.index
when 0...@actor.ts_number # 武器
@actor.set_weapon(@right_window.index, item2 == nil ? 0 : item2.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item1, item2, true)
end
when @actor.ts_number...@actor.equip_type.size # 防具
@actor.armor_id[@right_window.index] = (item2 == nil ? 0 : item2.id)
for i in @actor.ts_number...@actor.equip_type.size
@actor.update_auto_state(item1, item2)
end
end
else
case @right_window.index
when 0 # 武器
@actor.weapon_id = (item2 == nil ? 0 : item2.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item1, item2, true)
end
when 1...@actor.equip_type.size # 防具
@actor.armor_id[@right_window.index] = (item2 == nil ? 0 : item2.id)
for i in 1...@actor.equip_type.size
@actor.update_auto_state(item1, item2)
end
end
end
# 装備変更後のパラメータを取得
new_atk = @actor.atk
new_pdef = @actor.pdef
new_mdef = @actor.mdef
if $imported["EquipAlter"]
new_st = [@actor.str, @actor.dex, @actor.agi, @actor.int]
end
# 装備を戻す
if @actor.two_swords?
case @right_window.index
when 0...@actor.ts_number # 武器
@actor.set_weapon(@right_window.index, item1 == nil ? 0 : item1.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item2, item1, true)
end
when @actor.ts_number...@actor.equip_type.size # 防具
@actor.armor_id[@right_window.index] = (item1 == nil ? 0 : item1.id)
for i in @actor.ts_number...@actor.equip_type.size
@actor.update_auto_state(item2, item1)
end
end
else
case @right_window.index
when 0 # 武器
@actor.weapon_id = (item1 == nil ? 0 : item1.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item2, item1, true)
end
when 1...@actor.equip_type.size # 防具
@actor.armor_id[@right_window.index] = (item1 == nil ? 0 : item1.id)
for i in 1...@actor.equip_type.size
@actor.update_auto_state(item2, item1)
end
end
end
@actor.hp = last_hp
@actor.sp = last_sp
# レフトウィンドウに描画
if $imported["EquipAlter"]
@left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_st)
else
@left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
end
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (アイテムウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
unless $imported["EquipAlter"]
alias update_item_KGC_EquipExtension update_item
def update_item
# C ボタンが押された場合
if Input.trigger?(Input::C)
# アイテムウィンドウで現在選択されているデータを取得
item = @item_window.item
if KGC::EEX_USE_EP
# EP判定
if item != nil && item.ep_cost > @actor.ep
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
end
# 装備 SE を演奏
$game_system.se_play($data_system.equip_se)
# 装備を変更
@actor.equip(@right_window.index, item == nil ? 0 : item.id)
# オートステートを更新
if $imported["EquipDetailSetting"]
if @actor.two_swords?
@actor.update_auto_state(nil, $data_weapons[@actor.weapon_id(@right_window.index)], true)
else
@actor.update_auto_state(nil, $data_weapons[@actor.weapon_id], true)
end
end
for i in 1...@actor.equip_type.size
@actor.update_auto_state(nil, $data_armors[@actor.armor_id[i]])
end
# 初期能力を更新
if $imported["EquipAlter"]
@left_window.last_str = @actor.str
@left_window.last_dex = @actor.dex
@left_window.last_agi = @actor.agi
@left_window.last_int = @actor.int
end
# ライトウィンドウをアクティブ化
@right_window.active = true
@item_window.active = false
@item_window.index = -1
# レフトウィンドウを初期化
@left_window.new_equip = nil if $imported["EquipAlter"]
@left_window.set_new_parameters(nil, nil, nil)
# ライトウィンドウ、アイテムウィンドウの内容を再作成
@right_window.refresh
for i in 1..(KGC::EEX_EQUIP_TYPE_EXT.size + 5)
eval("@item_window#{i}.refresh")
end
return
end
# 元の処理を実行
update_item_KGC_EquipExtension
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Battle (分割定義 1)
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
alias main_KGC_EquipExtension main
def main
# 攻撃回数を初期化
for actor in $game_party.actors
actor.attack_count = 0
end
# 元の処理を実行
main_KGC_EquipExtension
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Battle (分割定義 4)
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
#--------------------------------------------------------------------------
alias update_phase4_step6_KGC_EquipExtension update_phase4_step6
def update_phase4_step6
# 元の処理を実行
update_phase4_step6_KGC_EquipExtension
# 二刀流・通常攻撃の場合
if @active_battler.is_a?(Game_Actor) && @active_battler.two_swords? &&
@active_battler.current_action.kind == 0 && @active_battler.current_action.basic == 0
# 攻撃回数加算
loop do
@active_battler.attack_count += 1
if @active_battler.attack_count == @active_battler.ts_number ||
@active_battler.weapon_id(@active_battler.attack_count) > 0
break
end
end
# 規定回数行動した場合
if @active_battler.attack_count == @active_battler.ts_number
# 攻撃回数を初期化
@active_battler.attack_count = 0
else
# 戦闘継続の場合
unless judge
# 攻撃対象が死んでいる場合は再設定
if @target_battlers[0].dead?
if @active_battler.restriction == 3
@target_battlers[0] = $game_party.random_target_actor
else
@target_battlers[0] = $game_troop.random_target_enemy
end
end
if $imported["ActiveCountBattle"]
@action_battlers.insert(0, @active_battler)
else
# ステップ 2 に移行
@phase4_step = 2
end
end
end
else
if @active_battler.is_a?(Game_Actor)
# 攻撃回数を初期化
@active_battler.attack_count = 0
end
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_EquipExtend
#------------------------------------------------------------------------------
# 拡張装備画面の処理を行うクラスです。
#==============================================================================
class Scene_EquipExtend
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# actor_index : アクターインデックス
# equip_index : 装備インデックス
#--------------------------------------------------------------------------
def initialize(actor_index = 0, equip_index = 0, call_menu = false)
@actor_index = actor_index
@equip_index = equip_index
@call_menu = call_menu
end
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
def main
@actor = $game_party.actors[@actor_index]
@spriteset = Spriteset_Map.new if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
# ウィンドウを作成
if $imported["HelpExtension"]
@help_window = Window_HelpExtension.new
else
@help_window = Window_Help.new
end
@control_window = Window_EquipExtendControl.new
@control_window.y = 64 if $imported["HelpExtension"]
@status_window = Window_EquipExtendStatus.new(@actor)
@list_window = Window_EquipExtendList.new(@actor)
@item_window1 = Window_EquipExtendItem.new(@actor, 0)
@item_window2 = Window_EquipExtendItem.new(@actor, 1)
@item_window3 = Window_EquipExtendItem.new(@actor, 2)
@item_window4 = Window_EquipExtendItem.new(@actor, 3)
@item_window5 = Window_EquipExtendItem.new(@actor, 4)
# ヘルプウィンドウを関連付け
@control_window.help_window = @help_window
@list_window.help_window = @help_window
@item_window1.help_window = @help_window
@item_window2.help_window = @help_window
@item_window3.help_window = @help_window
@item_window4.help_window = @help_window
@item_window5.help_window = @help_window
# 拡張アイテムウィンドウを作成
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6} = Window_EquipExtendItem.new(@actor, i + 5)")
eval("@item_window#{i + 6}.help_window = @help_window")
if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
eval("@item_window#{i + 6}.back_opacity = 160")
end
end
end
if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
@help_window.back_opacity = 160
@control_window.back_opacity = 160
end
# カーソル位置を設定
@list_window.index = @equip_index
@effect_type = 0
refresh
# トランジション実行
Graphics.transition
# メインループ
loop do
# ゲーム画面を更新
Graphics.update
# 入力情報を更新
Input.update
# フレーム更新
update
# 画面が切り替わったらループを中断
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# ウィンドウを解放
@help_window.dispose
@control_window.dispose
@status_window.dispose
@list_window.dispose
@item_window1.dispose
@item_window2.dispose
@item_window3.dispose
@item_window4.dispose
@item_window5.dispose
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.dispose if @item_window#{i + 6} != nil")
end
end
@spriteset.dispose if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# ウィンドウを更新
@status_window.update
@list_window.update
@item_window.update
@control_window.update
refresh
update_effect(@effect_type)
# 操作ウィンドウがアクティブの場合: update_control を呼ぶ
if @control_window.active
@effect_type = 0
update_control
return
end
# リストウィンドウがアクティブの場合: update_list を呼ぶ
if @list_window.active
@effect_type = 1
update_list
return
end
# アイテムウィンドウがアクティブの場合: update_item を呼ぶ
if @item_window.active
@effect_type = 2
update_item
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (エフェクト)
#--------------------------------------------------------------------------
def update_effect(type)
case type
when 1
@last_index = -1
@status_window.x = [@status_window.x + 48, 368].min
@status_window.y = [@status_window.y + 24, 288].min
@list_window.x = [@list_window.x + 8, 0].min
@item_window.x = [@item_window.x + 8, 368].min
when 2
if @last_index != @list_window.index
pos = @list_window.index - @list_window.top_row
center = (@list_window.height - 32) / 64
@status_y = pos >= center ? @list_window.y : 288
@last_index = @list_window.index
end
@status_window.x = [@status_window.x - 48, 0].max
if @status_y > @status_window.y
@status_window.y = [@status_window.y + 24, @status_y].min
elsif @status_y <@status_window.y && ステータスウィンドウを初期化 @CONTROL_WINDOW.INDEX [@STATUS_WINDOW.Y INPUT.TRIGGER?(INPUT::L) 別の装備画面に切り替え $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.DECISION_SE) (アイテムウィンドウがアクティブの場合) @LIST_WINDOW.X="[@list_window.x" @CALL_MENU ボタンが押された場合 END INPUT.TRIGGER?(INPUT::R) 最強装備 24, FOR (KGC::EEX_EQUIP_EX_INDEX...MX).EACH UNLESS @ACTOR.EQUIP(I, ELSE DEF KGC::EEX_EQUIP_EX_INDEX) リストウィンドウをアクティブ化 @CONTROL_WINDOW.VISIBLE="true" |I| マップ画面に切り替え 8, カーソル位置で分岐 ITEM.EP_COST 操作ウィンドウに切り替え 装備を外す @STATUS_WINDOW.LAST_STR="@actor.str" $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.CANCEL_SE) ● メニュー画面に切り替え KGC::EEX_EQUIP_EX_INDEX @LIST_WINDOW.INDEX="-1" レフトウィンドウを初期化 リストウィンドウに切り替え @CALL_MENU) EQUIP_STRONGEST_WEAPON(I) } (TW 装備固定の場合は次へ { (リストウィンドウがアクティブの場合) ITEM UPDATE_LIST INPUT.TRIGGER?(INPUT::C) $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.EQUIP_SE) フレーム更新 カーソル 武器 @ACTOR.TS_NUMBER 0, @STATUS_WINDOW.SET_NEW_PARAMETERS(NIL, 装備固定でない場合は解除 0) IN 1)...MX @STATUS_Y].MAX アイテムウィンドウをアクティブ化 を演奏 全解除 IF -48].MAX @CONTROL_WINDOW.ACTIVE="true" KGC::EEX_USE_EP $SCENE="Scene_EquipExtend.new(@actor_index," (操作ウィンドウがアクティブの場合) @STATUS_WINDOW.LAST_AGI="@actor.agi" @STATUS_WINDOW.LAST_INT="@actor.int" 装備 INPUT.TRIGGER?(INPUT::B) @STATUS_WINDOW.LAST_DEX="@actor.dex" REFRESH_WINDOW EP判定 防具 ブザー R REFRESH キャンセル L @ITEM_WINDOW.INDEX="-1" I I) @ITEM_WINDOW.ACTIVE="false" WHEN @ACTOR.TWO_SWORDS? C B A 0...@ACTOR.TS_NUMBER ? 次のアクターへ INPUT.TRIGGER?(INPUT::A) NEXT : INDEX="@list_window.index" 装備固定の場合 最強武器装備 決定 TW="$imported["EquipExtension"]" 最強防具装備 装備最大数を取得 2 @ACTOR_INDEX 1 0 UPDATE_ITEM 320].MAX - CASE RETURN @LIST_WINDOW.ACTIVE="true" + #-------------------------------------------------------------------------- リフレッシュ NIL, MX="5" @ITEM_WINDOW.X="[@item_window.x" %="$game_party.actors.size" NIL) # @ACTOR.EQUIP(INDEX, !="nil" $IMPORTED["EQUIPEXTENSION"] ウィンドウをリフレッシュ UPDATE_CONTROL @ACTOR.EQUIP_FIX?(I) 選択中の装備品を更新 ウィンドウリフレッシュ $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.BUZZER_SE) 装備の種類で分岐 前のアクターへ KGC::EEX_EQUIP_EX_INDEX...MX @ACTOR.EQUIP_FIX?(@LIST_WINDOW.INDEX 装備変更 @STATUS_WINDOW.NEW_EQUIP="nil" $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.CURSOR_SE) 初期能力を更新 アイテムウィンドウで現在選択されているデータを取得 SE EQUIP_STRONGEST_ARMOR(@ACTOR.EQUIP_TYPE[I],> @actor.ep
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
end
# 装備 SE を演奏
$game_system.se_play($data_system.equip_se)
# 装備を変更
@actor.equip(index, item == nil ? 0 : item.id)
# オートステートを更新
if $imported["EquipDetailSetting"]
if $imported["EquipExtension"] && @actor.two_swords?
@actor.update_auto_state(nil, $data_weapons[@actor.weapon_id(index)], true)
else
@actor.update_auto_state(nil, $data_weapons[@actor.weapon_id], true)
end
end
if $imported["EquipExtension"]
for i in (@actor.two_swords? ? @actor.ts_number : 1)...@actor.equip_type.size
@actor.update_auto_state(nil, $data_armors[@actor.armor_id[i]])
end
else
for i in 1..4
@actor.update_auto_state(nil, $data_armors[eval("@actor.armor#{i}_id")])
end
end
# 初期能力を更新
@status_window.last_str = @actor.str
@status_window.last_dex = @actor.dex
@status_window.last_agi = @actor.agi
@status_window.last_int = @actor.int
# リストウィンドウをアクティブ化
@list_window.active = true
@item_window.active = false
@item_window.index = -1
# ステータスウィンドウを初期化
@status_window.new_equip = nil
@status_window.set_new_parameters(nil, nil, nil)
# ウィンドウの内容を再作成
refresh_window
return
end
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
# アイテムウィンドウの可視状態設定
@item_window1.visible = (@list_window.type == 0)
@item_window2.visible = (@list_window.type == 1)
@item_window3.visible = (@list_window.type == 2)
@item_window4.visible = (@list_window.type == 3)
@item_window5.visible = (@list_window.type == 4)
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.visible = (@list_window.type == i + 5)")
end
end
# 現在装備中のアイテムを取得
item1 = @list_window.item
# 現在のアイテムウィンドウを @item_window に設定
eval("@item_window = @item_window#{@list_window.type + 1}")
# リストウィンドウがアクティブの場合
if @list_window.active
# 装備変更後のパラメータを消去
@status_window.set_new_parameters(nil, nil, nil)
end
# アイテムウィンドウがアクティブの場合
if @item_window.active
# 現在選択中のアイテムを取得
item2 = @item_window.item
index = @list_window.index + KGC::EEX_EQUIP_EX_INDEX
# 装備を変更
last_hp = @actor.hp
last_sp = @actor.sp
if @actor.two_swords?
case index
when 0...@actor.ts_number # 武器
@actor.set_weapon(index, item2 == nil ? 0 : item2.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item1, item2, true)
end
when @actor.ts_number...@actor.equip_type.size # 防具
@actor.armor_id[index] = (item2 == nil ? 0 : item2.id)
for i in @actor.ts_number...@actor.equip_type.size
@actor.update_auto_state(item1, item2)
end
end
else
case index
when 0 # 武器
@actor.weapon_id = (item2 == nil ? 0 : item2.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item1, item2, true)
end
when 1...@actor.equip_type.size # 防具
@actor.armor_id[index] = (item2 == nil ? 0 : item2.id)
for i in 1...@actor.equip_type.size
@actor.update_auto_state(item1, item2)
end
end
end
# 装備変更後のパラメータを取得
new_atk = @actor.atk
new_pdef = @actor.pdef
new_mdef = @actor.mdef
if $imported["EquipAlter"]
new_st = [@actor.str, @actor.dex, @actor.agi, @actor.int]
end
# 装備を戻す
if @actor.two_swords?
case index
when 0...@actor.ts_number # 武器
@actor.set_weapon(index, item1 == nil ? 0 : item1.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item2, item1, true)
end
when @actor.ts_number...@actor.equip_type.size # 防具
@actor.armor_id[index] = (item1 == nil ? 0 : item1.id)
for i in @actor.ts_number...@actor.equip_type.size
@actor.update_auto_state(item2, item1)
end
end
else
case index
when 0 # 武器
@actor.weapon_id = (item1 == nil ? 0 : item1.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item2, item1, true)
end
when 1...@actor.equip_type.size # 防具
@actor.armor_id[index] = (item1 == nil ? 0 : item1.id)
for i in 1...@actor.equip_type.size
@actor.update_auto_state(item2, item1)
end
end
end
@actor.hp = last_hp
@actor.sp = last_sp
# ステータスウィンドウに描画
if $imported["EquipAlter"]
@status_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_st)
else
@status_window.set_new_parameters(new_atk, new_pdef, new_mdef)
end
end
end
#--------------------------------------------------------------------------
# ● ウィンドウをリフレッシュ
#--------------------------------------------------------------------------
def refresh_window
# 初期能力を更新
@status_window.last_str = @actor.str
@status_window.last_dex = @actor.dex
@status_window.last_agi = @actor.agi
@status_window.last_int = @actor.int
# リフレッシュ
@status_window.refresh
@list_window.refresh
@item_window1.refresh
@item_window2.refresh
@item_window3.refresh
@item_window4.refresh
@item_window5.refresh
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.refresh")
end
오류만 나고..도와주세요..
부탁드립니다..ㅠㅠ
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆장비 확장 - KGC_EquipExtension◆
#_/----------------------------------------------------------------------------
#_/ 장비 관련의 기능을 확장합니다.
#_/============================================================================
#_/ ≪장비품 설정 상세화[EquipDetailSetting]≫보다 위
#_/ ≪클래스 설정 상세화[ClassDetailSetting]≫보다 위
#_/ ≪한계 돌파[LimitBreak]≫보다 위
#_/ ≪장비 화면 개조[EquipAlter]≫보다 아래
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ★ 커스터마이즈 항목 ★
#==============================================================================
module KGC
# ◆확장 장비 타입 정의
# 배열의 최초가 타입 5 에 상당.이후 6,7,8... (와)과 계속 된다.
EEX_EQUIP_TYPE_EXT = ["완부", "각부"]
# ◆장비품의 타입(1:순 2:두 3:신체 4:장식품 5이후:↑에 정의)
# ※어떻게 지정해도, 반드시 처음은 무기가 됩니다.
EEX_EQUIP_TYPE = [1, 2, 3, 4, 4, 5, 6]
# ◆쌍수검시의 무기수
# 쌍수검시는↑의 선두로부터 (EEX_TS_NUMBER - 1) 개가 무기로 옮겨진다
EEX_TS_NUMBER = 2
# ◆장비란의 이름
# 증가한 장비 타입의 명칭도 여기서 지정.
EEX_EQUIP_NAME = [
$data_system.words.weapon, # 무기
$data_system.words.armor1, # 타입 1(방패)
$data_system.words.armor2, # 타입 2(머리)
$data_system.words.armor3, # 타입 3(신체)
$data_system.words.armor4, # 타입 4(장식품)
EEX_EQUIP_TYPE_EXT[0], # 타입 5(속성명을 그대로 사용)
EEX_EQ UIP_TYPE_EXT[1] # 타입 6(속성명을 그대로 사용)
] # ←이 ] 는 지우지 않는 것
# ◆확장 장비 화면에 표시하는 장비란개시 번호
# 무기를 0 , 최초의 방어구를 1 으로 한 번호(인덱스).
EEX_EQUIP_EX_INDEX = 0
# ◆확장 장비 화면 배경 투과
EEX_EQUIP_EX_BACK_TRANSPARENT = true
# ◆확장 장비 화면 「장비 변경」명칭
EEX_EQUIP_EX_COMMAND_EQUIP = "장비 변경"
# ◆확장 장비 화면 「최강 장비」명칭
EEX_EQUIP_EX_COMMAND_STRONGEST_EQUIP = "최강 장비"
# ◆확장 장비 화면 「전해제」명칭
EEX_EQUIP_EX_COMMAND_ALL_RELEASE = "전해제"
# ◆확장 장비 화면 「장비 변경」 헬프
EEX_EQUIP_EX_HELP_EQUIP = "장비 무기를 변경합니다."
# ◆확장 장비 화면 「최강 장비」헬프
EEX_EQUIP_EX_HELP_STRONGEST_EQUIP = "자동적으로, 가장 강력한 장비로 변경합니다."
# ◆확장 장비 화면 「전해제」헬프
EEX_EQUIP_EX_HELP_ALL_RELEASE = "모든 장비품을 제외합니다. "
# ◆EP(Equip Point) 제를 사용한다
EEX_USE_EP = true
# ◆소비 EP기정치
# 소비 EP가 지정되어 있지 않은 장비품으로 사용
EEX_EP_COST_DEFAULT = 1
# ◆EP상한치
EEX_EP_MAX = 15
# ◆EP하한치
EEX_EP_MIN = 1
# ◆최대 EP산출식
# 【lv…레벨】
# 자동적으로 정수 변환되므로, 결과가 소수가 되어도 OK.
EEX_EP_FORMULA = "lv * 0.6"
# ◆「EP」의 명칭
EEX_EP_NAME = "EP"
# ◆장비 화면의 EP최대치 묘화
# 이름이 숨기는 경우는 false 로 해 주세요.
EEX_DRAW_EP_MAX = true
# ◆소비 EP치의 색(아이템명의 구멍을 뒤따르는 녀석)
EEX_EP_COLOR = Color.new(128, 255, 255)
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
$imported["EquipExtension"] = true
# 양손 소유 속성
$game_special_elements["two_handed"] = $data_system.elements.index("양손 소유")
if KGC::EEX_EQUIP_TYPE_ EXT.size > 0
for element in KGC::EEX_EQUIP_TYPE_EXT.compact
$game_special_elements["EEX_#{element}"] = $data_system.elements.index(element)
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#--------------------------------------------------------------------------
# ● 확장 장비 화면 호출
# actor_index : 액터 INDEX
#--------------------------------------------------------------------------
def call_equip_extend(actor_index = 0)
# 플레이어의 자세를 교정
$game_player.straighten
# 확장 장비 화면으로 전환해
$scene = Scene_EquipExtend.new(actor_index)
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ ★☆★
#==============================================================================
# ■ RPG::Weapon
#==============================================================================
class RPG::Weapon
#--------------------------------------------------------------------------
# ● 이름 취득
#--------------------------------------------------------------------------
def name
return @name.gsub(/[.*]/) {""}
end
#--------------------------------------------------------------------------
# ● 오리지날 나토리 이득
#-------------------------------------------------------------------- ------
def original_name
return @name
end
#--------------------------------------------------------------------------
# ● 소비 EP취득
#--------------------------------------------------------------------------
def ep_cost
return @name =~ /[EP[ ]*(d+)]/i ? $1.to_i : KGC::EEX _EP_COST_DEFAULT
end
#--------------------------------------------------------------------------
# ● 장비 타입 취득
#--------------------------------------------------------------------------
def equip_type
if @name =~ /[ET[ ]*([0-9,]+)]/i
type = $1.split(/[,]/).compact
for i in 0...type.size
type[i] = type[i].to_i
end
type.insert(0, 0) if type[0] != 0
return type
else
return nil
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================= =
# ■ RPG::Armor
#==============================================================================
class RPG::Armor
#--------------------------------------------------------------------------
# ● 이름 취득
#--------------------------------------------------------------------------
def name
return @name.gsub(/[.*]/) {""}
end
#--------------------------------------------------------------------------
# ● 오리지날 나토리 이득
#--------------------------------------------------------------------------
def original_name
return @name
end
#------------------------------ --------------------------------------------
# ● 소비 EP취득
#--------------------------------------------------------------------------
def ep_cost
return @name =~ /[EP[ ]*(d+)]/i ? $1.to_i : KGC::EEX_EP_COST_DEFAULT
end
#----------------------------------------------------------- ---------------
# ● 종류 취득
#--------------------------------------------------------------------------
def kind
if @guard_element_set.size > 0
for element in @guard_element_set.compact
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
if element == $game_special_elemen ts["EEX_#{KGC::EEX_EQUIP_TYPE_EXT[i]}"]
return i + 4
end
end
end
end
return @kind
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_Actor
#=========== ===================================================================
class Game_Actor <Game_Battler @WEAPON_FIX.PUSH(FALSE) 防具 :ARMOR_ID :ARMOR_FIX 公開インスタンス変数 DEF アクター ACTOR="$data_actors[actor_id]" #-------------------------------------------------------------------------- ● SETUP(ACTOR_ID) 防具固定 @ARMOR_FIX[3]="actor.armor3_fix" ACTOR_ID @WEAPON_FIX="[actor.weapon_fix]" I SELF.EQUIP_TYPE.SIZE @ARMOR_FIX="[false]" ATTR_ACCESSOR : ALIAS SETUP 0 1...KGC::EEX_TS_NUMBER @ARMOR_FIX[2]="actor.armor2_fix" SETUP_KGC_EQUIPEXTENSION # @WEAPONS セットアップ IN @ARMOR1_ID="@armor2_id=@armor3_id=@armor4_id=0" END @ARMOR_FIX[1]="actor.armor1_fix" IF FOR ID @ARMOR_FIX[4]="actor.armor4_fix" <<> 5
for i in 5...self.equip_type.size
@armor_fix[i] = false
end
end
@armor_id = [0]
if @weapons[0] == 0 || !$data_weapons[@weapons[0]].element_set.include?($game_special_elements["two_handed"])
@armor_id[1] = actor.armor1_id
else
@armor_id[1 ] = 0
end
@armor_id[2] = actor.armor2_id
@armor_id[3] = actor.armor3_id
@armor_id[4] = actor.armor4_id
if self.equip_type.size > 5
for i in 5...self.equip_type.size
@armor_id[i] = 0
end
end
# 원래의 처리를 실행
setup_KGC_EquipExtension(actor_id)
@equip_type, @equip_type_weapon = nil, nil
@two_swords, @two_handed = false, 0
@ts_number, @attack_count = nil, 0
if KGC::EEX_EQUIP_TYPE.size > 5
for i in 5...KGC::EEX_EQUIP_TYPE.size
# 방어구 ID, 고정 플래그를 초기화
@armor_id[i], @armor_fix[i] = 0, false
# 오 트스테이트를 갱신
update_auto_state(nil, $data_armors[self.armor_id[i]])
end
end
end
#--------------------------------------------------------------------------
# ● 장비 타입 취득
#--------------------------------------------------------------------------
def equip_type
typ e = (@equip_type_weapon != nil && @equip_type_weapon != []) ?
@equip_type_weapon : (@equip_type != nil && @equip_type != []) ?
@equip_type : KGC::EEX_EQUIP_TYPE
if type[0] != 0
type.insert(0, 0)
end
return type
end
#------------------------------------------ --------------------------------
# ● 장비 타입 설정
#--------------------------------------------------------------------------
def equip_type=(type)
@equip_type = type
end
#--------------------------------------------------------------------------
# ● 장비품 타입 변경 적용
#---------------- ----------------------------------------------------------
def equip_type_apply
last_equip_type = self.equip_type.dup
if self.weapon_id > 0
@equip_type_weapon = $data_weapons[self.weapon_id].equip_type
else
@equip_type_weapon = nil
end
# 장비 불가능하게 된 것은 제외한다
for i in (self.two_swords? ? self.ts_number : 1)...last_equip_type.size
next if @armor_id[i] == nil
if (armor = $data_armors[@armor_id[i]]) != nil &&
self.equip_type[i] != armor.kind + 1
self.equip(i, 0)
end
end
@armor_id = @armor_id[0...self.equip_ type.size]
end
#--------------------------------------------------------------------------
# ● 최대 EP취득
#--------------------------------------------------------------------------
def max_ep
formula = KGC::EEX_EP_FORMULA.gsub(/lv/i) {"@level"}
return [[Integer(eval(formula)), KGC::EEX_EP_MIN].max, KGC::EEX_EP_MAX].min
end
#--------------------------------------------------------------------------
# ● EP취득
#--------------------------------------------------------------------------
def ep
if self.two_swords?
n = 0
for i in 0...self.ts_numb er
n += (weapon = $data_weapons[self.weapon_id(i)]) != nil ?
weapon.ep_cost : 0
end
else
n = (weapon = $data_weapons[self.weapon_id]) != nil ? weapon.ep_cost : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
n += ( armor = $data_armors[self.armor_id[i]]) != nil ? armor.ep_cost : 0
end
return self.max_ep - n
end
#--------------------------------------------------------------------------
# ● 쌍수검 상태 취득
#--------------------------------------------------------------------------
def two_sword s?
return @two_swords
end
#--------------------------------------------------------------------------
# ● 쌍수검 설정
#--------------------------------------------------------------------------
def two_swords=(value)
# 쌍수검이 되었을 경우
if value && !@two_swords
# 양손 소유를 해제
self.two_handed = false
# 쌍수검으로 장비 불가능하게 되는 방어구를 벗는다
for i in 1...self.ts_number
self.equip(i, 0)
end
# 쌍수검이 해제되었을 경우
elsif !value && @two_swords
# 원래 방어구인 부분의 무기를 벗는다
for i in 1...self.ts_number
self.equip(i, 0)
@weapons[i], @weapon_fix[i] = 0, false
end
end
@two_swords = value
end
#--------------------------------------------------------------------------
# ● 쌍수검 무기수취득
#--------------------------------------------------------------------------
def ts_number
return @ts_number != nil ? @ts_number : KGC::EEX_TS_NUMBER
end
#--------------------------------------------------------------------------
# ● 쌍수검 무기수설정
#--------------------------------------------------------------------------
def ts_number=(number)
@ts_number = number
end
#-------------------------------------- ------------------------------------
# ● 양손 소유 상태 취득
#--------------------------------------------------------------------------
def two_handed?
return @two_handed
end
#--------------------------------------------------------------------------
# ● 양손 소유 설정
#--------------------- -----------------------------------------------------
def two_handed=(value)
# 양손 소유가 되었을 경우
if value && !@two_handed
# 쌍수검을 해제
self.two_swords = false
# 최초의 방어구를 벗는다
self.equip(1, 0)
# 최초의 방어구를 고정
@armor_fix[1] = true
# 양손 소유가 해제되었을 경우
elsif !value && @two_handed
# 최초의 방어구 고정을 해제
@armor_fix[1] = false
end
@two_handed = value
end
#--------------------------------------------------------------------------
# ● 공격 회수 취득
#--------------------------------------------------------------------------
def attack_count
@attack_count = 0 if @attack_count == nil
return @attack_count
end
#--------------------------------------------------------------------------
# ● 공격 회수 설정
#--------------------------------------------------------------------------
def attack_count=(value)
@attack_count = 0 if @attack_count == nil
@attack_count = value
end
#--------------------------------------------------------------------------
# ● 무기 ID 의 취득
#--------------------------------------------------------------------------
def weapon_id(type = 0)
@weapons[type] = 0 if @weapons[type ] == nil
return @weapons[type]
end
#--------------------------------------------------------------------------
# ● 무기 ID 의 설정
#--------------------------------------------------------------------------
def weapon_id=(n)
@weapons[0] = n
end
#------------------------------ --------------------------------------------
# ● 무기 ID 의 설정(쌍수검용)
#--------------------------------------------------------------------------
def set_weapon(type, n)
@weapons[type] = n
end
#--------------------------------------------------------------------------
# ● 방어구 ID 의 취득
#--------------------------------------------------------------------------
def armor_id
type = self.equip_type.dup
for i in 1...type.size
if @armor_id[i] == nil
@armor_id[i] = 0
end
end
return @armor_id
end
#------------------------------------- -------------------------------------
# ● 방어구 ID 1 의 취득(호환용)
#--------------------------------------------------------------------------
def armor1_id
return self.armor_id[1]
end
#--------------------------------------------------------------------------
# ● 방어구 ID 1 의 설정(호환용)
#- -------------------------------------------------------------------------
def armor1_id=(id)
@armor_id[1] = id
end
#--------------------------------------------------------------------------
# ● 방어구 ID 2 의 취득(호환용)
#-------------------------------------------------------------------- ------
def armor2_id
return self.armor_id[2]
end
#--------------------------------------------------------------------------
# ● 방어구 ID 2 의 설정(호환용)
#--------------------------------------------------------------------------
def armor2_id=(id)
@armor_id[2] = id
end
#--- -----------------------------------------------------------------------
# ● 방어구 ID 3 의 취득(호환용)
#--------------------------------------------------------------------------
def armor3_id
return self.armor_id[3]
end
#--------------------------------------------------------------------- -----
# ● 방어구 ID 3 의 설정(호환용)
#--------------------------------------------------------------------------
def armor3_id=(id)
@armor_id[3] = id
end
#--------------------------------------------------------------------------
# ● 방어구 ID 4 의 취득(호환용)
#---------------------------------- ----------------------------------------
def armor4_id
return self.armor_id[4]
end
#--------------------------------------------------------------------------
# ● 방어구 ID 4 의 설정(호환용)
#--------------------------------------------------------------------------
def armor4_id=(id)
@armor_id[4] = id
end
#--------------------------------------------------------------------------
# ● 기본 공격력의 취득
#--------------------------------------------------------------------------
def base_atk
if $game_temp.in_battle
if self.two_swords?
weapon = $data_wea pons[self.weapon_id(@attack_count)]
n = weapon != nil ? weapon.atk : 0
else
weapon = $data_weapons[self.weapon_id]
n = weapon != nil ? weapon.atk : 0
n *= 1.5 if self.two_handed?
end
else
if self.two_swords?
n = 0
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.atk : 0
end
else
weapon = $data_weapons[self.weapon_id]
n = weapon != nil ? weapon.atk : 0
n *= 1.5 if self.two_handed?
end
end
return Integer(n)
end
#--------------------------------------------------------------------------
# ● 속성 보정치의 취득
# element_id : 속성 ID
#--------------------------------------------------------------------------
def element_rate(element_id)
# 속성 유효도에 대응하는 수치를 취득
table = [0, 200,150,100,50,0,-100]
result = table[$data_classes[@class_id].element_ranks[element_id]]
# 방어구로 이 속성이 방어되고 있는 경우는 반감
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
val = self.armor_id[i]
next if val == nil
armor = $data_armors[val]
if a rmor != nil && armor.guard_element_set.include?(element_id)
result /= 2
end
end
# 스테이트에서 이 속성이 방어되고 있는 경우는 반감
for i in @states
if $data_states[i].guard_element_set.include?(element_id)
result /= 2
end
end
return result
end
#----------- ---------------------------------------------------------------
# ● 스테이트 방어 판정
# state_id : 스테이트 ID
#--------------------------------------------------------------------------
def state_guard?(state_id)
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
val = self.armor_id[i]
next if val == nil
armor = $data_armors[val]
if armor != nil
if armor.guard_state_set.include?(state_id)
return true
end
end
end
return false
end
#-------------------------------------------------------- ------------------
# ● 기본 완력의 취득
#--------------------------------------------------------------------------
def base_str
n = $data_actors[@actor_id].parameters[2, @level]
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.str_plus : 0
end
else
weapon = $data_weapons[self.weapon_id]
n += weapon != nil ? weapon.str_plus : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.str_plus : 0
end
n = [[n, 1].max, 999].min unless $imported["LimitBreak"]
return n
end
#--------------------------------------------------------------------------
# ● 기본 손재주가 있음의 취득
#----------------------------------------------------------------------- ---
def base_dex
n = $data_actors[@actor_id].parameters[3, @level]
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.dex_plus : 0
end
else
weapon = $data_weapons[self.weapon_i d]
n += weapon != nil ? weapon.dex_plus : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.dex_plus : 0
end
n = [[n, 1].max, 999].min unless $imported["LimitBreak"]
return n
end
#--------------------------------------------------------------------------
# ● 기본 민첩함의 취득
#--------------------------------------------------------------------------
def base_agi
n = $data_actors[@actor_id].parameters[4, @level]
if self.two_swords?
fo r i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.agi_plus : 0
end
else
weapon = $data_weapons[self.weapon_id]
n += weapon != nil ? weapon.agi_plus : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.agi_plus : 0
end
n = [[n, 1].max, 999].min unless $imported["LimitBreak"]
return n
end
#--------------------------------------------------------------------------
# ● 기본 마력의 취득
#--------------------------------------------------------------------------
def base_int
n = $data_actors[@actor_id].parameters[5, @level]
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? wea pon.int_plus : 0
end
else
weapon = $data_weapons[self.weapon_id]
n += weapon != nil ? weapon.int_plus : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.int _plus : 0
end
n = [[n, 1].max, 999].min unless $imported["LimitBreak"]
return n
end
#--------------------------------------------------------------------------
# ● 기본 물리 방어의 취득
#--------------------------------------------------------------------------
def base_pdef
n = 0
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.pdef : 0
end
else
weapon = $data_weapons[self.weapon_id]
n += weapon != nil ? weapon.pdef : 0
end
for i in (sel f.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.pdef : 0
end
return n
end
#--------------------------------------------------------------------------
# ● 기본 마법 방어의 취득
#----------------------- ---------------------------------------------------
def base_mdef
n = 0
if self.two_swords?
for i in 0...self.ts_number
weapon = $data_weapons[self.weapon_id(i)]
n += weapon != nil ? weapon.mdef : 0
end
else
weapon = $data_weapons[self.weapon_ id]
n += weapon != nil ? weapon.mdef : 0
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != nil ? armor.mdef : 0
end
return n
end
#-------------------------------------------- ------------------------------
# ● 기본 회피 수정의 취득
#--------------------------------------------------------------------------
def base_eva
n = 0
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
armor = $data_armors[self.armor_id[i]]
n += armor != ni l ? armor.eva : 0
end
return n
end
#--------------------------------------------------------------------------
# ● 장비의 변경
# equip_type : 장비 타입
# id : 무기 or 방어구 ID (0 이라면 장비 해제)
#--------------------------------------------------------------------------
def equip(equip_type, id)
case equip_type
when (self.two_swords? ? 0...self.ts_number : 0) # 무기
if id == 0 || $game_party.weapon_number(id) > 0
# EP판정
if KGC::EEX_USE_EP && id > 0
# EP부족의 경우는 돌아온다
if $data_weapons[id].ep_cost > self.ep
r eturn
end
end
# 쌍수검 이외로 양손 소유 무기를 장비하는 경우
if !self.two_swords? && id > 0 &&
$data_weapons[id].element_set.include?($game_special_elements["two_handed"])
# 최초의 방어구를 벗는다
self.equip(1, 0)
end
$game_party.gain_weapon(self.w This page is too long to be completely translated. The remainder of this page will not be translated. eapon_id(equip_type), 1)
self.set_weapon(equip_type, id)
$game_party.lose_weapon(id, 1)
end
#when (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
else # 防具
# 二刀流以外で、両手持ち武器を装備しており、最初の防具を変更する場合は戻る
if !self.two_swords? && equip_type == 1 && self.weapon_id > 0 &&
$data_weapons[self.weapon_id].element_set.include?($game_special_elements["two_handed"])
return
end
if id == 0 || $game_party.armor_number(id) > 0
# EP判定
if KGC::EEX_USE_EP && id > 0
# EP不足の場合は戻る
if $data_armors[id].ep_cost > self.ep
return
end
end
update_auto_state(@armor_id[equip_type] != nil ?
$data_armors[@armor_id[equip_type]] : nil, $data_armors[id])
if @armor_id[equip_type] != nil && @armor_id[equip_type] > 0
$game_party.gain_armor(@armor_id[equip_type], 1)
end
@armor_id[equip_type] = id
$game_party.lose_armor(id, 1)
end
end
end
#--------------------------------------------------------------------------
# ● 装備固定判定
# equip_type : 装備タイプ
#--------------------------------------------------------------------------
def equip_fix?(equip_type)
case equip_type
when (self.two_swords? ? 0...self.ts_number : 0) # 武器
return @weapon_fix[equip_type]
#when (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
else # 防具
return @armor_fix[equip_type]
end
return false
end
#--------------------------------------------------------------------------
# ● 通常攻撃 攻撃側アニメーション ID の取得
#--------------------------------------------------------------------------
def animation1_id
if self.two_swords?
weapon = $data_weapons[self.weapon_id(self.attack_count)]
return weapon != nil ? weapon.animation1_id : 0
else
weapon = $data_weapons[self.weapon_id]
return weapon != nil ? weapon.animation1_id : 0
end
end
#--------------------------------------------------------------------------
# ● 通常攻撃 対象側アニメーション ID の取得
#--------------------------------------------------------------------------
def animation2_id
if self.two_swords?
weapon = $data_weapons[self.weapon_id(self.attack_count)]
return weapon != nil ? weapon.animation2_id : 0
else
weapon = $data_weapons[self.weapon_id]
return weapon != nil ? weapon.animation2_id : 0
end
end
#--------------------------------------------------------------------------
# ● クラス ID の変更
# class_id : 新しいクラス ID
#--------------------------------------------------------------------------
def class_id=(class_id)
if $data_classes[class_id] != nil
@class_id = class_id
# 装備できなくなったアイテムを外す
if self.two_swords?
for i in 0...self.ts_number
equip(i, 0) unless equippable?($data_weapons[self.weapon_id(i)])
end
else
equip(0, 0) unless equippable?($data_weapons[self.weapon_id])
end
for i in (self.two_swords? ? self.ts_number : 1)...self.equip_type.size
equip(i, 0) unless equippable?($data_armors[self.armor_id[i]])
end
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_EquipLeft
#==============================================================================
unless $imported["EquipAlter"]
class Window_EquipLeft <Window_Base 1...@ACTOR.TS_NUMBER SELF.CONTENTS.FONT.COLOR="@actor.ep==0" REFRESH SELF.CONTENTS.DRAW_TEXT(196, DEF #-------------------------------------------------------------------------- ● 2) TYPE I KGC::EEX_DRAW_EP_MAX SELF.CONTENTS.DRAW_TEXT(172, ? < : @ACTOR.TWO_SWORDS? SELF.CONTENTS.DRAW_TEXT(180, ELSE KNOCKOUT_COLOR ALIAS WINDOW_EQUIPRIGHT SELF.CONTENTS.DRAW_TEXT(212, @EQUIP_TYPE="@actor.equip_type.dup" SELF.CONTENTS.DRAW_TEXT(140, 元の処理を実行 RETURN 1) WINDOW_SELECTABLE ■ 装備タイプを取得 # @EQUIP_TYPE[I]="0" @ACTOR.EQUIP_TYPE_APPLY @ACTOR.EP.TO_S, 16, KGC::EEX_USE_EP IN KGC::EEX_EP_NAME) 0, END 24, NORMAL_COLOR FOR タイプの取得 IF SELF.INDEX /", @ACTOR.MAX_EP.TO_S, #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ 32, REFRESH_KGC_EQUIPEXTENSION @EQUIP_TYPE[SELF.INDEX] リフレッシュ> = @equip_type.size
self.index = @equip_type.size - 1
end
# ウィンドウ内容を作成
self.contents.dispose
self.contents = Bitmap.new(width - 32, @equip_type.size * 32)
@data = []
if @actor.two_swords?
for i in 0...@actor.ts_number
@data.push($data_weapons[@actor.weapon_id(i)])
end
for i in @actor.ts_number...@equip_type.size
@data.push($data_armors[@actor.armor_id[i]])
end
else
@data.push($data_weapons[@actor.weapon_id])
for i in 1...@equip_type.size
@data.push($data_armors[@actor.armor_id[i]])
end
end
@item_max = @data.size
self.contents.font.color = system_color
for i in 0...@equip_type.size
if @actor.two_swords? && i <@actor.ts_number 0...@COMMANDS.SIZE 80, DEF NORMAL_COLOR && 3) SELF.CONTENTS.DRAW_TEXT(120, ITEM1.ATK INITIALIZE(ACTOR) 224, ITEM.EP_COST.TO_S, ATK2="@item" SELF.CONTENTS.DRAW_TEXT(212, ATK1 SELF.CONTENTS.DRAW_TEXT(196, アクターを取得 WINDOW_EQUIPEXTENDCONTROL DRAW_ITEM_NAME($DATA_WEAPONS[@ACTOR.WEAPON_ID], 22 MDEF2 OPACITY) MDEF1 200, NEXT") 選択中の装備品 SELF.CONTENTS.DRAW_TEXT(172, 16, @ITEM_WIDTH="(width" DRAW_ACTOR_GRAPHIC(@ACTOR, 2) 368, 160, 変更前の素早さ ACTOR.EQUIPPABLE?(@ITEM) Y, @ACTOR.EXP_S, 0...$GAME_PARTY.ACTORS.SIZE 装備可能な場合 現在の装備品を取得 DRAW_ACTOR_LEVEL(@ACTOR, SELF.CONTENTS.DRAW_TEXT(516, #------------------------------------------------------------------------------ ACTOR.EQUIP_TYPE[J]="@item.kind" REFRESH 1) RETURN ATTR_ACCESSOR オブジェクト初期化 1...ACTOR.EQUIP_TYPE.SIZE SELF.CONTENTS.FONT.SIZE="18" 変更前の腕力 96, 持っている数") @DATA[I].EP_COST.TO_S, @ACTOR.MAX_EP.TO_S, ACTOR="$game_party.actors[i]" 72, ● @ITEM.ATK ACTOR.NAME) 1...@ACTOR.EQUIP_TYPE.SIZE @ITEM.MDEF 0, COLOR.NEW(0, ICON="RPG::Cache.icon(item1.icon_name)" 0) @NEW_ATK @LAST_STR="@actor.str" ICON.RECT, 装備可能なら通常文字色に、不可能なら無効文字色に設定 IN 216, SPRINTF("%+D", SELF.CONTENTS.DRAW_TEXT(204, IF SELF.CONTENTS.DRAW_TEXT(92, ITEM1.NAME) @ITEM.IS_A?(RPG::WEAPON) SELF.CONTENTS.DRAW_TEXT(572, WINDOW_EQUIPEXTENDSTATUS 変更前の魔力 DRAW_ITEM(INDEX) @LAST_INT="@actor.int" :NEW_EQUIP SELF.CONTENTS.DRAW_TEXT(140, WINDOW_EQUIPLEFT ITEM1.MDEF WINDOW_BASE RPG::ITEM /", I, DRAW_ITEM_NAME($DATA_WEAPONS[@ACTOR.WEAPON_ID(I)], 336, ■ I) @HELP_WINDOW.SET_TEXT(KGC::EEX_EQUIP_EX_HELP_ALL_RELEASE) @LAST_EQUIP="nil" 128 SELF.BACK_OPACITY="160" SELF.CONTENTS="Bitmap.new(width" @HELP_WINDOW.SET_TEXT(KGC::EEX_EQUIP_EX_HELP_STRONGEST_EQUIP) DRAW_ACTOR_HP(@ACTOR, SELF.CONTENTS.DRAW_TEXT(468, 項目の描画 DRAW_ITEM_KGC_EQUIPEXTENSION :LAST_AGI SELF.CURSOR_RECT.SET(@ITEM_WIDTH 64, DRAW_ACTOR_STATE(@ACTOR, ICON, 64) SELF.CONTENTS.DRAW_TEXT(320 0)) パラメータの変化値を描画 初期能力値を保存 WHEN :LAST_DEX 40, 0...@DATA.SIZE $IMPORTED["HELPEXTENSION"] ALIAS NUMBER="$game_party.armor_number(@item.id)" @ITEM_WIDTH, HEIGHT DRAW_ACTOR_NAME(@ACTOR, アクターの名前を描画 92, ELSE FOR SELF.CONTENTS.FILL_RECT(RECT, DRAW_ITEM_NAME(@DATA[I], SUPER(ACTOR) 144, KGC::EEX_EQUIP_NAME[@ACTOR.EQUIP_TYPE[I]]="nil" 元の処理を実行 DRAW_ITEM 120, @ACTOR.ARMOR_ID[I] RPG::ARMOR KGC::EEX_EQUIP_EX_COMMAND_ALL_RELEASE] 公開インスタンス変数 KNOCKOUT_COLOR 212, 28, 304, #-------------------------------------------------------------------------- KGC::EEX_DRAW_EP_MAX SELF.INDEX SELF.CONTENTS.DRAW_TEXT(4, WINDOW_EQUIPITEM @ACTOR.EP.TO_S, $IMPORTED["STATUSALTER"] SELF.CONTENTS.DRAW_TEXT(X 172) @ACTOR.TWO_SWORDS? 拡張装備画面で、アクターのパラメータ変化を表示するウィンドウです。 WINDOW_SHOPSTATUS DRAW_ACTOR_SP(@ACTOR, KGC::EEX_EP_NAME) SELF.CONTENTS.CLEAR @COMMANDS.SIZE 240, $DATA_SYSTEM.WORDS.PDEF) @ITEM.PDEF SELF.CONTENTS.DRAW_TEXT(320, RECT="Rect.new(@item_width" @COLUMN_MAX="@commands.size" 320 @DATA[I] BREAK 32, ヘルプテキスト更新 @COMMANDS[I], 武器の場合 32) @ITEM_MAX="@commands.size" EXP") (288 カーソルの矩形更新 400, UPDATE_HELP アイテムを描画 NUMBER.TO_S, @NEW_EQUIP="nil" @HELP_WINDOW.SET_TEXT(KGC::EEX_EQUIP_EX_HELP_EQUIP) 84, 0...@ACTOR.TS_NUMBER KGC::EEX_USE_EP ITEM1.PDEF SELF.CONTENTS.DRAW_TEXT(124, OPACITY="self.contents.font.color==normal_color" 112, 項目番号 64 @LAST_AGI="@actor.agi" 112) WINDOW_SELECTABLE ITEM1 255 DRAW_ITEM_NAME($DATA_ARMORS[ @ITEM.IS_A?(RPG::ITEM) Y X="4" 6) PDEF2="@item" PDEF1 @LAST_DEX="@actor.dex" 防具の場合 256, ], CHANGE), $DATA_SYSTEM.WORDS.DEX) J INDEX I $DATA_SYSTEM.WORDS.AGI) KGC::EEX_EQUIP_NAME[@ACTOR.EQUIP_TYPE[I]]) RPG::WEAPON CHANGE="pdef2" 変更前の器用さ NEXT 192 640, @ITEM.IS_A?(RPG::ARMOR) ? 48, < 48) : SELF.CONTENTS.FONT.COLOR="@actor.atk" CASE 5) DRAW_ACTOR_PARAMETER(@ACTOR, 192, ITEM SELF.CONTENTS.DRAW_TEXT(180, 4 @ACTOR.TS_NUMBER...@ACTOR.EQUIP_TYPE.SIZE 192) 24, 2 1 0 装備品追加情報 $DATA_SYSTEM.WORDS.INT) / SELF.CONTENTS.BLT(X, - @ITEM + * @ACTOR.NEXT_REST_EXP_S, $DATA_SYSTEM.WORDS.STR) :LAST_STR $DATA_SYSTEM.WORDS.MDEF) % 44 WINDOW_STATUS # @COMMANDS="[KGC::EEX_EQUIP_EX_COMMAND_EQUIP," UPDATE_CURSOR_RECT !="nil" SELF.CONTENTS.DRAW_TEXT(548, #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ INDEX, 4, 装備") 128, KGC::EEX_EQUIP_EX_COMMAND_STRONGEST_EQUIP, 4) リフレッシュ INITIALIZE 装備画面で、操作を選択するウィンドウです。 KGC::EEX_EQUIP_NAME[0]) DRAW_ITEM_KGC_EQUIPEXTENSION(INDEX) KGC::EEX_EQUIP_EX_BACK_TRANSPARENT :LAST_INT END $DATA_SYSTEM.WORDS.ATK) SELF.CONTENTS.DRAW_TEXT(RECT, DRAW_ACTOR_CLASS(@ACTOR, SELF.Z="1000" SUPER(0, SELF.Y="288" SELF.X="368" 32> @new_atk ? text_color(2) :
@actor.atk <@new_atk SELF.CONTENTS.FONT.COLOR="@actor.pdef" SELF.CONTENTS.DRAW_TEXT(80, @ACTOR.ATK.TO_S, 2) ? : ELSE TEXT_COLOR(3) !="nil" 36, 64, @NEW_ATK.TO_S, @NEW_PDEF END NORMAL_COLOR IF 32,> @new_pdef ? text_color(2) :
@actor.pdef <@new_pdef SELF.CONTENTS.FONT.COLOR="@actor.mdef" SELF.CONTENTS.DRAW_TEXT(80, 2) @ACTOR.PDEF.TO_S, ? @NEW_PDEF.TO_S, : ELSE TEXT_COLOR(3) 96, !="nil" @NEW_MDEF 36, END NORMAL_COLOR IF 32,> @new_mdef ? text_color(2) :
@actor.mdef <@new_mdef SELF.CONTENTS.FONT.COLOR="@last_str" SELF.CONTENTS.DRAW_TEXT(80, 2) ? : ELSE TEXT_COLOR(3) 128, !="nil" 36, @NEW_STR @ACTOR.MDEF.TO_S, END NORMAL_COLOR IF @NEW_MDEF.TO_S, 32,> @new_str ? text_color(2) :
@last_str <@new_str SELF.CONTENTS.FONT.COLOR="@last_dex" @NEW_DEX 2) ? : ELSE TEXT_COLOR(3) SELF.CONTENTS.DRAW_TEXT(200, !="nil" @NEW_STR.TO_S, 36, END NORMAL_COLOR IF 32, @ACTOR.STR.TO_S,> @new_dex ? text_color(2) :
@last_dex <@new_dex SELF.CONTENTS.FONT.COLOR="@last_agi" @NEW_AGI 2) ? : ELSE TEXT_COLOR(3) SELF.CONTENTS.DRAW_TEXT(200, !="nil" @NEW_DEX.TO_S, 36, 64, END NORMAL_COLOR IF 32, @ACTOR.DEX.TO_S,> @new_agi ? text_color(2) :
@last_agi <@new_agi SELF.CONTENTS.FONT.COLOR="@last_int" 2) ? @NEW_AGI.TO_S, : ELSE TEXT_COLOR(3) SELF.CONTENTS.DRAW_TEXT(200, 96, !="nil" @ACTOR.AGI.TO_S, 36, @NEW_INT END NORMAL_COLOR IF 32,> @new_int ? text_color(2) :
@last_int <@new_int @NEW_PDEF="new_pdef" NEW_ST[3] NORMAL_COLOR 36, END 1...@ACTOR.TS_NUMBER FOR オブジェクト初期化 368, SELF.CONTENTS="Bitmap.new(width" 2) @LAST_EQUIP="@new_equip" #------------------------------------------------------------------------------ @NEW_STR="new_st[0]" @EQUIP_TYPE[I]="0" ELSE SELF.INDEX NEW_ST="[nil," TEXT_COLOR(3) 64, DEF SET_NEW_PARAMETERS(NEW_ATK, SELF.CONTENTS.FONT.COLOR="normal_color" INITIALIZE(ACTOR) $IMPORTED["HELPEXTENSION"] 装備変更後のパラメータ設定 @NEW_MDEF="new_mdef" アイテムの取得 ● アクター NIL]) @NEW_INT.TO_S, WINDOW_SELECTABLE 416) ITEM SUPER(0, @NEW_AGI="new_st[2]" @NEW_ATK="new_atk" @ACTOR="actor" || @NEW_DEX="new_st[1]" #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ SELF.CONTENTS.DRAW_TEXT(200, IN IF ■ 128, REFRESH SELF.BACK_OPACITY="160" 拡張装備画面で、アクターが現在装備しているアイテムを表示するウィンドウです。 I @ACTOR.TWO_SWORDS? @EQUIP_TYPE="@actor.equip_type.dup" HEIGHT ACTOR ? < @DATA[SELF.INDEX] 32, : タイプの取得 NEW_PDEF, 32) SELF.ACTIVE="false" - @EQUIP_TYPE[SELF.INDEX] RETURN #-------------------------------------------------------------------------- リフレッシュ NIL, TYPE NEW_MDEF, # !="new_st[3]" @ACTOR.INT.TO_S, KGC::EEX_EQUIP_EX_BACK_TRANSPARENT @ACTOR.EQUIP_TYPE_APPLY 装備タイプを取得 SELF.HEIGHT="352" WINDOW_EQUIPEXTENDLIST SELF.Y="128"> = @equip_type.size
self.index = @equip_type.size - 1
end
# アイテムを追加
@data = []
if @actor.two_swords?
for i in 0...@actor.ts_number
@data.push($data_weapons[@actor.weapon_id(i)])
end
for i in @actor.ts_number...@equip_type.size
@data.push($data_armors[@actor.armor_id[i]])
end
else
@data.push($data_weapons[@actor.weapon_id])
for i in 1...@equip_type.size
@data.push($data_armors[@actor.armor_id[i]])
end
end
@equip_type = @equip_type[KGC::EEX_EQUIP_EX_INDEX...@equip_type.size]
@data = @data[KGC::EEX_EQUIP_EX_INDEX...@data.size]
@item_max = @data.size
# ウィンドウ内容を作成
self.contents.dispose
self.contents = Bitmap.new(width - 32, @equip_type.size * 32)
self.contents.font.color = system_color
for i in 0...@equip_type.size
if @equip_type[i] == 0 && @actor.two_swords? && i <@actor.ts_number && @COLUMN_MAX="1" 拡張装備画面で、装備変更の候補となるアイテムの一覧を表示するウィンドウです。 @DATA[I] KGC::EEX_EQUIP_NAME[0]) END FOR オブジェクト初期化 SELF.CONTENTS="nil" 2) #------------------------------------------------------------------------------ KGC::EEX_EQUIP_NAME[@EQUIP_TYPE[I]]="nil" $GAME_PARTY.WEAPON_NUMBER(I) ELSE SELF.INDEX="-1" 64, DEF INITIALIZE(ACTOR, SELF.CONTENTS.FONT.COLOR="KGC::EEX_EP_COLOR" $IMPORTED["HELPEXTENSION"] WINDOW_EQUIPEXTENDITEM アイテムの取得 SELF.CONTENTS.DRAW_TEXT(4, 92, 320, ● WEAPON_SET="$data_classes[@actor.class_id].weapon_set" アクター WINDOW_SELECTABLE 416) ITEM (0〜3) UPDATE_HELP @ACTOR="actor" SUPER(368, #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ IN SELF.ITEM.DESCRIPTION) EQUIP_TYPE IF KGC::EEX_EQUIP_NAME[@EQUIP_TYPE[I]]) KGC::EEX_USE_EP DRAW_ITEM_NAME(@DATA[I], ■ @DATA="[]" 装備部位 EQUIP_TYPE) 240, REFRESH SELF.BACK_OPACITY="160" ヘルプテキスト更新 I, I I) @EQUIP_TYPE="0" ACTOR ? < @DATA[SELF.INDEX] 32, NEXT @DATA[I].EP_COST.TO_S, : 装備可能な武器を追加 SELF.ACTIVE="false" RETURN #-------------------------------------------------------------------------- * リフレッシュ # 1...$DATA_WEAPONS.SIZE !="nil" SELF.CONTENTS.DRAW_TEXT(92, @HELP_WINDOW.SET_TEXT(SELF.ITEM="nil" KGC::EEX_EQUIP_EX_BACK_TRANSPARENT SELF.CONTENTS.DISPOSE SELF.HEIGHT="352" 0...@DATA.SIZE SELF.Y="128" 32> 0 && weapon_set.include?(i)
@data.push($data_weapons[i])
end
end
end
# 装備可能な防具を追加
if @equip_type != 0
armor_set = $data_classes[@actor.class_id].armor_set
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0 && armor_set.include?(i)
if $data_armors[i].kind == @equip_type-1
@data.push($data_armors[i])
end
end
end
end
# 空白を追加
@data.push(nil)
# ビットマップを作成し、全項目を描画
@item_max = @data.size
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max-1
draw_item(i)
end
end
#--------------------------------------------------------------------------
# ● 項目の描画
# index : 項目番号
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
y = index * 32
case item
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
icon = RPG::Cache.icon(item.icon_name)
self.contents.blt(0, y + 4, icon, icon.rect)
self.contents.font.color = normal_color
self.contents.draw_text(32, y, 212, 32, item.name, 0)
self.contents.draw_text(244, y, 16, 32, ":", 1)
self.contents.draw_text(260, y, 24, 32, number.to_s, 2)
if KGC::EEX_USE_EP && item != nil
self.contents.font.color = KGC::EEX_EP_COLOR
self.contents.draw_text(220, y, 24, 32, item.ep_cost.to_s, 2)
end
end
#--------------------------------------------------------------------------
# ● ヘルプテキスト更新
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Interpreter (分割定義 3)
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# ● 条件分岐
#--------------------------------------------------------------------------
def command_111
# ローカル変数 result を初期化
result = false
# 条件判定
case @parameters[0]
when 0 # スイッチ
result = ($game_switches[@parameters[1]] == (@parameters[2] == 0))
when 1 # 変数
value1 = $game_variables[@parameters[1]]
if @parameters[2] == 0
value2 = @parameters[3]
else
value2 = $game_variables[@parameters[3]]
end
case @parameters[4]
when 0 # と同値
result = (value1 == value2)
when 1 # 以上
result = (value1 >= value2)
when 2 # 以下
result = (value1 <=value2) RESULT="(value1" 超 WHEN 3 # VALUE2)> value2)
when 4 # 未満
result = (value1 <value2) セルフスイッチ 以外 RESULT="(value1" WHEN 5 2 # !="value2)" @EVENT_ID END IF> 0
key = [$game_map.map_id, @event_id, @parameters[1]]
if @parameters[2] == 0
result = ($game_self_switches[key] == true)
else
result = ($game_self_switches[key] != true)
end
end
when 3 # タイマー
if $game_system.timer_working
sec = $game_system.timer / Graphics.frame_rate
if @parameters[2] == 0
result = (sec >= @parameters[1])
else
result = (sec <=@parameters[1]) 防具 CASE BREAK エネミー 0...ACTOR.TS_NUMBER アクター ACTOR 名前 ゴールド 武器 パーティにいる I RESULT="($game_party.gold" ACTOR.ARMOR_ID[I]="@parameters[3]" WHEN ELSE @PARAMETERS[2]="0" 7 6 ACTOR.WEAPON_ID(I)="@parameters[3]" 5 4 3 2 1 ACTOR.TWO_SWORDS? 0 出現している スキル # !="nil" キャラクター ENEMY IN END FOR IF CHARACTER 1...ACTOR.EQUIP_TYPE.SIZE @PARAMETERS[1]) ステート> = @parameters[1])
else
result = ($game_party.gold <=@parameters[1]) RESULT="($game_party.item_number(@parameters[1])" WHEN 8 # END アイテム @PARAMETERS[1])> 0)
when 9 # 武器
result = ($game_party.weapon_number(@parameters[1]) > 0)
when 10 # 防具
result = ($game_party.armor_number(@parameters[1]) > 0)
when 11 # ボタン
result = (Input.press?(@parameters[1]))
when 12 # スクリプト
result = eval(@parameters[1])
end
# 判定結果をハッシュに格納
@branch[@list[@index].indent] = result
# 判定結果が真だった場合
if @branch[@list[@index].indent] == true
# 分岐データを削除
@branch.delete(@list[@index].indent)
# 継続
return true
end
# 条件に該当しない場合 : コマンドスキップ
return command_skip
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Equip
#==============================================================================
class Scene_Equip
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
alias main_KGC_EquipExtension main
def main
# アクターを取得
@actor = $game_party.actors[@actor_index]
# アイテムウィンドウを作成
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6} = Window_EquipItem.new(@actor, i + 5)")
if $imported["MenuAlter"] && KGC::MA_MENU_TRANSPARENT
eval("@item_window#{i + 6}.back_opacity = 160")
end
end
end
# 元の処理を実行
main_KGC_EquipExtension
# アイテムウィンドウを解放
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.dispose if @item_window#{i + 6} != nil")
end
end
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
# ヘルプウィンドウを設定
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.help_window = @help_window")
end
end
# アイテムウィンドウの可視状態設定
@item_window1.visible = (@right_window.type == 0)
@item_window2.visible = (@right_window.type == 1)
@item_window3.visible = (@right_window.type == 2)
@item_window4.visible = (@right_window.type == 3)
@item_window5.visible = (@right_window.type == 4)
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.visible = (@right_window.type == i + 5)")
end
end
# 現在装備中のアイテムを取得
item1 = @right_window.item
# 現在のアイテムウィンドウを @item_window に設定
eval("@item_window = @item_window#{@right_window.type + 1}")
# ライトウィンドウがアクティブの場合
if @right_window.active
# 装備変更後のパラメータを消去
@left_window.set_new_parameters(nil, nil, nil)
end
# アイテムウィンドウがアクティブの場合
if @item_window.active
# 現在選択中のアイテムを取得
item2 = @item_window.item
# 装備を変更
last_hp = @actor.hp
last_sp = @actor.sp
if @actor.two_swords?
case @right_window.index
when 0...@actor.ts_number # 武器
@actor.set_weapon(@right_window.index, item2 == nil ? 0 : item2.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item1, item2, true)
end
when @actor.ts_number...@actor.equip_type.size # 防具
@actor.armor_id[@right_window.index] = (item2 == nil ? 0 : item2.id)
for i in @actor.ts_number...@actor.equip_type.size
@actor.update_auto_state(item1, item2)
end
end
else
case @right_window.index
when 0 # 武器
@actor.weapon_id = (item2 == nil ? 0 : item2.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item1, item2, true)
end
when 1...@actor.equip_type.size # 防具
@actor.armor_id[@right_window.index] = (item2 == nil ? 0 : item2.id)
for i in 1...@actor.equip_type.size
@actor.update_auto_state(item1, item2)
end
end
end
# 装備変更後のパラメータを取得
new_atk = @actor.atk
new_pdef = @actor.pdef
new_mdef = @actor.mdef
if $imported["EquipAlter"]
new_st = [@actor.str, @actor.dex, @actor.agi, @actor.int]
end
# 装備を戻す
if @actor.two_swords?
case @right_window.index
when 0...@actor.ts_number # 武器
@actor.set_weapon(@right_window.index, item1 == nil ? 0 : item1.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item2, item1, true)
end
when @actor.ts_number...@actor.equip_type.size # 防具
@actor.armor_id[@right_window.index] = (item1 == nil ? 0 : item1.id)
for i in @actor.ts_number...@actor.equip_type.size
@actor.update_auto_state(item2, item1)
end
end
else
case @right_window.index
when 0 # 武器
@actor.weapon_id = (item1 == nil ? 0 : item1.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item2, item1, true)
end
when 1...@actor.equip_type.size # 防具
@actor.armor_id[@right_window.index] = (item1 == nil ? 0 : item1.id)
for i in 1...@actor.equip_type.size
@actor.update_auto_state(item2, item1)
end
end
end
@actor.hp = last_hp
@actor.sp = last_sp
# レフトウィンドウに描画
if $imported["EquipAlter"]
@left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_st)
else
@left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
end
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (アイテムウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
unless $imported["EquipAlter"]
alias update_item_KGC_EquipExtension update_item
def update_item
# C ボタンが押された場合
if Input.trigger?(Input::C)
# アイテムウィンドウで現在選択されているデータを取得
item = @item_window.item
if KGC::EEX_USE_EP
# EP判定
if item != nil && item.ep_cost > @actor.ep
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
end
# 装備 SE を演奏
$game_system.se_play($data_system.equip_se)
# 装備を変更
@actor.equip(@right_window.index, item == nil ? 0 : item.id)
# オートステートを更新
if $imported["EquipDetailSetting"]
if @actor.two_swords?
@actor.update_auto_state(nil, $data_weapons[@actor.weapon_id(@right_window.index)], true)
else
@actor.update_auto_state(nil, $data_weapons[@actor.weapon_id], true)
end
end
for i in 1...@actor.equip_type.size
@actor.update_auto_state(nil, $data_armors[@actor.armor_id[i]])
end
# 初期能力を更新
if $imported["EquipAlter"]
@left_window.last_str = @actor.str
@left_window.last_dex = @actor.dex
@left_window.last_agi = @actor.agi
@left_window.last_int = @actor.int
end
# ライトウィンドウをアクティブ化
@right_window.active = true
@item_window.active = false
@item_window.index = -1
# レフトウィンドウを初期化
@left_window.new_equip = nil if $imported["EquipAlter"]
@left_window.set_new_parameters(nil, nil, nil)
# ライトウィンドウ、アイテムウィンドウの内容を再作成
@right_window.refresh
for i in 1..(KGC::EEX_EQUIP_TYPE_EXT.size + 5)
eval("@item_window#{i}.refresh")
end
return
end
# 元の処理を実行
update_item_KGC_EquipExtension
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Battle (分割定義 1)
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
alias main_KGC_EquipExtension main
def main
# 攻撃回数を初期化
for actor in $game_party.actors
actor.attack_count = 0
end
# 元の処理を実行
main_KGC_EquipExtension
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Battle (分割定義 4)
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
#--------------------------------------------------------------------------
alias update_phase4_step6_KGC_EquipExtension update_phase4_step6
def update_phase4_step6
# 元の処理を実行
update_phase4_step6_KGC_EquipExtension
# 二刀流・通常攻撃の場合
if @active_battler.is_a?(Game_Actor) && @active_battler.two_swords? &&
@active_battler.current_action.kind == 0 && @active_battler.current_action.basic == 0
# 攻撃回数加算
loop do
@active_battler.attack_count += 1
if @active_battler.attack_count == @active_battler.ts_number ||
@active_battler.weapon_id(@active_battler.attack_count) > 0
break
end
end
# 規定回数行動した場合
if @active_battler.attack_count == @active_battler.ts_number
# 攻撃回数を初期化
@active_battler.attack_count = 0
else
# 戦闘継続の場合
unless judge
# 攻撃対象が死んでいる場合は再設定
if @target_battlers[0].dead?
if @active_battler.restriction == 3
@target_battlers[0] = $game_party.random_target_actor
else
@target_battlers[0] = $game_troop.random_target_enemy
end
end
if $imported["ActiveCountBattle"]
@action_battlers.insert(0, @active_battler)
else
# ステップ 2 に移行
@phase4_step = 2
end
end
end
else
if @active_battler.is_a?(Game_Actor)
# 攻撃回数を初期化
@active_battler.attack_count = 0
end
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_EquipExtend
#------------------------------------------------------------------------------
# 拡張装備画面の処理を行うクラスです。
#==============================================================================
class Scene_EquipExtend
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# actor_index : アクターインデックス
# equip_index : 装備インデックス
#--------------------------------------------------------------------------
def initialize(actor_index = 0, equip_index = 0, call_menu = false)
@actor_index = actor_index
@equip_index = equip_index
@call_menu = call_menu
end
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
def main
@actor = $game_party.actors[@actor_index]
@spriteset = Spriteset_Map.new if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
# ウィンドウを作成
if $imported["HelpExtension"]
@help_window = Window_HelpExtension.new
else
@help_window = Window_Help.new
end
@control_window = Window_EquipExtendControl.new
@control_window.y = 64 if $imported["HelpExtension"]
@status_window = Window_EquipExtendStatus.new(@actor)
@list_window = Window_EquipExtendList.new(@actor)
@item_window1 = Window_EquipExtendItem.new(@actor, 0)
@item_window2 = Window_EquipExtendItem.new(@actor, 1)
@item_window3 = Window_EquipExtendItem.new(@actor, 2)
@item_window4 = Window_EquipExtendItem.new(@actor, 3)
@item_window5 = Window_EquipExtendItem.new(@actor, 4)
# ヘルプウィンドウを関連付け
@control_window.help_window = @help_window
@list_window.help_window = @help_window
@item_window1.help_window = @help_window
@item_window2.help_window = @help_window
@item_window3.help_window = @help_window
@item_window4.help_window = @help_window
@item_window5.help_window = @help_window
# 拡張アイテムウィンドウを作成
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6} = Window_EquipExtendItem.new(@actor, i + 5)")
eval("@item_window#{i + 6}.help_window = @help_window")
if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
eval("@item_window#{i + 6}.back_opacity = 160")
end
end
end
if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
@help_window.back_opacity = 160
@control_window.back_opacity = 160
end
# カーソル位置を設定
@list_window.index = @equip_index
@effect_type = 0
refresh
# トランジション実行
Graphics.transition
# メインループ
loop do
# ゲーム画面を更新
Graphics.update
# 入力情報を更新
Input.update
# フレーム更新
update
# 画面が切り替わったらループを中断
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# ウィンドウを解放
@help_window.dispose
@control_window.dispose
@status_window.dispose
@list_window.dispose
@item_window1.dispose
@item_window2.dispose
@item_window3.dispose
@item_window4.dispose
@item_window5.dispose
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.dispose if @item_window#{i + 6} != nil")
end
end
@spriteset.dispose if KGC::EEX_EQUIP_EX_BACK_TRANSPARENT
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# ウィンドウを更新
@status_window.update
@list_window.update
@item_window.update
@control_window.update
refresh
update_effect(@effect_type)
# 操作ウィンドウがアクティブの場合: update_control を呼ぶ
if @control_window.active
@effect_type = 0
update_control
return
end
# リストウィンドウがアクティブの場合: update_list を呼ぶ
if @list_window.active
@effect_type = 1
update_list
return
end
# アイテムウィンドウがアクティブの場合: update_item を呼ぶ
if @item_window.active
@effect_type = 2
update_item
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (エフェクト)
#--------------------------------------------------------------------------
def update_effect(type)
case type
when 1
@last_index = -1
@status_window.x = [@status_window.x + 48, 368].min
@status_window.y = [@status_window.y + 24, 288].min
@list_window.x = [@list_window.x + 8, 0].min
@item_window.x = [@item_window.x + 8, 368].min
when 2
if @last_index != @list_window.index
pos = @list_window.index - @list_window.top_row
center = (@list_window.height - 32) / 64
@status_y = pos >= center ? @list_window.y : 288
@last_index = @list_window.index
end
@status_window.x = [@status_window.x - 48, 0].max
if @status_y > @status_window.y
@status_window.y = [@status_window.y + 24, @status_y].min
elsif @status_y <@status_window.y && ステータスウィンドウを初期化 @CONTROL_WINDOW.INDEX [@STATUS_WINDOW.Y INPUT.TRIGGER?(INPUT::L) 別の装備画面に切り替え $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.DECISION_SE) (アイテムウィンドウがアクティブの場合) @LIST_WINDOW.X="[@list_window.x" @CALL_MENU ボタンが押された場合 END INPUT.TRIGGER?(INPUT::R) 最強装備 24, FOR (KGC::EEX_EQUIP_EX_INDEX...MX).EACH UNLESS @ACTOR.EQUIP(I, ELSE DEF KGC::EEX_EQUIP_EX_INDEX) リストウィンドウをアクティブ化 @CONTROL_WINDOW.VISIBLE="true" |I| マップ画面に切り替え 8, カーソル位置で分岐 ITEM.EP_COST 操作ウィンドウに切り替え 装備を外す @STATUS_WINDOW.LAST_STR="@actor.str" $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.CANCEL_SE) ● メニュー画面に切り替え KGC::EEX_EQUIP_EX_INDEX @LIST_WINDOW.INDEX="-1" レフトウィンドウを初期化 リストウィンドウに切り替え @CALL_MENU) EQUIP_STRONGEST_WEAPON(I) } (TW 装備固定の場合は次へ { (リストウィンドウがアクティブの場合) ITEM UPDATE_LIST INPUT.TRIGGER?(INPUT::C) $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.EQUIP_SE) フレーム更新 カーソル 武器 @ACTOR.TS_NUMBER 0, @STATUS_WINDOW.SET_NEW_PARAMETERS(NIL, 装備固定でない場合は解除 0) IN 1)...MX @STATUS_Y].MAX アイテムウィンドウをアクティブ化 を演奏 全解除 IF -48].MAX @CONTROL_WINDOW.ACTIVE="true" KGC::EEX_USE_EP $SCENE="Scene_EquipExtend.new(@actor_index," (操作ウィンドウがアクティブの場合) @STATUS_WINDOW.LAST_AGI="@actor.agi" @STATUS_WINDOW.LAST_INT="@actor.int" 装備 INPUT.TRIGGER?(INPUT::B) @STATUS_WINDOW.LAST_DEX="@actor.dex" REFRESH_WINDOW EP判定 防具 ブザー R REFRESH キャンセル L @ITEM_WINDOW.INDEX="-1" I I) @ITEM_WINDOW.ACTIVE="false" WHEN @ACTOR.TWO_SWORDS? C B A 0...@ACTOR.TS_NUMBER ? 次のアクターへ INPUT.TRIGGER?(INPUT::A) NEXT : INDEX="@list_window.index" 装備固定の場合 最強武器装備 決定 TW="$imported["EquipExtension"]" 最強防具装備 装備最大数を取得 2 @ACTOR_INDEX 1 0 UPDATE_ITEM 320].MAX - CASE RETURN @LIST_WINDOW.ACTIVE="true" + #-------------------------------------------------------------------------- リフレッシュ NIL, MX="5" @ITEM_WINDOW.X="[@item_window.x" %="$game_party.actors.size" NIL) # @ACTOR.EQUIP(INDEX, !="nil" $IMPORTED["EQUIPEXTENSION"] ウィンドウをリフレッシュ UPDATE_CONTROL @ACTOR.EQUIP_FIX?(I) 選択中の装備品を更新 ウィンドウリフレッシュ $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.BUZZER_SE) 装備の種類で分岐 前のアクターへ KGC::EEX_EQUIP_EX_INDEX...MX @ACTOR.EQUIP_FIX?(@LIST_WINDOW.INDEX 装備変更 @STATUS_WINDOW.NEW_EQUIP="nil" $GAME_SYSTEM.SE_PLAY($DATA_SYSTEM.CURSOR_SE) 初期能力を更新 アイテムウィンドウで現在選択されているデータを取得 SE EQUIP_STRONGEST_ARMOR(@ACTOR.EQUIP_TYPE[I],> @actor.ep
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
end
# 装備 SE を演奏
$game_system.se_play($data_system.equip_se)
# 装備を変更
@actor.equip(index, item == nil ? 0 : item.id)
# オートステートを更新
if $imported["EquipDetailSetting"]
if $imported["EquipExtension"] && @actor.two_swords?
@actor.update_auto_state(nil, $data_weapons[@actor.weapon_id(index)], true)
else
@actor.update_auto_state(nil, $data_weapons[@actor.weapon_id], true)
end
end
if $imported["EquipExtension"]
for i in (@actor.two_swords? ? @actor.ts_number : 1)...@actor.equip_type.size
@actor.update_auto_state(nil, $data_armors[@actor.armor_id[i]])
end
else
for i in 1..4
@actor.update_auto_state(nil, $data_armors[eval("@actor.armor#{i}_id")])
end
end
# 初期能力を更新
@status_window.last_str = @actor.str
@status_window.last_dex = @actor.dex
@status_window.last_agi = @actor.agi
@status_window.last_int = @actor.int
# リストウィンドウをアクティブ化
@list_window.active = true
@item_window.active = false
@item_window.index = -1
# ステータスウィンドウを初期化
@status_window.new_equip = nil
@status_window.set_new_parameters(nil, nil, nil)
# ウィンドウの内容を再作成
refresh_window
return
end
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
# アイテムウィンドウの可視状態設定
@item_window1.visible = (@list_window.type == 0)
@item_window2.visible = (@list_window.type == 1)
@item_window3.visible = (@list_window.type == 2)
@item_window4.visible = (@list_window.type == 3)
@item_window5.visible = (@list_window.type == 4)
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.visible = (@list_window.type == i + 5)")
end
end
# 現在装備中のアイテムを取得
item1 = @list_window.item
# 現在のアイテムウィンドウを @item_window に設定
eval("@item_window = @item_window#{@list_window.type + 1}")
# リストウィンドウがアクティブの場合
if @list_window.active
# 装備変更後のパラメータを消去
@status_window.set_new_parameters(nil, nil, nil)
end
# アイテムウィンドウがアクティブの場合
if @item_window.active
# 現在選択中のアイテムを取得
item2 = @item_window.item
index = @list_window.index + KGC::EEX_EQUIP_EX_INDEX
# 装備を変更
last_hp = @actor.hp
last_sp = @actor.sp
if @actor.two_swords?
case index
when 0...@actor.ts_number # 武器
@actor.set_weapon(index, item2 == nil ? 0 : item2.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item1, item2, true)
end
when @actor.ts_number...@actor.equip_type.size # 防具
@actor.armor_id[index] = (item2 == nil ? 0 : item2.id)
for i in @actor.ts_number...@actor.equip_type.size
@actor.update_auto_state(item1, item2)
end
end
else
case index
when 0 # 武器
@actor.weapon_id = (item2 == nil ? 0 : item2.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item1, item2, true)
end
when 1...@actor.equip_type.size # 防具
@actor.armor_id[index] = (item2 == nil ? 0 : item2.id)
for i in 1...@actor.equip_type.size
@actor.update_auto_state(item1, item2)
end
end
end
# 装備変更後のパラメータを取得
new_atk = @actor.atk
new_pdef = @actor.pdef
new_mdef = @actor.mdef
if $imported["EquipAlter"]
new_st = [@actor.str, @actor.dex, @actor.agi, @actor.int]
end
# 装備を戻す
if @actor.two_swords?
case index
when 0...@actor.ts_number # 武器
@actor.set_weapon(index, item1 == nil ? 0 : item1.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item2, item1, true)
end
when @actor.ts_number...@actor.equip_type.size # 防具
@actor.armor_id[index] = (item1 == nil ? 0 : item1.id)
for i in @actor.ts_number...@actor.equip_type.size
@actor.update_auto_state(item2, item1)
end
end
else
case index
when 0 # 武器
@actor.weapon_id = (item1 == nil ? 0 : item1.id)
if $imported["EquipDetailSetting"]
@actor.update_auto_state(item2, item1, true)
end
when 1...@actor.equip_type.size # 防具
@actor.armor_id[index] = (item1 == nil ? 0 : item1.id)
for i in 1...@actor.equip_type.size
@actor.update_auto_state(item2, item1)
end
end
end
@actor.hp = last_hp
@actor.sp = last_sp
# ステータスウィンドウに描画
if $imported["EquipAlter"]
@status_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_st)
else
@status_window.set_new_parameters(new_atk, new_pdef, new_mdef)
end
end
end
#--------------------------------------------------------------------------
# ● ウィンドウをリフレッシュ
#--------------------------------------------------------------------------
def refresh_window
# 初期能力を更新
@status_window.last_str = @actor.str
@status_window.last_dex = @actor.dex
@status_window.last_agi = @actor.agi
@status_window.last_int = @actor.int
# リフレッシュ
@status_window.refresh
@list_window.refresh
@item_window1.refresh
@item_window2.refresh
@item_window3.refresh
@item_window4.refresh
@item_window5.refresh
if KGC::EEX_EQUIP_TYPE_EXT.size > 0
for i in 0...KGC::EEX_EQUIP_TYPE_EXT.size
eval("@item_window#{i + 6}.refresh")
end