10-19-2014, 06:04 PM
Okay, see, you've only set the Event Variable 001 when you first equiped the weapon. Variables only change when you tell them to, so if the amount of ammo changes you have to update the variable again. I edited the Syn's Ammo script, adding to the methods make_skill_action_result and make_basic_action_result here is the edited script.
As an aside, you are going to have to think about this ammo system. Like, since you can't change weapons in battle (you could fake it with skills that switched for you though!) if the player runs out of ammo, the player is guaranteed death. My advice is to use this Interactive Enemies event solution http://save-point.org/thread-2103.html and also modify the escape routine so the player can always escape after the first turn. But if you want to talk more about design ideas, you should make a new thread for your game project so we can all give feedback.
Code:
#update the Ammo variable
$game_variables[1] = $game_party.item_number(gather_ammo)
Code:
#============================================================================
# Syn's Ammo Requirements
#----------------------------------------------------------------------------
# Written by Synthesize
# Version 1.00
# August 15, 2007
# Tested with SDK 2.1
#============================================================================
#----------------------------------------------------------------------------
# Customization Section
#----------------------------------------------------------------------------
module Ammo
# Format = {weapon_id => Ammo_cost}
Range_weapons_id = {33 => 1, 34 => 1}
# Format = {weapon_id => Item_id
Range_ammo_id = {33 => 33, 34 => 34}
# Format = {skill_id => Ammo_cost}
Skill_ammo = {92 => 1, 93 => 1}
# Note on Skills: When using Skills the Current Ammo for the equipped
# weapon will be used. So if Skill 73 is used and Weapon 17 is equipped
# then Ammo #33 will be used.
end
#----------------------------------------------------------------------------
# Begin Scene_Battle
#----------------------------------------------------------------------------
class Scene_Battle
# Alias Methods
alias syn_scene_battle_range make_basic_action_result
alias syn_scene_battle_skill make_skill_action_result
#----------------------------------------------------
# Alias the Attacking method
#----------------------------------------------------
def make_basic_action_result
# Gather the current Ammo Cost
gather_ammo_cost = Ammo::Range_weapons_id[@active_battler.weapon_id]
# Gather the Current Ammo
gather_ammo = Ammo::Range_ammo_id[@active_battler.weapon_id]
# Check if the Active Battler is attacking and if they are using a ranged weapon
if @active_battler.current_action.basic == 0 and Ammo::Range_weapons_id.has_key?(@active_battler.weapon_id)
# Check the Ammo Count
if $game_party.item_number(gather_ammo) >= gather_ammo_cost
# Sufficient Ammo, remove item
$game_party.lose_item(gather_ammo,gather_ammo_cost)
syn_scene_battle_range
#update the Ammo variable
$game_variables[1] = $game_party.item_number(gather_ammo)
else
# Insufficient Ammo
@help_window.set_text("#{@active_battler.name} cannot attack due to insufficient Ammo", 1)
end
# Call Default Code
else
syn_scene_battle_range
end
end
#----------------------------------------------------
# Alias the Skill method
#----------------------------------------------------
def make_skill_action_result
# Gather the current Ammo Cost
gather_ammo_cost = Ammo::Skill_ammo[@active_battler.current_action.skill_id]
# Gather Ammo
gather_ammo = Ammo::Range_ammo_id[@active_battler.weapon_id]
# Check if the Actor is using a defiend skill
if Ammo::Skill_ammo.has_key?(@active_battler.current_action.skill_id)
# Check if Ammo is present
if $game_party.item_number(gather_ammo) >= gather_ammo_cost
# Sufficient Ammo, remove item
$game_party.lose_item(gather_ammo,gather_ammo_cost)
#update the Ammo variable
$game_variables[1] = $game_party.item_number(gather_ammo)
# Call Default Code
syn_scene_battle_skill
else
# Set Window; Do Nothing
@help_window.set_text("#{@active_battler.name} cannot attack due to insufficient Ammo", 1)
end
# Otherwise SKip the check and call default code
else
syn_scene_battle_skill
end
end
end
#============================================================================
# Written by Synthesize
# Special Thanks: ~Emo~ for the request
#----------------------------------------------------------------------------
# Ammo Requirements
#============================================================================
As an aside, you are going to have to think about this ammo system. Like, since you can't change weapons in battle (you could fake it with skills that switched for you though!) if the player runs out of ammo, the player is guaranteed death. My advice is to use this Interactive Enemies event solution http://save-point.org/thread-2103.html and also modify the escape routine so the player can always escape after the first turn. But if you want to talk more about design ideas, you should make a new thread for your game project so we can all give feedback.