Refer: http://forums.beyondunreal.com/showthread.php?t=141899
Guys, we have a problem with: Incomapatible Game Files
Now those that were with us in UT2003 will remember this sarga we had with Epic and eventually they accepted that they had an error in the code and gave us a workaround to get past the problem.
The only difference is in UT2003 it was a problem with our Menu Styles that we use and in UT2004 its is to do with the Weapon FireMode Classes.
Now when Epic made UT2004 they took our Menu Styles problem into account and made an "auto custom style remover" which work 100% and that is why when I saw that post I was shocked to see this was happening again.
So what I did is make a test setup here to try and get to the bottom of this problem.
Firstly I setup 2 Test servers:
1. Standard UT2004 - no mutators, no ut2vote - just plain standard.
2. UT2VoteMulti with no extra's.
Now from my Desktop I 'Play UT2004' - 'Join Game' and join the Standard UT2004 game.
I then hit Escape and the Menu comes up and there I have Server Browser which I click and go join the UT2Vote Server.
All is still well at this stage, I play for a while and again I hit the Escape key and get the UT2004 Menu up and again I hit the Server Browser button.
This time I join the Standard Server again..... Bingo.... Incomapatible Game Files
Now let me try and explain the reason why this is happening.
When you join a UT2Vote Server, it sees that bNoWeapStats=False which means the Admin want WeaponStats displayed so UT2Vote changes ALL the Weapon FireModeClasses so that UT2Vote can monitor the number of times you fire your gun and what type of gun is currently being used.
Example:
class'Xweapons.LinkGun'.default.FireModeClass[1] = Class'UT2Vote44B4.UT2VWeapLinkFire';
It does that for all the weapons.
Now when a Player joins that server, the first thing he does is go get all the stuff the Server wants him to load and these WeaponClasses are part of that stuff.
Now the problem comes in when the Player Leaves the game because UT2Vote does not have a clue to when the Player leaves, by the time UT2Vote gets the information the Player has already left so it is impossible for UT2Vote to reset all the Players Weapon FireModeClasses before he leaves.
The other problem comes in is that this resetting of the Classes has to be done Clientside and not Serverside.
Now I have made a 'fix' in 44B5 but it is not really a fix and screws things up somewhat.
The only way that UT2Vote knows that the Player wants to leave the Server is when he presses that Server Browser button or in the case of the 'alternate connection' the Forfeit button.
So what I have done in 44B5 is I reset all the Weapon FireModeClasses the moment the Player presses the Server Browser button.
Example:
class'Xweapons.LinkGun'.default.FireModeClass[1] = class'Xweapons.LinkFire';
Now this all work 100% and will probably fix the UTComp problem as well as it also dedicates Weapon FireModeClasses for itself.
Only thing is this now introduces another problem in that lets say that after the Player has pressed the Server Browser button he decides he does not want to join another server but decides to rather stay where he is (on the current server) and now all his Weapon Classes are something different to how the Server wants them and there is no way of setting them back again.
Some of you will by now start seeing why UT2Vote used to disable the Escape key as this is without a doubt the most dangerous and destructive key that UT200x could ever have introduced into their game.
So we now reach a crossroad and this is where I need everyone of you to add a comment and a vote on what we must do as this will effect the future of UT2Vote.
1. The moment the Player presses the Server Browser button his Classes get reset and a message sent to the Server to disable all his Weaponstats including the WeaponStats Menu window with maybe a message syaing why.
2. Remove ALL WeaponStats from UT2Vote alltogether.
Now before you give your opinion let me give a few pro's and cons of each option.
The 'second' option would be the easiest but it could put UTComp into jeopody in that unless UTComp finds a way to reset these Classes on it own people will stop using UTComp and this is where UT2Vote could do it for UTComp if the two work together - just a bit of marketing stratergy
The disadvantage of using the 'first' option is it will be a very 'hairy' situation to keep track of the Player once he has pressed the Server Browser button and then decided to stay with the current server.
Your choice ?
Guys, we have a problem with: Incomapatible Game Files
Now those that were with us in UT2003 will remember this sarga we had with Epic and eventually they accepted that they had an error in the code and gave us a workaround to get past the problem.
The only difference is in UT2003 it was a problem with our Menu Styles that we use and in UT2004 its is to do with the Weapon FireMode Classes.
Now when Epic made UT2004 they took our Menu Styles problem into account and made an "auto custom style remover" which work 100% and that is why when I saw that post I was shocked to see this was happening again.
So what I did is make a test setup here to try and get to the bottom of this problem.
Firstly I setup 2 Test servers:
1. Standard UT2004 - no mutators, no ut2vote - just plain standard.
2. UT2VoteMulti with no extra's.
Now from my Desktop I 'Play UT2004' - 'Join Game' and join the Standard UT2004 game.
I then hit Escape and the Menu comes up and there I have Server Browser which I click and go join the UT2Vote Server.
All is still well at this stage, I play for a while and again I hit the Escape key and get the UT2004 Menu up and again I hit the Server Browser button.
This time I join the Standard Server again..... Bingo.... Incomapatible Game Files
Now let me try and explain the reason why this is happening.
When you join a UT2Vote Server, it sees that bNoWeapStats=False which means the Admin want WeaponStats displayed so UT2Vote changes ALL the Weapon FireModeClasses so that UT2Vote can monitor the number of times you fire your gun and what type of gun is currently being used.
Example:
class'Xweapons.LinkGun'.default.FireModeClass[1] = Class'UT2Vote44B4.UT2VWeapLinkFire';
It does that for all the weapons.
Now when a Player joins that server, the first thing he does is go get all the stuff the Server wants him to load and these WeaponClasses are part of that stuff.
Now the problem comes in when the Player Leaves the game because UT2Vote does not have a clue to when the Player leaves, by the time UT2Vote gets the information the Player has already left so it is impossible for UT2Vote to reset all the Players Weapon FireModeClasses before he leaves.
The other problem comes in is that this resetting of the Classes has to be done Clientside and not Serverside.
Now I have made a 'fix' in 44B5 but it is not really a fix and screws things up somewhat.
The only way that UT2Vote knows that the Player wants to leave the Server is when he presses that Server Browser button or in the case of the 'alternate connection' the Forfeit button.
So what I have done in 44B5 is I reset all the Weapon FireModeClasses the moment the Player presses the Server Browser button.
Example:
class'Xweapons.LinkGun'.default.FireModeClass[1] = class'Xweapons.LinkFire';
Now this all work 100% and will probably fix the UTComp problem as well as it also dedicates Weapon FireModeClasses for itself.
Only thing is this now introduces another problem in that lets say that after the Player has pressed the Server Browser button he decides he does not want to join another server but decides to rather stay where he is (on the current server) and now all his Weapon Classes are something different to how the Server wants them and there is no way of setting them back again.
Some of you will by now start seeing why UT2Vote used to disable the Escape key as this is without a doubt the most dangerous and destructive key that UT200x could ever have introduced into their game.
So we now reach a crossroad and this is where I need everyone of you to add a comment and a vote on what we must do as this will effect the future of UT2Vote.
1. The moment the Player presses the Server Browser button his Classes get reset and a message sent to the Server to disable all his Weaponstats including the WeaponStats Menu window with maybe a message syaing why.
2. Remove ALL WeaponStats from UT2Vote alltogether.
Now before you give your opinion let me give a few pro's and cons of each option.
The 'second' option would be the easiest but it could put UTComp into jeopody in that unless UTComp finds a way to reset these Classes on it own people will stop using UTComp and this is where UT2Vote could do it for UTComp if the two work together - just a bit of marketing stratergy
The disadvantage of using the 'first' option is it will be a very 'hairy' situation to keep track of the Player once he has pressed the Server Browser button and then decided to stay with the current server.
Your choice ?