Ultima Adventures -  A full featured, content packed offline/online server

Ultima Adventures - A full featured, content packed offline/online server 1.11

No permission to download

AlishaNies

Citizen
I have been trying out this wonderful world, but have a question - does cotton even respawn? I have seen people recommend farming it for early gold, but after gathering it once it doesn't seem to grow anymore even after 12 hours of real time.

Also, what's the use for silver/bronze coins? Don't remember them even being in base game.
 

Finaltwist

Squire
hehe... you're going to have a ton of questions. Why don't you join the discord in the resource page? that's why we have it :)
 

Finaltwist

Squire
just putting this here - a player on the server has told me about an incredibly game breaking exploit with shoppes. I've had to balance shoppes quite a bit but this exploit was basically unlimited gold in 2-3 minutes. Fixed on server - just putting this here for anyone else who might be running odyssey/etc.
 

WizardTim

Citizen
It is incredibly nice of you to tell Adventures players that there is a big exploit in the game they downloaded, told them that you fixed yours, but didn't bother to tell them how to fix theirs.
 

Finaltwist

Squire
yes, i don't want to spread exploits, anyone can pm me. Say for example you were playing an odyssey server with djeryv, and you read the exploit here and then went on the server and got millions in a few mins, im sure djeryv wouldn't be happy. any game admins can pm me.

Actually here, ill tell you if you try UA again and re-rate that off-handed and despicable 0 star rating you gave. Don't talk to me about being nice.

Hah ;)
 

WizardTim

Citizen
Nice try. Djeryv doesn't run a server that I know of, and I never played your server to leave a rating. I am simply pointing out your behavior of taking things from others but not willing to give back. I am sure the gaming community appreciates your ethics. But hey, it is another way to social your media for sure. "Join the discord for this latest bug fix" "PM me for the latest bug fix" "Create a forum account to get the bug fix" because people just love making account for every platform. But I guess they can wait a few months for your next update where they have to wipe their current game out and start all over again, because of this really huge game breaking gold duping bug. At least you share with the UO emulation community when it is convenient for you.
 
Last edited:

Finaltwist

Squire
I figure I don't need to explain the exploit here, just post what i did to fix it. note the fillorder in customers.cs
I also added the feature where players can earn skill from completing shoppe orders (why not, its a great way to train up a skill)
Code is below

