Wishes for the next expansion?

Discussion in 'The Veterans' Lounge' started by Lilura, Jun 12, 2019.

  1. Angahran Augur

    1. add 'co-owner' houses to find window.
    2. Allow 'grabbing' from any house.
    3. Add some way to significantly increase storage of non-placeable items in houses/yards.
    Aurastrider likes this.
  2. Waring_McMarrin Augur


    Determining the difficulty of a mission by scanning a characters inventory/bank/housing/guild housing is a lot different than simply checking a characters lockouts. Not to mention how do you determine how to scale it based on what characters have raid items and what items they have.
    Whulfgar likes this.
  3. Parsli Journeyman

    While it's hard-set in data, I have an idea you might find interesting... (I've already proof of concept'd this in another environment):

    EQ Item IDs are a uint32 - meaning, they can go from 0-4294967295, with 0 and 4294967295 being reserved for bogus item response codes. EQ item IDs are up to about 1million, max. I don't think you guys are using all 6 augment slots on an item, are you?

    You could potentially reserve an augment slot on these items by adding 1 million to the base item ID for each slot you want to add to an item. You could then separate item IDs, keep all base items intact, and clone the entire item DB for each augment slot you'd want to add. And hell, you have the code for the client, I don't have that luxury - you could probably add in a 7th augmentation slot for this purpose. Either way.... this brings me to my next point: The AA window is a great way to add skills to the game that a character natively should have based on conditionals.

    Wouldn't it be easier to just add an augment slot with a passive effect... ie; a worn effect that grants an AA? An item with a script file (think like the PoP charms!) that loads a specific worn effect? AAs are actually flexible enough to where you could grant or un-grant them on the fly. It doesn't have to be a clicky per se. And - on unequipping the weapon - you could dispell the effect from friendlies and hostile actors, if applicable, and remove the AA.

    This ensures that it's tied to an existing system; AAs fit on hotbars so it would be a natural fit for a 'pseudo clicky'. Plus, it's transparent to designers, as they would literally have to do nothing to add in an item using this system other than reward an item with ID + 1million.

    Attached to this post is pseudocode for this type of idea. It, in theory, could generate augments with statistics based on the ID of the item above 10 million.

    Code:
    ItemData Database::GetItem(uint32 id)
    {
        ItemData blank;
        memset(&blank, 0, sizeof(ItemData));
     
        if (id == 0 || id==(uint32)-1) {
            return blank;
        }
     
        if (!items_cache || id > MAX_ITEMS && id < 10000000) {
            return blank;
        }
     
        if (items_cache->exists(id)) {
            return (items_cache->at(id));
        }
        else if (id >= 10000000)
        {
            ItemData itemPtr;
            itemPtr = GetItem(BLANK_AUGMENT_ITEM);
            int itemId = id;
     
            if (itemPtr.ID == 0)
                return blank;
     
            ItemData item = itemPtr;
     
            itemId -= 10000000;
            int value = itemId / 10;
     
            int log = floor(log10(value));
     
            std::string itemName = "+";
            itemName += std::to_string(value);
            memset(item.Name, 0, 64);
            //determine type of item
            switch (itemId % 10)
            {
            case 0:
                itemName += " Hitpoints";
                item.HP += value;
                item.Icon = log > 5 ? 1994 : 1940;
                break;
            case 1:
                itemName += " Mana";
                item.Mana += value;
                item.Icon = log > 5 ? 1998 : 1964;
                break;
            case 2:
                itemName += " Endurance";
                item.Icon = log > 5 ? 2214 : 2208;
                item.Endur += value;
                break;
            case 3:
                if (value > 100)
                {
                    Str += 100;
                    item.HeroicStr += value - 100;
                }
                else
                {
                    Str += value;
                }
                item.Icon = log > 5 ? 1995 : 1946;
                itemName += " Strength";
                break;
            case 4:
                if (value > 100)
                {
                    Sta += 100;
                    item.HeroicSta += value - 100;
                }
                else
                {
                    Sta += value;
                }
                item.Icon = log > 5 ? 2002 : 1988;
                itemName += " Stamina";
                break;
     
            case 5:
                if (value > 100)
                {
                    Agi += 100;
                    item.HeroicAgi += value - 100;
                }
                else
                {
                    Agi += value;
                }
                item.Icon = log > 5 ? 1996 : 1952;
                itemName += " Agility";
                break;
            case 6:
                if (value > 100)
                {
                    Dex += 100;
                    item.HeroicDex += value - 100;
                }
                else
                {
                    Dex += value;
                }
                item.Icon = log > 5 ? 1997 : 1958;
                itemName += " Dexterity";
                break;
            case 7:
                if (value > 100)
                {
                    Int += 100;
                    item.HeroicInt += value - 100;
                }
                else
                {
                    Int += value;
                }
                item.Icon = log > 5 ? 1999 : 1970;
                itemName += " Intelligence";
                break;
            case 8:
                if (value > 100)
                {
                    Wis += 100;
                    item.HeroicWis += value - 100;
                }
                else
                {
                    Wis += value;
                }
                item.Icon = log > 5 ? 2000 : 1976;
                itemName += " Wisdom";
                break;
            case 9:
                if (value > 100)
                {
                    Cha += 100;
                    item.HeroicCha += value - 100;
                }
                else
                {
                    Cha += value;
                }
                item.Icon = log > 5 ? 2001 : 1982;
                itemName += " Charisma";
                break;
            default:
                break;
            }
     
            if(log <= 5)
            {
                item.Icon += log;
            }
     
            strncpy(item.Name, itemName.c_str(), 64);
            item.ID = id;
            return item;
        }
     
        return blank;
    }
     
     
     
    
    Metanis likes this.
  4. CatsPaws No response to your post cause your on ignore

    And the fact that first character can put stuff in an second character's house and it will not show up as belonging to the first character - easy by pass there.

    I want new hair for half elf rangers - so tired of the chopped look.
  5. Cadira Augur

    Yeap, did them all about a month ago here too
  6. Metanis Bad Company

    I have almost no idea what you said but I appreciate the work you put into it!!
  7. Ngreth Thergn Developer

    We are also stuck with 32 bit memory allocation. (The engineering to change is a colossal project...)
    Each item uses memory. While this idea is interesting, it's a memory bloat.
  8. Lisard Silly

    what about a saved social page sets...like saved spell sets. dunno how complicated that would be. good luck.
  9. Wulfhere Augur

    I like my ideas for this better (see prev post) since the features already exist in game.
  10. Syber New Member

    My two cents:
    * Create a Casino. You buy a casino chip from a vendor for 2m. Take the item to a casino vendor and turn it in. Its a random return if you get a silver token or better luck next time. Take the silver token to another casino vendor (if you get one) and turn it in. Its a random return if you get a gold token or better luck next time. Do this one more time for a platinum vendor in the high stakes room and receive a platinum token. Take the platinum token and turn it into the Cage Boss to receive a random ultra rare 1 of 20 casino prize. Make the prize count and make it worth something but make it hard to get. Maybe the odds change at the time of day in the casino or maybe you need a charm from a quest to increase your odds. Maybe a Siren illusion to help your odds. Something. Get creative, make the prizes really good.
  11. Khat_Nip Meow


    All told those are some pretty poor odds at the end of the day for the player.
  12. Waring_McMarrin Augur


    They already have an in game casino that was introduced in LDON and is in Shadow Haven. It has some pretty nice rewards as well.

    http://everquest.allakhazam.com/db/quest.html?quest=2675
  13. Syber New Member

    Maybe call it Stormfeather's Casino lol. Have the odds rolling based on time of day, have it so you can go on a winning stream with a "twincast" roll. Announce it zone wide. Make it ultra rare sure but make the prizes really worth it-like next expansion raid item weapon good.
  14. Syber New Member


    I remember it well and spent alot of time there and got all the rewards. i wasnt a fan of all the crummy stuff on it but maybe you can have the lower level casino guys dish that out. In the high rollers room just the elite lewts!
  15. Leigo You come here often?

    are real "flying" mounts something in the realm of possibility? Not levitation and off we go.. but the mount flys.. ie ffxiv
  16. Leigo You come here often?

    making raid currency unlock ~ trade-able when its 2-3 expansions back would be nice for those that want to hand it off to their alts.. heirloom would work here as well
  17. Duder Augur


    So long as it doesn't trade up!
  18. Bigstomp Augur

    With the exception of me, make everyone else have to be gnomes. They're smaller.
  19. Parsli Journeyman

    Could also just make the change local to the function that sends the item going out on the wire.


    What I mean by that is get the base item, add a 'get base item' function, modify said item before you actually use it in places that modify or get augments - specifically, the right click menu for dealing with augments, replace all instances of where you get an item by ID with the modified function, and never allocate memory but instead keep the temporary 'item struct' local to the function. This would ensure that the struct is managed like any other temporary variable, and would only allocate memory once. You wouldn't have to call free or anything because the item wouldn't exist in memory past the function call, at the expense of having to move memory around which might cost a little bit of CPU but probably nothing compared to the memory cost you're describing.

    That would ensure that there's no memory allocated beyond the item going out on the wire and the base item, and that you're basically 'tricking' the client into storing an item, and storing nothing other than the base item in memory on the server.

    I'm unsure of the server architecture, so apologies as I'm talking from a strict "the client expects this" perspective - but the item data going out to a client can be modified by the server. It's just a matter of parsing it on the server.
  20. Yinla Ye Ol' Dragon

    Wouldn't help much unless they removed the need to have beaten the raids where those items drop.