Right click in event mode > quick event creation > treasure chest > choose which armor you want.
Make a new event which is the NPC, just a blank one with your NPC graphic > Conditional branch > 4th Tab > Armor
The 4th tab only checks for having the item in the inventory.
In order to check that the armor is equipped first, you need to use the options on Conditional Branch > Tab 2. Choose the actor who must be wearing this armor, and select the desired armor from the drop menu next to "Armor".
If, however, you are wanting to check if any actor is wearing the armor, you'll have to do a little more work. You can create a common event that does this check for all actors and set a switch to ON (or a variable to a number like 1) that you can check for in the NPC event.
Alternatively, you can use this script that I just cooked up that will do the exact same thing with less work for you:
class Game_Actor
#get array of all armors equipped
def armors
[@armor1_id, @armor2_id, @armor3_id, @armor4_id]
end
end
class Game_Actors
def actors
temp = Array.new
for d in @data
next if d == nil
temp.push(d)
end
temp
end
end
class Interpreter
#armor_id : id of the armor to be checked for
#all_actors : true - all known actors checked; false - party only checked
def check_for_armor(armor_id, all_actors=false)
armors = Array.new
#get appropriate actor ids
actors = all_actors ? $game_actors.actors : $game_party.actors
#add armor ids of each actor in actors
for actor in actors
armors += actor.armors
end
#return appropriate value
return true if armors.include?(armor_id)
return false
end
end
Just copy and paste the code into a space in the Script Editor (F11), making sure it is above "Main" but below "Scene_Debug".
Then, in an event where you want to check for the armor being equipped by an actor, create a Conditional Branch > Tab 4. Check the radio button for Script and in the empty box use either:
check_for_armor(id) - replace ID with the ID number of the Armor you want to check for. You can get this value from the database. This will check for the armor
id being equipped by an actor in the current party only.
or
check_for_armor(id, true) - replace ID as above, except this time it will check for all actors you've encountered. This will let the player equip an item and change that party member and still be able to trigger the event.
This will definitely save a lot of hassle with Common Events if you have a lot of actors. Even only a handful will take up some time that can be saved with this little snippet of code.
Hope it works like you want.