Sure. Let's pick it apart with your information here...

int nCap = (int)(from.Skills.Cap/100);
e.g. 100,000 / 100 = 1000 nCap is 1000

if ( nCap > 100 ){ nCap = 100; }
so nCap = 100 nCap is set back to 100

int nTotal = from.SkillsTotal;
e.g. ntotal = 3000 This shows me that the character has 300 skills gained so far

if ( nTotal > (nCap*100) ){ nTotal = nCap*100; }
e.g. if (3000 > (100*100 // e.g. 10,000) // does not apply here, 3000 is lower than 10000 Correct

int nSkills = nTotal / nCap;
e.g. nskills = 3000 / 100

or = 30 Correct

So this "30" nSkills value gets passed to the NPC creation part like in this one...

new HenchmanMonster( HenchBody, nMounted, nSkills, nStats, HenchWeaponID, HenchShieldID );

So when the NPC is created, they will have a 30 in every skill they are assigned.

The stat cap does not have this property in the code, however, but I don't think you can max that up too high where it would break anything.
Post automatically merged:

I just made a henchman to confirm, and their stats also calculated with the player character. A balron just killed them. Let me try one of your tests you proposed.
Post automatically merged:

Ok, I tried one of your tests and the henchman has the skills they should have...even with a 100,000 skill cap. So the math in the code is correct. Now I gave him 100 bandages so with his 100 healing he is taking the damage from the balron...but he is slowly killing the balron and not an all out slaughter like you described. To be fair, the henchman is killing the balron as fast as my 10,000 skill cap character would...but I see the healing being quick with those bandages.
Post automatically merged:

Funny. I use the Magic Resist skill to determine healing skill. It doesn't affect the outcome, but I am trying to remember why I did it that way.
Post automatically merged:

So it looks like the bandage thing should be scaled back like you mentioned. Let me look at the bandage rates online to see what the range is.
 
Last edited:
Yeah, I agree with Djeryv's calculations here, this part of code won't make the henchman's skills go above 100 :) In my understanding, at least (though I admit I can be wrong), the reason why henchmen can feel somewhat overpowered at times is because they can instantly heal themselves when they have bandages, and they can have as many bandages as you can feed them (I have two henchmen with 6000+ bandages in my current unmodded Odyssey playthrough, it's basically a lifetime supply for them, hehe :) ). It's somewhat easy to find a huge bolt of cloth in the dungeon (like, 50x), cut it, and give all the bandages (how ever many can come out of that - 3000, 5000, etc.) to your henchman. They can still die - I've seen them taken out relatively easily by those late game boss characters like huge wyrms and whatnot - but they would need to be one-shot or something like that, or at least hit very quickly and very hard in quick succession before they have a chance to heal back using a bandage. Other than that, I don't think I've had an issue with them having too high skill values or anything like that.
 
Sure. Let's pick it apart with your information here...

int nCap = (int)(from.Skills.Cap/100);
e.g. 100,000 / 100 = 1000 nCap is 1000

if ( nCap > 100 ){ nCap = 100; }
so nCap = 100 nCap is set back to 100

int nTotal = from.SkillsTotal;
e.g. ntotal = 3000 This shows me that the character has 300 skills gained so far

