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 5408
57 저장 세이브 시스템 확장 스크립트 9 file 신규회원 2012.02.24 3315
56 기타 멥 이름 띄우기 10 신규회원 2012.02.24 3626
55 아이템 드롭 아이템 확장 6 신규회원 2012.02.24 2977
54 맵/타일 Etude87_Map_Remember_VX ver.1.2 3 습작 2012.03.06 2430
53 기타 078656577er님의 스크립트를 개조한, 사격용 스크립트 1 file 타코 2012.03.16 2519
52 그래픽 Arevulopapo's Particle Engine for VX/Ace by PK8 1 Alkaid 2012.05.13 2874
51 퀘스트 퀘스트 마크 표시용 스크립트 10 file 허걱 2012.05.22 3704
50 전투 Etude87_Tankentai_Addon ver.1.0 7 file 습작 2012.06.03 2882
49 기타 Etude87_Hangul_utf8_List 습작 2012.06.04 1665
48 이름입력 Etude87_HG_Hangul_Name_Scene file 습작 2012.06.14 1948
47 기타 Etude87_GAGA_Chat 4 습작 2012.06.14 1916
46 파티 5인 파티 프로젝트 V1.1 4 file 지나가는떡꼬치 2012.06.30 2988
45 맵/타일 누가 이전에 올렸을지도..... KGC_MapLightening 3 file 클로버군 2012.07.02 2745
44 전투 Team_Ilias's_Old_Project_Demo 4 습작 2012.07.11 2101
43 메시지 메시지를 빠르게 넘겨주는 스크립트 3 타카나시 소라 2012.07.23 5038
42 전투 Slip_Damage_Ex - 슬립데미지 확장기능 (상태별 슬립데미지 적용) 7 허걱 2012.07.24 2198
41 기타 Fullscreen++ by Zeus81 (VX/VXA) 2 Alkaid 2012.09.01 2230
40 전투 Animated Battlers VX 3.7 by DerVVulfman Alkaid 2012.09.07 2102
39 액터 동료가 따라다니게 하는 스크립트 (Woratana's Caterpillar System) 5 MinaAubert 2012.09.13 3012
38 타이틀/게임오버 타이틀에 날씨 효과 주는 스크립트 (Melmarvin's Rainy Title Screen) 6 MinaAubert 2012.09.13 2329
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