VX 스크립트


#------------------------------------------------------------------------------
# By Nam Kid
# Luck Systems VX 1.2
# Li�n H�? : zaw.thieugia_vl@yahoo.com
# hoa?c : zaw.thieugia@gmail.com
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# Luck Info :
# 4-5-2008 ver 1.00
# +) Make Luck point ( % )
# +) Add Cri with Luck ( x2 damage ) and Perfect Cri ( x3 damage )
# +) Add % usefull item or skill heal ( restore HP and MP )
# +) Add damage of item or skill when use atk
# 5-5-2008 ver 1.01 ( small update )
# +) Add Money and exp more or less with luck point
# 22-6-2008 ver 1.2 ( some small update )
# +) Luck up for actor ( actor ID => luck up point )
# +) Add Lucky Dodges ( eva ) - not complete 100% - beta
# +) Add Perfect Hit ( hit )
# +) Fix Gold
# ... continue update ..
#
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# script na`y chua dc add va`o menu
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# thanks Moghunter vo�i script Luck systems XP1.2
#------------------------------------------------------------------------------

module KID
LUCK_MAX = {1 => 100} # gio�i ha?n Luck
LUCK_UP = {1 => 2, 2 => 2, 3 => 1, 4 => 2} # di�?m luck khi tang level
LUCKSTART = {1 => 100} # lu�c khi ba�t d�`u ( c��u tru�c : ID actor => luck )
end
class Game_Actor < Game_Battler
alias kid_setup setup
def setup(actor_id)
maxluck = KID::LUCK_MAX[actor_id]
if maxluck == nil
@max_luck = 100
else
@max_luck = maxluck
end

if KID::LUCKSTART[actor_id] == nil
@luck = 1
else
@luck = KID::LUCKSTART[actor_id]
end

if KID::LUCK_UP[actor_id] == nil
@luckup = 1
else
@luckup = KID::LUCK_UP[actor_id]
end
kid_setup(actor_id)
end

def max_luck
return @max_luck
end

def luck
if @max_luck != nil and @luck > @max_luck
@luck = @max_luck
else
if @luck > 100
@luck = 100
end
return @luck
end
end

def level_up
@level += 1
@luck += @luckup
for learning in self.class.learnings
learn_skill(learning.skill_id) if learning.level == @level
end
end

def level_down
@level -= 1
@luck -= @luckup
end
end


class Game_Battler

def calc_eva(user, obj = nil)
eva = self.eva
unless obj == nil # if it is a skill or an item
eva = 0 unless obj.physical_attack # 0% if not a physical attack
end
unless parriable? # If not parriable
eva = 0 # 0%
end
if user.is_a?(Game_Actor)
eva -= user.luck
eva == 0 if eva <= 0
end
unless user.is_a?(Game_Actor)
eva -= user.luck
eva == 0 if eva <= 0
end
return eva
end

def make_attack_damage_value(attacker)
damage = attacker.atk * 4 - self.def * 2
damage = 0 if damage < 0
damage *= elements_max_rate(attacker.element_set)
damage /= 100
if damage == 0
damage = rand(2)
elsif attacker.is_a?(Game_Actor) # xa�c nh�?n Luck chi? co� khi actor ra do`n
if rand(100) < attacker.luck # ng�~u nhi�n
damage *= 2 # dam x2
@critical = true # hi�?n cri trong ba?n battler log
end
elsif damage > 0
@critical = (rand(100) < attacker.cri)
@critical = false if prevent_critical
damage *= 3 if @critical
end
damage = apply_variance(damage, 20)
damage = apply_guard(damage)
@hp_damage = damage
end

def make_obj_damage_value(user, obj)
damage = obj.base_damage
if damage > 0
damage += user.atk * 4 * obj.atk_f / 100
damage += user.spi * 2 * obj.spi_f / 100
unless obj.ignore_defense
damage -= self.def * 2 * obj.atk_f / 100
damage -= self.spi * 1 * obj.spi_f / 100
end
damage = 0 if damage < 0
elsif user.is_a?(Game_Actor) # xa�c nh�?n Luck chi? co� khi actor su? du?ng
if rand(100) < user.luck # ng�~u nhi�n
damage += user.atk * 4 * obj.atk_f * user.luck / (100 + user.luck)
damage += user.spi * 2 * obj.spi_f * user.luck / (100 + user.luck)
unless obj.ignore_defense
damage -= self.def * 2 * obj.atk_f / (100 + 2*user.luck)
damage -= self.spi * 1 * obj.spi_f / (100 + 2*user.luck)
end
end
elsif damage < 0
damage -= user.atk * 4 * obj.atk_f / 100
damage -= user.spi * 2 * obj.spi_f / 100
end
damage *= elements_max_rate(obj.element_set)
damage /= 100
damage = apply_variance(damage, obj.variance)
damage = apply_guard(damage)
if obj.damage_to_mp
@mp_damage = damage
else
@hp_damage = damage
end
end