if ( nTotal > (nCap*100) ){ nTotal = nCap*100; }
e.g. if (3000 > (100*100 // e.g. 10,000) // does not apply here, 3000 is lower than 10000 Correct

int nSkills = nTotal / nCap;
e.g. nskills = 3000 / 100

or = 30 Correct

So this "30" nSkills value gets passed to the NPC creation part like in this one...

new HenchmanMonster( HenchBody, nMounted, nSkills, nStats, HenchWeaponID, HenchShieldID );

So when the NPC is created, they will have a 30 in every skill they are assigned.


The stat cap does not have this property in the code, however, but I don't think you can max that up too high where it would break anything.
Post automatically merged:

I just made a henchman to confirm, and their stats also calculated with the player character. A balron just killed them. Let me try one of your tests you proposed.
Post automatically merged:

Ok, I tried one of your tests and the henchman has the skills they should have...even with a 100,000 skill cap. So the math in the code is correct. Now I gave him 100 bandages so with his 100 healing he is taking the damage from the balron...but he is slowly killing the balron and not an all out slaughter like you described. To be fair, the henchman is killing the balron as fast as my 10,000 skill cap character would...but I see the healing being quick with those bandages.
Post automatically merged:

Funny. I use the Magic Resist skill to determine healing skill. It doesn't affect the outcome, but I am trying to remember why I did it that way.

exactly... that doesn't seem off to you? that a char with 7x gm skills and a few 60-70's skills with a total of 3000 could only have a henchmen with 30 skills? the system works find the way odyssey was, but if the skillcap goes up considerably then it then becomes impossible to have a henchman with usable skills.

Thanks for taking the time djeryv, always appreciated.

also, i gave them healing skill for healing - my guess is you did that for wizard/etc.

you should really implement the bandage timer though... healing like they did very quickly was a bit off...

My reasoning: if you want an OP helper, you should take the time to train it and it shouldn't be as easy as double clicking a helmet in an inn with a maxed out character. e.g. a set of 2 drakes trained to 90's skills can't take on a dragon on their own (and they use 4 control slots!), whereas a henchmen could. Just seemed unbalanced to me.

here are the changes we did. i don't take credit for all the coding, i had help.
Post automatically merged:

glad to see constructive discussion on how to improve the systems in the game :)
 

Attachments

  • HenchmanArcher.cs
    5.2 KB · Views: 5
  • HenchmanFunctions.cs
    52.1 KB · Views: 4
exactly... that doesn't seem off to you? that a char with 7x gm skills and a few 60-70's skills with a total of 3000 could only have a henchmen with 30 skills? the system works find the way odyssey was, but if the skillcap goes up considerably then it then becomes impossible to have a henchman with usable skills.
I think you are confusing the numbers. 3000 skill points in the code means 300 skill points in the game. WizardTim mentioned this part. So if your character only has this...

Swords 100
Tactics 100
Healing 100

Then the henchman will have 30 skill points for each skill. Yes...that looks "off" but the game doesn't work that way. Nobody just has a character with 3 skills set at 100. They have other skills like Focus, Meditation, Anatomy...stuff like that. Once they GM 10 skills (which is 10,000 points in the code and 1,000 in the game), then their henchman will have 100 skill points for each skill...which is the max a henchman can get from the code shown.
 
yeah, i set it to be based on stats only, that way it takes away the whole issue. if i got something wrong i'm glad to know it.

but the real OP issue is the healing (bandages per gadget above) and how often its called on. also, as they get stronger, they should be more control slots to be fair and all....
 
yeah, i set it to be based on stats only, that way it takes away the whole issue. if i got something wrong i'm glad to know it.

but the real OP issue is the healing (bandages per gadget above) and how often its called on. also, as they get stronger, they should be more control slots to be fair and all....
You are only allowed 2 henchman at a time.
 
just preferences at this point - i considered it too op to have an instantaneous super levelled pet without having to train it any. we've added the squires system in parallel to henchmen, they have a lot more functions and require a bit more work to train up/equip.

differences are what makes the world stronger, so i'm happy if you want to keep as is, i'm not looking to discredit odyssey in any way, just improving it how i think best.

:D
 
I'm glad to see that djeryv implemented a way for bandaging henchmen to be delayed and limited, as they were really too OP as it was... i like his implementation, however will be keeping ours, even though it uses a timer.

On a side note, we have a major project going on in the side with some players of the server - one of the players is working on a casino room addition to the inn, and we will be adding all sorts of gambling games (poker, etc) and even a chicken fighting betting system. excited for this change i think it will be a great addition to the game.

I am also working on major map changes (long work) to bring in some features from the UO outlands map. this means new art (they have really amazing custom art like large one-item trees, new statues, floors, etc. I think this will really help the server. its long work so will take a week or so.

Again, if anyone wants to play the game without having to worry about updating, join us on the server! just download the june09 client and bob's your uncle.
 
latest changelog for the server (to let everyone know what we're working on)

June 11
- Mages now sell a special item: Linked Gates!! These two gates will allow you to move freely (without penalty) between each other, but are only effective within a facet/world. They are sold at mage vendors.
- All Guild vendors now sell MUCH higher quantities of goods... ingots, cloth, regs, you name it. you need to be a memeber of that guild to buy from the guildmaster vendor... but it might be worth it! Select items are also cheaper at the guildmaster.
- reduced the gaining rate of focus/mediation by a factor of 4. was way to fast before.
- fixed issue where classicuo would show a notile for a brazier that was not lit.
- persons who are over 90% in hunger and thirst will receive a 10% well fed bonus to skill gain chances
- tamables who are trained over level 25 will now have a chance to lower their control slot rquirement by 1 control slot (as long as it is above 2), and all tamables who reach level 50 will loose a control slot requirement. Training and breeding a tamable to level 50 is very difficult, however if someone spends this much time with a tamable they will find that controlling them is much easier.
- introduced monster nests, these items spawn enemies until they are destroyed- will start populating them around the lands and add a different mechanic to the way dungeons work.
- skillgain was a bit too easy, so tweaked the skill gain factor for a few skills to adjust the rate of gain.
 
June 14
- thanks to some amazing constructive and positive feedback given by WizardTim, we have now made it so any style of play will have unlimited skillcap. Thanks for bringing that to our attention WizardTim!
 
i always felt the underworld was a bit empty, its just a big area with spawn... and i always loved the OSI termur... so with this in mind
1592325649040.png

we will be porting the spawners / npc's etc from the old underworld to termur, as well as adding completely new mobs and quests.
this will take some time, but in the end we will have a much more detailed map and a lot more content added in.
Post automatically merged:

You remind me of a school child laughing at other children's project in class wizardtim.
It's a valid tactic to bring others down and spit on someone else's project, if you're 8 or 9 years old.

:\
 
Last edited:
- The animal broker can now appraise a pet's value and purchase pets based on a complex calculation that takes into account a pet's maxdamage, resistances, stats, hits, tamingskill required and control slots required. youc an use this to compare two of the same types of pets against each other. required some complex math, Wizardtim would be proud of me.

equation is now
double resistances = ( ((double)pet.PoisonResistSeed + (double)pet.PhysicalResistanceSeed + (double)pet.FireResistSeed + (double)pet.ColdResistSeed + (double)pet.EnergyResistSeed) / 350.0 );

double petprice = ( ( ( ( (pet.RawStr + pet.RawDex + pet.RawInt + pet.HitsMax) * pet.DamageMax) / 10 ) * (pet.ControlSlots / 1.25) * ( pet.MinTameSkill / 100 ) * resistances ) / 1.35 );
 
While dawn of uo/ odyssey is indeed a classic masterpiece, and there is no doubt it's existence has pushed ahead the bounds of what many have ever thought was possible (code/technology wise) ... as a community of uo loving brittanians we have the responsibility to keep progressing this tech and code and adding on to the story(s), quests, ect. In a meaningful way. Having said all that, many thanks to the creator and his friends for the many years of playtesting and development, as well as many thanks to the dev's,admins,the players, and everyone who continues to contribute to our community in anyway. My appeal is to everyone with a voice or a good thought to improve uo, and odyssey... speak up and be heard. I for one have many ideas and have seen many additions to the code that could perhaps benefit OUR OVERALL ODYSSEY!!!!! , may almighty God watch over you all and keep you close ,wherever you may journey and through all your endeavours. greenman/mibhunter- over
 
The one bad thing that this project did is that I can't find the energy to play on freeshards anymore because this is a lot more fun. Hope it keeps being updated for a long time!
 
Hey Helton! I'm gonna be a broken record: join us on our server!

The server has TONS of updated things, i just added 500+ items which ill be adding to the loot tables soon. just did a major revamp of widow's keep and i try and add lore to the server based on what the players are doing. for example, a player went to the pit and killed all the reds... so the reds trained up and put a statue commemorating the massacre.

I just received a new verison of the gauntlet too which i am busy adding this morning. the server is the place to be my friend - all changes will be reflected offline, but i'm keeping offline updates to once a month.

Also, we have a discord where we talk about adventures, i can send invite
 
wizardtim had the wonderful thought of rating this resource one out of 5 stars. anyone who is using it and enjoying it might also want to leave a rating ... :D
Post automatically merged:

discord invite sent privately!
 
wizardtim had the wonderful thought of rating this resource one out of 5 stars. anyone who is using it and enjoying it might also want to leave a rating ... :D
Post automatically merged:

discord invite sent privately!

Can you please send an invite here as well? Thanks!
 
Latest changes which are currently live on the server:
Post automatically merged:

June 14
- thanks to some amazing constructive and positive feedback given by WizardTim, we have now made it so any style of play will have unlimited skillcap. Thanks for bringing that to our attention WizardTim!
- Casino is now open! Look for the door from the Inn - we will be adding games as time progresses
- sarth library now has usable bookshelves to store books in! IT's a great place for us to collect all the books int he game and create a public library
- The animal broker can now appraise a pet's value and purchase pets based on a complex calculation that takes into account a pet's maxdamage, resistances,stats, hits, tamingskill required and control slots required. you can use this to compare two of the same types of pets against each other. required some complex math, Wizardtim would be proud of me.
- Corpses will now no longer have weight limits (dump you crap in them when in a dungeon please!)
- tweaked reds to make them more challenging (again) - blues as well
- revised widdow's keep to make it more challenging... zombies are now more dangerous.
- zombies can now drop a special unique armor set
- Added a compeltely new revised Monster Gauntlet in Ambrosia! Has menus now, allows you to pick which spawn you want, and had some special rewards if you're locky. It also keeps a tally of all persons who complete the gauntlet (score and time to complete). Also, you can't die playing the gauntlet - you just teleport out, so try it!
- added studybooks and original OSI books to the librarian searches.
- completely revamped librarian drop rates. as it was before, a powerscroll had the same chance of being found as a magery spellbook :/ now, rewards have different difficulties.
- changes were made to the way the AFK command works! Instead of the bland *is AFK[TIME]* message you see now, you will now see a randomized sentence. Also, gaining a skill will now remove the AFK status. If youre macroing, the player is doing an action :)
- Changes were made to begging! You can now received up to 600gp a shot from begging, and the amount is determined by you LACK OF karma/fame... the closer you are to 0 fame/karma the more likely you are to get 600gp. ALSO.. you can now beg other players!! and if they have gold, they will give you some on a successful check!
- Minotaur labyrinth spawns now have a special effect to counteract persons who use the maze hedges in order to not get hit a single time by any of the monsters, minotaurs have a chance of dropping item bless deeds, and slayer stones.
- The virus at widow's keep may now go airborne (wear a mask!),
- Carving a red's body should now no longer cause karma loss
- changed how tamables follow you... they used to stop when out of sight range and you had to double back and get them... this should now be dramatically improved.
- Trash barrels will now "talk trash" when you put an item in them! Try it out! They will say randomized insults to brighten up your day.
- fixed an issue where dynamicbooks spawns empty
- changed how stealth attacks damage was calculated... in odyssey they can do up to 4x damage at gm hiding and stealth. at 60 damage (with damage increase) this can result in 240hp hits, on top of weapon abilities and spells like enemy of one in chiv. reduced this to a random range now between 133% and 240% damage.
Post automatically merged:

example of random trash talk
1592840714292.png
 
Last edited:
- thanks to some amazing constructive and positive feedback given by WizardTim, we have now made it so any style of play will have unlimited skillcap.
I am not sure where this came from, but I wanted to pop in here to mention something. The reason WizardTim knows what is going on with me is because he works for the same company I do. This week I am in the home office so I stopped by his office to chat for a bit. To cut to the end of the story, I suggested he stop coming to this site and to just call my cell when he finds an issue to fix. He won't be trashing your posts anymore.
 
I am not sure where this came from, but I wanted to pop in here to mention something. The reason WizardTim knows what is going on with me is because he works for the same company I do. This week I am in the home office so I stopped by his office to chat for a bit. To cut to the end of the story, I suggested he stop coming to this site and to just call my cell when he finds an issue to fix. He won't be trashing your posts anymore.
Just reply to say hello Djeryv hope you all good.
Post automatically merged:

Is it ok to open a public live server on this? since yours is private?
Or maybe I can play if you invite? I mean I dont want to be competition if you even care for that
 
Just reply to say hello Djeryv hope you all good.
All is good and hello again.

Or maybe I can play if you invite? I mean I dont want to be competition if you even care for that
This isn't competitive. It is just a pocket-universe "Ultima Online" for everyone and anyone so get the version you want and run with it if you really want your own server. That is what these are here for.
 
I am not sure where this came from, but I wanted to pop in here to mention something. The reason WizardTim knows what is going on with me is because he works for the same company I do. This week I am in the home office so I stopped by his office to chat for a bit. To cut to the end of the story, I suggested he stop coming to this site and to just call my cell when he finds an issue to fix. He won't be trashing your posts anymore.

someone rated the resource 1 stars out of five. im sorry but only one person has been on my case and that's tim... so it was a reasonable assumption to think that the negative review was his. if it is not, i am happy to apologize.
 
Just reply to say hello Djeryv hope you all good.
Post automatically merged:


Or maybe I can play if you invite? I mean I dont want to be competition if you even care for that

I'll pm you!

Can't stop you from doing whatever you want with the freely available package my friend!

That's being said, if you're interested in playing with others you should join us. we have about 8 consistent players now and if anyone wants to participate in the development we are happy to have you (just have to get to know you first!)

We have completely redone the underworld map and are currently porting all Odyssey underworld content to this new map. the map will also include large areas which will provide ample room for more content to be added.
Post automatically merged:

1593005324155.png

here's an example of what the new map will offer...
1593005387537.png
 
Last edited:
Well!!! Doom gauntlet went live today on the server! The gauntlet runs good, and all loot has been updated, so doing the gauntlet should be quite rewarding.

Also, the dark father now brings a curse to the world, which all players can help fight by killing evil beings throughout the lands! the curse grows each day, and killing an evil being reduces it.

Also, a new type of item has been introduced: morphing armors that allow you to take on the power of the enemies they comes from, and their form. Each morphing armor has a special ability based on the mobile that spawns it. these are extremely rare, but quite fun to play! Ravage enemies as a Minotaur, or even as the dark father himself! This is a series of items based on megabosses that i will be expanding on going forward.

It's live on the server, but Soon come to the offline people! We are also mostly done populating the new underworld, with a new city populated by drow elves to service people who live there.

Lots to come - the new map will also be continually added to, as there is lots of room for new content now - the entire ilshenar map content has been condensed into a smaller area based on the termur map.

1593296266125.png

1593296286604.png
 
Finaltwist updated Ultima Adventures - Based on Ultima Odyssey with a new update entry:

new underworld update

here is the latest copy of the server that we are currently playing on, for those who want to integrate into their offline servers, or just test out things in order to help implement new features. Note that I've moved away from the C:\uo folder, and instead just extract the ultima-adventures to the c:\ drive and you should be good to go.

The server has grown, and players contribute to the development daily, so much that's here still has to be ironed out and improved. it is very much a...

Read the rest of this update entry...
Post automatically merged:

posted the latest server/client - uploading now.
note that if you don't use the save provided much of the content won't be there and will need to be added manually. if you want to do this i can help here.
also note that my main focus is on updating and improving the game as it is on the server for the players there... the update is just a copy of the server.
 
Last edited:
so ive been putting my head down and cruching numbers for the last 2 days. we've implemented a "dark father curse" which affect gate/recall travel as the dark father corrupts the aether. turns out that killing negative karma enemies reduces his hold on the land, and the curse, giving players a direct way of affecting the curse itself.

the release sent to the offline server had many bugs which have been fixed, but i also didn't like the idea of increasing the curse by a fixed amount every day... soo.... i put my head down and came up with a dynamic curse calculation that takes into account 3 day moving averages and the rate by which the curse went up or down. In other words, if NO ONE kills a monster for a few days, the rate of change will even to 0, and if the curst goes up by too much, the curse level might actually decrease to help the players out. The system is much more dynamic now - if players rock the house and kill tons of enemies, the rate of change of curse will increase to adapt to the players' activities.

After doing this, i realized i had implemented an investment bag that allowed players to earn interest on gold they put in. well... that also is a pretty bland dynamic... earning a fixed interest regardless of what goes on in the world... sooo... i put my head down and came up with an investment algorythm that takes into account the dark father's curse! If times are good and the curse is low, returns should be stable and good (the economy is doing well), but if times are dangerous and the curse is high, you might lose on your investment. Also, i made it so the higher returns are earned (if you are lucky) during times of high risk.

Here is how the investment is calculated for example:
C#:
// Checking on investments       
                Console.WriteLine( "investment check" );
                World.Broadcast( 0, true, "Investments calculated for the day!" );

                double risklevel = AetherGlobe.DoomCurse / 10000; // lower is better

                if (AetherGlobe.olddoomcurse != 0)
                    double rateofreturn = Math.Abs(( AetherGlobe.DoomCurse - AetherGlobe.olddoomcurse) / AetherGlobe.olddoomcurse) ; // how much did the curse change by?
                else
                    double rateofreturn = risklevel;

                double multiplier = 1;
                int randomize = Utility.RandomMinMax( 0, 3 );
                
                if (AetherGlobe.DoomCurse == 0) // things are good in the lands, investments will do well
                {
                    mutliplier *= 2;
                    if (AetherGlobe.olddoomcurse == 0 ) // two days in a row, jackpot!
                    {
                        multiplier *= 5;
                        rateofreturn = 0.5;  // since rateofreturn would be 0 from above
                    }
                }

                if (Utility.RandomDouble() > risklevel ) //random check to see if rateofreturn should be increased or decreased by the risk factor
                    rateofreturn *= 1 + ( 1 - risklevel);
                else
                    rateofreturn /= 1 + ( 1 - risklevel);
                
                if (risklevel > 0.50 && (Utility.RandomDouble() < risklevel) ) // what were people thinking??? investing when risk level was high?!?!?!
                {
                    if ( ( AetherGlobe.olddoomcurse - AetherGlobe.DoomCurse ) < 0 )
                        rateofreturn *= 5;
                    else
                        rateofreturn /= 5;
                    
                    if ( (AetherGlobe.olddoomcurse / 10000) > 0.50 && ( Utility.RandomDouble() < ( AetherGlobe.olddoomcurse / 10000 ) ) ) // was also risk yesterday! this person is putting his balls on the coals!
                    {
                        multiplier = 1; // resets multiplier
                        rateofreturn = 0; // loose it all
                    }
                    else
                        multiplier *= 20; // taking risks can have its rewards
                }
                else
                    multiplier *= 5; // taking risks has its returns!

                if (multiplier > 1 && rateofreturn == 0)
                    rateofreturn = 1; // lucky strike for taking risks during dangerous times
                    
                rateofreturn *= multiplier; // final result

                ArrayList bankBoxes = new ArrayList(); // start check on investments
                foreach( Item bb in World.Items.Values )
                {

                    if ( bb is BankBox )
                    {
                            bankBoxes.Add( bb );
                    }
                }

                foreach( BankBox ibb in bankBoxes )
                {

                        double interest = 0;
                        int interestint = 0;
                        
                        foreach( Item item in ibb.Items )
                        {

                            if( item is InterestBag )
                            {
        
                                List<Item> ItemsInBag = item.Items;
                                for( int z = 0; z < ItemsInBag.Count; z++ )
                                {
                                    Item inBag = ItemsInBag[z];

                                    if( inBag is InvestmentCheck ) // found an investment, make the changes!
                                    {
                                        if (rateofreturn == 0)
                                            ((InvestmentCheck)inBag).Worth = 0; // lose it all
                                        
                                        interest = ((InvestmentCheck)inBag).Worth * ( 1 + rateofreturn );
                                        interestint = Convert.ToInt32(interest);
                                        
                                        if ( (AetherGlobe.changeint > 0) && interestint >= 1)
                                        {
                                            ((InvestmentCheck)inBag).Worth += interestint;
                                            //LoggingFunctions.LogInvestments( m, interestint, true );
                                        }
                                        if ( (AetherGlobe.changeint < 0) && interestint >= 1)
                                        {
                                            ((InvestmentCheck)inBag).Worth -= interestint;   
                                            //LoggingFunctions.LogInvestments( m, interestint, false );
                                        }
                                        
                                    }
                                }
                            }
                        }
                }           
                Console.WriteLine( "rateofreturn was" + rateofreturn + " and doomcurse was " + AetherGlobe.DoomCurse );               
//end

i inked this to the daily task manager djeryv put up, so it runs daily.

also, the taskmanager daily ran either every 24 hours, or whenever the server was restarted... i found that if i restarted the server many times a day, i would be running the daily tasks multiple times a day. I therefore added a simple "datelastrun" variable that the system checks before running the daily tasks. This way the tasks are only run once a day regardless how many times i restart, or if i leave the server up.

this is all on server, not on the offline package.
Post automatically merged:

Also, as an added bonus, ive made it so negative karma characters have a MUCH LOWER chance of suffering the dark father's curse. HE is evil after all and so is a negative karma character. to make things fun, i also made it so killing a POSITIVE KARMA mob HELPS the dark father's curse increase! Now, negative karma characters can make things harder for the good guys by killing positive karma mobs (purple mobs, etc)

hence begins the war between good and evil....
 
Last edited:
Finaltwist updated Ultima Adventures - Based on Ultima Odyssey with a new update entry:

July 03 version

Hi all, i know it' only been a few days since my last post here, but there have been some major changes in teh server and i thought it warranted an update to this release. The release includes a number of different elements - namely around the evil curse taking over the land.

- the math has been reworked and works much more as intended now - when players fight evil evil fights back
- there is an investment bag which allows you to invest your money - be careful as the investment returns...

Read the rest of this update entry...
 
I find that the new evil curse mechanic is really quite interesting - UO is in essence a game of good vs evil, and I really felt like the only thing missing from the game was a sense of "epic adventure". Instead of focusing on loot and artefacts, i felt the game should have something more for players to aim for. The evil curse mechanic does that to some degree. Now, an evil has taken over the lands - its up to whoever is playing to fight it, or help it.

I tied in the evil curse "risklevel" to many game systems - monster HP (the more evil in the lands, the harder the monsters), mob gold drops (the harder the monsters, the more gold they drop), NPC prices (the lower the evil, the better the economy and the lower the prices).

We are also looking at tying it into the random encounter system which randomly spawns mobs based on where you are/time of day etc. We want to make it risky for someone to travel off the roads, we want to add an element of surprise to the game that keeps players on their toes. People love the random blue/red mobs that act just like player characters. They say it keeps the game feeling alive - that's important for a low population/solo game.

I hope that the evil curse plaguing the land will bring a new mechanic to the game and give it a sense of epic adventure. A player can choose to help the evil or fight it, with benefits and drawbacks to both approaches. going forward, the evil curse can be tied into any game system - luck for example, cast success, skillgain success, etc. At high evil, a negative karma might gain skill easier, or a good character might gain easier when evil is low.

I am still tweaking the evil curse change rate. its a complex system now that remembers past success or failure in fighting the evil and adjusts the change rate accordingly.
 
hmm... the client crashes?
no one on the server has had this issue... try logging on to the server and trying to talk to him there?

also, we used to have many npc conversation based crashes, are you running the latest version?
 
hmm... the client crashes?
no one on the server has had this issue... try logging on to the server and trying to talk to him there?

also, we used to have many npc conversation based crashes, are you running the latest version?

Yes, i'm running version 03/07/2020. It chrashes when I ask for exploration, Victories, Gossip, and recent deaths. It seem to work when i ask for deeds or murder (first and last option).
 
hmm! I'll pass it around to see if there's a particular issue.

I am currently working on a new dungeon below the widow's keep, with a quest and very unique champ spawn
Post automatically merged:

It's not just me! there are a few people working on the server - not sure if they want to be named or not but it is very much a team effort.

also, if you both want to contribute... we are looking for new lore (books, etc) for the various elements of the game... write something and i'll add it!
 
We just added a brand new themed dungeon to the new underworld map: the Widow's Lament - located under the widow's keep, the widow is a new champ spawn that has newly added mechanics (damaging aura) and other features which should make her a unique challenge. Also, she is guarded by a veritable army of contageous zombies (including two new types). however, a mysterious individual might be able to help you walk by the zombies unnoticed... 1594257177411.png

The quest adds an entirely new mechanic to the game for you to be ignored by the zombies. it should add some interesting dynamics to the dungeon (which i've never seen elsewhere).

Live on the server, not in the offline package.
 
Back