Page 14 of 14

Re: Daggerfall Mechanics thread: Volunteers welcome

Posted: Sun Sep 02, 2018 9:11 pm
by Interkarma
ifkopifko wrote: Sun Sep 02, 2018 7:22 pm Firstly, I am very excited to see your progress. :-) (With this I mean all the contributors/developers.)

About the “Water Breathing 50”, I do not see what you mean, the match seems perfect to me in the excel file.
Cheers!

Thanks for the feedback. After starting classic Daggerfall again this morning to re-check with my Mister50 character (50 in all spell skills), classic is now producing Water Breathing results matching the spreadsheet. Earlier the values were very different for Water Breathing in classic.

This is the second time this has happened. The first time, I just assumed I had made a mistake. I triple-checked everything this time and classic was definitely outputting different values for the same character with the same skills on the same effect at the spellmaker. :?

I think I might be falling afoul of is an unusual bug in classic where it's messing up costs in the spellmaker. Next time this happens, I'll restart the game before I assume the spreadsheet is wrong. :lol:

Re: Daggerfall Mechanics thread: Volunteers welcome

Posted: Mon Sep 03, 2018 6:53 am
by ifkopifko
No problem mate. :-) It's natural that humans make mistakes. And, afterall, computers are only humans as well ... or nearly so with all the deep learning going on these days. :D

Re: Daggerfall Mechanics thread: Volunteers welcome

Posted: Tue Oct 16, 2018 5:19 pm
by Midknightprince
Horse trotting....

Re: Daggerfall Mechanics thread: Volunteers welcome

Posted: Sat Jun 22, 2019 10:06 am
by meritamas
Sorry for posting this question in two topics but I wasn't sure which one would be effective.

Is there a place where all the game formulas based on attributes and skills can be found?

I am trying to consider some changes to the skill/attribute system, but I would like to work out the proposal in such a way as not to break any other thing. A way to find ALL the formulas concerned would be most helpful.
I've found FormulaHelper.cs, but that one only contains some most basic formulas. I'm afraid that the remaining formulas are most probably scattered throughout the script files. Hope somebody can help with this.

Re: Daggerfall Mechanics thread: Volunteers welcome

Posted: Sat Nov 30, 2019 7:36 am
by Rand
Jay_H wrote: Mon Jul 11, 2016 7:40 pm I decided to go back to the shops a little bit. The mystery thickens, and it's quite viscous now. The good news is that the shops all vary by day uniformly, as shown in the Whitefort testing I've added, so incense and rusty stores still matter as much as they ever have. The bad news is that the variation is random or semi-random. Every attempt in each respective day was made at the same hour, so time of day isn't a variable here. For the Day 1 variations, I left town and came back to see if town boundaries determined price changes; they don't. For the Day 2 variations, I used a Groundhog Day method, where I passed a single day traveling to various locations. The results are odd but not as variable as I expected. In this case, the numbers varied by about 2% up or 2% down, but they varied consistently between the same two values. It sounds like each day has two values it can choose from at random.

If anyone wants to test this more they're welcome to, but I've seen about as much as I can from a testing perspective. I only hope something is available in memory that clearly establishes the daily value.
So, late to the party, but I've been looking into this.

First, Jay, you were definitely not comparing apples to apples if you were relying on the description to tell you the actual quality.

Thanks to Pango for this:

Code: Select all

        // Display a shop quality level
        private DaggerfallMessageBox PresentShopQuality(StaticBuilding building)
        {
            const int qualityLevel1TextId = 266;    // "Incense and soft music soothe your nerves"
            const int qualityLevel2TextId = 267;    // "The shop is better appointed than many"
            const int qualityLevel3TextId = 268;    // "The shop is laid out in a practical"
            const int qualityLevel4TextId = 269;    // "Sturdy shelves, cobbled together"
            const int qualityLevel5TextId = 270;    // "Rusty relics lie wherever they were last tossed"

            // Get building directory for location
            BuildingDirectory buildingDirectory = GameManager.Instance.StreamingWorld.GetCurrentBuildingDirectory();
            if (!buildingDirectory)
                return null;

            // Get detailed building data from directory
            BuildingSummary buildingSummary;
            if (!buildingDirectory.GetBuildingSummary(building.buildingKey, out buildingSummary))
                return null;

            // Do nothing if not a shop
            if (!RMBLayout.IsShop(buildingSummary.BuildingType))
                return null;

            // Set quality level text ID from quality value 01-20
            // UESP states this is building quality / 4 but Daggerfall uses manual thresholds
            int qualityTextId;
            if (buildingSummary.Quality <= 3)
                qualityTextId = qualityLevel5TextId;        // 01 - 03
            else if (buildingSummary.Quality <= 7)
                qualityTextId = qualityLevel4TextId;        // 04 - 07
            else if (buildingSummary.Quality <= 13)
                qualityTextId = qualityLevel3TextId;        // 08 - 13
            else if (buildingSummary.Quality <= 17)
                qualityTextId = qualityLevel2TextId;        // 14 - 17
            else
                qualityTextId = qualityLevel1TextId;        // 18 - 20
I expect that the cobbled shops were actually quite different in actual quality level. I'm going to see if I can get at the raw quality level data somehow. Any suggestions would be welcome.

Ideally, there will be a city somewhere that has two pawnshops with the exact same quality level. And another relatively nearby in another city. Ideally, another identical one just across a region border, too. Then the real testing can begin.

Re: Daggerfall Mechanics thread: Volunteers welcome

Posted: Sat Nov 30, 2019 7:42 am
by Rand
Atlas.exe does not seem to want to display the raw number to me. :evil:

Next trying using a hex editor to look at the raw data in Atlas' memory after the query.

Re: Daggerfall Mechanics thread: Volunteers welcome

Posted: Sat Nov 30, 2019 8:10 am
by Rand
Well, that's pretty imposing. Maybe I can find the data there, but I've got a better idea.

I hate to assume, but...

I assume that DFU and classic generate the world in-game more or less identically, at least in output. I hope.

I can re-write the code to display the exact quality number in-game, if I compile my own modified build.

Not optimal, because I'll have to wander around and basically stumble on what I want by luck by entering shops and noting the number, but it beats that wall of hex in active memory.

Re: Daggerfall Mechanics thread: Volunteers welcome

Posted: Sat Nov 30, 2019 3:56 pm
by Jay_H
Yeah, this research came long before I knew there were mini-tiers for each quality level :lol: I don't remember the exact method I used; all I have left is what's written here.