Event - You had it right there! Hero dies, that's a unit event, generic because it could apply to any player.
Condition - This is where you check if it's a hero. The type of condition is a boolean. Hero is a classification, so you do a boolean unit classification check.
The second condition is, yes, if the dying hero belonged to a computer. You should have a LOT of things set to variables if you're doing AI with computers, one of which would be a boolean array at map initialization, for IsComputer or something similar. Something so that your AI triggers only run for the computers. (edit: yea you can use 'Is equal to Computer' too, it all depends on how you select what players will be bots, whether you do it in game or in the lobby)
Actions - When a hero dies, it takes a second before you're allowed to revive it at an altar, so you'd have to wait a few seconds before reviving.
Again, you need to set everything to variables for these computers. All their bases need to be set to a unit array, where the position in the array is equal to their player number. Then you can use "Player number of (Owner of (whatever))" to retrieve the correct base, or whatever else they may own.
Same thing goes for the Hero, it needs to be in a unit array and retrieved the same way.
-
Events
-
Unit - A unit Dies
-
Conditions
-
((Triggering unit) is A Hero) Equal to True
-
IsComputer Equal to True
-
Actions
-
Wait 5.00 seconds
-
Unit - Order Base[(Player number of (Owner of (Triggering unit)))] to Revive Hero ComputerHero[(Player number of (Owner of (Triggering unit)))]
And the last thing is, you're going to have another trigger that's probably waiting for your hero to revive. There needs to be a timeout on that trig as a fail-safe, and when the timeout hits, try to revive the hero again.