Closed vilgrar closed 7 years ago
Thank for a very detailed description this makes things a lot easier. I will be able to make this fast for you.
I have a question though
Giving this a lot of thought, I concluded that there should be a better way to reward skill points.
I was originally thinking that each reward should be tied to a command (in the config file) of the mobs of my choosing. Therefore, mobs with a low drop rate (5-10%) award skills points and mobs with higher drop rate (villagers) should not have skill points as a reward
A simple example: creeper-cmd: mobhunt head give {player} Creeper Creeper 1 silent|give {player} iron_ingot 1|addlevels {player} {mcmmo_kill_weapon_used} 1
In this case, I added a skill point (based on weapon used) when a head drops. A creeper has a 10% drop rate as default, meaning it'd (in theory) grant an skill point on every 10th regular kill when the head drops. That is fairly acceptable but still not great.
blacksmith-cmd: mobhunt head give {player} Blacksmith Blacksmith 1
I won't add skill points as a reward because 100% would make this mob a desirable farming object.
So why isn't this good enough?
Well, because the skill reward is directly tied to the head drop chance, I'd have to exclude all mobs that have 10% drop rate or more (possibly even start at 5%). That'd make it hard to find a good balance between head drop and skill point rewards. Also, it sounds much more reasonable that "every mob counts", not just the ones that happen to have a low head drop rate.
So I was thinking about an alternative, which is to make the skill reward a separate chance on each kill but still configurable (which is number 1 on your list if I understood you correctly).
This could be solved by adding two (hypothetical) extra lines to each mob:
creeper-mcmmo-skillreward-chance: 0.02 creeper-mcmmo-skillreward-amount: 1
10% chance for a head drop is separate from the 2% chance for a skill point reward (per kill). Only one point as a reward because creepers are very easy to find.
elder-guardian-mcmmo-skillreward-chance: 0.33 elder-guardian-mcmmo-skillreward-amount: 2
Elder Guardians are rare and very tough. It makes sense they should have a high chance and award more points than the creeper.
Figuring out the proper balance for 50+ mobs is quite the undertaking, which is why the server owners should add the skillreward chance by themselves. It should probably be left at 0.00 as default to make sure skill points don't grow too fast. Players can be very creative when it comes to finding workarounds. =)
yes it was something like this I had in mind
creeper-mcmmo-skillreward-chance: 0.02 creeper-mcmmo-skillreward-amount: 1 ..... ..... elder-guardian-mcmmo-skillreward-chance: 0.33 elder-guardian-mcmmo-skillreward-amount: 2
2 new lines for ALL mobs, and not connected to creeper-cmd-run-chance: 0.5 elder-guardian-cmd-run-chance: 0.33
I have thought about the "problem" with the "xxx-cmd-run-chance" which is the same for all commands Ex. creeper-cmd: mobhunt head give {player} Creeper Creeper 1 silent|give {player} iron_ingot 1|addlevels {player} {mcmmo_kill_weapon_used} 1
I have thought about changing the syntax to something like creeper-cmd: {chance:0.5} mobhunt head give {player} Creeper Creeper 1 silent|give {player} iron_ingot 1 |{chance:0.02} addlevels {player} {mcmmo_kill_weapon_used} 1
If {change: xxx} does not exist i could use creeper-cmd-run-chance: 0.5 as default chance.
This might be a better solution to all commands, except that the placeholder then can't be "null" in case the weapon is something else than sword, bow, axe or fist. You suggested to use sword as the default, but maybe it would be better to use fist as default? Or maybe I could solve the problem using McMMO API to increase the levels. (Im not familar with the API, but I am connecting to McMMO already, so it should be possible.
What do you think?
Sounds like both the command and the "two new lines per mob" could work, although two new lines feels like a more elegant solution.
This syntax: creeper-cmd: {chance:0.5} mobhunt head give {player} Creeper Creeper 1 silent|give {player} iron_ingot 1 |{chance:0.02} addlevels {player} {mcmmo_kill_weapon_used} 1
I could interpret it like this: On creeper kill, 50 chance to get -> head + iron ingot + 2% chance to get a skill as well
(I'm under the false impression that a head must drop in order for the 2% skill chance to work)
That's not the same thing as: On creeper kill, 50 chance to get -> head drop + iron ingot On creeper kill, 2% chance to get a skill reward
Since head drop chance and extra skill chance are totally separate, it makes less sense to add it as a command.
In McMMO, Unarmed is a skill usually associated with PvP because of the chance to disarm an opponent's weapon. As such, it's not nearly as used in everyday gaming as swords and bows for survival. That's why I suggested Swords for killing mobs with anything but the four main weapons. Personally I prefer bows over swords, but I believe swords are more commonly used.
Hmm... i have found the McMMO API https://github.com/mcMMO-Dev/mcMMO/blob/master/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java
I might use the api instead of the console command. It would let me control the skilltype. And then l go for the two lines per mob solution.
Sounds great! Come to think of it, fishing should also get a separate skill chance.
And speaking of fishing, it seems McMMO fishing blocks the fishing achievement. It simply won't register caught fish. Should I post this as a separate issue?
Yes thank you, I preper one ticket per bug, also this ticket is an enhancement. I have started coding now :-)
Also I would be very happy if you could make some conservative default values - which you think will not give too much XP ?
` @ConfigField(name = "bat-mcmmo-skillreward-amount", category = "mcmmo") public int batMcMMOSkillRewardAmount = 1; @ConfigField(name = "bat-mcmmo-skillreward-chance", category = "mcmmo") public double batMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "blacksmith-mcmmo-skillreward-amount", category = "mcmmo")
public int blacksmithMcMMOSkillRewardAmount = 1;
@ConfigField(name = "blacksmith-mcmmo-skillreward-chance", category = "mcmmo")
public double blacksmithMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "blaze-mcmmo-skillreward-amount", category = "mcmmo")
public int blazeMcMMOSkillRewardAmount = 1;
@ConfigField(name = "blaze-mcmmo-skillreward-chance", category = "mcmmo")
public double blazeMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "bonusmob-mcmmo-skillreward-amount", category = "mcmmo")
public int bonusMobMcMMOSkillRewardAmount = 1;
@ConfigField(name = "bonusmob-mcmmo-skillreward-chance", category = "mcmmo")
public double bonusMobMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "butcher-mcmmo-skillreward-amount", category = "mcmmo")
public int butcherMcMMOSkillRewardAmount = 1;
@ConfigField(name = "butcher-mcmmo-skillreward-chance", category = "mcmmo")
public double butcherMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "cartographer-mcmmo-skillreward-amount", category = "mcmmo")
public int cartographerMcMMOSkillRewardAmount = 1;
@ConfigField(name = "cartographer-mcmmo-skillreward-chance", category = "mcmmo")
public double cartographerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "cave-spider-mcmmo-skillreward-amount", category = "mcmmo")
public int caveSpiderMcMMOSkillRewardAmount = 1;
@ConfigField(name = "cave-spider-mcmmo-skillreward-chance", category = "mcmmo")
public double caveSpiderMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "chicken-mcmmo-skillreward-amount", category = "mcmmo")
public int chickenMcMMOSkillRewardAmount = 1;
@ConfigField(name = "chicken-mcmmo-skillreward-chance", category = "mcmmo")
public double chickenMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "clownfish-mcmmo-skillreward-amount", category = "mcmmo")
public int clownfishMcMMOSkillRewardAmount = 1;
@ConfigField(name = "clownfish-mcmmo-skillreward-chance", category = "mcmmo")
public double clownfishMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "cow-mcmmo-skillreward-amount", category = "mcmmo")
public int cowMcMMOSkillRewardAmount = 1;
@ConfigField(name = "cow-mcmmo-skillreward-chance", category = "mcmmo")
public double cowMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "creeper-mcmmo-skillreward-amount", category = "mcmmo")
public int creeperMcMMOSkillRewardAmount = 1;
@ConfigField(name = "creeper-mcmmo-skillreward-chance", category = "mcmmo")
public double creeperMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "donkey-mcmmo-skillreward-amount", category = "mcmmo")
public int donkeyMcMMOSkillRewardAmount = 1;
@ConfigField(name = "donkey-mcmmo-skillreward-chance", category = "mcmmo")
public double donkeyMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "elder_guardian-mcmmo-skillreward-amount", category = "mcmmo")
public int elderGuardianMcMMOSkillRewardAmount = 1;
@ConfigField(name = "elder_guardian-mcmmo-skillreward-chance", category = "mcmmo")
public double elderGuardianMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "enderdragon-mcmmo-skillreward-amount", category = "mcmmo")
public int enderdragonMcMMOSkillRewardAmount = 1;
@ConfigField(name = "enderdragon-mcmmo-skillreward-chance", category = "mcmmo")
public double enderdragonMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "enderman-mcmmo-skillreward-amount", category = "mcmmo")
public int endermanMcMMOSkillRewardAmount = 1;;
@ConfigField(name = "enderman-mcmmo-skillreward-chance", category = "mcmmo")
public double endermanMcMMOSkillRewardChance = 0.05;;
@ConfigField(name = "endermite-mcmmo-skillreward-amount", category = "mcmmo")
public int endermiteMcMMOSkillRewardAmount = 1;;
@ConfigField(name = "endermite-mcmmo-skillreward-chance", category = "mcmmo")
public double endermiteMcMMOSkillRewardChance = 0.05;;
@ConfigField(name = "evoker-mcmmo-skillreward-amount", category = "mcmmo")
public int evokerMcMMOSkillRewardAmount = 1;
@ConfigField(name = "evoker-mcmmo-skillreward-chance", category = "mcmmo")
public double evokerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "farmer-mcmmo-skillreward-amount", category = "mcmmo")
public int farmerMcMMOSkillRewardAmount = 1;
@ConfigField(name = "farmer-mcmmo-skillreward-chance", category = "mcmmo")
public double farmerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "ghast-mcmmo-skillreward-amount", category = "mcmmo")
public int ghastMcMMOSkillRewardAmount = 1;
@ConfigField(name = "ghast-mcmmo-skillreward-chance", category = "mcmmo")
public double ghastMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "giant-mcmmo-skillreward-amount", category = "mcmmo")
public int giantMcMMOSkillRewardAmount = 1;
@ConfigField(name = "giant-mcmmo-skillreward-chance", category = "mcmmo")
public double giantMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "guardian-mcmmo-skillreward-amount", category = "mcmmo")
public int guardianMcMMOSkillRewardAmount = 1;
@ConfigField(name = "guardian-mcmmo-skillreward-chance", category = "mcmmo")
public double guardianMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "horse-mcmmo-skillreward-amount", category = "mcmmo")
public int horseMcMMOSkillRewardAmount = 1;
@ConfigField(name = "horse-mcmmo-skillreward-chance", category = "mcmmo")
public double horseMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "husk-mcmmo-skillreward-amount", category = "mcmmo")
public int huskMcMMOSkillRewardAmount = 1;
@ConfigField(name = "husk-mcmmo-skillreward-chance", category = "mcmmo")
public double huskMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "illusioner-mcmmo-skillreward-amount", category = "mcmmo")
public int illusionerMcMMOSkillRewardAmount = 1;
@ConfigField(name = "illusioner-mcmmo-skillreward-chance", category = "mcmmo")
public double illusionerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "iron-golem-mcmmo-skillreward-amount", category = "mcmmo")
public int ironGolemMcMMOSkillRewardAmount = 1;
@ConfigField(name = "iron-golem-mcmmo-skillreward-chance", category = "mcmmo")
public double ironGolemMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "killerrabbit-mcmmo-skillreward-amount", category = "mcmmo")
public int killerRabbitMcMMOSkillRewardAmount = 1;
@ConfigField(name = "killerrabbit-mcmmo-skillreward-chance", category = "mcmmo")
public double killerRabbitMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "llama-mcmmo-skillreward-amount", category = "mcmmo")
public int llamaMcMMOSkillRewardAmount = 1;
@ConfigField(name = "llama-mcmmo-skillreward-chance", category = "mcmmo")
public double llamaMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "librarian-mcmmo-skillreward-amount", category = "mcmmo")
public int librarianMcMMOSkillRewardAmount = 1;
@ConfigField(name = "librarian-mcmmo-skillreward-chance", category = "mcmmo")
public double librarianMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "magma-cube-mcmmo-skillreward-amount", category = "mcmmo")
public int magmaCubeMcMMOSkillRewardAmount = 1;
@ConfigField(name = "magma-cube-mcmmo-skillreward-chance", category = "mcmmo")
public double magmaCubeMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "mule-mcmmo-skillreward-amount", category = "mcmmo")
public int muleMcMMOSkillRewardAmount = 1;
@ConfigField(name = "mule-mcmmo-skillreward-chance", category = "mcmmo")
public double muleMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "mushroom-cow-mcmmo-skillreward-amount", category = "mcmmo")
public int mushroomCowMcMMOSkillRewardAmount = 1;
@ConfigField(name = "mushroom-cow-mcmmo-skillreward-chance", category = "mcmmo")
public double mushroomCowMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "nitwit-mcmmo-skillreward-amount", category = "mcmmo")
public int nitwitMcMMOSkillRewardAmount = 1;
@ConfigField(name = "nitwit-mcmmo-skillreward-chance", category = "mcmmo")
public double nitwitMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "ocelot-mcmmo-skillreward-amount", category = "mcmmo")
public int ocelotMcMMOSkillRewardAmount = 1;
@ConfigField(name = "ocelot-mcmmo-skillreward-chance", category = "mcmmo")
public double ocelotMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "parrot-mcmmo-skillreward-amount", category = "mcmmo")
public int parrotMcMMOSkillRewardAmount = 1;
@ConfigField(name = "parrot-mcmmo-skillreward-chance", category = "mcmmo")
public double parrotMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "pig-mcmmo-skillreward-amount", category = "mcmmo")
public int pigMcMMOSkillRewardAmount = 1;
@ConfigField(name = "pig-mcmmo-skillreward-chance", category = "mcmmo")
public double pigMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "polar_bear-mcmmo-skillreward-amount", category = "mcmmo")
public int polarBearMcMMOSkillRewardAmount = 1;
@ConfigField(name = "polar_bear-mcmmo-skillreward-chance", category = "mcmmo")
public double polarBearMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "priest-mcmmo-skillreward-amount", category = "mcmmo")
public int priestMcMMOSkillRewardAmount = 1;
@ConfigField(name = "priest-mcmmo-skillreward-chance", category = "mcmmo")
public double priestMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "pufferfish-mcmmo-skillreward-amount", category = "mcmmo")
public int pufferfishMcMMOSkillRewardAmount = 1;
@ConfigField(name = "pufferfish-mcmmo-skillreward-chance", category = "mcmmo")
public double pufferfishMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "pvpplayer-mcmmo-skillreward-amount", category = "mcmmo")
public int pvpPlayerMcMMOSkillRewardAmount = 1;
@ConfigField(name = "pvpplayer-mcmmo-skillreward-chance", category = "mcmmo")
public double pvpPlayerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "rabbit-mcmmo-skillreward-amount", category = "mcmmo")
public int rabbitMcMMOSkillRewardAmount = 1;
@ConfigField(name = "rabbit-mcmmo-skillreward-chance", category = "mcmmo")
public double rabbitMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "rawfish-mcmmo-skillreward-amount", category = "mcmmo")
public int rawfishMcMMOSkillRewardAmount = 1;
@ConfigField(name = "rawfish-mcmmo-skillreward-chance", category = "mcmmo")
public double rawfishMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "rawsalmon-mcmmo-skillreward-amount", category = "mcmmo")
public int rawsalmonMcMMOSkillRewardAmount = 1;
@ConfigField(name = "rawsalmon-mcmmo-skillreward-chance", category = "mcmmo")
public double rawsalmonMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "sheep-mcmmo-skillreward-amount", category = "mcmmo")
public int sheepMcMMOSkillRewardAmount = 1;
@ConfigField(name = "sheep-mcmmo-skillreward-chance", category = "mcmmo")
public double sheepMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "shulker-mcmmo-skillreward-amount", category = "mcmmo")
public int shulkerMcMMOSkillRewardAmount = 1;
@ConfigField(name = "shulker-mcmmo-skillreward-chance", category = "mcmmo")
public double shulkerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "silverfish-mcmmo-skillreward-amount", category = "mcmmo")
public int silverfishMcMMOSkillRewardAmount = 1;
@ConfigField(name = "silverfish-mcmmo-skillreward-chance", category = "mcmmo")
public double silverfishMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "skeleton-mcmmo-skillreward-amount", category = "mcmmo")
public int skeletonMcMMOSkillRewardAmount = 1;
@ConfigField(name = "skeleton-mcmmo-skillreward-chance", category = "mcmmo")
public double skeletonMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "skeletonhorse-mcmmo-skillreward-amount", category = "mcmmo")
public int skeletonHorseMcMMOSkillRewardAmount = 1;
@ConfigField(name = "skeletonhorse-mcmmo-skillreward-chance", category = "mcmmo")
public double skeletonHorseMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "slime-base-mcmmo-skillreward-amount", category = "mcmmo")
public int slimeMcMMOSkillRewardAmount = 1;
@ConfigField(name = "slime-base-mcmmo-skillreward-chance", category = "mcmmo")
public double slimeMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "snowman-mcmmo-skillreward-amount", category = "mcmmo")
public int snowmanMcMMOSkillRewardAmount = 1;
@ConfigField(name = "snowman-mcmmo-skillreward-chance", category = "mcmmo")
public double snowmanMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "spider-mcmmo-skillreward-amount", category = "mcmmo")
public int spiderMcMMOSkillRewardAmount = 1;
@ConfigField(name = "spider-mcmmo-skillreward-chance", category = "mcmmo")
public double spiderMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "squid-mcmmo-skillreward-amount", category = "mcmmo")
public int squidMcMMOSkillRewardAmount = 1;
@ConfigField(name = "squid-mcmmo-skillreward-chance", category = "mcmmo")
public double squidMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "stray-mcmmo-skillreward-amount", category = "mcmmo")
public int strayMcMMOSkillRewardAmount = 1;
@ConfigField(name = "stray-mcmmo-skillreward-chance", category = "mcmmo")
public double strayMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "vex-mcmmo-skillreward-amount", category = "mcmmo")
public int vexMcMMOSkillRewardAmount = 1;
@ConfigField(name = "vex-mcmmo-skillreward-chance", category = "mcmmo")
public double vexMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "villager-mcmmo-skillreward-amount", category = "mcmmo")
public int villagerMcMMOSkillRewardAmount = 1;
@ConfigField(name = "villager-mcmmo-skillreward-chance", category = "mcmmo")
public double villagerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "vindicator-mcmmo-skillreward-amount", category = "mcmmo")
public int vindicatorMcMMOSkillRewardAmount = 1;
@ConfigField(name = "vindicator-mcmmo-skillreward-chance", category = "mcmmo")
public double vindicatorMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "witch-mcmmo-skillreward-amount", category = "mcmmo")
public int witchMcMMOSkillRewardAmount = 1;
@ConfigField(name = "witch-mcmmo-skillreward-chance", category = "mcmmo")
public double witchMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "wither-mcmmo-skillreward-amount", category = "mcmmo")
public int witherMcMMOSkillRewardAmount = 1;
@ConfigField(name = "wither-mcmmo-skillreward-chance", category = "mcmmo")
public double witherMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "wither-skeleton-mcmmo-skillreward-amount", category = "mcmmo")
public int witherSkeletonMcMMOSkillRewardAmount = 1;
@ConfigField(name = "wither-skeleton-mcmmo-skillreward-chance", category = "mcmmo")
public double witherSkeletonMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "wolf-mcmmo-skillreward-amount", category = "mcmmo")
public int wolfMcMMOSkillRewardAmount = 1;
@ConfigField(name = "wolf-mcmmo-skillreward-chance", category = "mcmmo")
public double wolfMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "zombie-mcmmo-skillreward-amount", category = "mcmmo")
public int zombieMcMMOSkillRewardAmount = 1;
@ConfigField(name = "zombie-mcmmo-skillreward-chance", category = "mcmmo")
public double zombieMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "zombiehorse-mcmmo-skillreward-amount", category = "mcmmo")
public int zombieHorseMcMMOSkillRewardAmount = 1;
@ConfigField(name = "zombiehorse-mcmmo-skillreward-chance", category = "mcmmo")
public double zombieHorseMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "zombie-pigman-mcmmo-skillreward-amount", category = "mcmmo")
public int zombiePigManMcMMOSkillRewardAmount = 1;
@ConfigField(name = "zombie-pigman-mcmmo-skillreward-chance", category = "mcmmo")
public double zombiePigManMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "zombie_villager-mcmmo-skillreward-amount", category = "mcmmo")
public int zombieVillagerMcMMOSkillRewardAmount = 1;
@ConfigField(name = "zombie_villager-mcmmo-skillreward-chance", category = "mcmmo")
public double zombieVillagerMcMMOSkillRewardChance = 0.05;`
That's a lot of mobs =) Ok, I'll make an attempt and try to motivate each value.
Ha ha, agree.... yes - and on top of these there is also "TARDISWeepingAngel Mobs", MythicMobs, "CustomMobs, Citizens (NPC's), MysteriousHalloween Mobs - for all these I just set default values to 1 and 0.02
Here is a first draft. Chance for a skill reward is based on combat difficulty and/or rarity.
Passive mob, riskfree = 0.025 / 1
Hostile mob, easy = 0.04 / 1
Hostile mob, normal = 0.05 / 1
Hostile mob, challenging = 0.1 / 1:2
Hostile mob, hard = 0.33 / 5
Fishing Easy 0.05 / 1
Fishing Medium 0.06 / 1
Fishing Hard 0.075 / 1
Fishing Very Hard 0.1 / 1:2
@ConfigField(name = "blacksmith-mcmmo-skillreward-amount", category = "mcmmo") public int blacksmithMcMMOSkillRewardAmount = 1; @ConfigField(name = "blacksmith-mcmmo-skillreward-chance", category = "mcmmo") public double blacksmithMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "blaze-mcmmo-skillreward-amount", category = "mcmmo") public int blazeMcMMOSkillRewardAmount = 1; @ConfigField(name = "blaze-mcmmo-skillreward-chance", category = "mcmmo") public double blazeMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "bonusmob-mcmmo-skillreward-amount", category = "mcmmo") public int bonusMobMcMMOSkillRewardAmount = 1; @ConfigField(name = "bonusmob-mcmmo-skillreward-chance", category = "mcmmo") public double bonusMobMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "butcher-mcmmo-skillreward-amount", category = "mcmmo") public int butcherMcMMOSkillRewardAmount = 1; @ConfigField(name = "butcher-mcmmo-skillreward-chance", category = "mcmmo") public double butcherMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "cartographer-mcmmo-skillreward-amount", category = "mcmmo") public int cartographerMcMMOSkillRewardAmount = 1; @ConfigField(name = "cartographer-mcmmo-skillreward-chance", category = "mcmmo") public double cartographerMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "cave-spider-mcmmo-skillreward-amount", category = "mcmmo") public int caveSpiderMcMMOSkillRewardAmount = 1; @ConfigField(name = "cave-spider-mcmmo-skillreward-chance", category = "mcmmo") public double caveSpiderMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "chicken-mcmmo-skillreward-amount", category = "mcmmo") public int chickenMcMMOSkillRewardAmount = 1; @ConfigField(name = "chicken-mcmmo-skillreward-chance", category = "mcmmo") public double chickenMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "clownfish-mcmmo-skillreward-amount", category = "mcmmo") public int clownfishMcMMOSkillRewardAmount = 1; @ConfigField(name = "clownfish-mcmmo-skillreward-chance", category = "mcmmo") public double clownfishMcMMOSkillRewardChance = 0.075;
@ConfigField(name = "cow-mcmmo-skillreward-amount", category = "mcmmo") public int cowMcMMOSkillRewardAmount = 1; @ConfigField(name = "cow-mcmmo-skillreward-chance", category = "mcmmo") public double cowMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "creeper-mcmmo-skillreward-amount", category = "mcmmo") public int creeperMcMMOSkillRewardAmount = 1; @ConfigField(name = "creeper-mcmmo-skillreward-chance", category = "mcmmo") public double creeperMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "donkey-mcmmo-skillreward-amount", category = "mcmmo") public int donkeyMcMMOSkillRewardAmount = 1; @ConfigField(name = "donkey-mcmmo-skillreward-chance", category = "mcmmo") public double donkeyMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "elder_guardian-mcmmo-skillreward-amount", category = "mcmmo") public int elderGuardianMcMMOSkillRewardAmount = 1:2; @ConfigField(name = "elder_guardian-mcmmo-skillreward-chance", category = "mcmmo") public double elderGuardianMcMMOSkillRewardChance = 0.1;
@ConfigField(name = "enderdragon-mcmmo-skillreward-amount", category = "mcmmo") public int enderdragonMcMMOSkillRewardAmount = 5; @ConfigField(name = "enderdragon-mcmmo-skillreward-chance", category = "mcmmo") public double enderdragonMcMMOSkillRewardChance = 0.33;
@ConfigField(name = "enderman-mcmmo-skillreward-amount", category = "mcmmo") public int endermanMcMMOSkillRewardAmount = 1; @ConfigField(name = "enderman-mcmmo-skillreward-chance", category = "mcmmo") public double endermanMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "endermite-mcmmo-skillreward-amount", category = "mcmmo") public int endermiteMcMMOSkillRewardAmount = 1:2; @ConfigField(name = "endermite-mcmmo-skillreward-chance", category = "mcmmo") public double endermiteMcMMOSkillRewardChance = 0.2;
@ConfigField(name = "evoker-mcmmo-skillreward-amount", category = "mcmmo") public int evokerMcMMOSkillRewardAmount = 1; @ConfigField(name = "evoker-mcmmo-skillreward-chance", category = "mcmmo") public double evokerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "farmer-mcmmo-skillreward-amount", category = "mcmmo") public int farmerMcMMOSkillRewardAmount = 1; @ConfigField(name = "farmer-mcmmo-skillreward-chance", category = "mcmmo") public double farmerMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "ghast-mcmmo-skillreward-amount", category = "mcmmo") public int ghastMcMMOSkillRewardAmount = 1; @ConfigField(name = "ghast-mcmmo-skillreward-chance", category = "mcmmo") public double ghastMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "giant-mcmmo-skillreward-amount", category = "mcmmo") public int giantMcMMOSkillRewardAmount = 1:2; @ConfigField(name = "giant-mcmmo-skillreward-chance", category = "mcmmo") public double giantMcMMOSkillRewardChance = 0.1;
@ConfigField(name = "guardian-mcmmo-skillreward-amount", category = "mcmmo") public int guardianMcMMOSkillRewardAmount = 1; @ConfigField(name = "guardian-mcmmo-skillreward-chance", category = "mcmmo") public double guardianMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "horse-mcmmo-skillreward-amount", category = "mcmmo") public int horseMcMMOSkillRewardAmount = 1; @ConfigField(name = "horse-mcmmo-skillreward-chance", category = "mcmmo") public double horseMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "husk-mcmmo-skillreward-amount", category = "mcmmo") public int huskMcMMOSkillRewardAmount = 1; @ConfigField(name = "husk-mcmmo-skillreward-chance", category = "mcmmo") public double huskMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "illusioner-mcmmo-skillreward-amount", category = "mcmmo") public int illusionerMcMMOSkillRewardAmount = 1; @ConfigField(name = "illusioner-mcmmo-skillreward-chance", category = "mcmmo") public double illusionerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "iron-golem-mcmmo-skillreward-amount", category = "mcmmo") public int ironGolemMcMMOSkillRewardAmount = 1; @ConfigField(name = "iron-golem-mcmmo-skillreward-chance", category = "mcmmo") public double ironGolemMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "killerrabbit-mcmmo-skillreward-amount", category = "mcmmo") public int killerRabbitMcMMOSkillRewardAmount = 5; @ConfigField(name = "killerrabbit-mcmmo-skillreward-chance", category = "mcmmo") public double killerRabbitMcMMOSkillRewardChance = 1.0;
@ConfigField(name = "llama-mcmmo-skillreward-amount", category = "mcmmo") public int llamaMcMMOSkillRewardAmount = 1; @ConfigField(name = "llama-mcmmo-skillreward-chance", category = "mcmmo") public double llamaMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "librarian-mcmmo-skillreward-amount", category = "mcmmo") public int librarianMcMMOSkillRewardAmount = 1; @ConfigField(name = "librarian-mcmmo-skillreward-chance", category = "mcmmo") public double librarianMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "magma-cube-mcmmo-skillreward-amount", category = "mcmmo") public int magmaCubeMcMMOSkillRewardAmount = 1; @ConfigField(name = "magma-cube-mcmmo-skillreward-chance", category = "mcmmo") public double magmaCubeMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "mule-mcmmo-skillreward-amount", category = "mcmmo") public int muleMcMMOSkillRewardAmount = 1; @ConfigField(name = "mule-mcmmo-skillreward-chance", category = "mcmmo") public double muleMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "mushroom-cow-mcmmo-skillreward-amount", category = "mcmmo") public int mushroomCowMcMMOSkillRewardAmount = 1; @ConfigField(name = "mushroom-cow-mcmmo-skillreward-chance", category = "mcmmo") public double mushroomCowMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "nitwit-mcmmo-skillreward-amount", category = "mcmmo") public int nitwitMcMMOSkillRewardAmount = 1; @ConfigField(name = "nitwit-mcmmo-skillreward-chance", category = "mcmmo") public double nitwitMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "ocelot-mcmmo-skillreward-amount", category = "mcmmo") public int ocelotMcMMOSkillRewardAmount = 1; @ConfigField(name = "ocelot-mcmmo-skillreward-chance", category = "mcmmo") public double ocelotMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "parrot-mcmmo-skillreward-amount", category = "mcmmo") public int parrotMcMMOSkillRewardAmount = 1; @ConfigField(name = "parrot-mcmmo-skillreward-chance", category = "mcmmo") public double parrotMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "pig-mcmmo-skillreward-amount", category = "mcmmo") public int pigMcMMOSkillRewardAmount = 1; @ConfigField(name = "pig-mcmmo-skillreward-chance", category = "mcmmo") public double pigMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "polar_bear-mcmmo-skillreward-amount", category = "mcmmo") public int polarBearMcMMOSkillRewardAmount = 1; @ConfigField(name = "polar_bear-mcmmo-skillreward-chance", category = "mcmmo") public double polarBearMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "priest-mcmmo-skillreward-amount", category = "mcmmo") public int priestMcMMOSkillRewardAmount = 1; @ConfigField(name = "priest-mcmmo-skillreward-chance", category = "mcmmo") public double priestMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "pufferfish-mcmmo-skillreward-amount", category = "mcmmo") public int pufferfishMcMMOSkillRewardAmount = 1; @ConfigField(name = "pufferfish-mcmmo-skillreward-chance", category = "mcmmo") public double pufferfishMcMMOSkillRewardChance = 0.06;
@ConfigField(name = "pvpplayer-mcmmo-skillreward-amount", category = "mcmmo") public int pvpPlayerMcMMOSkillRewardAmount = 1; @ConfigField(name = "pvpplayer-mcmmo-skillreward-chance", category = "mcmmo") public double pvpPlayerMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "rabbit-mcmmo-skillreward-amount", category = "mcmmo") public int rabbitMcMMOSkillRewardAmount = 1; @ConfigField(name = "rabbit-mcmmo-skillreward-chance", category = "mcmmo") public double rabbitMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "rawfish-mcmmo-skillreward-amount", category = "mcmmo") public int rawfishMcMMOSkillRewardAmount = 1; @ConfigField(name = "rawfish-mcmmo-skillreward-chance", category = "mcmmo") public double rawfishMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "rawsalmon-mcmmo-skillreward-amount", category = "mcmmo") public int rawsalmonMcMMOSkillRewardAmount = 1; @ConfigField(name = "rawsalmon-mcmmo-skillreward-chance", category = "mcmmo") public double rawsalmonMcMMOSkillRewardChance = 0.06;
@ConfigField(name = "sheep-mcmmo-skillreward-amount", category = "mcmmo") public int sheepMcMMOSkillRewardAmount = 1; @ConfigField(name = "sheep-mcmmo-skillreward-chance", category = "mcmmo") public double sheepMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "shulker-mcmmo-skillreward-amount", category = "mcmmo") public int shulkerMcMMOSkillRewardAmount = 1; @ConfigField(name = "shulker-mcmmo-skillreward-chance", category = "mcmmo") public double shulkerMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "silverfish-mcmmo-skillreward-amount", category = "mcmmo") public int silverfishMcMMOSkillRewardAmount = 1; @ConfigField(name = "silverfish-mcmmo-skillreward-chance", category = "mcmmo") public double silverfishMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "skeleton-mcmmo-skillreward-amount", category = "mcmmo") public int skeletonMcMMOSkillRewardAmount = 1; @ConfigField(name = "skeleton-mcmmo-skillreward-chance", category = "mcmmo") public double skeletonMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "skeletonhorse-mcmmo-skillreward-amount", category = "mcmmo") public int skeletonHorseMcMMOSkillRewardAmount = 1; @ConfigField(name = "skeletonhorse-mcmmo-skillreward-chance", category = "mcmmo") public double skeletonHorseMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "slime-base-mcmmo-skillreward-amount", category = "mcmmo") public int slimeMcMMOSkillRewardAmount = 1; @ConfigField(name = "slime-base-mcmmo-skillreward-chance", category = "mcmmo") public double slimeMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "snowman-mcmmo-skillreward-amount", category = "mcmmo") public int snowmanMcMMOSkillRewardAmount = 1; @ConfigField(name = "snowman-mcmmo-skillreward-chance", category = "mcmmo") public double snowmanMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "spider-mcmmo-skillreward-amount", category = "mcmmo") public int spiderMcMMOSkillRewardAmount = 1; @ConfigField(name = "spider-mcmmo-skillreward-chance", category = "mcmmo") public double spiderMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "squid-mcmmo-skillreward-amount", category = "mcmmo") public int squidMcMMOSkillRewardAmount = 1; @ConfigField(name = "squid-mcmmo-skillreward-chance", category = "mcmmo") public double squidMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "stray-mcmmo-skillreward-amount", category = "mcmmo") public int strayMcMMOSkillRewardAmount = 1; @ConfigField(name = "stray-mcmmo-skillreward-chance", category = "mcmmo") public double strayMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "vex-mcmmo-skillreward-amount", category = "mcmmo") public int vexMcMMOSkillRewardAmount = 1; @ConfigField(name = "vex-mcmmo-skillreward-chance", category = "mcmmo") public double vexMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "villager-mcmmo-skillreward-amount", category = "mcmmo") public int villagerMcMMOSkillRewardAmount = 1; @ConfigField(name = "villager-mcmmo-skillreward-chance", category = "mcmmo") public double villagerMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "vindicator-mcmmo-skillreward-amount", category = "mcmmo") public int vindicatorMcMMOSkillRewardAmount = 1; @ConfigField(name = "vindicator-mcmmo-skillreward-chance", category = "mcmmo") public double vindicatorMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "witch-mcmmo-skillreward-amount", category = "mcmmo") public int witchMcMMOSkillRewardAmount = 1; @ConfigField(name = "witch-mcmmo-skillreward-chance", category = "mcmmo") public double witchMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "wither-mcmmo-skillreward-amount", category = "mcmmo") public int witherMcMMOSkillRewardAmount = 5; @ConfigField(name = "wither-mcmmo-skillreward-chance", category = "mcmmo") public double witherMcMMOSkillRewardChance = 0.33;
@ConfigField(name = "wither-skeleton-mcmmo-skillreward-amount", category = "mcmmo") public int witherSkeletonMcMMOSkillRewardAmount = 1; @ConfigField(name = "wither-skeleton-mcmmo-skillreward-chance", category = "mcmmo") public double witherSkeletonMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "wolf-mcmmo-skillreward-amount", category = "mcmmo") public int wolfMcMMOSkillRewardAmount = 1; @ConfigField(name = "wolf-mcmmo-skillreward-chance", category = "mcmmo") public double wolfMcMMOSkillRewardChance = 0.04;
@ConfigField(name = "zombie-mcmmo-skillreward-amount", category = "mcmmo") public int zombieMcMMOSkillRewardAmount = 1; @ConfigField(name = "zombie-mcmmo-skillreward-chance", category = "mcmmo") public double zombieMcMMOSkillRewardChance = 0.4;
@ConfigField(name = "zombiehorse-mcmmo-skillreward-amount", category = "mcmmo") public int zombieHorseMcMMOSkillRewardAmount = 1; @ConfigField(name = "zombiehorse-mcmmo-skillreward-chance", category = "mcmmo") public double zombieHorseMcMMOSkillRewardChance = 0.025;
@ConfigField(name = "zombie-pigman-mcmmo-skillreward-amount", category = "mcmmo") public int zombiePigManMcMMOSkillRewardAmount = 1; @ConfigField(name = "zombie-pigman-mcmmo-skillreward-chance", category = "mcmmo") public double zombiePigManMcMMOSkillRewardChance = 0.05;
@ConfigField(name = "zombie_villager-mcmmo-skillreward-amount", category = "mcmmo") public int zombieVillagerMcMMOSkillRewardAmount = 1; @ConfigField(name = "zombie_villager-mcmmo-skillreward-chance", category = "mcmmo") public double zombieVillagerMcMMOSkillRewardChance = 0.04;`
I'm almost ready to compile and test first time :-)
What do you mean with 1:2 ???? I can only choose 1 or 2
public int endermiteMcMMOSkillRewardAmount = 1:2;
Or maybe I misunderstood XP I thought it was Integers? 1,2,3,4?
Looking at the API it is Integers so I changed 1:2 to 1.
I will now compile and make first test run :-)
Alright, I though there was a way to randomize a number interval, as you did in in the rewards system.
Ahhh, no its not standard in all fields in config.yml
But now I understand.
If it is important then I can make it....
In my opinion it'd be nice but not very important.
I takes me 10 min. extra so I make it ;-)
Now you can start testing :-) Please try build 373 or newer on my Jenkins Server https://fractal.lindegaard.one:8181/job/MobHunting/
And let me know what you think?
First report from my test server:
Please enable debug with /mh debug and kill one mob and show me the debug info from the console. The debug info is very useful when you want to see whats going on, especially when you dont understand why you dont get a reward
PS. did you remember to enable McMMO XP rewards in config.yml? It is default disabled - I'm not sure if most people want this feature or not?
I'd forgotten to enable McMMO XP, yes. Unfortunately it didn't work. The chat says I was rewarded with 1 McMMO XP but I wasn't.
[13:04:02 INFO]: [MobHunting][Debug] ======================== New kill ========================== [13:04:02 INFO]: [MobHunting][Debug] vilgrar killed a Pig (Minecraft) [13:04:02 INFO]: [MobHunting][Debug] Basic Prize=$50 for killing a Pig [13:04:02 INFO]: [MobHunting][Debug] Checking if player is grinding within a range of 15.0 blocks [13:04:02 INFO]: [MobHunting][Debug] Kill not within 15.0 blocks from previous kill. DampendKills reset to 0 [13:04:02 INFO]: [MobHunting][Debug] Multiplier: Difficulty = 0.75 [13:04:02 INFO]: [MobHunting][Debug] Multiplier: Sneaky! = 2.0 [13:04:02 INFO]: [MobHunting][Debug] vilgrar has no Rank Multiplier [13:04:02 INFO]: [MobHunting][Debug] Killstreak=18, level=2, multiplier=2.0 [13:04:02 INFO]: [MobHunting][Debug] [AchievementBlocked] Achievements is disabled for player vilgrar [13:04:02 INFO]: [MobHunting][Debug] $150 was dropped on the ground as item SKULL (# of rewards=4) [13:04:02 INFO]: [MobHunting][Debug] RecordKill: vilgrar killed a Pig (Minecraft) Cash=$150 [13:04:03 INFO]: [MobHunting][Debug] Chance to get McMMO XP (0.0929238985130274<1.0) [13:04:03 INFO]: [MobHunting][Debug] vilgrar was rewarded with 1 McMMO swords XP [13:04:03 INFO]: [MobHunting][Debug] Command will be run if chance: 1.0 > 0.8113809337441587 (random number) [13:04:03 INFO]: [MobHunting][Debug] Command to be run:mobhunt head give vilgrar Pig Pig 1 silent [13:04:03 INFO]: [MobHunting][Debug] Description to be send:You got a Pig Skull
On another note, I'd suggest this text:
'You was rewarded with 1 McMMO XP for
Examples: You were rewarded with 1 McMMO skill level for Swords. You were rewarded with 2 McMMO skill levels for Archery.
I can't write both level and levels, maybe level (s)?
"You were rewarded with 1 McMMO skill level(s) for archery" "You were rewarded with 2 McMMO skill level(s) for archery" ?
I think I have found the bug. xp should be added now.
Try build 375 https://fractal.lindegaard.one:8181/job/MobHunting/
I have also changed the message to:
"You were rewarded with 1 McMMO skill level(s) for archery" "You were rewarded with 2 McMMO skill level(s) for archery"
But you need to delete the two lines in your language file manually - to get these updated.
I know my english is not perfect, you are most welcome to suggest changes if you find other errors. :-)
Can I ask how old you are? I was impressed about ow detailed your first post was. A 15 year old boy would never write that much! And were are you from?
38 and from Sweden =) I found a few minor typos in the en_US.lang file, but let's focus on one problem at a time =)
I'll get back to you when #375 has been tested.
I found /stats :-) and unfortunately addxp does still not work :-(
Jeg er 50 og fra Danmark...
Denmark is awesome, my older sister lives in Denmark!
cough Back on track, I'm not having any luck with #375.
[18:50:08 INFO]: [MobHunting][Debug] ======================== New kill ========================== [18:50:08 INFO]: [MobHunting][Debug] vilgrar killed a Pig (Minecraft) [18:50:08 INFO]: [MobHunting][Debug] Basic Prize=$0 for killing a Pig [18:50:08 INFO]: [MobHunting][Debug] vilgrar has no Rank Multiplier [18:50:08 INFO]: [MobHunting][Debug] Multiplier: Sneaky! = 2.0 [18:50:08 INFO]: [MobHunting][Debug] Multiplier: Difficulty = 0.75 [18:50:08 INFO]: [MobHunting][Debug] Killstreak=0, level=0, multiplier=1.0 [18:50:08 INFO]: [MobHunting][Debug] KillBlocked vilgrar: Reward was less than 0.01 (Bonuses=x1.5 Sneaky! Difficulty) [18:50:08 INFO]: [MobHunting][Debug] Command will be run if chance: 0.05 > 0.49757044461832045 (random number) [18:50:08 INFO]: [MobHunting][Debug] ======================= kill ended (36)=====================
Not even a mention of mcmmo and rewards, that's odd? I set it to 100% for testing purposes.
I have set it to 50% on the spider while testing :-)
Im not familiar with McMMO. And I am having problems understanding how it works. I thought /stats showed me XP but it shows Level, and its not the same :-) Can you tell me how I see xp points?
/stats is a summary of your McMMO skill levels. To see the xp on each skill, use slash (name of skill).
For an example: /swords /archery /axes /unarmed
Adding experience points to a certain skill is handled by /addxp, but to add skill levels which I suggested, /addlevels must be used instead.
Haha.... My code works, except I add xp, and not levels.... I have to study the API again and find addlevels :-)
Are you sure you want to add levels? and not XP?
I have found api.addlevel(,...) so I can easily make it like you want.
McMMO xp growth is exponential, which would make the xp reward less and less useful the higher the level of the skill of the player.. I'd rather reward levels.
https://fractal.lindegaard.one:8181/job/MobHunting/ Build 376 is ready for testing in 30 sec. I think we are close now. I had to change xp to level alot of places - f.ex. in my debug information.
Im sorry I didn't noticed that you were talking about levels and I focused on xp
OBS I also had to change enable-mcmmo-expirience-rewards: false to enable-mcmmo-level-rewards: true
but I decided that I liked the idea about a small chance for getting a level. So default is now true...
Getting closer.
Killing cows using a sword - success, adds skill point Killing cows using a bow - success, adds skill point Killing cows using an axe - success, adds skill point Killing cows using a fist - success, adds skill point Killing cows using a potato - fail, no default notification (about killing streak and multipliers) and no mcmmo reward. They drop heads and money like usual Zombie - same thing as cows
Edit: Something in the code doesn't agree with me killing them using non-conventational weapons. https://pastebin.com/KwcYz1De
Fixed.Build 377 is ready for testing
https://fractal.lindegaard.one:8181/job/MobHunting/
If you use anything else than the 4 skilltypes (ex. potato) , you will not get any level no matter the chance. Potato does not count as a sword. I hope this is ok?
Fine by me. Testing.
SUCCESS!
Swords - perfect. Bow - perfect. Axes - perfect. Unarmed - perfect. Any other item - just a regular message. No nasty Java error in the console. Disabling McMMO level rewards: Perfect, no skill rewards given
I believe we are done! =)
Thanks for being patient and for helping. I will start a new job in two days so I will get less time for coding going forward :-(
I will release v4.9.2 in a short while.
Yes, working does take a lot of time. ;)
Fortunately your plugin is nearly perfect already. Maybe others will have more ideas but I'm almost out of ideas how to improve MH further. Yes, it's simply that good! I'll post a review when my server's been using the plugin for at least a week, but I know already it deserves 5 stars.
I have coded on this plugin for about 2 years now. And I have spend more hours than I will admit ;-)
The past has showed me that there is aways more to do. And there is probably still some bugs, which has not been found yet :-(
My next enhancement could be to add achievements for special mobs like, MythicMobs, TARDISWeepingAngels and so....
And then there will probably come more suggestions for integrations to other plugins.
Hi,
There's a plugin called McMMO featuring 13 different skills that slowly increase in level and efficiency on use . A quick example: [http://bit.ly/2qGkVeD]. Of those skills 4 are combat related - Swords, Archery (bows), Axes and Unarmed. All the others are irrelevant to mob hunting.
It is my suggestion (and hopeful wish) to reward players with a single skill point when a head drops, but the catch is - it should be an mcmmo stat related to the weapon they used when that mob was killed.
This would be implemented by creating a new placeholder, called {mcmmo_kill_weapon_used} or whatever sounds good. MobHunting checks if a sword, bow, axe or fist was used to kill the mob and makes sure that the placeholder contains that mcmmo skill name.
Sword used on kill - placeholder contains swords Bow used on kill - placeholder contains archery Axe used on kill - placeholder contains axes Fist used on kill - placeholder contains unarmed
Anything else - this part's tricky. It the mob is killed by anything other than those four types, what should the placeholder refer to? My suggestion would be to use swords as it's the most commonly used weapon.
Usage: The placeholder needs to be put into a command. /addlevels {player} {mcmmo_kill_weapon_used} (amount)
Which would be "translated" to either of these four: /addlevels {player} swords (amount) <--- killed using a sword or none of the four weapon types /addlevels {player} archery (amount) <--- killed using a bow /addlevels {player} axes (amount) <--- killed using an axe /addlevels {player} unarmed (amount) <--- killed using fist
Implementing the placeholder is the only problem right now. I can already choose a specific skill ouf of the 13 manually. Like: /addlevels {player} fishing 1
Since there's only one way to fish I already use this command for fishing rewards. Killing mobs however, can be done in many other ways and should as such be handled by a placeholder.