Open theultramage opened 8 years ago
Well, that code is from the pre-renewal times when the class didn't have any other unit skills so it makes sense, needs updating though.
Just following it up. This commit https://github.com/rathena/rathena/commit/4c617bcd598fe1b5ea8b8e1e6276ee62b7d19143 fixes the bug.
Currently like ultramage said, if you use Manhole and Graffiti after, the Manhole will disappear but the effect will still linger and you can re-cast Manhole in a cell next to where Manhole was, effectively perma-trapping a player.
Also re-casting Graffiti will remove the previous and replace it with another. But you shouldn't be able to as well.
I recorded a video of the bug: https://www.youtube.com/watch?v=L2vBgHElsgg Fixed with rathena commit: https://www.youtube.com/watch?v=7oFsa-i_m5I (don't mind the pc audio didn't realize it was being recorded :thinking: )
This is ancient, pre-r1-eaSVN code. It is a very poor way of ensuring the caster can only have one scribbled text on the ground at a time. A more appropriate way might be to adapt skill_graffitiremover(), or perhaps to scan through sd->skillunit[] and remove the old unit.
On Aegis it seems that trying to place a second graffiti on the floor will succeed, but do nothing.
I've looked into this recently because I've been told that people were abusing that RG_GRAFFITI code with chaser's SC_MANHOLE. Normally you can't stack them to keep the target trapped indefinitely (but you can still spam-cast, so meh). But because the status doesn't immediately end when the ground unit goes away (unlike ankle snare), you can alternate casting manhole and graffiti to pull this off.