Dungeon difficulty

Drake11

Member
Mar 6, 2015
23
2
Wisconsin
Here is what I am doing: creating a large dungeon with mltiple boss encounters requiring a group of people to complete. I have most of the boss encounters done so far, just needs testing and a little fine tuning. I had this thought that perhaps one could alter the difficulty of the dungeon by giving a better loot table should fewer people kill the boss. I do not know if this is possible, but I believe it to be, and curious if anyone has seen it done, done it, or perhaps have been looking to attempt the same thing?

Basic example: Boss A is killed by a group of 8 players, the boss checks combatants maybe? and finds more than 5 players and rewards them with a loot table. The same boss, is killed with 5 players in another group, the boss does the check before it dies, finds only 5 players, then rewards them with an improved loot table based on the fact that the group only had 5 members.

I have not begun to really explore this option yet as I'm still finishing up boss encounters (making them do exactly what I want can be complicated lol).
 

tass23

Moderator
Aug 28, 2013
1,022
144
42
St. Petersburg, FL
www.uoexpanse.com
Shard Name
The Expanse
Donate
Donate money to this user
Back on OSI, when a group would battle a Peerless boss and kill it, loot would appear for each individual (based on the damage done I think), then after X amount of time, ALL the loot was available for everyone. I'd say look into that first.
 
  • Like
Reactions: Drake11

MisterGizmo

New Member
Jan 22, 2016
1
0
44
If you want to check based on looting rights, can use the code here from the BaseChampion.cs file. With a little modification and passing of BaseCreature that died into some function, shouldn't be to hard to do what your trying to do.

Code:
        public override void OnDeath(Container c)
        {
            if (this.Map == Map.Felucca)
            {
                //TODO: Confirm SE change or AoS one too?
                List<DamageStore> rights = BaseCreature.GetLootingRights(this.DamageEntries, this.HitsMax);
                List<Mobile> toGive = new List<Mobile>();

                for (int i = rights.Count - 1; i >= 0; --i)
                {
                    DamageStore ds = rights[i];

                    if (ds.m_HasRight)
                        toGive.Add(ds.m_Mobile);
                }

                if (toGive.Count > 0)
                    toGive[Utility.Random(toGive.Count)].AddToBackpack(new ChampionSkull(this.SkullType));
                else
                    c.DropItem(new ChampionSkull(this.SkullType));
            }

            base.OnDeath(c);
        }
 

arphile

Well-Known Member
Apr 24, 2014
160
29
30
얌새기월드
www.youtube.com
Shard Name
Arphile
Donate
Donate money to this user
Use OnSpawn Function for enhance basecreatures.
Also you need to duplicate maps in MapDefinition.cs to make different difficulty for dungeons.
I made it like this, so all of the dungeons has 2 or 4 difficulty each.