Pryaxis / TShock

☕️⚡️TShock provides Terraria servers with server-side characters, anti-cheat, and community management tools.
GNU General Public License v3.0
2.41k stars 377 forks source link

Disabled player will get healed #1151

Closed sgkoishi closed 5 years ago

sgkoishi commented 8 years ago

Disabled player will get healed. Some player use banned item to get themselves disabled(healed) and act as tank in Boss battle. The Boss do not attack other player, so people can easily defeat bosses Is it possible to add a varible in config like "DoNotHealDisabledPlayer" or something can prevent this?

Angelyss-zz commented 8 years ago

Can confirm:

2016-01-13_00008

QuiCM commented 8 years ago

Ty @Angelyss

Kojirremer commented 8 years ago

Yes, someone recently told me about people using that exploit, and not just to tank. They could also somehow keep holding the Terrarian while stoned and being healed. Immortal stone brandishing a Terrarian = BROKEN XD

QuiCM commented 8 years ago

Possible solutions:

@NyxStudios/tshock opinions?

Kojirremer commented 8 years ago

Is it possible to also lower their aggro so that bosses will not be fixated on the disabled player and go for the other ones? I don't really know if their aggro level can be modified without buffs, but as gyrodrill said, the stoned tank will just sit there while everyone else slings sticks and stones to the boss from a safe place and the boss will be fixated on the stoned player.

Maybe making them invisible? I don't know if there are other buffs that can reduce enemy aggresion towards someone. There are accesories, but I don't know if their effects can be given via packets (Putrid Scent for instance).

QuiCM commented 8 years ago

@Kojirremer It's possible to set an NPCs attack target, I believe, but continually ensuring disabled players are not being targeted sounds horribly inefficient with large numbers of players

Kojirremer commented 8 years ago

Then just adding invisibility to the list of buffs for a disabled player? It's not much, but being invisible does reduce enemy aggro towards the invisible player (at least since 1.3). Just to note though, there are bosses that once they decide on a target, they won't switch no matter the aggro of players, like berserk Skeletron/Dungeon Guardian.

mistzzt commented 8 years ago

How about letting the server know that the disabled players are died?(they arent, actually) Then bosses will not recognize the disabled players as target, and problem solved. But disabled players should not receive any packets suggesting they were died. Moreover, server should not sync their life points and decide whether they died or not.

Kojirremer commented 8 years ago

Even though I'd REAAALLY like the projectile kill to be implemented, I have to agree that the fastest solution would be to just not heal them anymore when disabled.

AxisKriel commented 8 years ago

I like @WhiteXZ's solution. Someone should prepare a Pull Request with these changes so that we can discuss this more easily. If anything, I see no reason to heal disabled players.

hakusaro commented 7 years ago

Flagging this as PR wanted and in agreement with @Kojirremer that the fastest solution at this point should just be to not heal disabled players.

Simon311 commented 7 years ago

I am unable to reproduce the issue at the moment. I do, however, see that the only place it seems to "heal" a disabled player is in the player damage packet handler. But since the player is disabled at that time, the only way to send that packet is seemingly via using a hacked client... UPDATE: Actually, even that should not be the case, since damage from the boss would probably be dealt by the server? I need more info on how to reproduce this,

hakusaro commented 7 years ago

@Simon311 I believe people just don't get damage, maybe? Apparently being disabled you can tank monsters -- is this true?

Simon311 commented 7 years ago

Like I said, I was unable to reproduce the issue. Tried 3 bosses and some regular mobs, they did inflict damage and HP did update.

hakusaro commented 7 years ago

Got it; thanks for the testing @Simon311!

@gyrodrill @Angelyss do either of you have reproduction steps on this?

hakusaro commented 7 years ago

[Cannot be reproduced in vanilla, thanks to @Simon311 and @Angelyss for helping].

aimiku commented 7 years ago

11 22 23

Kojirremer commented 7 years ago

Last night I also saw it myself. Someone was purposely getting disabled to tank the golem while others attacked from the side. He didn't seem to get healed anymore, but his HP would not go down either, or rather, it would go down for a fraction of a second, then recover (without healing, just going back to how it was).

Simon311 commented 7 years ago

@aimiku In all of the GIFs it is clear that you're using a modified client. @Kojirremer This may as well be a hacked client

hakusaro commented 7 years ago

@aimiku hiya! Thanks for the report! Can you send us your loaded plugins, TShock version, config file, and the permission set of the user? We'd love to fix this if we can reproduce it c:

hakusaro commented 7 years ago

screen shot 2017-02-07 at 7 12 15 pm

mistzzt commented 7 years ago

@Simon311 aimiku did use modified client, an unofficial Chinese version Terraria. But this fact has nothing to do with the issue

hakusaro commented 7 years ago

@mistzzt 👍 we've got a discussion in slack going on about this -- but thanks for the input! We're working on it.

hakusaro commented 7 years ago

From .WhiteXZ in Slack confirming issue via gif:

tanpro260196 commented 7 years ago

So how is this issue going? People is starting to exploit this to fight plantera on my server...

AxisKriel commented 5 years ago

I can't seem to reproduce this in the latest build. Has it been patched in the past without referencing this issue?

hakusaro commented 5 years ago

cc @QuiCM

no-response[bot] commented 5 years ago

This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.

bartico6 commented 5 years ago

GIF Correct, this is still an issue. Reopen?

sgkoishi commented 5 years ago

Probably you need to open a new issue. @bartico6 I have no idea about this issue: sometimes it happens and sometimes it doesn't. Whenever I try to reproduce or debug, it vanishes. A stupid solution is teleport player to a region when they are disabled - but it is not a fix.

bartico6 commented 5 years ago

The problem is that in this glorious game, the client dictates hitreg, so if you disable them and block subsequent health updates from them you grant them godmode (client gets hit, client reports hit, server resets their health 'cuz they're disabled, client magically heals). Until you implement a full server-side hitreg engine (or allow health updates while disabled, which is prone to exploitation anyway) you won't fix this problem.

Simon311 commented 5 years ago

https://github.com/Pryaxis/TShock/blob/da645ccaf5cf5d0bbd893740ffcc3ef23d3dad29/TShockAPI/Bouncer.cs#L1789-L1795

no-response[bot] commented 5 years ago

This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.

Kojirremer commented 2 years ago

I don't know if it was fixed, but I've noticed a reemergence of it, and if the disabled player gets oneshotted, they become the living dead 🧟‍♂️: Their gibs stop in midair and the player can't do anything, but they are "alive", and using teleport commands lile /spawn will teleport the frozen gibs.

Arthri commented 2 years ago

Oh I know this, it happens when a player dies and their HP is set above 0

zombie