def calc_hp_recovery(user, item)
result = maxhp * item.hp_recovery_rate / 100 + item.hp_recovery
result *= 2 if user.pharmacology
result += user.luck * 2 if user.is_a?(Game_Actor)
return result
end

def calc_mp_recovery(user, item)
result = maxmp * item.mp_recovery_rate / 100 + item.mp_recovery
result *= 2 if user.pharmacology
result += user.luck * 3 if user.is_a?(Game_Actor)
return result
end

end

class Game_Enemy < Game_Battler

def exp
for actor in $game_party.members
if rand(100) < actor.luck
enemy.exp += (actor.luck + enemy.exp) / 3
end
return enemy.exp
end
end

def gold
for actor in $game_party.members
enemy.gold += (actor.luck + enemy.gold) / 3 + ( rand(100) - rand(100)) / actor.luck
return enemy.gold
end
end

end
Comment '4'
  • ?
    뇌반(카이엔) 2008.10.31 17:40
    럭 시스템이라고 되어있는것으로 보아, 행운수치를 만들어서 경험치를 더 받거나 하는 것 같네요.
  • ?
    Man... 2008.11.01 15:56
    저도 모름..ㅎㅎ
  • ?
    뇌반(카이엔) 2008.10.31 17:41
    아니, 자세히 읽어보니까 액터의 행운수치에 따라서 에너미가 드랍하는 골드의 양이 달라지도록 되어있네요.
  • ?
    파치리스 2011.09.11 21:33

    럭에따라 경험치.골드의 양 크리티컬 확률 변경할 수 있는 스크립트


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5398
157 저장 Advanced Files 1.3 by Dargor 6 file Alkaid 2010.09.02 2363
156 기타 [XP / VX 공용] rand() 함수 확장 스크립트 4 허걱 2011.09.13 2362
155 기타 다른 방식의 테트리스 미니게임 7 file 사람이라면? 2010.08.17 2362
154 날씨 스크립트ㅎㅎ 9 Man... 2008.10.27 2360
153 전투 맨손 공격시 2번공격하는 스크립트 5 아방스 2008.01.24 2357
152 스킬 Simple Sort Inventory 2.0 by cozziekuns 1 file Alkaid 2011.09.29 2350
151 스킬 Simple Sort Skill Inventory 1.1 by cozziekuns 5 file Alkaid 2010.11.10 2350
150 전투 [RPG VX]기술에 쿨타임을 부여하는 스크립트 3 스리아씨 2013.12.05 2348
149 폴스 세이브 4 Man... 2008.10.28 2343
148 전투 [덮어씌우기]Window_ActorCommand_EX 4 맛난호빵 2011.03.12 2341
147 변수/스위치 HG_SelfVariables 셀프 변수 8 file 허걱 2010.11.19 2341
146 기타 ひきも記 RMVX 샘플 프로젝트 9 file Alkaid 2010.09.15 2338
145 상태/속성 Stat Distribution System 1.71 by Lettuce 7 file Alkaid 2010.09.14 2338
144 오디오 무작위 전투음악 12 file RPGbooster 2008.10.08 2335
143 메뉴 kgc 파라미터 배분 09/07/25 13 시트르산 2010.09.24 2327
142 기타 그림을 각도로 회전시키기 1 허걱 2009.06.30 2327
141 타이틀/게임오버 타이틀에 날씨 효과 주는 스크립트 (Melmarvin's Rainy Title Screen) 6 MinaAubert 2012.09.13 2323
140 이동 및 탈것 스위치 on일때 못 움직이게...(이동고정) 6 허걱 2009.07.14 2322
139 기타 (좀 이상한 or 쓸모없을 듯 한)화면상에 몬스터와 만나려면 몇걸음 남았는지 표시하는 스크립트! 2 루시페르 2009.06.06 2318
138 기타 스크립트로 커먼 이벤트 실행 [수정] 3 허걱 2009.08.17 2311
Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Next
/ 32