C#:
        public static void FillOrder( Mobile from, BaseShoppe shoppe, int customer )
        {

                string cust = "";
                if ( customer == 1 ){ cust = shoppe.Customer01; }
                else if ( customer == 2 ){ cust = shoppe.Customer02; }
                else if ( customer == 3 ){ cust = shoppe.Customer03; }
                else if ( customer == 4 ){ cust = shoppe.Customer04; }
                else if ( customer == 5 ){ cust = shoppe.Customer05; }
                else if ( customer == 6 ){ cust = shoppe.Customer06; }
                else if ( customer == 7 ){ cust = shoppe.Customer07; }
                else if ( customer == 8 ){ cust = shoppe.Customer08; }
                else if ( customer == 9 ){ cust = shoppe.Customer09; }
                else if ( customer == 10 ){ cust = shoppe.Customer10; }
                else if ( customer == 11 ){ cust = shoppe.Customer11; }
                else if ( customer == 12 ){ cust = shoppe.Customer12; }

                int taskGold = 0;
                int taskTools = 0;
                int taskResources = 0;
                int taskDifficulty = 0;
                
                    taskGold = Convert.ToInt32( Server.Misc.Customers.GetDataElement( cust, 4 ) ); //FINAL payout is in customers.cs
                    taskTools = Convert.ToInt32( Server.Misc.Customers.GetDataElement( cust, 5 ) );
                    taskResources = Convert.ToInt32( Server.Misc.Customers.GetDataElement( cust, 6 ) );
                    taskDifficulty = Server.Misc.Customers.GetChance( Server.Items.BaseShoppe.GetSkillValue( shoppe.ShelfSkill, from ), Convert.ToInt32( Server.Misc.Customers.GetDataElement( cust, 7 ) ) );
                    

            if ( (taskDifficulty <= 0) || (shoppe.ShoppeTools < taskTools) || (shoppe.ShoppeResources < taskResources) || (( shoppe.ShoppeGold + taskGold ) > 100001) )
            {
                if (from.Alive)
                    from.Kill();
                
                from.SendMessage( "CHEATING IS NOT ALLOWED HERE. " );

                shoppe.ShoppeTools = 0;
                shoppe.ShoppeResources = 0;
                shoppe.ShoppeGold = 0;

                return;
            }




            string client = shoppe.Customer01;

            if ( customer == 1 ){ client = shoppe.Customer01; }
            else if ( customer == 2 ){ client = shoppe.Customer02; }
            else if ( customer == 3 ){ client = shoppe.Customer03; }
            else if ( customer == 4 ){ client = shoppe.Customer04; }
            else if ( customer == 5 ){ client = shoppe.Customer05; }
            else if ( customer == 6 ){ client = shoppe.Customer06; }
            else if ( customer == 7 ){ client = shoppe.Customer07; }
            else if ( customer == 8 ){ client = shoppe.Customer08; }
            else if ( customer == 9 ){ client = shoppe.Customer09; }
            else if ( customer == 10 ){ client = shoppe.Customer10; }
            else if ( customer == 11 ){ client = shoppe.Customer11; }
            else if ( customer == 12 ){ client = shoppe.Customer12; }

            int difficulty = Server.Misc.Customers.GetChance( Server.Items.BaseShoppe.GetSkillValue( shoppe.ShelfSkill, from ), Convert.ToInt32( Server.Misc.Customers.GetDataElement( client, 7 ) ) );

            int tools = Convert.ToInt32( GetDataElement( client, 5 ) );
            int resources = Convert.ToInt32( GetDataElement( client, 6 ) );
            int fame = Convert.ToInt32( GetDataElement( client, 8 ) );

            if ( difficulty >= Utility.RandomMinMax( 1, 110 ) )
            {
                from.PlaySound( 0x2E6 );
                from.PlaySound( shoppe.ShelfSound );

                int gold = Convert.ToInt32( GetDataElement( client, 4 ) );

                shoppe.ShoppeReputation = shoppe.ShoppeReputation + fame;
                    if ( shoppe.ShoppeReputation > 10000 ){ shoppe.ShoppeReputation = 10000; }

                shoppe.ShoppeGold = shoppe.ShoppeGold + gold;
                    if ( shoppe.ShoppeGold > 500000 ){ shoppe.ShoppeGold = 500000; }
            }
            else
            {
                from.PlaySound( from.Female ? 812 : 1086 );
                from.PlaySound( shoppe.ShelfSound );
                int gold = Convert.ToInt32(GetDataElement(client, 4));

                shoppe.ShoppeReputation = shoppe.ShoppeReputation - fame;
                    if ( shoppe.ShoppeReputation < 0 ){ shoppe.ShoppeReputation = 0; }
                shoppe.ShoppeGold = shoppe.ShoppeGold - gold; //Sygun - Compensation for failing the job
                    if (shoppe.ShoppeGold < 0) { shoppe.ShoppeGold = 0; }
            }

            shoppe.ShoppeTools = shoppe.ShoppeTools - tools;
                if ( shoppe.ShoppeTools < 0 ){ shoppe.ShoppeTools = 0; }

            shoppe.ShoppeResources = shoppe.ShoppeResources - resources;
                if ( shoppe.ShoppeResources < 0 ){ shoppe.ShoppeResources = 0; }

            RemoveEntry( shoppe, customer );

            int poolofsnot = 1;

            if (difficulty <= 25)
                poolofsnot = 1;
            else if (difficulty <= 50)
                poolofsnot = 3;
            else if (difficulty <= 75)
                poolofsnot = 6;
            else if (difficulty <= 100)
                poolofsnot = 10;
            else if (difficulty <= 110)
                poolofsnot = 11;

            while (poolofsnot > 0)
            {
                poolofsnot -= 1;
                Server.Items.BaseShoppe.ProgressSkill( from, shoppe, difficulty );
            }
        }
 

Djeryv

Squire
I figure I don't need to explain the exploit here, just post what i did to fix it. note the fillorder in customers.cs
I also added the feature where players can earn skill from completing shoppe orders (why not, its a great way to train up a skill)
I think I see what is going on here. I'll let Chris know. If it is doing what it looks like it was doing then good fix.
 

Finaltwist

Squire
This is an exploit for any gump-based system, if the check isn't made in onresponse (if it relies on a button showing or not showing)
 

Finaltwist

Squire
Adding more Flavor to the world.

I was sitting one evening remembering with fondness the good old days of Muds (text multiplayer dungeons). I found myself looking at a few websites from muds still operating since the early 90's... 30 years of online presence. I studdenly felt the need to immerse myself in one, to see if i still get the same feeling.

