Jump to content

Finally! Attach Recipes Using /Emailsendattachment!


Recommended Posts

It was a long, 6 month journey, but I've finally figured out how we can send recipes using the /emailsendattachment slash command!

 

OMG! I tried so many things. Random numbers up to 5,000. Patterns of numbers in imagined arrays, columns, and even numbers correlated to the letters/characters in recipe names, and of course, a numerical representation of alphabetical order. I tried codes intended to represent enhancement types and levels. I experimented with over 100 different enhancement recipes. Through all of this receiving the same error message, "This recipe is not tradeable". Six months of experimenting and nada, zilch, nothing.

 

Last week I all but gave up. I hadn't broken the code and thought I had exhausted all of my options. There was nothing left to try. So off to Reddit I went, and asked for help.  In my post I mentioned that I needed some bigger brains than mine to look at this problem. Yep. I was stuck. No where left to go... or so I thought.

 

I don't know what the dynamic is that makes this happen, but somehow the mere act of asking for help provoked a flood of new ideas to investigate and test out.  This is nowhere near the only time this has happened. I used to think it was the act of talking with someone, the conversation, the following of conceptual threads and connected implications that spurred new ideas to pop up, but this time there was hardly any conversation. It's the weirdest thing.

 

Anyway, it turns out my fatal mistake was thinking that recipes needed an "inventory" number in order to be attached to an in-game email. It wasn't a far out idea at all... both inspirations and enhancements use an inventory number, so it makes sense that recipes would too... except they don't. After many searches, I discovered a server file named InvRecipe.dbidmap that had these strange numbers in a huge list of recipes broken down by name and by level. Since my new idea was that recipes themselves had an ID number that didn't have any relation to any sort of inventory location, I started testing the numbers in the file... and BAM! To my surprise, I hit on the solution!  Boo-yah!!!!

 

Instead of an inventory number, recipes use a special AttribFileItem ID number.  The list includes the ID number, the internal name for the recipe that includes its level, and a letter from A-F representing one of each enhancement in a set. The new problem was there was no way to know which enhancement "C" was, for example!  If I had 6 recipes, one for each enhancement in the set, which recipe would match A, B, C, D, E, or F? 

 

Over the last 6 months, I have been reading through a lot of code found in the game's configuration files. I'm not going to pretend I understand everything I've been reading, but In those files I saw mention of placing recipes in columns and arrays, and warnings not to change their locations. To me, this meant that recipes had a fixed sequential order which the game used to search for the recipe... and I was right. I tracked down a file that listed the recipes and their aspects (End Red/Accuracy/Damage/Range, etc) and correlated  the order in which they appeared with the alphabetical order of A-F. Then I wrote a little script that took each AttribFileItem and paired it with one of the enhancement aspects in the other list. After 2 hours of processing it still wasn't done. I wrote a bad script that was processing the data far too slowly, even it it was doing it all accurately. I rethought how to accomplish what I wanted, and ended up settling on using the recipie/aspect list instead and a REGEX to match all of the recipes with the correct aspects in the AttribFileItem list.  Then I went through the new list several times, fixing errors, eliminating bad data, and tracking down recipes that didn't appear in one or the other list. 

 

I finished that process 2 hours ago, and posted the new list and the new information at the Homecoming Wiki. You can find it all here...  https://homecoming.wiki/wiki/Emailsendattachment_(Slash_Command) .

 

I've been overflowing with excitement ever since I discovered the solution 3 days ago! I've figured out how to use a lot of new slash commands over the last 6 months and broken a lot of codes, but this discovery is the crown jewel! There was a part of me that felt we would never figure out how to send recipes with /emailsendattachment. Adversity can often make the successes we have far sweeter, and this is definitely true in this case.

 

For the rest of you... well, consider this my Christmas gift to all of us. Merry Christmas, everyone! 🙂

 

 

 

 

 

 

 

  • Like 2
  • Thanks 1
  • Thumbs Up 4
Link to comment
Share on other sites

1 hour ago, BlackSpectre said:

It was a long, 6 month journey, but I've finally figured out how we can send recipes using the /emailsendattachment slash command!

 

OMG! I tried so many things. Random numbers up to 5,000. Patterns of numbers in imagined arrays, columns, and even numbers correlated to the letters/characters in recipe names, and of course, a numerical representation of alphabetical order. I tried codes intended to represent enhancement types and levels. I experimented with over 100 different enhancement recipes. Through all of this receiving the same error message, "This recipe is not tradeable". Six months of experimenting and nada, zilch, nothing.

 

