Draconic-Inc / Draconic-Evolution

Other
336 stars 170 forks source link

[Multiplayer] Chaos Guardian Cannot Be Damaged #192

Closed ghost closed 8 years ago

ghost commented 8 years ago

A friend and I went to fight the Chaos Guardian, however it turns out we can't hit it at all even though all the Chaos Crystals are down. I'm not sure if anyone else has this issue but I even flew to another island and it didn't get hurt either after the crystals were down.

GreatOrator commented 8 years ago

what version are you running?

Builderb0y commented 8 years ago

Latest version, Draconic-Evolution-1.7.10-1.0.2-Snapshot_8-bugfix.jar (I'm the friend he mentioned, we're on the same mod pack). Also looked at the code and it seems that the guardian can only take damage from players and explosions, and only if all ender crystals are destroyed.

During the fight, one of the crystals was still displaying the beam that heals the guardian, despite it being at 0 health. This did not persist throughout the fight, and disappeared when the chunk it was in was reloaded client-side. This could be a de-sync issue, so I haven't entirely ruled out the possibility that one of the crystals could have still been active server-side. However, we did fly to 3 different chaos islands and attacked all the crystals on each of them, so I find the odds of a de-sync like that happening 3 times in a row relatively unlikely.

Additionally, the player-damage-only thing might be causing problems with the difference between EntityPlayer vs. EntityPlayerMP (only explanation I can think of why it would work as intended in singleplayer, but not multiplayer). It could also be conflicting with galacticraft, which overwrites the EntityPlayer class; but we have player API installed as well, which is supposed to fix other mods that check for EntityPlayer's.

Lastly, I did test the devastation mode on the draconic bow (after failing to do any damage with rapid fire), and it didn't take any damage from that either. In fact, the arrows didn't even explode on contact with the guardian (but they did explode upon hitting blocks behind it).

Builderb0y commented 8 years ago

Did some more testing and found out a few things:

First, it is NOT a mod interaction issue, I set up a test instance with nothing but DE installed, and the issue persists.

Second, I've re-confirmed that this only happens in multiplayer. (again, nothing but DE installed)

Third, devastation arrows DO explode on contact with the guardian, maybe I had a worse aim than I thought last time.

And fourth, the "undead" chaos crystals are still an issue as well. The dragon seems to continue draining from the last known "alive" crystal, and does not seem to recognize when all of them are dead. Side note: when it re-ignites one of the crystals, that one is selected to be the new "undead" one when killed. Anyway, I suspect this is the most likely cause of the issue, and would recommend removing the no-living-crystals requirement for damaging the guardian, seeing as it would instantly heal from any alive crystals either way. Then again, if it doesn't recognize that all of them are dead, could it continue healing from a dead one when damaged? Or is healing processed by the crystals themselves, rather than by the guardian?

Yogington commented 8 years ago

We've seen a similar issue on the server I play on, crystals would spawn in and out no matter if they're dead or active meaning if you managed to take out all the crystals (I found unloading the chunks sometimes helped) once he managed to reactivate one you'd effectively have to start again due to the crystal healing him reappearing long after he has filled up his health bar. We originally thought it was the clear lag plugin deleting entities however crystals would still vanish even when it hadn't gone off.

Builderb0y commented 8 years ago

I have just discovered that the guardian will start taking damage again if it is unloaded, and then reloaded. I can only assume this forces it to update the cache of which crystals are alive. However, due to its ability to re-ignite crystals, reloading is required several times during the fight. This is not ideal.

ghost commented 8 years ago

One way to fix this is to not allow the dragon to re-activate crystals or do some coding stuff to fix the crystal issue.

Builderb0y commented 8 years ago

Preventing the guardian from re-igniting the crystals would still require at least one reload due to them being at full health when the fight starts, which still isn't ideal. Not only would this make for a very counter-intuitive game mechanic if not fixed, but I also quite like the guardian re-igniting the crystals.

ghost commented 8 years ago

Which is why the code way is the best step, hopefully this is fixed in the next snapshot download.

hemmothebest commented 8 years ago

Now after the update its totally immune not even reloading chuncks helped.

fxstriker commented 8 years ago

Been trying to kill that dam dragon for 3 hours it seems to be healing for no good reason they should just be destroyed for good they seem to be really buggy when they come back alive and the tether does not seem to work at all so the dragon heals 1/4th a hp bar before you even notice cause he fly's away from you and comes back healed.

this is really disappointing cause i wanted to play around with fusion and i am faced with a seemingly impossible wall of bugs

Zaflis commented 8 years ago

Here's 1 more video on chaos dragon on multiplayer (i couldn't make his healthbar move an inch) https://www.youtube.com/watch?v=acFlCbhGqXk

Draconic-Evolution-1.7.10-1.0.2-Snapshot_8-bugfix

brandon3055 commented 8 years ago

Im going to release a new update ether later tonight or some time tomorrow that will hopefully crosses fingers make all these problems go away.

To hopefully fix these issues i have made the following changes:

  1. I believe the issue with the "undead" crystals may have been that when disabled they are "technically" so the game dose not bother to update their health when they are restored. So i added some custom sync code to hopefully fix that issue.
  2. Im storing the location of the current connected crystal in the dragons code so it will always show which crystal it is connected to even if that crystal is unloaded or out of sync.
  3. I added a chat message telling you when your attack is being blocked by one or more crystals
  4. The dragon re-checks all of the crystals every few seconds so if it for some reason thinks one is still active when they are all dead the this will fix that.

The big issue i am having fixing this issue is i have never been able to reproduce it so i dont know if its actually fixed or not.

p.s. EntityPlayer is the base player class which all other player classes extend. so when i check if a player is an instance of EntityPlayer that will work for ANY player.

brandon3055 commented 8 years ago

Ok so i have made a few changes to the next version which i will be releasing ether tonight or tomorrow that will hopefully fix all of these issues.

I have hopefully fixed the syncing issue with the crystals, The dragons healing beam will now always render if it is connected to a crystal even if the crystal is unloaded or bugged out, You will get a message if you try to hit the dragon while a crystal is active and finally the dragon will refresh the list of active crystals every few seconds so if it for some reason thinks a disabled crystal is still active that should fix it.

My biggest issue fixing these problems is i have not been able to recreate any of them so i dont know for sure if they are fixed or not. But im really hoping this dose the trick.

Zaflis commented 8 years ago

It can be damaged now, so thx for fixes. Having trouble killing it though, i've spent 1B RF recharging flux capacitors so far for damage it does to my draconic armor. Was flying after it for 40 minutes but the rate it's reigniting new crystals makes it really hard. 10% health is about where he's at now, and still is if i teleport home and come back.

Problem areas:

Anyone else tested (on a multiplayer server ofc)?

ghost commented 8 years ago

First of all, rapid fire arrows can easily hit the Chaos Guardian if you aim up a bit for the perfect angle.

Secondly, crystals get the red beams as it's protection. They last for several seconds as if you can't one-hit it then it will protect itself. To counteract this, get sharpness V on the Draconium Staff.

Also, players WILL die without any other armor. Awoken armor will prevent the void damage (more custom damage but acts like void damage) from killing you (yes, almost all the attacks are void damage). This boss is made to be the hardest boss in the game, modded or not.

Lastly, the point of killing it is to get the Chaos Crystal for the Draconic Reactor (which you only need to fight it once for enough shards).