XP 스크립트

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/  ◆전투 관련 회수 취득 - KGC_BattleCount◆
#_/----------------------------------------------------------------------------
#_/ 전투 관련의 각종 회수를 취득하는 처리를 추가합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#$game_system.battle_count # 전투 회수
#$game_system.victory_count # 승리 회수
#$game_system.escape_count # 도주 회수
#가 됩니다.
#변수에 대입하는 경우:
#$game_variables[변수id] = $game_system.battle_count
#와 같이 쓰면 OK입니다.

#참고로 에너미(적군)의 격파수는
#$game_system.defeat_count(id)
#으로 취득합니다.
#여기서 id는 취득하는 에너미ID입니다.

#총 격파수를 취득하는 경우는
#$game_system.total_defeat_count
#을 사용합니다.


$imported = {} if $imported == nil
$imported["BattleCount"] = true

#======================================================================
# ■ Game_System
#======================================================================

class Game_System
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
#--------------------------------------------------------------------------
alias initialize_KGC_BattleCount initialize
def initialize
# 원의 처리를 실행
initialize_KGC_BattleCount

@battle_count, @victory_count, @escape_count = 0, 0, 0
@defeat_count, @dead_count = [], []
end
#--------------------------------------------------------------------------
# ● 전투 회수 취득
#--------------------------------------------------------------------------
def battle_count
@battle_count = 0 if @battle_count == nil
return @battle_count
end
#--------------------------------------------------------------------------
# ● 전투 회수 조작
#--------------------------------------------------------------------------
def battle_count=(count)
@battle_count = 0 if @battle_count == nil
@battle_count = count
end
#--------------------------------------------------------------------------
# ● 승리 회수 취득
#--------------------------------------------------------------------------
def victory_count
@victory_count = 0 if @victory_count == nil
return @victory_count
end
#--------------------------------------------------------------------------
# ● 승리 회수 조작
#--------------------------------------------------------------------------
def victory_count=(count)
@victory_count = 0 if @victory_count == nil
@victory_count = count
end
#--------------------------------------------------------------------------
# ● 도주 회수 취득
#--------------------------------------------------------------------------
def escape_count
@escape_count = 0 if @escape_count == nil
return @escape_count
end
#--------------------------------------------------------------------------
# ● 도주 회수 조작
#--------------------------------------------------------------------------
def escape_count=(count)
@escape_count = 0 if @escape_count == nil
@escape_count = count
end
#--------------------------------------------------------------------------
# ● 격파수 취득
# id : 에너미ID
#--------------------------------------------------------------------------
def defeat_count(id)
@defeat_count = [] if @defeat_count == nil
@defeat_count[id] = 0 if @defeat_count[id] == nil
return @defeat_count[id]
end
#--------------------------------------------------------------------------
# ● 격파수 가산
# id : 에너미ID
# count : 가산량
#--------------------------------------------------------------------------
def add_defeat_count(id, count = 1)
@defeat_count = [] if @defeat_count == nil
@defeat_count[id] = 0 if @defeat_count[id] == nil
@defeat_count[id] += count
end
#--------------------------------------------------------------------------
# ● 총 격파수 취득
#--------------------------------------------------------------------------
def total_defeat_count
@defeat_count = [] if @defeat_count == nil
n = 0
for i in @defeat_count.compact
n += i
end
return n
end
#--------------------------------------------------------------------------
# ● 사망 회수 취득
# id : 엑터ID
#--------------------------------------------------------------------------
def dead_count(id)
@dead_count = [] if @dead_count == nil
@dead_count[id] = 0 if @dead_count[id] == nil
return @dead_count[id]
end
#--------------------------------------------------------------------------
# ● 사망 회수 가산
# id : 엑터ID
# count : 가산량
#--------------------------------------------------------------------------
def add_dead_count(id, count = 1)
@dead_count = [] if @dead_count == nil
@dead_count[id] = 0 if @dead_count[id] == nil
@dead_count[id] += count
end
#--------------------------------------------------------------------------
# ● 총 사망 회수 취득
#--------------------------------------------------------------------------
def total_dead_count
@dead_count = [] if @dead_count == nil
n = 0
for i in @dead_count.compact
n += i
end
return n
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#======================================================================
# ■ Sprite_Battler
#======================================================================

class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# ● 코라프스
#--------------------------------------------------------------------------
def collapse
super
$game_system.add_dead_count(@battler.id) if @battler.is_a?(Game_Actor)
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#======================================================================
# ■ Scene_Battle (분할 정의 1)
#======================================================================

class Scene_Battle
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
alias main_KGC_BattleCount main
def main
# 전투 회수 가산
$game_system.battle_count += 1

# 원의 처리를 실행
main_KGC_BattleCount
end
#--------------------------------------------------------------------------
# ● 배틀 종료
# result : 결과 (0:승리 1:도주 2:패배)
#--------------------------------------------------------------------------
alias battle_end_KGC_BattleCount battle_end
def battle_end(result)
unless @battle_count_added
# 결과에 의해 분기
case result
when 0 # 승리했을 경우
# 승리 회수 가산
$game_system.victory_count += 1
@a = true
when 1 # 도주했을 경우
# 도주 회수 가산
$game_system.escape_count += 1
end
# 격파 판정
for enemy in $game_troop.enemies.compact
# 숨어 있는(도주한), 생존하고 있는 경우는 무시
next if enemy.hidden || !enemy.dead?
# 격파수를 가산
$game_system.add_defeat_count(enemy.id)
end
# 다중 가산을 억제
@battle_count_added = true
end

# 원의 처리를 실행
battle_end_KGC_BattleCount(result)
end
end

Who's 백호

?

이상혁입니다.

http://elab.kr


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
174 전투 전투중에 장비들 교체하기 file 레이스89 2017.08.19 592
» 전투 전투 관련 횟수 취득 스크립트 백호 2009.02.21 783
172 전투 SG_Attack Break by sandgolem (SDK호환) 백호 2009.02.22 813
171 전투 Single/All Target Switching by RPG Advocate 백호 2009.02.22 816
170 전투 Stealing/Mugging/Scanning 6.0 Final by Trickster (SDK호환) file 백호 2009.02.22 885
169 전투 전투의 커맨드에 따라 능력치를 상승 백호 2009.02.22 904
168 전투 배틀 포인트 1 백호 2009.02.22 918
167 전투 위치보정스크립트 한글화 1 백호 2009.02.22 922
166 전투 S.G DamageShield Script 백호 2009.02.22 935
165 전투 랜덤 전투음악 by Fomar0153@rmxp.org 1 백호 2009.02.22 1008
164 전투 방어시에 속성 저항,스테이트무시 스크립트 1 백호 2009.02.22 1017
163 전투 SG_Auto battle by sandgolem (SDK호환) 백호 2009.02.22 1031
162 전투 FFX, X-2, FFXII 식으로 대미지 표시하기 by squall@rmxp.org 백호 2009.02.22 1115
161 전투 마법검 스크립트 file 백호 2009.02.21 1116
160 전투 레벨업 시스템 제거 스크립트 file 백호 2009.02.21 1117
159 전투 배틀샵 스크립트 1 백호 2009.02.22 1126
158 전투 전투에서도 맵 BGM 연결하는 스크립트 2 file 백호 2009.02.21 1129
157 전투 물리친 적의수 표시 file 백호 2009.02.21 1131
156 전투 FF10 전투 대미지 공식 by hydro@rmxp.org 백호 2009.02.22 1140
155 전투 A-battle 수정 file 백호 2009.02.21 1155
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9