alambik
Sorceror
[RunUO 1.0] Alambik's ARMY: UO Age Of Empire !?
SUMMARY:
This system allows to create an army by recruiting NPC and command them as a group of NPC thanks to a gump.
FEATURES:
- Available formations:
full square formation
empty square
triangle
circle
random (barbarians...)
- stay in formation, do not attack
- stay in formation, attack people in range: (if have range weapon with enough ammo, use it, else, only attack people in front of you)
- melee: attack a specific target
- free for all
- disband army
- no NPC number limitation
- formation can go on a targetted location
- formation can move in the 8th directions
- individual NPC can move in the 8th directions
- the army NPCs can say a sentence that the controler input
- only 1 controler is allowed to control an army (army owner property)
- if GM, you can recruit new NPC in the army
- can be army of mixed NPCs
- when a NPC is killed, the next order will re-arrange the formation to fill the place of the dead NPC.
SUPPORT
Absolutly no support.
Tested on 1.0 RunUO version.
A lot of enhancement are needed.
Provided as-is.
You are free to modify it and post new versions of the script.
INSTALATION
- Drag and drop the files of the archive into your custom RunUO 1.0 script folder
- Modify the BaseCreature.cs and BaseAI.cs of your initial RunUO 1.0 scripts file as follow:
MODIFICATIONS:
You have to add the army Artificial Intelligence possibility for all creature. This require some code to add:
A) Open the Engines\AI\AI\BaseAI.cs file:
You have to add the AI into the possible types:
REPLACE THIS:
WITH THIS:
B) Open the Engines\AI\Creature\Basecreature.cs file:
1) First, you have to :
REPLACE THIS
WITH THIS:
2) Thenm in the "ChangeAIType" function you have to
REPLACE THIS:
WITH THIS:
SUMMARY:
This system allows to create an army by recruiting NPC and command them as a group of NPC thanks to a gump.
FEATURES:
- Available formations:
full square formation
empty square
triangle
circle
random (barbarians...)
- stay in formation, do not attack
- stay in formation, attack people in range: (if have range weapon with enough ammo, use it, else, only attack people in front of you)
- melee: attack a specific target
- free for all
- disband army
- no NPC number limitation
- formation can go on a targetted location
- formation can move in the 8th directions
- individual NPC can move in the 8th directions
- the army NPCs can say a sentence that the controler input
- only 1 controler is allowed to control an army (army owner property)
- if GM, you can recruit new NPC in the army
- can be army of mixed NPCs
- when a NPC is killed, the next order will re-arrange the formation to fill the place of the dead NPC.
SUPPORT
Absolutly no support.
Tested on 1.0 RunUO version.
A lot of enhancement are needed.
Provided as-is.
You are free to modify it and post new versions of the script.
INSTALATION
- Drag and drop the files of the archive into your custom RunUO 1.0 script folder
- Modify the BaseCreature.cs and BaseAI.cs of your initial RunUO 1.0 scripts file as follow:
MODIFICATIONS:
You have to add the army Artificial Intelligence possibility for all creature. This require some code to add:
A) Open the Engines\AI\AI\BaseAI.cs file:
You have to add the AI into the possible types:
REPLACE THIS:
Code:
AI_Thief
}
Code:
AI_Thief
///// ALAMBIK: ARMY SYSTEM /////
,AI_Army
///////////////////////////////////////
}
B) Open the Engines\AI\Creature\Basecreature.cs file:
1) First, you have to :
REPLACE THIS
Code:
private AIType m_CurrentAI; // The current AI
private AIType m_DefaultAI; // The default AI
WITH THIS:
Code:
private AIType m_CurrentAI; // The current AI
private AIType m_DefaultAI; // The default AI
///// ALAMBIK: ARMY SYSTEM /////////
[CommandProperty( AccessLevel.GameMaster )]
public AIType DefaultAI
{ get{ return m_DefaultAI; } set{ m_DefaultAI = value; } }
///////////////////////////////////////////
2) Thenm in the "ChangeAIType" function you have to
REPLACE THIS:
Code:
switch (NewAI)
{
case AIType.AI_Melee:
m_AI = new MeleeAI(this);
break;
WITH THIS:
Code:
switch (NewAI)
{
//// ALAMBIK: ARMY SYSTEM ////
case AIType.AI_Army:
m_AI = new ArmyAI(this);
break;
/////////////////////////////////////
case AIType.AI_Melee:
m_AI = new MeleeAI(this);
break;