- Joined
- Mar 13, 2012
- Messages
- 589
- Reaction score
- 382
- First Language
- English
- Primarily Uses
Critical Effects/Modifier v1.0
By V.M.
IntroductionBy V.M.
Simple script that allows you to change how much damage a critical hit does for each skill, weapon, actor, class, or enemy (multiplicative) and allow you to add states on the target when dealing a critical hit. (i.e instant kill on crit hit)
Features
- Modify critical damage based on class, actor, weapon, skill, and monster specifically (all adds up)
- Add states to target based on class, actor, weapon, skill, and monster specifically (all adds up)
Screenshots
Not available (Again tempted to post useless yet relevant screenshot, this time of hero doing 700billion+ damage)
How to Use
Install script (below any that modify the battle system, should be compatible with any)
Use the noteboxes of classes, actors, skills, weapons, and enemies with the phrases:
<crit multiplier [number]> and <crit state# [state id]>
Examples (also in script itself):
<crit multiplier 1000>
<crit state1 2>
Script
Code:
#Critical Effects and Multipliers#----------##Features: Provides the ability to tweak the damage modifier of critical hits for# skills, weapons, classes, actors, and monsters, as well as determining# if they apply specific states (i.e critical hit means instant death)##Usage: Place any of the following into the note boxes of skills, weapons# classes, actors, or monsters:# <crit multiplier [multiplier]> # - [multiplier] is the percent difference in damage, can be any number# <crit state[#] [state id]># - [#] is 1-4, allowing one notebox to apply 4 states# - [state id] is the id# of the state to be applied##Examples: <crit multiplier 1000># <crit state1 2># <crit state2 6>##Game hangs or freezes up? Check the noteboxes related to last used skill for# a missing ">"#----------##-- Script by: V.M of D.T#--- Free to use in any project with credit given class Game_Battler alias crit_effect_make_damage_value make_damage_value alias crit_effect_execute_damage execute_damage alias crit_apply_critical apply_critical def make_damage_value(user, item)@crit_item = item@crit_target = usercrit_effect_make_damage_value(user, item) end def apply_critical(damage)damage = crit_apply_critical(damage)damage = apply_actor_multiplier(damage)damage = apply_class_multiplier(damage)damage = apply_weapon_multiplier(damage) if @crit_item.physical?damage = apply_skill_multiplier(damage) end def execute_damage(user)crit_effect_execute_damage(user)crit_apply_state if @result.critical end def apply_multiplier(note, start, damage)ends = startwhile ends != "banana" if note[ends] == ">" or note[ends] == '\n' then break end ends += 1endends -= 1damage * (1 + (note[start..ends].to_f / 100.0)) end def apply_skill_multiplier(damage)note = $data_skills[self.attack_skill_id].noteif note.index('<crit multiplier') == nil then return damage endstart = note.index('<crit multiplier') + 17apply_multiplier(note, start, damage) end def apply_actor_multiplier(damage)if @crit_target.is_a?(Game_Actor) note = $data_actors[@crit_target.id].noteelse note = $data_enemies[@crit_target.enemy_id].noteendif note.index('<crit multiplier') == nil then return damage endstart = note.index('<crit multiplier') + 17apply_multiplier(note, start, damage) end def apply_class_multiplier(damage)if @crit_target.is_a?(Game_Actor) note = $data_classes[@crit_target.class_id].note if note.index('<crit multiplier') == nil then return damage end start = note.index('<crit multiplier') + 17 apply_multiplier(note, start, damage)else damageend end def apply_weapon_multiplier(damage)if @crit_target.is_a?(Game_Actor) if @crit_target.equips[0] != nil note = $data_weapons[@crit_target.equips[0].id].note else note = "" end if note.index('<crit multiplier') == nil then return damage end start = note.index('<crit multiplier') + 17 apply_multiplier(note, start, damage)else damageend end def crit_apply_state@states_apply = []note = $data_skills[self.attack_skill_id].notepush_apply_states(note)if @crit_target.is_a?(Game_Actor) note = $data_actors[@crit_target.id].noteelse note = $data_enemies[@crit_target.enemy_id].noteendpush_apply_states(note)if @crit_target.is_a?(Game_Actor) note = $data_classes[@crit_target.class_id].note push_apply_states(note)endif @crit_target.is_a?(Game_Actor) if @crit_target.equips[0] != nil note = $data_weapons[@crit_target.equips[0].id].note else note = "" end push_apply_states(note)endfor i in @states_apply self.add_state(i)end end def push_apply_states(note)for i in Range.new(1,5) if note.index('<crit state' + i.to_s) != nilget_start_end(note, i)@states_apply.push(note[@start..@ends].to_i) endend end def get_start_end(note, i)start = note.index('<crit state' + i.to_s) + 13ends = startwhile ends != "banana" if note[ends] == ">" or note[ends] == "\n" then break end ends += 1end@start = start@ends = ends - 1 endend
Game hangs or freezes up? Look for a missing ">" in your noteboxes
Credit and Thanks
- By V.M. of D.T.
- Free to use in any project with credit given
Author's Notes
Done while raiding

Last edited by a moderator: