RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Evolution Creature System

X

Xanthos

Guest
MetallicSomber said:
I was running the old Evo merc script for some time and Finally decided that it needed a complete rework myself....

All of the other Evo scripts I have looked at are complete crap - loaded with bugs and lag making bs. Doing a clean implementation was the only way I could put Evos on my shard. That said, I have to admit I got carried away with the last release and slipped a few bugs in to my system. I will be fixing those shortly.

This system allows you to design/redesign any type of Evo creature. Edit the MercenarySpec.cs to change the attributes at each level of the evolution. Of course changing a stage that a merc has already passed will not affect that merc but will affect mercs that have not yet reached that stage when the acheive it. The MercenarySpec class controls the number of stages and other global information about how the creature evolves, whether it produces young etc. The stages are kept in an array of BaseEvoStage, where each BaseEvoStage subclass represents how the creature's properties will be set up when it evolves to that stage. You have complete control of stats, skills, etc. in this file. There is more explanation in the docs and in BaseEvoSpec.cs as well.

I think its rather pointless to gain skill in each stage since the merc will gain in skills as it uses them. Just set the minimum values and maximum values it should have, in the MercenarySpec calss, and they will be randomly assigned and increase through use. You can do this as follows:

Code:
// Change this:
			m_MinSkillValues = new int[11] { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 };
			m_MaxSkillValues = new int[11] { 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120 };
// to this:
			m_MinSkillValues = new int[11] { 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70};
			m_MaxSkillValues = new int[11] { 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120 };

The other merc systems you are used to have a bug where they will not gain beyond a certain number of total points; not so with my system.
 
Thanks :) If I use that skill method, can that be used in each stage? I want them to evolve but just not be super umber. I want it to actually matter that the players need to keep their gear repaired, and matter what items they give them. and if totaly nude they already have more resist then you as a player with valorite armor, that wont matter. I guess basicly I want them to be more player like. and what you give them effects how they opperate.
 
X

Xanthos

Guest
MetallicSomber said:
Thanks :) If I use that skill method, can that be used in each stage? I want them to evolve but just not be super umber. I want it to actually matter that the players need to keep their gear repaired, and matter what items they give them. and if totaly nude they already have more resist then you as a player with valorite armor, that wont matter. I guess basicly I want them to be more player like. and what you give them effects how they opperate.

I designed this so that skills are only set once, since as I said before, you can train them higher. I implemented each of these Evos to mimick the capabilities of the same creatures from other evolution systems so they are kinda uber. You can modify the values in each of the stages to get the desired effect.

Since this is not the first request for a more sane Merc, I will offer this: Give it some thought and tell me what you would like the end result to be for each of the stats, resists, etc and I will create a new merc Spec for you to test then include it in the next release as well.

BTW, the thing that really makes them uber is the Virtual Armor setting. A more sane merc will have very little or none.
 
My idea of one thats more humanized, would be one that could only do what a player would normally try on a stock OSI shard. I use to take on AWs with my warrior chacter but it was archery and I was always running to do it. this guy could probably take on two or three and live through it. For guild training, we always took the guild to destard and fought dragons hand to hand. A fully maxed out Evo warrior (would heal alot but still be able to) Kill a dragon solo. But would get out numbred by more then one and should need help.

The warrior evos should be a helper not a do all the work for you kind of follower :) maybe what Im looking for isn't a evo at all but a hireble trainable NPC warrior that can get to be as good as a players skills but no better. I'll have to give it thought.
 

reverian

Sorceror
Xanthos,

Excellent script!

I was wondering if you have already done this, or if you can add it. I'll list the idea below...

Basically once the creature reaches a certain EP, it will perma die. Not to be able to be rezzed. Also, you would receive a gump or system message saying that the lifespan of your evo has been reached.

You could just put the perma die code in the script with a true / false statement; similar to the antimacro code. You just rename it to true to use the perma die, by default it could be set to false.

The only reason I am requesting this addition is because it will allow for a more stable/balanced use of these uber creatures. Yes, a character will have an uber creature for a while. But eventually they will have to start with a new one when it perma dies.

Thank you for your consideration.
 
X

Xanthos

