AFAIK if you want only antagonists to hit the emperium you'll also need a source edit too.
For using the custom emperiums I'll suppose you already have them done on
db/mob_db2.txt and that you'll also use default emperium (ID 1288). Take the custom emperium IDs, they'll be EMPID2, EMPID3 and EMPID4 on my example code. Changes, again, will be made on
npc/guild/agit_main.txt.
Look for THIS:
OnAgitStart:if (strnpcinfo(0) == "Gld_Agit_Manager") end;MapRespawnGuildID strnpcinfo(2),GetCastleData(strnpcinfo(2),1),6;GvgOn strnpcinfo(2);
Add below (you can ommit adding the comments if you want):
setarray .@custom_emps[0], 1288, EMPID2, EMPID3, EMPID4; // You can add more if you wishset $@this_woe_emp, .@custom_emps[rand(getarraysize(.@custom_emps))]; // If you add more Emperiums there'll no need to amend this piece of code.sleep 10; // This way, if there are more active castles, they'll all pick an emperium but the last one picked will prevail over all.
Look for THIS (on an unedited script it's on
line 94):
monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Emperium",1288,1,"Agit#"+strnpcinfo(2)+"::OnAgitBreak";
Change to:
monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Emperium",$@this_woe_emp,1,"Agit#"+strnpcinfo(2)+"::OnAgitBreak";
And I think you're done with it. I haven't tested it but I think it works unless I've made a quite little mistake.
Note the custom emperiums will be affected by skills unless you edit some piece of code inside
battle.c.