Hello, this is my first post here and hopefully i can help with this great games advancement.
Here is my bug report, I've never really done this before but going to try and make it helpful.
Been playing Multilayer with my friend for a while now, I'm on 32bit and he's on 64bit, Recently made basic exoskeleton equipment and put it in my power armor, my friend was in a tank, the moment the basic exoskeleton equipment charged up and my friends tank took damage it dysynced him, I took the basic exoskeleton equpiment off and it stoped Dysyncing him when he/his tank took damage.
Hopefully this has helped.
Whitelance.
[0.11.15] Dysync related to exosuit and 32bit versus 64bit
-
- Manual Inserter
- Posts: 1
- Joined: Tue Dec 23, 2014 5:28 pm
- Contact:
Re: Dysync issues 0.11.8
I read that you both need to use 32-bit, or both 64-bit, to avoid desyncs.
Re: Dysync issues 0.11.8
That is just a workaround, but in the long run we want to be able to play with 32 and 64 bits together.immibis wrote:I read that you both need to use 32-bit, or both 64-bit, to avoid desyncs.
- Ranakastrasz
- Smart Inserter
- Posts: 2179
- Joined: Thu Jun 12, 2014 3:05 am
- Contact:
Exosuit Equipoment Desync
Multiplayer "Basic Exosuit Equipment" causes desync.
Conjure powered armor t2, fusion reactor, a single basic exosuit equipment.
save, host as multiplayer. Allow another to join. Walk around with said modular setup.
Does not occur with multiple exosuit equipments. Only one.
Disabled all mods.
Conjure powered armor t2, fusion reactor, a single basic exosuit equipment.
save, host as multiplayer. Allow another to join. Walk around with said modular setup.
Does not occur with multiple exosuit equipments. Only one.
Disabled all mods.
My Mods:
Modular Armor Revamp - V16
Large Chests - V16
Agent Orange - V16
Flare - V16
Easy Refineries - V16
Modular Armor Revamp - V16
Large Chests - V16
Agent Orange - V16
Flare - V16
Easy Refineries - V16
Re: Exosuit Equipoment Desync
I merged the topics.
Re: [0.11.15] Dysync related to exosuit and 32bit versus 64b
Fixed for 0.11.16.
I had to go quite deep to find the problem, and I don't really understand the solution, but it works now.
For the curious ones, this is how the fix looks:
I had to go quite deep to find the problem, and I don't really understand the solution, but it works now.
For the curious ones, this is how the fix looks:
Code: Select all
float result = this->getPrototype()->runningSpeed;
if (Armor* armor = this->getArmor())
- result *= (1 + armor->grid.getMovementBonus(this));
+ {
+ // I put the value into variable, because of magic (32bit versus 64 bit compatibility)
+ float bonus = (1 + armor->grid.getMovementBonus(this));
+ result *= bonus; //(1 + armor->grid.getMovementBonus(this));
+ }
result *= (1 - this->shooter->getSlowDownFactor());
return result;
Re: [0.11.15] Dysync related to exosuit and 32bit versus 64b
is the implicit type of "(1 + armor->grid.getMovementBonus(this))" a float? because using the variable "bonus" makes an explicit typecast to float, which might be a meaningful difference.kovarex wrote:Fixed for 0.11.16.
I had to go quite deep to find the problem, and I don't really understand the solution, but it works now.
For the curious ones, this is how the fix looks:Code: Select all
float result = this->getPrototype()->runningSpeed; if (Armor* armor = this->getArmor()) - result *= (1 + armor->grid.getMovementBonus(this)); + { + // I put the value into variable, because of magic (32bit versus 64 bit compatibility) + float bonus = (1 + armor->grid.getMovementBonus(this)); + result *= bonus; //(1 + armor->grid.getMovementBonus(this)); + } result *= (1 - this->shooter->getSlowDownFactor()); return result;
Re: [0.11.15] Dysync related to exosuit and 32bit versus 64b
The getMovementBonus returns float, so I would guess that 1 + float is float.dee- wrote:is the implicit type of "(1 + armor->grid.getMovementBonus(this))" a float? because using the variable "bonus" makes an explicit typecast to float, which might be a meaningful difference.kovarex wrote:Fixed for 0.11.16.
I had to go quite deep to find the problem, and I don't really understand the solution, but it works now.
For the curious ones, this is how the fix looks:Code: Select all
float result = this->getPrototype()->runningSpeed; if (Armor* armor = this->getArmor()) - result *= (1 + armor->grid.getMovementBonus(this)); + { + // I put the value into variable, because of magic (32bit versus 64 bit compatibility) + float bonus = (1 + armor->grid.getMovementBonus(this)); + result *= bonus; //(1 + armor->grid.getMovementBonus(this)); + } result *= (1 - this->shooter->getSlowDownFactor()); return result;