Oddly enough I did! The text opens the imagination, hints at what is around the corner, leaving everything up to you to create in your own mind. Graphic games have removed this... we enter now, we see what is around, but it feels... bland compared to a mud's description.

With this in mind, I decided to add a new texttile to Adventures that displays flavor text when a player enters a new area. I felt Djeryvs clues tiles were a great tool and were really underused in the game so made a few tweaks to them. You can now place them anywhere, add 3 different text strings and itll pick randomly from the 3 and display above the player's head. I added a few of these to the world, and lo and behold, I got that very same feeling from the text-only mud, but in UO!

For example, here is my character approaching an inn

1632645400079.png

Ah... lovely UO graphics. That's nice, but i felt something was missing... see how different the scene looks with a bit of flavor text.

1632645511228.png

I started populating one dungeon... hinting at previous inhabitants, wondering at some decor or book left behind, or adding hints of sounds coming from the walls. The entire experience of walking in the dungeon feels more alive, deeper.

I'll be populating dungeons as i go, and hoping that other GMs on the server do the same. These little tiles are an easy add to the game, but do wonders in adding flavor to the game, and bringing back those good old days of text-adventuring.
 
Last edited:

ETsCat

Citizen
OK apparently I got in your Adventures shard. trained, died, and now can't log back in.
Adventures 74.91.120.104
OK apparently I am in "my own server."
looks like people running around, but only way I could get in was redirect
If I am admin, what is the command setup
If I am admin, what is the command setup
 
Last edited:

bonjeemon

Citizen
I have been trying out this wonderful world, but have a question - does cotton even respawn? I have seen people recommend farming it for early gold, but after gathering it once it doesn't seem to grow anymore even after 12 hours of real time.

Also, what's the use for silver/bronze coins? Don't remember them even being in base game.
the cotton respawn does take a while, if your playing offline it should be i think every 4 hours that the server is running i think, so if you shut down between sessions its potentially warping the time it takes

online most of the cotton fields are a bit hotly contested by newer players and aspiring tailors so they can be bare alot of the time

both coin types can be put into the bank and double clicked to turn them into gold, additionally silver coins are used to power spikes (balence point harvesting engine's) and copper is used to power harvesters (auto resource gathering engins)
 

beyonda

Citizen
it sounds awesome but i have a problem. starting server is not problem but when i clicked classicuolauncher or its for 64bit client, it crashes, don't open and when i look in crash report it says "xna framework graphics no suitable graphics device exception: could not initialize opengl / GLES library. i have ati radeon x1600 with catalyst (and opengl support), 64 bit win7 and framework 4.8... please help me guys :(
 

bonjeemon

Citizen
it should all open and run out of the box as long as your useing a Windows based os, if your not linux needs some extra steps to get it working

if you are and its in c:\ultima-adventures the issue is either a probelm with the extraction (sounds stupid i know but have seen lots of weird errors from this, delete the folder and maybe redownload, then re extract from scratch)

if it still doesn't work then your missing some kind of dependancy, or are trying to run the game on a system that doesn't have a compativlble, or otherwise properly working card or a bad driver ( like a virtual machine potentially, or some random custom tweaked driver)

try on an alternative device if you have q second computer handy etc
 

Elf

Citizen
The easiest way to just start playing is basically to download the package, extract it to C:/, and run "Runme Option 2 - ClassicAssist Launcher", make sure you have Adventures selected and just hit start. Should be able to log in and just play.
 

Finaltwist

Squire
The easiest way to just start playing is basically to download the package, extract it to C:/, and run "Runme Option 2 - ClassicAssist Launcher", make sure you have Adventures selected and just hit start. Should be able to log in and just play.
thats how it should work yeah, but some people have different computers, etc.

ive been taking a break from coding, so mostly just bugs, crash and fixes in the last week or two. I have spent a few hours adding flavor text (using texttiles) to the world, and someone volunteered to populate the townspersons speech database, so still making progress :)
 
  • Love
Reactions: Elf

beyonda

Citizen
server is working but when i launch classic assist launcher -2 and select adventure shard "an error occured sending request" message showing and client screen remains black. in back years i've tried this solo work before, in different projects. and i failed again and again.i guess i never play solo this game :(
 

Elf

Citizen
Can you post a screenshot of your launcher settings? Maybe we can figure it out.
 

Attachments

  • Classicuo Launcher profile example.JPG
    Classicuo Launcher profile example.JPG
    44.1 KB · Views: 4