Rocologo / MobHunting

Mob hunting plugin for Minecraft Servers
24 stars 22 forks source link

Placeholder for McMMO weapon used on kill #229

Closed vilgrar closed 7 years ago

vilgrar commented 7 years ago

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.

Rocologo commented 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

  1. Do you want to add 1 skill point for every kill? Or only by a chance?
  2. Will you add a skill point for the kill no matter the type of the mob? Creeper? Chicken?
  3. Do you want to add 1 point for some? 0 for others and maybe 2 for others again?
  4. Aren't you afraid that the skill points will grow to fast? 5.i think i can find a way to only add a point if it is one off the 4 categories. Wouldn't that be better?
vilgrar commented 7 years ago

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. =)

Rocologo commented 7 years ago

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?

vilgrar commented 7 years ago

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.

Rocologo commented 7 years ago

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.

vilgrar commented 7 years ago

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?

Rocologo commented 7 years ago

Yes thank you, I preper one ticket per bug, also this ticket is an enhancement. I have started coding now :-)

Rocologo commented 7 years ago

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;` 
vilgrar commented 7 years ago

That's a lot of mobs =) Ok, I'll make an attempt and try to motivate each value.

Rocologo commented 7 years ago

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

vilgrar commented 7 years ago

Here is a first draft. Chance for a skill reward is based on combat difficulty and/or rarity.

@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;

Passive mob, risk free

@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;

Hostile, normal challenge

@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;

No opinion yet, I'm not quite sure what a bonus mob is

@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;

Passive mob, risk free

@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;

Passive mob, risk free

@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;

Hostile mob, easy

@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;

Passive mob, risk free

@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;

Fishing Hard

@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;

Passive mob, risk free

@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;

Hostile mob, easy

@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;

Passive mob, risk free

@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;

Hostile mob, challenging

@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;

Hostile mob, hard

@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;

Hostile mob, easy

@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;

Hostile mob, easy (but rare)

@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;

Hostile mob, normal

@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;

Passive mob, risk free

@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;

Hostile mob, normal

@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;

Not really a part of the standard game, but I imagine they are Hostile, Challenging

@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;

Hostile mob, normal (because of the terrain and beam attack)

@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;

Passive mob, risk free

@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;

Passive mob, easy

@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;

Hostile mob, looks normal on Youtube videos (haven't tried 1.12)

@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;

Hostile mob, normal

@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;

Hostile mob, easy (but extremely rare)

@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;

Passive mob, risk free

@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;

Passive mob, risk free

@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;

Hostile mob, easy

@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;

Passive mob, risk free

@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;

Passive mob, risk free

@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;

Passive mob, risk free

@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;

Passive mob, risk free

@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;

Passive mob, risk free

@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;

Passive mob, risk free

@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;

Hostile mob, normal

@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;

Passive mob, risk free

@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;

Fishing Hard

@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;

Easy to abuse

@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;

Passive mob, risk free

@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;

Fishing Easy

@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;

Fishing normal

@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;

Passive mob, risk free

@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;

Hostile mob, normal

@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;

Hostile mob, easy

@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;

Hostile mob, easy

@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;

Passive mob, risk free

@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;

Hostile mob, easy

@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;

Passive mob, risk free

@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;

Hostile mob, easy

@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;

Passive mob, risk free

@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;

Hostile mob, easy

@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;

Hostile mob, easy

@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;

Passive mob, risk free

@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;

Hostile mob, normal

@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;

Hostile mob, normal

@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;

Hostile mob, hard (and rare considering the summoning requirements)

@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;

Hostile mob, normal

@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;

Hostile mob (kind of, needs to be hit first), easy

@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;

Hostile mob, easy

@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;

Passive mob, risk free

@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;

Hostile mob, normal

@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;`

Hostile mob, easy

Rocologo commented 7 years ago

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;

Rocologo commented 7 years ago

Or maybe I misunderstood XP I thought it was Integers? 1,2,3,4?

Rocologo commented 7 years ago

Looking at the API it is Integers so I changed 1:2 to 1.

I will now compile and make first test run :-)

vilgrar commented 7 years ago

Alright, I though there was a way to randomize a number interval, as you did in in the rewards system.

Rocologo commented 7 years ago

Ahhh, no its not standard in all fields in config.yml

But now I understand.

Rocologo commented 7 years ago

If it is important then I can make it....

vilgrar commented 7 years ago

In my opinion it'd be nice but not very important.

Rocologo commented 7 years ago

I takes me 10 min. extra so I make it ;-)

Rocologo commented 7 years ago

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?

vilgrar commented 7 years ago

First report from my test server:

Rocologo commented 7 years ago

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

Rocologo commented 7 years ago

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?

vilgrar commented 7 years ago

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

vilgrar commented 7 years ago

On another note, I'd suggest this text: 'You was rewarded with 1 McMMO XP for . To be replaced with: "You were rewarded with (points) McMMO skill level/s for (skillname)"

Examples: You were rewarded with 1 McMMO skill level for Swords. You were rewarded with 2 McMMO skill levels for Archery.

Rocologo commented 7 years ago

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" ?

Rocologo commented 7 years ago

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?

vilgrar commented 7 years ago

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.

Rocologo commented 7 years ago

I found /stats :-) and unfortunately addxp does still not work :-(

Jeg er 50 og fra Danmark...

vilgrar commented 7 years ago

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.

Rocologo commented 7 years ago

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?

vilgrar commented 7 years ago

/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.

Rocologo commented 7 years ago

Haha.... My code works, except I add xp, and not levels.... I have to study the API again and find addlevels :-)

Rocologo commented 7 years ago

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.

vilgrar commented 7 years ago

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.

Rocologo commented 7 years ago

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...

vilgrar commented 7 years ago

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

Rocologo commented 7 years ago

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?

vilgrar commented 7 years ago

Fine by me. Testing.

vilgrar commented 7 years ago

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! =)

Rocologo commented 7 years ago

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.

vilgrar commented 7 years ago

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.

Rocologo commented 7 years ago

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.