Guest
reverian said:
Xanthos,

Excellent script!

I was wondering if you have already done this, or if you can add it. I'll list the idea below...

Basically once the creature reaches a certain EP, it will perma die. Not to be able to be rezzed. Also, you would receive a gump or system message saying that the lifespan of your evo has been reached.

You could just put the perma die code in the script with a true / false statement; similar to the antimacro code. You just rename it to true to use the perma die, by default it could be set to false.

The only reason I am requesting this addition is because it will allow for a more stable/balanced use of these uber creatures. Yes, a character will have an uber creature for a while. But eventually they will have to start with a new one when it perma dies.

Thank you for your consideration.
That's a good idea. I can do that but it will have to go in the queue behind other things so I cant commit to a date now.
 

Parmenides

Wanderer
FS Taming System compatible?

Any idea how your phantastic system is compatible with FS Taming
I rewrote Shrink commands but thats only top of ice :)

e.g. info on mercenary doesnt give me any sword skills so i suppose it gets disturbed by FS Taming.

i would be very happy if i could use this system parallel to FS Taming system
 
X

Xanthos

Guest
Parmenides said:
Any idea how your phantastic system is compatible with FS Taming
I rewrote Shrink commands but thats only top of ice :)

e.g. info on mercenary doesnt give me any sword skills so i suppose it gets disturbed by FS Taming.

i would be very happy if i could use this system parallel to FS Taming system
I don't know enough about FS Taming to advise you. However, I assume that FS Taming would be compatible with my Evos since the creatures in my Evolution Creature System are subclassed from BaseCreature and BaseMount. My shrink system will work with any BaseCreature or BaseMount subclasses and therefore I would expect the FS Taming shrink commands to be replaceable by mine.

What did you change in my shrink commands? Interfaces I assume - if thats the case I will integrate those changes back into my source base.

Since you are a user of both systems, you are in a great position to help align them. Let me what you find and I will do what I can to make my Evo system compatible.
 
I think that about the only way you could make these two systems compatible is if you changeit to where if you leave out your shrink system it will still function and compile properly. The Taming system has an extensive shrink/pet system with it, that most players wont want to remove, becasue it comes with hitching posts to shrink them a vet craft, complete with shrink potions, and a pet leash that is a portable hitching post. and removing that shrink is probably not a good idea, because of all the ties to Pet leveling, bio engeneering, the three evos that come with it, and everything else related to that system.
 

tindo

Sorceror
Hail Xanthos! Great scripts...One thing I noticed is that players can bypass the restrictions on crafted items and artifacts on the mercs. They can drop the items on the ground, have the merc grab them, then have him dress and he arms the artifact regardless of his level. I think this can be fixed in the dress command by adding the if statements from the drag/drop command?

Also, I have been told by players that the mercs have not been healing themselves. I have not checked into this yet, but I will. Just thought I would give you a heads up on those two things. Really a great job tho, my shard is very small so the players love having a fighting partner when they go hunt!

P.S. I'm going to attempt to add code so that evo's can not be used for pvp. I'm still not too good at scripting...I need to set an if/then in the OnAttack code right?
 
X

Xanthos

Guest
tindo said:
Hail Xanthos! Great scripts...One thing I noticed is that players can bypass the restrictions on crafted items and artifacts on the mercs. They can drop the items on the ground, have the merc grab them, then have him dress and he arms the artifact regardless of his level. I think this can be fixed in the dress command by adding the if statements from the drag/drop command?

Also, I have been told by players that the mercs have not been healing themselves. I have not checked into this yet, but I will. Just thought I would give you a heads up on those two things. Really a great job tho, my shard is very small so the players love having a fighting partner when they go hunt!

P.S. I'm going to attempt to add code so that evo's can not be used for pvp. I'm still not too good at scripting...I need to set an if/then in the OnAttack code right?
Those sneaky players - I will get that eqiupping exploit fixed ASAP!

The healing bug is one of the issues I am working on for the next release.

I am not sure if OnAttack is the appropriate place to change the behavior. Don't know off the top of my head. If you figure that out, I would be interested in placing the change in the code base though. I dont have the time to research this right now.

I'm glad you are enjoying the Evo System and thanks for the feedback!
 

Roseanne

Wanderer
Putting Evo Eggs as loot on monsters...

I'm trying to add the RaelisDragonEgg to a creature & it doesn't seem to want to happen... The Raelis Evo System in it's entirety is loaded, so I'm not sure what the deal is... Can anyone point me in the right direction plz?

this is the code i used to add the egg:
PHP:
			if( 0.30 > Utility.RandomDouble() ) // 0.30 = 30% = chance to drop 
			switch ( Utility.Random( 4 )) 
			{
				case 0: PackItem( new RaelisDragonEgg() ); break;
				case 1: PackItem( new PottedPampasBlueVaseAddonDeed() ); break;
				case 2: PackItem( new PottedSpiderTreeRedVaseAddonDeed() ); break;
				case 3: PackItem( new TokenCheck( 5000 )); break;
			}
		}

and this is the error msg I get:

- Error: Scripts\Custom Scripts\Dungoens\Valley Of Sorrows\Valley Of Sorrows Mo
nster\Basilisk\Basilisk.cs: CS0246: (line 56, column 27) The type or namespace n
ame 'RaelisDragonEgg' could not be found (are you missing a using directive or a
n assembly reference?)
 
X

Xanthos

Guest
Roseanne said:
I'm trying to add the RaelisDragonEgg to a creature & it doesn't seem to want to happen... The Raelis Evo System in it's entirety is loaded, so I'm not sure what the deal is... Can anyone point me in the right direction plz?

this is the code i used to add the egg:
PHP:
			if( 0.30 > Utility.RandomDouble() ) // 0.30 = 30% = chance to drop 
			switch ( Utility.Random( 4 )) 
			{
				case 0: PackItem( new RaelisDragonEgg() ); break;
				case 1: PackItem( new PottedPampasBlueVaseAddonDeed() ); break;
				case 2: PackItem( new PottedSpiderTreeRedVaseAddonDeed() ); break;
				case 3: PackItem( new TokenCheck( 5000 )); break;
			}
		}

and this is the error msg I get:

- Error: Scripts\Custom Scripts\Dungoens\Valley Of Sorrows\Valley Of Sorrows Mo
nster\Basilisk\Basilisk.cs: CS0246: (line 56, column 27) The type or namespace n
ame 'RaelisDragonEgg' could not be found (are you missing a using directive or a
n assembly reference?)

The class RaelisDragonEgg resides in a namespace other than the current namespace so you will have to explicity call out the full name of the class (Xanthos.Evo.RaelisDragonEgg) on line 56 or put a using directive at the top of the file (using Xanthos.Evo).
 
X

Xanthos

Guest
MetallicSomber said:
I think that about the only way you could make these two systems compatible is if you changeit to where if you leave out your shrink system it will still function and compile properly. The Taming system has an extensive shrink/pet system with it, that most players wont want to remove, becasue it comes with hitching posts to shrink them a vet craft, complete with shrink potions, and a pet leash that is a portable hitching post. and removing that shrink is probably not a good idea, because of all the ties to Pet leveling, bio engeneering, the three evos that come with it, and everything else related to that system.
Ok, I will remove the dependency on my shrink system for the next release. You will need to make changes to the FS Taming shrink system to know about the properties added to my evos. I consider this a short term fix.

What I will do next is to change my shrink interfaces, that are called by the PetLeash etc., to be identical to those of the FS Taming shrink system. Then people will be able to use my shrink system with the FS Taming system and the FS Taming shrink with my Evo system.

One advantage to using my shrink is that it does not need to be updated each time there are changes to the advanced creatures, whereas the FS Taming system needs to know about all the properties of basecreature and subclasses and must be updated when the properties of the creatures in either sytem change in any way.
 

tindo

Sorceror
Oh, my players found another exploit you might want to look at...The evo mercs can loot while they are dead with the loot command...Working on it myself, will let you know if I find an easy fix...
 

Roseanne

Wanderer
Putting Evo Eggs as loot on monsters...

Tyvm, it worked like a charm :) all I had to do was put using Xanthos.Evo @ the top of the script :)
 
X

Xanthos

Guest
Version 1.7 has been published in the first post of the thread.
 

kethoth

Page
i try to compile and it gives me this error
Scripts: Compiling C# scripts...failed (2 errors, 0 warnings)
- Error: Scripts\Custom\EVO\Mercenary\Mercenary.cs: CS0246: (line 96, column 16
) The type or namespace name 'BallOfSummoning' could not be found (are you missi
ng a using directive or an assembly reference?)
- Error: Scripts\Custom\EVO\Mercenary\Mercenary.cs: CS0246: (line 96, column 50
) The type or namespace name 'BallOfSummoning' could not be found (are you missi
ng a using directive or an assembly reference?)
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.
 

Brailyin

Wanderer
How is the Merc checking it's stats? I have removed the str/int/dex (default 125) check and base it totally of StatCap. The merc just keeps going and going stat gain wise. Even if it's RawStatTotal is greater than it's StatCap.

My stat gain check function:
Code:
public static bool CanRaise( Mobile from, Stat stat )
		{
			if ( !(from is BaseCreature && ((BaseCreature)from).Controled) )
			{
				if ( from.RawStatTotal >= from.StatCap )
					return false;
			}

			switch ( stat )
			{
				case Stat.Str: return ( from.StrLock == StatLockType.Up ); //&& from.RawStr < 125
				case Stat.Dex: return ( from.DexLock == StatLockType.Up );//&& from.RawDex < 125 
				case Stat.Int: return ( from.IntLock == StatLockType.Up );// && from.RawInt < 125
			}

			return false;
		}
 

tower97

Wanderer
Can not get scripts to load

These are the errors that I am recieving this is an awesome system but I am new can someone help me please
RunUO - [www.runuo.com] Version 1.0.0, Build 36918
Scripts: Compiling C# scripts...failed (12 errors, 0 warnings)
- Error: Scripts\Customs\DragonEvo.cs: CS0101: (line 9, column 15) The namespac
e 'Xanthos.Evo' already contains a definition for 'RaelisDragon'
- Error: Scripts\Customs\DragonEvoDust.cs: CS0101: (line 8, column 15) The name
space 'Xanthos.Evo' already contains a definition for 'RaelisDragonDust'
- Error: Scripts\Customs\DragonEvoEgg.cs: CS0101: (line 8, column 15) The names
pace 'Xanthos.Evo' already contains a definition for 'RaelisDragonEgg'
- Error: Scripts\Customs\DragonEvoSpec.cs: CS0101: (line 6, column 22) The name
space 'Xanthos.Evo' already contains a definition for 'RaelisDragonSpec'
- Error: Scripts\Customs\DragonEvoSpec.cs: CS0101: (line 44, column 15) The nam
espace 'Xanthos.Evo' already contains a definition for 'RaelisDragonStageOne'
- Error: Scripts\Customs\DragonEvoSpec.cs: CS0101: (line 66, column 15) The nam
espace 'Xanthos.Evo' already contains a definition for 'RaelisDragonStageTwo'
- Error: Scripts\Customs\DragonEvoSpec.cs: CS0101: (line 90, column 15) The nam
espace 'Xanthos.Evo' already contains a definition for 'RaelisDragonStageThree'
- Error: Scripts\Customs\DragonEvoSpec.cs: CS0101: (line 113, column 15) The na
mespace 'Xanthos.Evo' already contains a definition for 'RaelisDragonStageFour'
- Error: Scripts\Customs\DragonEvoSpec.cs: CS0101: (line 136, column 15) The na
mespace 'Xanthos.Evo' already contains a definition for 'RaelisDragonStageFive'
- Error: Scripts\Customs\DragonEvoSpec.cs: CS0101: (line 159, column 15) The na
mespace 'Xanthos.Evo' already contains a definition for 'RaelisDragonStageSix'
- Error: Scripts\Customs\DragonEvoSpec.cs: CS0101: (line 181, column 15) The na
mespace 'Xanthos.Evo' already contains a definition for 'RaelisDragonStageSeven'

- Error: Scripts\Customs\TrainingElemental.cs: CS0101: (line 14, column 15) The
namespace 'Xanthos.Evo' already contains a definition for 'TrainingElemental'
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.
 
Top