Resource icon

Ultima Odyssey 2019-03-12

No permission to download

Djeryv

Well-Known Member
Oct 2, 2014
287
34
Djeryv submitted a new resource:

Ultima Odyssey - A Complete Multi-Player Adventure Game

GETTING STARTED

Extract the package to your C:\ drive. This should create a C:\UO directory. Within this directory, you should have a folder for CLIENT, DATA, INFO, SAVES, and SCRIPTS.

Again, these should go onto your C:\ drive unless you change the data path in the script "DataPath.cs".

If you do not want to put the files where I recommend, then place them where you want them and then move onto the next step.

Open your "DifficultyLevel.cs" script and scroll to the bottom. Make any...
Read more about this resource...
 
  • Like
Reactions: Wanderer

Djeryv

Well-Known Member
Oct 2, 2014
287
34
There is an issue with a magic item crashing when you pick a non-item. Here is the replacement script and it is in the main package as of right now.

Also, go into your INFO folder and delete the "settings.cfg" and "rev.txt" files because it isn't used anymore. It is now removed from the main package as well.

Attached is also a zip file that contains some scripts you can overwrite on your system if you want. These change the looms and spinning wheel mechanics so you will now spin the entire wool, flax, or cotton all at once. Then when you use thread or yarn on the looms, they will be all used up at once and you will get the appropriate amount of cloth bolts where the excess will remain on the loom as before. I think since people use Razor to macro this stuff, I might as well make it all automatic.
 

Attachments

Last edited:

FaceMelter

Well-Known Member
May 31, 2014
79
5
38
Shard Name
Altima
I've noticed an error that pops up randomly on the server. It's not causing crashing or anything.
Code:
Defined Color Mismatch For Search: obsidian copper!
 

Djeryv

Well-Known Member
Oct 2, 2014
287
34
That is a warning system in case I had a typo somewhere...and you found it.

Open StoneGargoyle.cs and replace "obsidian copper" with "obsidian".


