I've been using Starcode as my encryption tool for my banks, and it's extremely powerful. But at the moment, not powerful enough if one of my theories can't work for it...
Since my map requires a huge amount of data to be stored, I'll need to store a huge amount of data in banks. I know that banks can't exceed 8KB in size, yet right now I'm at 7 KB and not even remotely finished.
So for my first theory: Can I somehow combine all the values in my map into a large string, and then come up with a way to derive the values from specific locations in that string? This would only work if the characters used to set up sections and keys in a bank actually count towards your 8000 character limit.
Secondly, could I create multiple banks for use, storing 8KB in each one? Or does the 8 KB limit refer to the global limit for banks for a certain player?
Since my map requires a huge amount of data to be stored, I'll need to store a huge amount of data in banks. I know that banks can't exceed 8KB in size
New limits according to Blizzard in 1.5:
- 1mb per player as total bank file size
- 36 banks total Source
I know the feeling. What Ahli said is correct, the limit should now be raised. That said, bank keys are a *big* waste of space. Here's an example of how you can save a lot of space:
Normal Bank setup (bad) Total Character Count: 246
<Keyname="blarpblarp"string="893473219jfkdsajfu894r23142"><Keyname="blarpblarp2"string="490fjodsaf-9jiof324fafdsafdsffg"><Keyname="blarpblarp3"string="fdsafdsa-fdsafdsaf"><Keyname="blarpblarp4"string="fdsafdsa-fdsaffdsafsaddsaf">
(This pattern continues on for entire bank)
Optimized Bank setup (Good) Total Character Count: 139. 44% Less Space used
The trick is to put multiple compressed starcode strings into a single key. Because the key definition uses a lot of space when repeated over and over, you can save TONS of room by just squeezing multiple entries of starcode into a single key, separated by spaces. The 1MB of space given to us will be a big help, but it sounds as if you need to store a gigantic amount of information. In that case, you can definitely benefit from a setup like this- it's what is used in my own project. And to be honest, I wouldn't take the word of one blue post saying 'Yeah, you should have 1MB now' until we see an official confirmation.
The 1MB bank limit could not yet be confirmed by my tests. I couldnt even load a 100kb bank.
In addition, keep in mind that the total bank size in kb might not directly influence how much data can be loaded - its also about how much total information is stored within the bank. (Basically bank size without xml-tags)
Banks are very confusing and complex. I still dont know how exactly the bank size limit works.
The following factors might influence the limit:
- player count
- value type
- key count
- total bank size in kb
- amount of information in keys
- total information stored
I know the feeling. What Ahli said is correct, the limit should now be raised. That said, bank keys are a *big* waste of space. Here's an example of how you can save a lot of space:
Normal Bank setup (bad)
Total Character Count: 246
<Keyname="blarpblarp"string="893473219jfkdsajfu894r23142"><Keyname="blarpblarp2"string="490fjodsaf-9jiof324fafdsafdsffg"><Keyname="blarpblarp3"string="fdsafdsa-fdsafdsaf"><Keyname="blarpblarp4"string="fdsafdsa-fdsaffdsafsaddsaf">
(This pattern continues on for entire bank)
Optimized Bank setup (Good)
Total Character Count: 139.
44% Less Space used
<Keyname="blarpblarp"value="893473219jfkdsajfu894r23142 490fjodsaf-9jiof324fafdsafdsffg fdsafdsa-fdsafdsaf fdsafdsa-fdsaffdsafsaddsaf">
The trick is to put multiple compressed starcode strings into a single key. Because the key definition uses a lot of space when repeated over and over, you can save TONS of room by just squeezing multiple entries of starcode into a single key, separated by spaces. The 1MB of space given to us will be a big help, but it sounds as if you need to store a gigantic amount of information. In that case, you can definitely benefit from a setup like this- it's what is used in my own project. And to be honest, I wouldn't take the word of one blue post saying 'Yeah, you should have 1MB now' until we see an official confirmation.
How do I make a trigger that can decode multiple Starcode strings from a single key? Do I simply get a substring between the Xth character and the Yth character in the bank?
You can make use of the function "Word of String". This grabs whatever "word" you indicate. Basically you locate the "word" you are looking for (like data set #5, for example) and then you can replace that using the substring functions. You will need to make sure to take space out of Starcode's library, or else it might randomly put a space in there where you don't want it. It's definitely complicated (as in, not something I can just explain to do here) but I'm sure you can handle it ;) . Ideally you should make an action definition for storing and recalling sets of data, so that it's easy to use later. If you have trouble getting things to work, let me know and I'll take a look at how I did it for my project.
Rollback Post to RevisionRollBack
Feel free to Send me a PM if you have any questions/concerns!
You can make use of the function "Word of String". This grabs whatever "word" you indicate. Basically you locate the "word" you are looking for (like data set #5, for example) and then you can replace that using the substring functions. You will need to make sure to take space out of Starcode's library, or else it might randomly put a space in there where you don't want it. It's definitely complicated (as in, not something I can just explain to do here) but I'm sure you can handle it ;) . Ideally you should make an action definition for storing and recalling sets of data, so that it's easy to use later. If you have trouble getting things to work, let me know and I'll take a look at how I did it for my project.
Gotcha, I didn't know that there was a function for Word of String. I already thankfully have an action definition set up to save and load the data.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I've been using Starcode as my encryption tool for my banks, and it's extremely powerful. But at the moment, not powerful enough if one of my theories can't work for it...
Since my map requires a huge amount of data to be stored, I'll need to store a huge amount of data in banks. I know that banks can't exceed 8KB in size, yet right now I'm at 7 KB and not even remotely finished.
So for my first theory: Can I somehow combine all the values in my map into a large string, and then come up with a way to derive the values from specific locations in that string? This would only work if the characters used to set up sections and keys in a bank actually count towards your 8000 character limit.
Secondly, could I create multiple banks for use, storing 8KB in each one? Or does the 8 KB limit refer to the global limit for banks for a certain player?
New limits according to Blizzard in 1.5:
- 1mb per player as total bank file size
- 36 banks total
Source
This is great info, thanks a bunch.
@yopeasants: Go
I know the feeling. What Ahli said is correct, the limit should now be raised. That said, bank keys are a *big* waste of space. Here's an example of how you can save a lot of space:
Normal Bank setup (bad)
Total Character Count: 246
Optimized Bank setup (Good)
Total Character Count: 139.
44% Less Space used
The trick is to put multiple compressed starcode strings into a single key. Because the key definition uses a lot of space when repeated over and over, you can save TONS of room by just squeezing multiple entries of starcode into a single key, separated by spaces. The 1MB of space given to us will be a big help, but it sounds as if you need to store a gigantic amount of information. In that case, you can definitely benefit from a setup like this- it's what is used in my own project. And to be honest, I wouldn't take the word of one blue post saying 'Yeah, you should have 1MB now' until we see an official confirmation.
The 1MB bank limit could not yet be confirmed by my tests. I couldnt even load a 100kb bank.
In addition, keep in mind that the total bank size in kb might not directly influence how much data can be loaded - its also about how much total information is stored within the bank. (Basically bank size without xml-tags)
Banks are very confusing and complex. I still dont know how exactly the bank size limit works.
The following factors might influence the limit:
- player count
- value type
- key count
- total bank size in kb
- amount of information in keys
- total information stored
We'll ask blizz tomorrow for details on other limitations. Hopefully they answer.
How do I make a trigger that can decode multiple Starcode strings from a single key? Do I simply get a substring between the Xth character and the Yth character in the bank?
Anyone test to see if there's a new string length limit?
@yopeasants: Go
You can make use of the function "Word of String". This grabs whatever "word" you indicate. Basically you locate the "word" you are looking for (like data set #5, for example) and then you can replace that using the substring functions. You will need to make sure to take space out of Starcode's library, or else it might randomly put a space in there where you don't want it. It's definitely complicated (as in, not something I can just explain to do here) but I'm sure you can handle it ;) . Ideally you should make an action definition for storing and recalling sets of data, so that it's easy to use later. If you have trouble getting things to work, let me know and I'll take a look at how I did it for my project.
Gotcha, I didn't know that there was a function for Word of String. I already thankfully have an action definition set up to save and load the data.