LorinthsRpgMobs
This is a simple 'plug and play' plugin that adds a difficulty to creatures, and a Level Indication based on their distance from Spawn. The current formula to get the mobs level is by default as follows....
(((Distance from closest spawnpoint) - CenterBuffer) / Distance) + 1 = Mob Level
-
This gives the result of creatures 0 - 49 blocks from spawn = Level 1. 50-99 = Level 2, etc
-
The distance value of, 50, can be modified by your own choice
What these levels change and add...
-
Increases Damage / Health a monster has (these levels play into configurable formulas that increase damage and health)
-
Adds armor to creatures at specific increments (configurable)
-
Gives different loot drops based on level
Level Regions
Level regions can be created (in conjunction with World Guard) to create zones of stronger/weaker mobs!
You simply create a level region with the worldguard id and give it a level!
From there you can customize mob names based on regions!
Mob Variants
Commands
- /lrm - displays all available commands of the ones listed below (if not listed check permissions)
- /lrm butcher [radius] - kills all entities loaded in world that aren't tamed
- /lrm region - access to all region commands
- /lrm reload - saves/reloads config files
- /lrm spawnpoint - access to all spawnpoint commands
- /lrm update - updates the plugin, takes effect after server restart
Permissions
- lrm.admin - gives access to most the commands above
- lrm.butcher - gives access to the butcher command
- lrm.update - gives access to /lrm update - uses auto updater to allow for automatic updates!
Videos
- Mob Hunting
- Battlelevels
- Heroes
- Skill API
- EnchantmentApi
- MythicMobs
- Health Bar
- Mob Health
- Elite Mobs
- Quests
- DungeonsXL
- MMOCore
- MMOItems
- RedProtect
- GriefPrevention (and GriefPreventionFlags)
- TardisWeepingAngels
- WorldGuard
- bukkit version
- LRM version
- links to a Pastebin including your config files and the error
@firesofhades
So you're saying that putting in a disclaimer for "Reloading is a no no" with this plugin, wouldn't be terrible? Because restarting works fine, reloading the plugin at all does not.
I might just have a full pack and a light pack, then people can decide which one they want
@lorinthios
Yes, the player's XP level vs the monsters plugin level.
@lorinthios
i don't have a lot of experience on that matter unfortunatly :( i think overriding/modifying nms classes happens when the server gets started, it doesn't duplicate the code or anything, so in between the unloading/loading of a reload, code for themob ai is missing and thats whats causing the crash. this could be solved with a modified bukkit, but thats obviously not prefferable.
i do think its not that big an isseu tho. most plugins have their own reload command for configs and stuff(make one too). using /reload is bad practice anyway, at least last time i checked, which was a good while ago. it's the reason so many poluginmanagers are around. imo stopping/starting the server is the better choice over a complete server reload anytime. a complete server reload is never really needed anyway. prepping configs on a testserver so you can do a smooth update by just restarting shouldn't cause more then a few mins downtime.
i looked a bit and i see spigot still has this on there wiki:
Reload
The reload command is a command that is built into Craftbukkit that simulates the server restarting without kicking off the players, while some server owners like to use this command to avoid kicking players off the server, the use of the reload command is not recommended on production servers. Reloading is designed to be used on non production servers, the use of reload on a production server can have severe consequences such as memory leaks. Some plugins provide an individual reload command that only reloads the plugins individual configuration file, this command can be used on production servers as it does not have the negative side effects that the Bukkit reload command has.
Restart
The restart command is a command that is built into Craftbukkit that turns off, and turns back on the server upon execution. Players online before the restart command is executed are kicked off the server with the message defined in the spigot.yml. Restarting is recommended when the goal is to install a new plugin, update a server jar, or update a configuration file. Restarting may also be useful every set period of time (Ex: 12 hours), this frees up server resources and reduces server lag.
i know i have experienced these isseus and benefits firsthand in the past.
@firesofhades
The server crashing problem is still the main issue and I haven't found a work around it. It just a matter of implementing the custom AI's that work with the RPG spawners. The problem is reloading the plugin, and I can't really expect people to keep a plugin that crashes EVERY time they have to reload the server, or expect them to stop/start the server each time they need to
FOR ALL BUG PROBLEMS
Please use the latest [BETA] build in the files tab, and report your errors I can now accurately help and fix them!
@UltrafaceGuy
I definitely understand your idea. Since I'm beginning the beta/dev tracks I can go ahead and slide your idea onto the beta build. Are you meaning their minecraft level vs. the mobs level?
Hey guys I'm still racking my brain with the crash issue.
SOOO...
I'm going to release a DEV build. This will include all the new features up to this point if you wish to use them. I will include known issues and warnings such as this new DEV build causing the crashing issue on reloading.
I will also be releasing a safer [BETA] version. Which is the version previous to all the changes in dev. So I can still provide appropriate bug fixes. This is the best course of action at this current point and I know you all are craving new features.
Finally, sorry I've been silent this month I'm working on numerous projects from this, to my own game! So, I do care about you guys and I'll do my best to clean and make this a great working plugin!
I have... an interesting request for the 2.0 version. Its something rather specific, so I understand if it wouldn't be a very good feature.
Basically, it'd be one config value, "XPDifferancePenalty". You could set it to a value, and that amount would lower the XP dropped relative to the killing player's level.
XPDifferancePenalty: 10 for example, would make it so there would be a 10% reduction per level difference. A level player 20 killing a level monster 19 would have their xp reduced by 10%. A level 20 player killing a level 21 monsters would ALSO have their xp reduced by 10%.
So that this doesn't go to zero, or negative values, the amount would be taken away from the remainder of the first reduction. A level difference of 1 would receive 90% XP. A level difference of 2 would subtract 10% from that 90% remainder, meaning a level 2 difference would receive 81%, not 80%. A 3 level difference would then lead do a 10% reduction in that 81%, equaling 73.9%, and so on.
Again, this is a pretty hefty idea, especially with how close 2.0 is to coming out! Sorry for suggesting it, if you can't/won't implement it!
EDIT: I messed around and found a good way of doing it! Here's a mockup.
@Feeriix not everyone has this error, and we don't know why some do and others don't so a workaround on your end is not known.
as far as i know its waiting for 2.0. :( i assume it'll be fixed then because code-wise it should be a simple matter.
let's hope the crash issue of 2.0 is solved soon :P
@lorinthios
Hey, I am getting spammed with this error: http://pastebin.com/hwBBn71Z
Any possible fix? Using Spigot build #1554. Thanks!
@lorinthios Mod Mo`Creatures.
In other plugin i saw autodetecd all entity, for example - http://dev.bukkit.org/bukkit-plugins/silkspawners/
Can You make similar support?
Thanks!
@Meowt
Just inform me which plugin you need support for and ill do my best!
Hello! Can You make a support for mobs from mods?
When any mod from mod spawning - plugin throws error:
2014-07-14 16:28:50 [SEVERE] Could not pass event CreatureSpawnEvent to LorinthsRpgMobs v1.5.2
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:437)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callCreatureSpawnEvent(CraftEventFactory.java:266)
at net.minecraft.world.World.addEntity(World.java:1955)
at net.minecraft.world.SpawnerAnimals.func_77191_a(SpawnerAnimals.java:314)
at net.minecraft.world.gen.ChunkProviderGenerate.func_73153_a(ChunkProviderGenerate.java:574)
at org.bukkit.craftbukkit.v1_6_R3.generator.NormalChunkGenerator.func_73153_a(NormalChunkGenerator.java:59)
at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:399)
at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1332)
at net.minecraft.world.gen.ChunkProviderServer.originalGetChunkAt(ChunkProviderServer.java:270)
at net.minecraft.world.gen.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:194)
at net.minecraft.server.management.PlayerInstance.<init>(PlayerInstance.java:57)
at net.minecraft.server.management.PlayerManager.func_72690_a(PlayerManager.java:140)
at net.minecraft.server.management.PlayerManager.func_72691_b(PlayerManager.java:256)
at net.minecraft.server.management.PlayerManager.func_72685_d(PlayerManager.java:343)
at net.minecraft.server.management.ServerConfigurationManager.func_72358_d(ServerConfigurationManager.java:379)
at net.minecraft.network.NetServerHandler.func_72498_a(NetServerHandler.java:611)
at net.minecraft.network.packet.Packet10Flying.func_73279_a(Packet10Flying.java:51)
at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:470)
at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:233)
at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:54)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(DedicatedServerListenThread.java:34)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:910)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:330)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:777)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:659)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
at me.Lorinth.MobDifficulty.MobDifficulty.getMobHealth(MobDifficulty.java:862)
at me.Lorinth.MobDifficulty.MobDifficulty.onEntitySpawn(MobDifficulty.java:1534)
at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:435)
... 29 more
Thanks! And continue to support for 1.6.4.
@Powercows
no worries glad it worked out!
version 2.0 should come out in a couple of days! We've done heavy testing but its practically ready!
The main problem that I know of... is the fact that I make "new" mobs with different behavior. When someone reloads the server it will crash the players out. So if you don't do a lot of reloading this is fine. Otherwise you may need a plugin manager to specifically reload everything but this plugin to avoid the crash... Which this is a pain. So I'm trying to figure out a work around but the only way right now is with a manager and blocking the normal /reload command
It was indeed another plugin.. it only shows up in line of sight.
thanks for the quick and helpful replies.,
very cool plugin, i like a lot
@Powercows
Everything fires has said is correct! They shouldnt show their names unless in direct line of sight and within about 7 or 8 blocks.
So it may be another plugin causing the names to stay visible
@Powercows
for me the nametags only show up when i'm targeting the monster, meaning a direct line of sight within x blocks. i build a wall around some zombies to be sure, and i couldn't see the tags trough the wall.
this suggests lorinthios does not set nametag visibility to true. (not sure but i think visibility on true still wouldn't show nametags through walls) could something else be going on? are you sure this isn't caused by another plugin?(or modded/hacked clients on the players side)
if you are convinced the problem is with LRM, please provide the following information:
If you provide all of this information then Lorinthios can get to the bottom of the problem a lot quicker, and possibly provide a fix for you.
I'd like to be able to turn off that naming stuff over their heads.. it allows players to find places under ground they shouldnt
oki very thanks for support :)
@Minefrench
hopefully I can get it completed for you eventually =)