HELP MAKING VX NOT RETARDED (MAKING ENEMIES PHYSICAL IMMUNE)
Posts
So, I am putzing around in VX's database trying to make a Ghost enemy that is immune to physical attacks. So I set all those physical "elements" (Bow, Piercing, Slashing, Melee, etc...) to E. welp! My guys can still hit them (though their To Hit seems rather low). So I putz around a bit more I find out that there is an F rating. Try that. Now they ABSORB physical attacks. welp!
How do I make an enemy (like, say, a Ghost) immune to physical attacks in VX?
(And if someone sez "scripts" I'mma gonna scream.)
How do I make an enemy (like, say, a Ghost) immune to physical attacks in VX?
(And if someone sez "scripts" I'mma gonna scream.)
"E" should be immunity.
What is the first element in your database, and do all of your physical attacks/weapons have elements?
Fun fact: unarmed actors (not enemies) automatically have the first element in the database set as their attack element (weapons can have no elements, however).
EDIT: How many elements do you have set for these attacks? By default, VX only takes the most effective element and applies it to an attack/spell. So if you attack a ghost with Bow/Fire, it'll take Fire damage.
What is the first element in your database, and do all of your physical attacks/weapons have elements?
Fun fact: unarmed actors (not enemies) automatically have the first element in the database set as their attack element (weapons can have no elements, however).
EDIT: How many elements do you have set for these attacks? By default, VX only takes the most effective element and applies it to an attack/spell. So if you attack a ghost with Bow/Fire, it'll take Fire damage.
I left pretty much everything as default. The first element is Melee and all my weapons have one of Slashing, Blow, Piercing, Bow, or Melee selected.
They seem to be doing 1 damage a lot.
EDIT:
scriptz:
YEZ core fixes
YERD Battle
YEZ equipment
YERD skill effects
YERD status effects
Display Data 2.0
Victory Aftermath
VA compatibility
KGC_Steal
KGC_ExtraDropItem
Worotana Caterpilar
They seem to be doing 1 damage a lot.
EDIT:
scriptz:
YEZ core fixes
YERD Battle
YEZ equipment
YERD skill effects
YERD status effects
Display Data 2.0
Victory Aftermath
VA compatibility
KGC_Steal
KGC_ExtraDropItem
Worotana Caterpilar
In Game_Battler, change
to
EDIT: For clarification, it's the "damage = rand(2)" that's doing it to you. The game has a 50% chance of making you do 1 damage instead of 0 (think METAL SLIMES; VX is just trying to be Dragon Quest).
#--------------------------------------------------------------------------
# * Calculation of Damage From Normal Attack
# attacker : Attacker
# The results are substituted for @hp_damage
#--------------------------------------------------------------------------
def make_attack_damage_value(attacker)
damage = attacker.atk * 4 - self.def * 2 # base calculation
damage = 0 if damage < 0 # if negative, make 0
damage *= elements_max_rate(attacker.element_set) # elemental adjustment
damage /= 100
if damage == 0 # if damage is 0,
damage = rand(2) # half of the time, 1 dmg
elsif damage > 0 # a positive number?
@critical = (rand(100) < attacker.cri) # critical hit?
@critical = false if prevent_critical # criticals prevented?
damage *= 3 if @critical # critical adjustment
end
damage = apply_variance(damage, 20) # variance
damage = apply_guard(damage) # guard adjustment
@hp_damage = damage # damage HP
end
to
#--------------------------------------------------------------------------
# * Calculation of Damage From Normal Attack
# attacker : Attacker
# The results are substituted for @hp_damage
#--------------------------------------------------------------------------
def make_attack_damage_value(attacker)
damage = attacker.atk * 4 - self.def * 2 # base calculation
damage = 0 if damage < 0 # if negative, make 0
damage *= elements_max_rate(attacker.element_set) # elemental adjustment
damage /= 100
if damage > 0 # a positive number?
@critical = (rand(100) < attacker.cri) # critical hit?
@critical = false if prevent_critical # criticals prevented?
damage *= 3 if @critical # critical adjustment
end
damage = apply_variance(damage, 20) # variance
damage = apply_guard(damage) # guard adjustment
@hp_damage = damage # damage HP
end
EDIT: For clarification, it's the "damage = rand(2)" that's doing it to you. The game has a 50% chance of making you do 1 damage instead of 0 (think METAL SLIMES; VX is just trying to be Dragon Quest).
Ah, craze made it already.
EDIT:
Meh. I still made it.
Add Phys_Inmune to the note box of the enemy and it will make it physical inmune.
EDIT:
Meh. I still made it.
Add Phys_Inmune to the note box of the enemy and it will make it physical inmune.
#==============================================================================
# ** RPG::Enemy Module
#------------------------------------------------------------------------------
# This module handles enemy information.
#==============================================================================
module RPG
class Enemy
#--------------------------------------------------------------------------
# * Get Enemy Physical Inmunity
#--------------------------------------------------------------------------
def physical_inmune
return self.note.include?("Phys_Inmune")
end
end
end
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
# This class deals with battlers. It's used as a superclass of the Game_Actor
# and Game_Enemy classes.
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# * Calculation of Damage From Normal Attack
# attacker : Attacker
# The results are substituted for @hp_damage
#--------------------------------------------------------------------------
alias tds_phys_inmunity_make_attack_damage_value make_attack_damage_value
def make_attack_damage_value(attacker)
# If Self is a Game Enemy
if self.is_a?(Game_Enemy)
# If Self Is physically inmune
if self.enemy.physical_inmune
# Set Damage to 0
@hp_damage = 0
return
end
end
tds_phys_inmunity_make_attack_damage_value(attacker)
end
end
wicked.
Another question:
Slip damage
the way it is implemented in VX is rather unintuitive and unmodifiable. I am using the YERD battle and just magically my HP drops at the end of a turn - no messages, no way to control how much damage is inflicted. This is lame.
Any suggestions?
Another question:
Slip damage
the way it is implemented in VX is rather unintuitive and unmodifiable. I am using the YERD battle and just magically my HP drops at the end of a turn - no messages, no way to control how much damage is inflicted. This is lame.
Any suggestions?
Why the hell are you using YERD instead of Melody, or at least YEZ? :<
<kentona> Because I started this project before those came out
<Craze> RESTART FROM SCRATCH, SUCKER
EDIT: Also, unmodifiable? Open up your scripts and ctrl-shift-F for def slip_damage_effect.
<kentona> Because I started this project before those came out
<Craze> RESTART FROM SCRATCH, SUCKER
EDIT: Also, unmodifiable? Open up your scripts and ctrl-shift-F for def slip_damage_effect.
This was for Village Brave, a Game Gale contest that I had intended to make in 2 weeks. While I obviously missed the deadline, the simplicity that I was going for is still there and I want to release this game by tomorrow, soo....... it ain't bein' restarted, sucka!
EDIT:
oh, and I wanted to use Throw and Mix from YERD, and it has...issues with YEZ
EDITEDIT:
any way to have it spit out "Red Hawkwind received 38 poison damage!" in battle?
EDIT:
oh, and I wanted to use Throw and Mix from YERD, and it has...issues with YEZ
EDITEDIT:
any way to have it spit out "Red Hawkwind received 38 poison damage!" in battle?
post=144372
This was for Village Brave, a Game Gale contest that I had intended to make in 2 weeks. While I obviously missed the deadline, the simplicity that I was going for is still there and I want to release this game by tomorrow, soo....... it ain't bein' restarted, sucka!
EDIT:
oh, and I wanted to use Throw and Mix from YERD, and it has...issues with YEZ
EDITEDIT:
any way to have it spit out "Red Hawkwind received 38 poison damage!" in battle?
I think I can make it display poison damage. Give me a few minutes to make the script.
EDIT:
I'm not happy with it overwriting the turn_end method but, it should work displaying the poison damage.
Also I don't know what Yerd is, so I tested it with the default CBS. If they use the same way of displaying damage with the text box it should work.
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# This class performs battle screen processing.
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# * End Turn
#--------------------------------------------------------------------------
def turn_end
$game_troop.turn_ending = true
$game_party.slip_damage_effect
$game_troop.slip_damage_effect
# Display Slip Damage Effect
display_slip_effect_damage
$game_party.do_auto_recovery
$game_troop.preemptive = false
$game_troop.surprise = false
process_battle_event
$game_troop.turn_ending = false
start_party_command_selection
end
#--------------------------------------------------------------------------
# * Show Slip Effect Damage
#--------------------------------------------------------------------------
def display_slip_effect_damage
# Go through Game Party and Game Troop members
($game_party.members + $game_troop.members).each do |member|
# Next if member is dead
next if member.dead?
# Next if Member does not have any form of Slip Damage
next if member.slip_damage? == false
# Play Poison SE
Audio.se_play("Audio/SE/Poison", 100, 80)
# Poison Text Display
text = member.name + " received " + member.hp_damage.to_s + " Poison Damage."
# Draw Poison Damage
@message_window.replace_instant_text(text)
# Wait 45 Frames
wait(45)
end
# Wait 30 Frames
wait(30)
end
end
post=144370holy shit slip damage is 10% of MaxHP
Why the hell are you using YERD instead of Melody, or at least YEZ? :<
<kentona> Because I started this project before those came out
<Craze> RESTART FROM SCRATCH, SUCKER
EDIT: Also, unmodifiable? Open up your scripts and ctrl-shift-F for def slip_damage_effect.
post=144506
10% per turn? That's hardly noticeable. I liked FFX's 25%/turn.
So there is a method to detect if a game actor has poison/slip damage:
next if member.slip_damage? == false
...is there one that can detect if an actor has Auto HP Recover? I want to make an addition to TDS's script that sez "Red auto recovered ### HP"
next if member.slip_damage? == false
...is there one that can detect if an actor has Auto HP Recover? I want to make an addition to TDS's script that sez "Red auto recovered ### HP"

















