I keep seeing this on the forums. I run a trigger that picks all players on team one and opens bank etc without it and I still save the values. People say I need this for Bnet? Apparently I dont.
What does it do?
I think it merges all banks open with that player.
Not really sure, but I think it lets other players read other player's banks, so lets say bank1 loaded by player1 can be read by player1, but not by player2 because it hasn't been synchronized.
Well that makes no sense, since the game reads the bank not the players. IE if I run a trigger. X player types XXX... show UI text message "kill" in "stats" from bank[player X].
You can pull any value you want.From any bank from any player.
Maybe its something for really large banks. Where the data is so much that it causes loading problems.
Banks have to be preloaded into the cache at map init before they can be used. In other words you can't open any more banks after the game has finished loading (Imagine if you could! wow, you could inject so much arbitrary data at runtime from third party programs).
Normally when you open a bank, you address it by its literal name. The game looks for these and automatically preloads them.
However, if you try to open a bank using some generated scheme like ("bank" + PlayerName(1)), the bank will fail to open. It has to be explicitly preloaded by its literal name before such schemes will work.
Yep, preloading only works with explicit names, no variables or constant variables. That included preloading of bank files and of any other data files like sounds, models,...
All things the game needs to preload will be listed in a seperate file, and since this file is created when you save the map, it isn't possible for the game to translate a variable to a name. (Ok, it would be possible for constant strings, but then you will need to type the name anyways :D )
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I keep seeing this on the forums. I run a trigger that picks all players on team one and opens bank etc without it and I still save the values. People say I need this for Bnet? Apparently I dont.
What does it do?
I think it merges all banks open with that player.
Not really sure, but I think it lets other players read other player's banks, so lets say bank1 loaded by player1 can be read by player1, but not by player2 because it hasn't been synchronized.
@uiasdnmb: Go
Well that makes no sense, since the game reads the bank not the players. IE if I run a trigger. X player types XXX... show UI text message "kill" in "stats" from bank[player X].
You can pull any value you want.From any bank from any player.
Maybe its something for really large banks. Where the data is so much that it causes loading problems.
@PSGMud: Go Purpose of preloading:
Banks have to be preloaded into the cache at map init before they can be used. In other words you can't open any more banks after the game has finished loading (Imagine if you could! wow, you could inject so much arbitrary data at runtime from third party programs).
Normally when you open a bank, you address it by its literal name. The game looks for these and automatically preloads them.
However, if you try to open a bank using some generated scheme like ("bank" + PlayerName(1)), the bank will fail to open. It has to be explicitly preloaded by its literal name before such schemes will work.
Ah, makes sense. So basically using variables or definitions will fail to open banks, unless preloaded explicitly?
Yep, preloading only works with explicit names, no variables or constant variables. That included preloading of bank files and of any other data files like sounds, models,...
All things the game needs to preload will be listed in a seperate file, and since this file is created when you save the map, it isn't possible for the game to translate a variable to a name. (Ok, it would be possible for constant strings, but then you will need to type the name anyways :D )