Last week I all but gave up. I hadn't broken the code and thought I had exhausted all of my options. There was nothing left to try. So off to Reddit I went, and asked for help.  In my post I mentioned that I needed some bigger brains than mine to look at this problem. Yep. I was stuck. No where left to go... or so I thought.

 

I don't know what the dynamic is that makes this happen, but somehow the mere act of asking for help provoked a flood of new ideas to investigate and test out.  This is nowhere near the only time this has happened. I used to think it was the act of talking with someone, the conversation, the following of conceptual threads and connected implications that spurred new ideas to pop up, but this time there was hardly any conversation. It's the weirdest thing.

 

Anyway, it turns out my fatal mistake was thinking that recipes needed an "inventory" number in order to be attached to an in-game email. It wasn't a far out idea at all... both inspirations and enhancements use an inventory number, so it makes sense that recipes would too... except they don't. After many searches, I discovered a server file named InvRecipe.dbidmap that had these strange numbers in a huge list of recipes broken down by name and by level. Since my new idea was that recipes themselves had an ID number that didn't have any relation to any sort of inventory location, I started testing the numbers in the file... and BAM! To my surprise, I hit on the solution!  Boo-yah!!!!

 

Instead of an inventory number, recipes use a special AttribFileItem ID number.  The list includes the ID number, the internal name for the recipe that includes its level, and a letter from A-F representing one of each enhancement in a set. The new problem was there was no way to know which enhancement "C" was, for example!  If I had 6 recipes, one for each enhancement in the set, which recipe would match A, B, C, D, E, or F? 

 

Over the last 6 months, I have been reading through a lot of code found in the game's configuration files. I'm not going to pretend I understand everything I've been reading, but In those files I saw mention of placing recipes in columns and arrays, and warnings not to change their locations. To me, this meant that recipes had a fixed sequential order which the game used to search for the recipe... and I was right. I tracked down a file that listed the recipes and their aspects (End Red/Accuracy/Damage/Range, etc) and correlated  the order in which they appeared with the alphabetical order of A-F. Then I wrote a little script that took each AttribFileItem and paired it with one of the enhancement aspects in the other list. After 2 hours of processing it still wasn't done. I wrote a bad script that was processing the data far too slowly, even it it was doing it all accurately. I rethought how to accomplish what I wanted, and ended up settling on using the recipie/aspect list instead and a REGEX to match all of the recipes with the correct aspects in the AttribFileItem list.  Then I went through the new list several times, fixing errors, eliminating bad data, and tracking down recipes that didn't appear in one or the other list. 

 

I finished that process 2 hours ago, and posted the new list and the new information at the Homecoming Wiki. You can find it all here...  https://homecoming.wiki/wiki/Emailsendattachment_(Slash_Command) .

 

I've been overflowing with excitement ever since I discovered the solution 3 days ago! I've figured out how to use a lot of new slash commands over the last 6 months and broken a lot of codes, but this discovery is the crown jewel! There was a part of me that felt we would never figure out how to send recipes with /emailsendattachment. Adversity can often make the successes we have far sweeter, and this is definitely true in this case.

 

For the rest of you... well, consider this my Christmas gift to all of us. Merry Christmas, everyone! 🙂

 

I don't understand the significance of your discovery, but I'm excited that you've achieved your goal! 

Pocket D Zone Tour

Best Post Ever.... 568068478_BestContentEverSignature.png.4ac4138c1127616ebdcddfe1e9d55b57.png

Link to comment
Share on other sites

While cool to see something so worked out, I'm not sure how much faster this will be in practice.

OG Server: Pinnacle  <||>  Current Primary Server: Torchbearer  ||  Also found on the others if desired


Installing CoX:  Windows  ||  MacOS  ||  MacOS for M1  <||>  Migrating Data from an Older Installation


Clubs: Mid's Hero Designer  ||  PC Builders  ||  HC Wiki  ||  Jerk Hackers


Old Forums  <||>  Titan Network  <||>  Heroica! (by @Shenanigunner)

 

Link to comment
Share on other sites

1 hour ago, WanderingAries said:

While cool to see something so worked out, I'm not sure how much faster this will be in practice.

It depends on what we can do with it using binds/macros. /emailsendattachment definitely has advantages for specific applications over using the UI, but if you don't need to send the same thing multiple times, don't need to send multiple items with fast clicks, don't need to send one of any number of items in one click, or don't need to automate anything I totally agree. On the other hand, if you do...

 