I also have an optional music patch that is part of my main package. Basically you download the zip file below. Then you delete your "Client\music" folder and put the "music" folder (from the zip file) into your "Client" directory. Then you will have 2 different directories of "Digital" and "DigitalNew". If you want to have your game play newer music (music from various fantasy games in the late 90's and such) then rename the "Digital" folder to "DigitalClassic" and then rename the "DigitalNew" to "Digital". When you start the client, you will have different music. Rename them back to switch back to the classic Ultima Odyssey music.

LINK TO MUSIC PATCH
 
Last edited:

FaceMelter

Well-Known Member
May 31, 2014
79
5
38
Shard Name
Altima
Awesome! Worked.

Thanks for the Music too! I'll try them out and see what it's like!
 

Djeryv

Well-Known Member
Oct 2, 2014
287
34
A dirty waterskin, you find in dungeons, should only provide a drink of potentially dirty water and then give you an empty flask you can fill with clean water. This wasn't the case as it gave you a flask of "full" clean water after drinking it. The script fixes that.

I also changed my scripts here to lower the breath damage scalar from 1.0 to 0.35 because their thrown boulders were instantly killing a new character with very little armor. Just a tweak in case you want to make them as well.

AbysmalOgre.cs
ArcticOgreLord.cs
Ogre.cs
OgreLord.cs
TundraOgre.cs
Neanderthal.cs
ArcticEttin.cs
Ettin.cs
BombWorshipper.cs
Psionicist.cs
ExcavationDroid.cs
MaintenanceDroid.cs
SecurityDroid.cs
ServiceDroid.cs
 

Attachments

Last edited:

Djeryv

Well-Known Member
Oct 2, 2014
287
34
Someone saw the recent drama on another thread about AOE spells not working right, so they sent me their fix for some of the AOE spells and effects in the game. This was hard to pin down for me as some of them work where some did not.

Open up SpellHelper.cs and change line 412 to have this....

return (noto != Notoriety.Innocent || from.Kills >= 1);

Turns out it was some old code in the script that was used during testing. I tried this fix and did a Holy Light on some skeletons and they were all hit with the spell (well...those within a few tiles anyway). I don't think I would have found this one line problem. Thanks to that person (they are actually a RunUO.net user and they just lurk here).
 

FaceMelter

Well-Known Member
May 31, 2014
79
5
38
Shard Name
Altima
Thanks again for continuing to support and provide fixes as they come up. There are plenty of us here that really do appreciate it!
 

WizardTim

New Member
Mar 21, 2019
2
0
Hi. I had come up with the fix above some time ago and I am sorry I did not bring it up sooner. I thought it was unique to my server. When I saw the heavily misspelled rage post I remembered fixing it so I shared it with Djeryv.

I did upgrade my prior server to Ultima Odyssey and that went smooth. I had to change a few scripts but nothing major. One of the rage comments mentioned balance where I do not have the issues this rant portrayed. I cannot say that they are not there because if you play this in a power gamer way for hours and hours every day, you might get bored with it like any other game. You just go through it quicker and get your character super powered up.

I play this on and off and as just a local server on my computer. If you like a casual UO experience, or a single player role playing game style experience, this server does it very well. If you find it too hard, there are some easy settings that can adjust it for your preference. If you know enough about runuo scripting, you can really increase the difficulty or lower it. You just need to teach yourself how it works. Some things I saw that can quickly make this game harder or easier is:

1. Change the gold drop amount. This is a simple number you can raise and lower and it affects almost everything in the game. There is also a section to raise or lower the gold from quests. You can even change how much gold is needed for resurrection.
2. Change the monster difficulty. There is a section in BaseCreature that sets their difficulty based on the dungeon and there seems to be five levels. The 0 level is the starter dungeons. The 1 level is normal dungeons. They then increase after that. You can change these numbers to something else to tweak the monsters. When you first download and run this, the hardest level 4 category dungeons set creatures to Paragon levels for the most part. You will notice that this code avoids doing this difficulty modification to really hard creatures, probably to avoid making unbeatable foes.
3. Lower player hit points, stamina, and mana. This is a simple number you can raise or lower and it bases it on the player's strength, dexterity, and intelligence. For single player, the double amount set seems generous but I found myself still meeting my death at times. If you feel like you are not dying enough, then lower it.

This server is probably not for everyone due to its design on how the developer plays the game. He also makes it very clear in his write up on what this game is intended for. If it interests you at all, there is no harm to give it a try. The world is huge and there is much to do if you want to.
 

Djeryv

Well-Known Member
Oct 2, 2014
287
34
Thanks again for continuing to support and provide fixes as they come up. There are plenty of us here that really do appreciate it!
Thanks for the kind words. As I stated in my write ups, I don't want to have errors because I am actively playing this. I played for about 2 hours yesterday. I am not a RunUO expert and sometimes I can't figure out what a problem is, especially if I can't recreate it. I don't feel confident modifying source code so I stuck to modifying the scripts and client only. So as anyone can see in the various threads, I fixed almost everything ever brought up except for the one WizardTim helped with because I didn't know how to fix it. Any other issues using the word "balance" may or may not have been "fixed" because they are subjective toward the player's point of view and how they play the game. I might like the amount of damage a spell does, where someone else does not (for example).

Again, thanks for the help on this WizardTim. It was a simple one line that I didn't realize was the issue. It is sometimes refreshing to get fixes or suggestions from others instead of a barrage of misspelled words talking about balance when, as you stated so elegantly, can be customized by each individual that downloads this.
[doublepost=1553200460][/doublepost]I wanted to make sure that wands were diverse and random in name and material. There are 64 wands in the game and they randomly appear out of silver, gold, ruby, diamond, etc. I noticed that after a server reboot, the color is removed from these wands. It will still have a name like "Merlin's Ruby Wand of Fireballs" but it won't be red anymore. To fix this, go into BaseMagicStaff.cs and remove line 130:

Resource = CraftResource.None;

...and then your wands will retain their material color. It won't fix the wands that already exist, but future ones will be fine. Again, this is only the color that is affected as everything else about the wand is the same.
 
  • Like
Reactions: WizardTim

WizardTim

New Member
Mar 21, 2019
2
0
I noticed this but shrugged it off as my imagination because my wands still worked. I like these wands as almost every non-mage character I make I go looking for a wand of recall and a wand of mark. It really helps the non-mages travel easier. I still have to pay the wizards gold to recharge them though. Thanks for this.
 

Djeryv

Well-Known Member
Oct 2, 2014
287
34
Hmmm. I always went searching for a wand of magic reflection and a pocket full of diamonds.
 

Violet Joy

Member
Sep 29, 2018
8
3
client_patched.exe will connect and log in -without- razor (character creation to world login). Popup from server says it cannot negotiate whatever. (I want to use razor, by the way).

Using razor (as provided) with client_patched.exe, client sits at "verifying account" and RunUO.exe console reports client connects...then disconnects due to inactivity.
 

Djeryv

Well-Known Member
Oct 2, 2014
287
34
You are correct on what you wrote here. One would only use client_patched.exe if they want to play strictly with the UO client (no razor or steam needed). You can open the Assistants.cs file and set...

public const bool Enabled = true;

...to...

public const bool Enabled = false;

Then you don't need to worry about what type you use after that. No more pop up warning boxes that boot you out.

The one thing I wanted players to experience is the lighting as I designed the maps to have ambient lighting with well placed torches, candles, lamps, etc. Some monsters have an eerie glow to them. Usually when people play with Razor, they immediately turn on the light filter option but you lose the immersion as caves are dark and night time approaches. Also when you do this, anything related to night sight is useless. When you open up the Assistants.cs file, you will see that I blocked the light filter and the auto-open doors options. The auto-open doors isn't a big deal if players do that, but I did that because some doors are not true "doors" and thus will not open with this. So 99% of the doors will auto open but doors that need you to double-click so they can teleport you somewhere (banks, inns, taverns, etc.) will not work in this way. So in order to avoid confusion with players, I just blocked the feature altogether.

Now I have been using Razor Enhanced for a few days now (http://www.razorenhanced.org/) because I really life the FPS option it gives. My character runs much smoother looking with that on. Razor Enhanced is not like regular razor as that I cannot block anything from Razor Enhanced using the Assistants.cs file. I just don't use the light filter or door opener and enjoy the smoother looking frame rate. If you use the FPS in Razor Enhanced, I would recommend going into your client options and turning off the footstep sounds.

client_patched.exe will connect and log in -without- razor (character creation to world login). Popup from server says it cannot negotiate whatever. (I want to use razor, by the way). Using razor (as provided) with client_patched.exe, client sits at "verifying account" and RunUO.exe console reports client connects...then disconnects due to inactivity.
 

Violet Joy

Member
Sep 29, 2018
8
3
1. Notice in the background, Visual Studio, "Assistants.cs" is open. RunUO compiled with the very same file as it sits.
2. Ultima Online is launched via Razor, as provided in the distro. Razor has the "Options" tab selected to show "Negotiate features with server" check box.
3. "changeLog.rtf" show the changes I have made to the distro.
RazorNotWorking.png

4. Below shows Razor's settings for launching the above client.
RazorSettings.png

I have no other Ultima Online clients on my system. I really would like to play this distro as it is (minor get-used-to-it tweaks).
I'm fairly talented with computers and am considering adding debug code to the RunUO 2.1 source files to identify why the connection hangs (hence the uncompress).

I am running Windows 10 Home x64, directly executing "Razor.exe" and "RunUO.exe" as supplied by the distro.

------
When I disable assistants (set 'Enabled' to false), I execute "patched_client.exe" directly. No problems arise, everything is good (including the gameplay... I'm too curious to 'demand' Razor run before play).

Additionally, modifying the source and scripts isn't an issue for me, it is that Razor will not run out-of-the-box.

NOTE: I also disabled "Patch Client Encryption" and the same issue persisted.

------ used "client.exe" instead of "patched_client.exe" and it works now. Thank you ^.^
 
Last edited:

Djeryv

Well-Known Member
Oct 2, 2014
287
34
No...don't run razor against client_patched.exe. Just toward "client.exe".

And don't comment out that line. Just set it to false.

You would only run "client_patched.exe" if you do not use razor.
[doublepost=1553285964][/doublepost]I was in Devil Guard today, hunting in the cemetery when I noticed the region was a bit messed up. Open your Regions.xml file and replace "the Graveyard" section at about line 767 with this...

Code:
        <region type="OutDoorBadRegion" priority="80" name="the Graveyard">
            <rect x="1744" y="1607" width="23" height="21" />
            <rect x="1753" y="1627" width="14" height="8" />
            <rect x="2159" y="351" width="18" height="19" />
            <rect x="802" y="598" width="28" height="32" />
            <rect x="928" y="1972" width="59" height="39" />
            <rect x="3236" y="2784" width="36" height="40" />
            <rect x="3062" y="1013" width="33" height="23" />
            <rect x="4858" y="2796" width="28" height="25" />
        </region>
[doublepost=1553355748][/doublepost]This may seem like an inconsequential detail, but I noticed that the pirate ships (the static ones on the map) had not been colored as well as I liked in Sosaria and the Isles of Dread. While coloring them, I noticed that 2 water tiles (on the Sosaria sea) were higher than the other water tiles so I set them to the same level. Anyway, you can download these maps for the client below.

MAPS
 
Last edited:

Djeryv

Well-Known Member
Oct 2, 2014
287
34
For some of the creatures in the game, I used the built in breath attack mechanic to give the giants the ability to throw boulders, titans to unleash lightning, elementals to do extra attacks, and humanoids to throw knives, bottles, etc. A few days ago, I gave a tweak for the giants that would throw boulders and the damage scalar I felt was too high so I gave a suggestion to lower it. I noticed this with the humanoid characters that throw potions (mages) or daggers or stars like rogues and assassins do. I set mine to a lower value because they were really close to instantly killing a character with moderate armor. So I changed my scripts below from a damage scalar of 0.8 to 0.4.

public override double BreathDamageScalar{ get{ return 0.4; } }

ElfMage.cs
ElfRogue.cs
EvilMage.cs
EvilMageLord.cs
Rogue.cs
KoboldMage.cs
SaklethMage.cs
OrkMage.cs
OrkRogue.cs
UrkShaman.cs
NativeWitchDoctor.cs
ZuluuWitchDoctor.cs
 

Violet Joy

Member
Sep 29, 2018
8
3
Suggested script for single players: save on logout.
Save: Scripts\Server\Functions\SaveOnAccountLogout.cs
Code:
using Server;

namespace Furry.Chemistry
{
    public static class SaveOnAccountLogout
    {
        public static void Initialize() { EventSink.Logout += EventSink_Logout; }

        private static void EventSink_Logout(LogoutEventArgs e) { World.Save (); }
    }
}
 

Djeryv

Well-Known Member
Oct 2, 2014
287
34
Suggested script for single players: save on logout.
Save: Scripts\Server\Functions\SaveOnAccountLogout.cs
There already exists a save on logout function which is enabled/disabled with a true/false option. Does yours do something differently? Just want to make sure I am not missing something.
 

Violet Joy

Member
Sep 29, 2018
8
3
There already exists a save on logout function which is enabled/disabled with a true/false option. Does yours do something differently? Just want to make sure I am not missing something.
I missed that. Server\Scripts\Server\Functions\Broadcast.cs does do the actual save, which is identical to my above post. Sorry about that.