Individual Mob kill/level awards
tmellen opened this issue ยท 15 comments
Is there a way that mob kills can be individualized for the kill levels acheivments?
Current Example: kill 100 skeletons and you go to level 1, and get the level 1 reward. Kill 100 zombies and you get the same level 1 reward, be it gold or an item, etc.
What I want to do: Kill 100 zombies, get a level 1 zombie advancement level. kill 100 skeletons, get the skeleton level 1 award (different reward). This way I can reward tags, or titles to players.
Make level 1 in skeleton killing earns a "Bonecrusher" title.
Make level 1 in zombie killing earns a different title, "Walker Stalker"
Make level 2 in skeleton killing, earns "Skullsmasher" as a title.
etc...
Is the Title something you want displayed in chat, or something people can somehow see? Because you may, sort of, be able to accomplish what you're after.
The Achievements allow you to run a command. I'm not certain how it executes it when you hit further levels, but my thought was you could set up Permission Groups and then the command that's executed would Promote them through the ranks as each achievement level is... well.. achieved lol
Sadly, I've never been able to properly figure out Promote/Demote in GroupManager, so I can't be of much help to you there, otherwise I'd gladly provide an example ๐
The achievements do allow me to run a co.mand, but not per monster type, that I can see. I can run a command on the generic level 1 (100 kills) or level 2 (250 kills) but I need the command to run per monster type, per level. So 100 skeletons runs a different command from 100 zombies. I have all the commands and tags setup. I only need the ability to run it per monster type levelup.
It's not for all titles, all the time. It's so players can chose which title they want to display. Currently, I'm handing titles out by hand for rewards. A player may have the following titles: Bonecrusher, WalkerStalker, WitchHunter, Vindicated, Vexxed, etc... The players earn the titles by killing 100 of the critters. Once a title is earned, they pick which one they want to display with the /TAGS command from "deluxetags". When this pick one, their name is displayed as "[rank] [title] playername" so for me, as an example, in chat it shows: "[owner] [BoneCrusher] Tmellen> Hi everyone!"
Even if you can trim it down to running a command with two placeholders, monstertype and levelachieved, that would work so I could use them in the cmd, something like: pex player add tag.skeleton1, or add tag.zombie4, etc.
I cant see how this should work??? The player name can not be pre-fixed with all this titles???
And adding one "run command foe each mob for 8 levels, that would be a VERY big config.yml with +500 run commands... that sound not something everyone wants to configure. Then config is allready enormous :-)
Im sorry. I still dont get it... depending on the number of MobPlugins (MythicMobs, Tardis Mob, ....) you have on your server, you can have +120 different mobs - times 8 levels = ~1000 titles. That is too many Titles to come up with.
May be I dont understand the request?
How do you imagine the config.yml would look like? Can you make an example?
I see where he's going with this, and I had an idea for it earlier which sadly didn't pan out at the last stage of my idea; alas, I still feel using Permission Groups to handle the rankings and tags would be easier. I just can't quite come up with a way to allow the players to handle picking which one they'd want to utilize.
Having it just be Group based with a Promotion system would only require each MobHunt rank to run a single Promote command after however many number of mobs you configure to determine leveling up at (100 in this instance).
So if there were groups for each mob type, and sub-groups for each level, all MH does is run (in GroupManager's case) /manpromote <player>
every 100 kills.
Since the groups can have Prefix/Suffix tags, each promotion would be able to automatically apply a new tag to the player.
But, again, I'm not quite sure how tmellen would set his server up to allow the players to specify which ranking (group) path they're currently part of. Like, he could have a room that they step on a pressure plate which runs a command to move them into the right group, but then the problem is how does one apply the correct rank again? It would reset the rank for each mobtype they progress down, and they'd start at the lowest one everytime.
However, if the mobtype plays no role in the group they're part of, then I don't think the above paragraph would even apply. If all they need to do is kill 100 of a specific mob to obtain a new Title (prefix), then my promotion system should work fine from what I can tell.
Correct me if I'm wrong, but the current config looks like this:
hunter1: 1000.0
hunter1-cmd: give {player} gold_ingot 5
hunter1-cmd-desc: Enjoy your 5 Gold ingots
hunter2: 2500.0
hunter2-cmd: give {player} gold_ingot 10
hunter2-cmd-desc: Enjoy your 10 Gold ingots
hunter3: 5000.0
hunter3-cmd: give {player} gold_ingot 20
hunter3-cmd-desc: Enjoy your 20 Gold ingots
etc...
It's triggered EACH time they level off of a series of monsters kills. Kill 100 skeletons, the hunter1 triggers. Kill 100 zombies. Hunter1 triggers again. Kill 250 skeletons, Hunter2 triggers... You wouldn't need to add 100s of lines to the config file if there were a monster identifier. You wouldn't need to add any.
The command to give a person a tag is:
/pex user {player} add deluxetags.tag.{tag}
Thus the config file could read:
hunter1: 1000.0
hunter1-cmd: pex user {player} add deluxetags.tag.{monstertype}1
hunter1-cmd-desc: You just earned a a new title! Type /TAGS to see what it is!
hunter2: 2500.0
hunter2-cmd: pex user {player} add deluxetags.tag.{monstertype}2
hunter2-cmd-desc: You just earned a a new title! Type /TAGS to see what it is!
hunter3: 5000.0
hunter3-cmd: pex user {player} add deluxetags.tag.{monstertype}3
hunter3-cmd-desc: You just earned a a new title! Type /TAGS to see what it is!
etc...
The bulk of the management then goes to my end, where I have to create a tag for:
skeleton1
skeleton2
skeleton3
skeleton4
skeleton5
skeleton6
skeleton7
skeleton8
zombie1
zombie2
zombie3
etc...
The final result is that when each user types /TAGS, they get a personalized list of titles they've earned from killing various amounts of monsters.
If I don't want 100s of tags, I could only award a tag per monster hunter level 1 for each mob, then prize rewards for the next levels, and a final tag rewarded at hunter level 8...
All of that could be done on my side, with me managing it, if there were just a {monstertype} placeholder for the reward line.
Ahh, now I think I got it... You want me to replace {monstertype} with a string describing the "Skeleton" if is a Skeleton and so on.... That is actually EASY! :-)
Please test build 482 or newer
https://fractal.lindegaard.one:8181/job/MobHunting/
You can see the valid monstertype's in your en_US.lang file (or what ever language you are using).
OBS. Remove the prefix "mobs." and the suffix ".name" Notice that all names must be unique and non minecraft mobs has the plugin-name attached and this must not be removed. Example is you want a tag for an Infernal Blaze (the configuration string in the lang file is mobs.InfernalMobs_Blaze.name=Infernal Blaze) so you would have to define deluxetags.tag.InfernalMobs_Blaze
This is the complete list from my Language file
mobs.Bat.name=Bat
mobs.Blacksmith.name=Blacksmith
mobs.Blaze.name=Blaze
mobs.BonusMob.name=Bonus Mob
mobs.Butcher.name=Butcher
mobs.Cartographer.name=Cartographer
mobs.CaveSpider.name=Cave Spider
mobs.Chicken.name=Chicken
mobs.Citizens_0.name=Odin
mobs.Citizens_1.name=Heimdal
mobs.Citizens_17.name=Thor
mobs.Citizens_29.name=Heimdal
mobs.Clownfish.name=Clownfish
mobs.Cow.name=Cow
mobs.Creeper.name=Creeper
mobs.Donkey.name=Donkey
mobs.ElderGuardian.name=Elder Guardian
mobs.EnderDragon.name=&5EnderDragon&r
mobs.Enderman.name=Enderman
mobs.Endermite.name=Endermite
mobs.Evoker.name=Evoker
mobs.Farmer.name=Farmer
mobs.Ghast.name=Ghast
mobs.Giant.name=Giant
mobs.Guardian.name=Guardian
mobs.Horse.name=Horse
mobs.Husk.name=Husk
mobs.Illusioner.name=Illusioner
mobs.InfernalMobs_Bat.name=Infernal Bat
mobs.InfernalMobs_Blacksmith.name=Infernal Blacksmith
mobs.InfernalMobs_Blaze.name=Infernal Blaze
mobs.InfernalMobs_BonusMob.name=Infernal BonusMob
mobs.InfernalMobs_Butcher.name=Infernal Butcher
mobs.InfernalMobs_CaveSpider.name=Infernal CaveSpider
mobs.InfernalMobs_Chicken.name=Infernal Chicken
mobs.InfernalMobs_Clownfish.name=Infernal Clownfish
mobs.InfernalMobs_Cow.name=Infernal Cow
mobs.InfernalMobs_Creeper.name=Infernal Creeper
mobs.InfernalMobs_Donkey.name=Infernal Donkey
mobs.InfernalMobs_ElderGuardian.name=Infernal ElderGuardian
mobs.InfernalMobs_EnderDragon.name=Infernal EnderDragon
mobs.InfernalMobs_Enderman.name=Infernal Enderman
mobs.InfernalMobs_Endermite.name=Infernal Endermite
mobs.InfernalMobs_Evoker.name=Infernal Evoker
mobs.InfernalMobs_Farmer.name=Infernal Farmer
mobs.InfernalMobs_Ghast.name=Infernal Ghast
mobs.InfernalMobs_Giant.name=Infernal Giant
mobs.InfernalMobs_Guardian.name=Infernal Guardian
mobs.InfernalMobs_Horse.name=Infernal Horse
mobs.InfernalMobs_Husk.name=Infernal Husk
mobs.InfernalMobs_Illusioner.name=Infernal Illusioner
mobs.InfernalMobs_IronGolem.name=Infernal IronGolem
mobs.InfernalMobs_KillerRabbit.name=Infernal KillerRabbit
mobs.InfernalMobs_Librarian.name=Infernal Librarian
mobs.InfernalMobs_Llama.name=Infernal Llama
mobs.InfernalMobs_MagmaCube.name=Infernal MagmaCube
mobs.InfernalMobs_Mule.name=Infernal Mule
mobs.InfernalMobs_MushroomCow.name=Infernal MushroomCow
mobs.InfernalMobs_Nitwit.name=Infernal Nitwit
mobs.InfernalMobs_Ocelot.name=Infernal Ocelot
mobs.InfernalMobs_Parrot.name=Infernal Parrot
mobs.InfernalMobs_PassiveRabbit.name=Infernal PassiveRabbit
mobs.InfernalMobs_Pig.name=Infernal Pig
mobs.InfernalMobs_PolarBear.name=Infernal PolarBear
mobs.InfernalMobs_Priest.name=Infernal Priest
mobs.InfernalMobs_Pufferfish.name=Infernal Pufferfish
mobs.InfernalMobs_PvpPlayer.name=Infernal PvpPlayer
mobs.InfernalMobs_RawFish.name=Infernal RawFish
mobs.InfernalMobs_RawSalmon.name=Infernal RawSalmon
mobs.InfernalMobs_Sheep.name=Infernal Sheep
mobs.InfernalMobs_Shulker.name=Infernal Shulker
mobs.InfernalMobs_Silverfish.name=Infernal Silverfish
mobs.InfernalMobs_Skeleton.name=Infernal Skeleton
mobs.InfernalMobs_SkeletonHorse.name=Infernal SkeletonHorse
mobs.InfernalMobs_Slime.name=Infernal Slime
mobs.InfernalMobs_Snowman.name=Infernal Snowman
mobs.InfernalMobs_Spider.name=Infernal Spider
mobs.InfernalMobs_Squid.name=Infernal Squid
mobs.InfernalMobs_Stray.name=Infernal Stray
mobs.InfernalMobs_Vex.name=Infernal Vex
mobs.InfernalMobs_Villager.name=Infernal Villager
mobs.InfernalMobs_Vindicator.name=Infernal Vindicator
mobs.InfernalMobs_Witch.name=Infernal Witch
mobs.InfernalMobs_Wither.name=Infernal Wither
mobs.InfernalMobs_WitherSkeleton.name=Infernal WitherSkeleton
mobs.InfernalMobs_Wolf.name=Infernal Wolf
mobs.InfernalMobs_Zombie.name=Infernal Zombie
mobs.InfernalMobs_ZombieHorse.name=Infernal ZombieHorse
mobs.InfernalMobs_ZombiePigman.name=Infernal ZombiePigman
mobs.InfernalMobs_ZombieVillager.name=Infernal ZombieVillager
mobs.IronGolem.name=Iron Golem
mobs.KillerRabbit.name=Killer Rabbit
mobs.Librarian.name=Librarian
mobs.Llama.name=Llama
mobs.MagmaCube.name=Magma Cube
mobs.Mule.name=Mule
mobs.MushroomCow.name=MushroomCow
mobs.MysteriousHalloween_ANGRYRABBIT.name=Angry Rabbit
mobs.MysteriousHalloween_ANGRYWOLF.name=Angry Wolf
mobs.MysteriousHalloween_BATCREEPER.name=Bat Creeper
mobs.MysteriousHalloween_BLACKSHEEP.name=Black Sheep
mobs.MysteriousHalloween_CHICKENWITHZOMBIE.name=Chicken with Zombie
mobs.MysteriousHalloween_ENDERMANWITHPUMPKIN.name=Enderman with Punmpkin
mobs.MysteriousHalloween_INVISIBLEMOBSWITHWEAPON.name=Invisible mob with weapon
mobs.MysteriousHalloween_LIGHTNINGCREEPER.name=Lightning Creeper
mobs.MysteriousHalloween_MAGMABLAZE.name=Magma Blaze
mobs.MysteriousHalloween_PIGWITHZOMBIE.name=Pig with Zombie
mobs.MysteriousHalloween_PIGZOMBIEWITHPUMPKINHEAD.name=Zombie Pigman with pumpkin head
mobs.MysteriousHalloween_SKELETONHORSEANDUNDEADHORSE.name=Undead/Skeleton-Horse
mobs.MysteriousHalloween_SKELETONWITHPUMPKINHEAD.name=Skeleton with pumpkin head
mobs.MysteriousHalloween_STACKEDSLIME.name=Stacked Slime
mobs.MysteriousHalloween_STACKEDSPIDER.name=Stacked Spider
mobs.MysteriousHalloween_WITCH.name=Witch
mobs.MysteriousHalloween_WITCHSPIDER.name=Witch Spider
mobs.MysteriousHalloween_ZOMBIEWITHPUMPKINHEAD.name=Zombie with pumpkin head
mobs.MythicMobs_BlizzardAOE.name=BlizzardAOE
mobs.MythicMobs_SkeletalKnight.name=&2Skeletal Knight
mobs.MythicMobs_SkeletalMinion.name=&2Skeletal Minion
mobs.MythicMobs_SkeletonKing.name=ยง6Skeleton King
mobs.Nitwit.name=Nitwit
mobs.Ocelot.name=Ocelot
mobs.Parrot.name=Parrot
mobs.PassiveRabbit.name=Rabbit
mobs.Pig.name=Pig
mobs.PolarBear.name=Polar Bear
mobs.Priest.name=Priest
mobs.Pufferfish.name=Pufferfish
mobs.PvpPlayer.name=PvP Player
mobs.RawFish.name=Raw fish
mobs.RawSalmon.name=Raw salmon
mobs.Sheep.name=Sheep
mobs.Shulker.name=Shulker
mobs.Silverfish.name=Silverfish
mobs.Skeleton.name=Skeleton
mobs.SkeletonHorse.name=SkeletonHorse
mobs.Slime.name=Slime
mobs.SmartGiants_SmartGiant.name=SmartGiant
mobs.Snowman.name=Snowman
mobs.Spider.name=&2SpIdEr&r
mobs.Squid.name=Squid
mobs.Stray.name=Stray
mobs.TARDISWeepingAngels_CYBERMAN.name=Cyberman
mobs.TARDISWeepingAngels_DALEK.name=Dalek
mobs.TARDISWeepingAngels_EMPTY_CHILD.name=Empty Child
mobs.TARDISWeepingAngels_ICE_WARRIOR.name=Ice Warrior
mobs.TARDISWeepingAngels_SILENT.name=Silent
mobs.TARDISWeepingAngels_SILURIAN.name=Silurian
mobs.TARDISWeepingAngels_SONTARAN.name=Sontaran
mobs.TARDISWeepingAngels_STRAX.name=Strax
mobs.TARDISWeepingAngels_VASHTA_NERADA.name=Vashta Nerada
mobs.TARDISWeepingAngels_WEEPING_ANGEL.name=Weeping Angel
mobs.TARDISWeepingAngels_ZYGON.name=Zygon
mobs.Vex.name=Vex
mobs.Villager.name=Villager
mobs.Vindicator.name=Vindicator
mobs.Witch.name=Witch
mobs.Wither.name=Wither
mobs.WitherSkeleton.name=Wither Skeleton
mobs.Wolf.name=Wolf
mobs.Zombie.name=Zombie
mobs.ZombieHorse.name=ZombieHorse
mobs.ZombiePigman.name=Zombie Pigman
mobs.ZombieVillager.name=Zombie Villager
Ok... I never even looked at that file. Looking at it now, it looks like {mob} already does this?
Wait -- So I can already use:
pex user {player} add deluxetags.tag.{mob}1
To generate the line:
pex user tmellen add deluxetags.tag.skeleton1
upon killing 100 skeletons?
I dont know where you get {mob} from ??? but for the Achievements I have added {monstertype} like you asked for.
This is the code
String prizeCommand = achievement.getPrizeCmd().replaceAll("\{player\}", playername)
.replaceAll("\{world\}", worldname).replaceAll("\{killerpos\}", playerpos)
.replaceAll("\{monstertype\}", mob.getMobName());
As you see you can use {player} , {world}, {killerpos}, {monstertype} and NOT {mob} or {killed}
Yeah, I just tested {mob}. doesn't work. I saw it in the language file for the test of the rewards. I'll grab the new version and check monster type when I get off this conference call! :)
Just tested... {monstertype} works for the achievements! Thanks so much! I've already said this is one of the best plugins out there, and I'll say it again, this is one of the best plugins out there, period!
Please make a review on Spigot :-) This important to me :-)
I can easily make other "placeholders" like this one I just need the ideas. :-)