Link to comment
Share on other sites

2 hours ago, Glacier Peak said:

I don't understand the significance of your discovery, but I'm excited that you've achieved your goal! 

Thanks. I'm excited too!

 

I think the significance is that a door that has been locked since the beginning of the game is now unlocked... for the first time ever. That's worth celebrating. Whether or not the door leads anywhere is up in the air, but now we have the chance to find out! 🙂

 

  • Like 2
Link to comment
Share on other sites

On 12/23/2022 at 8:59 PM, BlackSpectre said:

I don't know what the dynamic is that makes this happen, but somehow the mere act of asking for help provoked a flood of new ideas to investigate and test out.  This is nowhere near the only time this has happened. I used to think it was the act of talking with someone, the conversation, the following of conceptual threads and connected implications that spurred new ideas to pop up, but this time there was hardly any conversation. It's the weirdest thing.

 

"Explain it to a duck."

 

Doesn't matter if there's no real conversation. You can explain a problem to a rubber duck and suddenly get ideas... since you're having to start from the beginning and explain everything, including what you're assuming.

  • Like 1

Primarily on Everlasting. Squid afficionado. Former creator of Copypastas. General smartalec.

 

I tried to combine Circle and DE, but all I got were garden variety evil mages.

Link to comment
Share on other sites

5 hours ago, Greycat said:

"Explain it to a duck."

 

Doesn't matter if there's no real conversation. You can explain a problem to a rubber duck and suddenly get ideas... since you're having to start from the beginning and explain everything, including what you're assuming.

Heh.  We used to have a mannequin at one job when you wanted someone to look at an issue you were having with code because it usually was during the explanation phase, you'd suddenly go "Oh, there's the problem!"

 

At least while working from home, I can show a problem to my cat.

  • Like 1
Link to comment
Share on other sites

On 12/26/2022 at 5:53 AM, Greycat said:

 

"Explain it to a duck."

 

Doesn't matter if there's no real conversation. You can explain a problem to a rubber duck and suddenly get ideas... since you're having to start from the beginning and explain everything, including what you're assuming.

Wait, Conrad joined the forums too? (Sorry I couldn't help myself.)

  • Haha 1

Roleplaying mentor volunteer, and mentorship contributor.

Chatrange Popmenu/Where to find me/Beginners Links

blinkiesCafe-Ov.gif.461b52017365412a34160eb002f74cfe.gif

Link to comment
Share on other sites

query: is there a way to get around the "no spaces" thing in global names?

Archetype Concept Compilation -- Powerset Concept Compilations: Assault Melee

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

The Great Archetype Concept Battle: Final Round

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Archetype Proposal Amalgamation

Link to comment
Share on other sites

2 hours ago, Glacier Peak said:

I was going to say use underscore

Thanks, that worked,

Unfortunately, not I just automatically accept emails I send to myself

Archetype Concept Compilation -- Powerset Concept Compilations: Assault Melee

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

The Great Archetype Concept Battle: Final Round

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Archetype Proposal Amalgamation

Link to comment
Share on other sites

10 hours ago, Zepp said:

query: is there a way to get around the "no spaces" thing in global names?

Sadly, no. It's a bug with the commands. Their code would need to be altered in order to fix that problem... and it's low priority for the devs. So I think we're out of luck.

Link to comment
Share on other sites

23 hours ago, Zepp said:

query: is there a way to get around the "no spaces" thing in global names?

I'm confused, my in game Globals are @Marine X and @Marine X2, is there something I am missing, because both work and I email stuff to my Global regularly on both accounts. Or does the issue only come into play with the send email attachment slash command? Have never used it.

Edited by Marine X

" When it's too tough for everyone else,

it's just right for me..."

( Unless it's Raining, or Cold, or Really Dirty

or there are Sappers, Man I hate those Guys...)

                                                      Marine X

Link to comment
Share on other sites

4 hours ago, Marine X said:

I'm confused, my in game Globals are @Marine X and @Marine X2, is there something I am missing, because both work and I email stuff to my Global regularly on both accounts. Or does the issue only come into play with the send email attachment slash command? Have never used it.

Only an issue with the slash command. The underscore workaround works, but if you email it to yourself you automatically collect

  • Thanks 1

Archetype Concept Compilation -- Powerset Concept Compilations: Assault Melee

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

The Great Archetype Concept Battle: Final Round

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Archetype Proposal Amalgamation

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...