Azami7 / Ollivanders2

Updated version of the Ollivander's plugin for Spigot
11 stars 4 forks source link

Avada Kedavra can't hit Enderdragon with Spell and spell is too Slow #476

Closed Le0nWolf closed 2 years ago

Le0nWolf commented 2 years ago

It is impossible to hit the Enderdragon with Avada Kedavra. The Spell flyes through the Enderdragon and sometimes hits and Kills an Enderman. farther maybe its my server, the time after calling the spell and left klick with the wand the time after left klick to the appering of the spell is too long.

Azami7 commented 2 years ago

The delay in casting a spell is a config setting - https://github.com/Azami7/Ollivanders2/wiki/Configuration#fast-spells. This is off by default for better server performance for slower servers.

Avada Kedavra does damage based on your skill level. The Ender Dragon is really big, it would take a lot to kill it.

Le0nWolf commented 2 years ago

Thanks for your reply Oh yeah. The fastSpells option worked. For the second Problem: I have Avada Kedavra on Level 800. With Elder Wand that makes 1600. I can one hit the Wither. But can't hit the Ender Dragon. Its like i missed the hit box. But the Projectile flows through the dragon . Sometimes killing after this some Enderman when hes on its way. When the spell would hit the dragon shouldn't it damage the dragon and then dissapper ? One more question. I looked at the source code and found that avada kedavra can't be a Wand master spell. It works if you set it in O2Player config as master spell but you can't cycle through to avada kedavra. It would be nice if it where permission based. So if someone has the permission he can cycle through and when not he can't.

Le0nWolf commented 2 years ago

I also had the idea to import the code into my eclipse and then compile it myself after I made a few changes in the code. But I miss the build Path Files: craftbukkit.jar (here i don't know with version of craftbukkit or spigot I habe to use), worldedit-5.5.8.jar (I can download this), and worldguard-5.8 (can download that too). Have you a download link or something for the craftbukkit.jar in "/home/lownes/Desktop/desktop things/Bukkit Server"

Le0nWolf commented 2 years ago

Oh and my Portkeys dosen't work. They always teleport me to my spawn/or Bed whatever coordinates I give to the Spell. I have testet it with: "Portus 200 200 200" i thought maybe only positive coordinates would work but nothing. "Portus -180 60 200" I have started Olli debug mode but can't finde the Problem there. I don't know whats wrong. But nevertheless really good Plugin.

Azami7 commented 2 years ago
  1. Spells max out at 200 on strength - so that damage may just not be enough to kill the Ender Dragon. It sounds like it is having a hard time targeting the Dragon though, which is not surprising - they have some unique challenges due to their size. It is not likely something we're going to prioritize fixing though since that isn't really the intent of the spell.

  2. On Avada Kedavra and being your wand spell, this is by design. That spell should seriously drain a wizards energy such that it cannot be cast repeatedly.

  3. You need to include the spigot API as a module if you want to build any plugin. I recommend looking up some tutorials on how to do plugin development to get started.

  4. Portkeys have always had issues, I am not sure if they worked correctly even in the original Ollivanders. We have a backlog item to redo them - https://github.com/Azami7/Ollivanders2/issues/423

Le0nWolf commented 2 years ago

Thanks for Reply. I have Testet another Harry Potter Plugin where Avada Kedavra exists too and there the spell can easily hit the dragon. So it can't be a hitbox problem. First even on Level 200 Avada Kedavra makes enough damage to kill the ender dragon. And second the spells can go above Level 200 it is not the max Level. I know when you set the config "maxSpellLevel true" all spells will be on Level 200. But when maxSpellLevel is false and you have a spell higher than 200 it is more powerful. To proof this I have made some tests: First. set maxSpellLevel to true so very spell is Level 200. Then enable debug mode with /olli debug. Now I have joined my server with my Laptop and gave me the health_boost effect.: "/effect give MySecondAccountName minecraft:health_boost 600 255" This will give max health_boost level 255 for 600 seconds. Then I filled all the health bars with the regenaration effect: "/effect give MySecondAccountName minecraft:health_regenaration 70 255" This will regenerate the health Bars until they are full. Then I waited for the regeneration effect to go away (only 70 seconds duration.) Now the player MySecondAccountName has something abbaut 1024 Health Points. When I now cast Avada Kedavra with my other account on the player, I see in the server console that the usemodifier is 200(maxspelllevel true). When the spell Hits it will remove something around 7 health Bars (I don’t know exactly because testet it a few days ago but you can test it too). So lets say it’s 7 health bars. (I think it’s a little bit more) That would be 20HP times 7 Bars = 140 HP. The Ender Dragon has 200 HP. So if he could hit him. His health where very low. Now do the same thing with "maxspelllevel false" and Avada Kedavra on Level 1000 or something. For this. Shut down the server. And go to the O2Players.txt now search for AVADA_KEDAVRA and set the number to 1000 or higher. Save, start the server, give the Player the health_boost effect on max level just like described above and when the health (1024HP) is full, hit the player with the spell. Before this make sure you have debug mode activated ("/olli debug") to see the usemodifier in the server console. You will see that the modifier is exactly the number you set in O2Players.txt - When Elder wand is used the number times two. When you now hit the Player with 1024HP he will instandly die.

You can do the same thing with the Reducto spell the explosion on level 400 will always crash my server on 200 it is big lag and then big hole. When you the it to 800 Reducto is so powerful that it will destroy ("almost everything")

  1. Ok that’s what I wanted to know so you use Spigot api the 1.16.5 Version? I always have programmed my own plugins some years ago And last time last year I updated one Plugin to newer version.

Best Regards Leon

Azami7 commented 2 years ago

I am not saying a spell cannot hit an Ender Dragon, I am saying I am not surprised that it doesn't because the Ender Dragon is a complex entity and requires extra effort to target, which this spell doesn't do. You, theoretically, could do it if you aimed in just the right spot but it would be pretty hard.

As for damage, you are right, Avada actually doesn't have a limit (most of the spells do). There are so many in the plugin I cannot even remember where we've put in limiting behavior and where we have not anymore.

You can see the same thing with Reducto. These original plugin spells were not written with limits and we have added some (like to Wingardium) but we have not made an audit of all. I've created https://github.com/Azami7/Ollivanders2/issues/476 to track that one.

As for API, the current code will need 1.17.1 but you could use 1.16.5 if you pull the 2.6 branch. There shouldn't be many differences between the 2.7 branch and master other than the changes needed for 1.17.1 support.