Ta-da! I am almost sure no one else has done this...
Want to know how to do it for your mod?
EXPLANATION: It is actually really simple. While browsing through captureflag.ini, I saw this:
Behavior = AIUpdateInterface ModuleTag_03 AILuaEventsList = CaptureFlagFunctions EndWell, I had seen this a million times before, so I didn't think anything of it the first ka-jillion times I saw it. However, that was because I had no clue what on earth the LUA did. After seeing 2Play's and TDP's orcs, and hearing how they did it, I thought maybe I should check it out. Well, in scripts.lua, I saw this code:
function OnCaptureFlagGenericEvent(self,data) local str = ObjectCapturingObjectPlayerSide(self) if str == nil then str = ObjectPlayerSide(self) end ObjectHideSubObjectPermanently( self, "FLAG_ISENGARD", true) ObjectHideSubObjectPermanently( self, "FLAG_MORDOR", true) ObjectHideSubObjectPermanently( self, "FLAG_WILD", true) ObjectHideSubObjectPermanently( self, "FLAG_MEN", true) ObjectHideSubObjectPermanently( self, "FLAG_ELVES", true) ObjectHideSubObjectPermanently( self, "FLAG_DWARVES", true) ObjectHideSubObjectPermanently( self, "FLAG_ANGMAR", true) if str == "Isengard" then ObjectHideSubObjectPermanently( self, "FLAG_ISENGARD", false) elseif str == "Mordor" then ObjectHideSubObjectPermanently( self, "FLAG_MORDOR", false) elseif str == "Men" then ObjectHideSubObjectPermanently( self, "FLAG_MEN", false) elseif str == "Dwarves" then ObjectHideSubObjectPermanently( self, "FLAG_DWARVES", false) elseif str == "Elves" then ObjectHideSubObjectPermanently( self, "FLAG_ELVES", false) elseif str == "Wild" then ObjectHideSubObjectPermanently( self, "FLAG_WILD", false) elseif str == "Angmar" then ObjectHideSubObjectPermanently( self, "FLAG_ANGMAR", false) else ObjectHideSubObjectPermanently( self, "FLAG_NEUTRAL", false) end endThis looked very interesting, so I couldn't help but extract the Capture flags W3Ds and open em up in RenX. Here is what I saw: The Flag Pole, and the "Neutral Flag", then all the Flags. I Imported the SKL file, and saw how the bones were arranged. Thats when it hit me that I could make one for Rohan. I quickly made Rohan a flag, stuck a texture onto it, and bound. (When I bound I just bound all the flags to one of the bones; I didn't want to sit there all night binding them to their individual bones. No Negative effects have turned up because of this.). I added it into my .BIG, and made an asset. Then, I edited my LUA to look like this:
function OnCaptureFlagGenericEvent(self,data) local str = ObjectCapturingObjectPlayerSide(self) if str == nil then str = ObjectPlayerSide(self) end ObjectHideSubObjectPermanently( self, "FLAG_ISENGARD", true) ObjectHideSubObjectPermanently( self, "FLAG_MORDOR", true) ObjectHideSubObjectPermanently( self, "FLAG_WILD", true) ObjectHideSubObjectPermanently( self, "FLAG_MEN", true) ObjectHideSubObjectPermanently( self, "FLAG_ELVES", true) ObjectHideSubObjectPermanently( self, "FLAG_DWARVES", true) ObjectHideSubObjectPermanently( self, "FLAG_ANGMAR", true) ObjectHideSubObjectPermanently( self, "FLAG_ROHAN", true) if str == "Isengard" then ObjectHideSubObjectPermanently( self, "FLAG_ISENGARD", false) elseif str == "Mordor" then ObjectHideSubObjectPermanently( self, "FLAG_MORDOR", false) elseif str == "Men" then ObjectHideSubObjectPermanently( self, "FLAG_MEN", false) elseif str == "Dwarves" then ObjectHideSubObjectPermanently( self, "FLAG_DWARVES", false) elseif str == "Elves" then ObjectHideSubObjectPermanently( self, "FLAG_ELVES", false) elseif str == "Wild" then ObjectHideSubObjectPermanently( self, "FLAG_WILD", false) elseif str == "Rohan" then ObjectHideSubObjectPermanently( self, "FLAG_ROHAN", false) elseif str == "Angmar" then ObjectHideSubObjectPermanently( self, "FLAG_ANGMAR", false) else ObjectHideSubObjectPermanently( self, "FLAG_NEUTRAL", false) end endPut it in-game, and tested. Viola! A capture flag for a new faction!
Edited by Solinx, 14 January 2007 - 03:18 PM.