Browse Source

All changes up to 0.9.7

nossr50 14 năm trước cách đây
mục cha
commit
bb1c85ea4a

+ 8 - 0
mcMMO/Changelog.txt

@@ -1,5 +1,13 @@
 Changelog:
 #Versions without changelogs probably had very small misc fixes, like tweaks to the source code#
+Version 0.9.7
+Procs/XP Gain will no longer happen when the Entity is immune to damage (Thanks EdwardHand!)
+Axes critical damage versus players reduced to 150% damage from 200% damage
+Fixed bug where Daze might not proc
+Changed archery Daze to follow smooth transition
+Added archery Daze chance info to /archery
+Cooldown lengths are now customizable, they are in seconds and multiplied by 2 by mcMMO
+
 Version 0.9.6
 Timer checks for player being null before adding them to the mcUsers system
 Cooldowns will now show how much time is remaining when trying to use their respective abilities

+ 1 - 0
mcMMO/com/gmail/nossr50/mcBlockListener.java

@@ -5,6 +5,7 @@ import org.bukkit.Location;
 import org.bukkit.Material;
 import org.bukkit.World;
 import org.bukkit.block.Block;
+import org.bukkit.craftbukkit.entity.CraftEntity;
 import org.bukkit.entity.Player;
 import org.bukkit.event.block.BlockDamageEvent;
 import org.bukkit.event.block.BlockFromToEvent;

+ 26 - 20
mcMMO/com/gmail/nossr50/mcCombat.java

@@ -424,29 +424,27 @@ public class mcCombat {
     	    		if(mcLoadProperties.pvpxp && !mcParty.getInstance().inSameParty(attacker, defender)){
     	    			mcUsers.getProfile(attacker).addArcheryGather((event.getDamage() * 3) * mcLoadProperties.pvpxprewardmodifier);
     	    		}
-    				Location loc = defender.getLocation();
+    				/*
+    				 * DAZE PROC
+    				 */
+    	    		Location loc = defender.getLocation();
     				if(Math.random() * 10 > 5){
 					loc.setPitch(90);
 					} else {
 						loc.setPitch(-90);
 					}
-    				/*
-    				 * Check the proc
-    				 */
-					if(mcUsers.getProfile(attacker).getArcheryInt() >= 300 && mcUsers.getProfile(attacker).getArcheryInt() < 400){
-    				if(Math.random() * 10 > 7){
-    					defender.teleportTo(loc);
-    					defender.sendMessage(ChatColor.DARK_RED+"Touched Fuzzy. Felt Dizzy.");
-    					attacker.sendMessage("Target was "+ChatColor.DARK_RED+"Dazed");
-    				}
-					}
-					if(mcUsers.getProfile(attacker).getArcheryInt() >= 600){
-	    				if(Math.random() * 10 > 4){
-	    					defender.teleportTo(loc);
-	    					defender.sendMessage(ChatColor.DARK_RED+"Touched Fuzzy. Felt Dizzy.");
-	    					attacker.sendMessage("Target was "+ChatColor.DARK_RED+"Dazed");
-	    				}
-						}
+    				if(mcUsers.getProfile(attacker).getArcheryInt() >= 1000){
+    	    			if(Math.random() * 1000 <= 500){
+    	    				defender.teleportTo(loc);
+    	    				defender.sendMessage(ChatColor.DARK_RED+"Touched Fuzzy. Felt Dizzy.");
+    	    				attacker.sendMessage("Target was "+ChatColor.DARK_RED+"Dazed");
+    	    			}
+    	    		} else if(Math.random() * 2000 <= mcUsers.getProfile(attacker).getArcheryInt()){
+    	    			defender.teleportTo(loc);
+	    				defender.sendMessage(ChatColor.DARK_RED+"Touched Fuzzy. Felt Dizzy.");
+	    				attacker.sendMessage("Target was "+ChatColor.DARK_RED+"Dazed");
+    	    		}
+    				
 					if(mcUsers.getProfile(attacker).getArcheryInt() >= 50 && mcUsers.getProfile(attacker).getArcheryInt() < 250)
 	    				event.setDamage(calculateDamage(event, 1));
 	    			if(mcUsers.getProfile(attacker).getArcheryInt() >= 250 && mcUsers.getProfile(attacker).getArcheryInt() < 575)
@@ -570,7 +568,11 @@ public class mcCombat {
     					Player player = (Player)x;
     					player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
     				}
-    				event.setDamage(event.getDamage() * 2);
+    				if(x instanceof Player){
+        				event.setDamage(event.getDamage() * 2 - event.getDamage() / 2);
+        			} else {
+        				event.setDamage(event.getDamage() * 2);
+        			}
     				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
     			}
     		} else if(Math.random() * 1000 <= mcUsers.getProfile(attacker).getAxesInt()){
@@ -578,7 +580,11 @@ public class mcCombat {
     				Player player = (Player)x;
     				player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
     			}
-    			event.setDamage(event.getDamage() * 2);
+    			if(x instanceof Player){
+    				event.setDamage(event.getDamage() * 2 - event.getDamage() / 2);
+    			} else {
+    				event.setDamage(event.getDamage() * 2);
+    			}
 				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
     		}
     	}

+ 7 - 0
mcMMO/com/gmail/nossr50/mcEntityListener.java

@@ -1,6 +1,9 @@
 package com.gmail.nossr50;
 
+import net.minecraft.server.EntityLiving;
+
 import org.bukkit.Location;
+import org.bukkit.craftbukkit.entity.CraftEntity;
 import org.bukkit.entity.Animals;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.Monster;
@@ -36,6 +39,9 @@ public class mcEntityListener extends EntityListener {
     	}
     }
     public void onEntityDamage(EntityDamageEvent event) {
+    	CraftEntity cEntity = (CraftEntity)event.getEntity();
+    	EntityLiving entity = (EntityLiving)cEntity.getHandle();
+    	if(entity.noDamageTicks < entity.maxNoDamageTicks/2.0F){	
     	Entity x = event.getEntity();
     	DamageCause type = event.getCause();
     	/*
@@ -154,6 +160,7 @@ public class mcEntityListener extends EntityListener {
     		Player herpderp = (Player)x;
     		mcUsers.getProfile(herpderp).setRecentlyHurt(30);
     	}
+    	}
     }
     public void onEntityDeath(EntityDeathEvent event) {
     	Entity x = event.getEntity();

+ 13 - 1
mcMMO/com/gmail/nossr50/mcLoadProperties.java

@@ -3,13 +3,25 @@ package com.gmail.nossr50;
 public class mcLoadProperties {
 	public static Boolean toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
 	public static String mcability, mcmmo, mcc, mcrefresh, mcitem, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn;
-	public static int abilityDurabilityLoss, feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
+	public static int superBreakerCooldown, gigaDrillBreakerCooldown, treeFellerCooldown, berserkCooldown, serratedStrikeCooldown, skullSplitterCooldown, abilityDurabilityLoss, feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
 	
 	public static void loadMain(){
     	String propertiesFile = mcMMO.maindirectory + "mcmmo.properties";
     	mcProperties properties = new mcProperties(propertiesFile);
     	properties.load();
     	
+    	/*
+    	 * COOLDOWN CONTROL
+    	 */
+    	superBreakerCooldown = properties.getInteger("superBreakerCooldown", 120);
+    	gigaDrillBreakerCooldown = properties.getInteger("gigaDrillBreakerCooldown", 120);
+    	treeFellerCooldown = properties.getInteger("treeFellerCooldown", 120);
+    	berserkCooldown = properties.getInteger("berserkCooldown", 120);
+    	serratedStrikeCooldown = properties.getInteger("serratedStrikeCooldown", 120);
+    	skullSplitterCooldown = properties.getInteger("skullSplitterCooldown", 120);
+    	/*
+    	 * OTHER
+    	 */
     	toolsLoseDurabilityFromAbilities = properties.getBoolean("toolsLoseDurabilityFromAbilities", true);
     	abilityDurabilityLoss = properties.getInteger("abilityDurabilityLoss", 2);
     	feathersConsumedByChimaeraWing = properties.getInteger("feathersConsumedByChimaeraWing", 10);

+ 6 - 6
mcMMO/com/gmail/nossr50/mcSkills.java

@@ -275,7 +275,7 @@ public class mcSkills {
 				mcUsers.getProfile(player).decreaseSkullSplitterTicks();
 				if(mcUsers.getProfile(player).getSkullSplitterTicks() <= 0){
 					mcUsers.getProfile(player).setSkullSplitterMode(false);
-					mcUsers.getProfile(player).setSkullSplitterCooldown(120);
+					mcUsers.getProfile(player).setSkullSplitterCooldown(mcLoadProperties.skullSplitterCooldown);
 					player.sendMessage(ChatColor.RED+"**Skull Splitter has worn off**");
 				}
 			}
@@ -288,7 +288,7 @@ public class mcSkills {
 				mcUsers.getProfile(player).decreaseTreeFellerTicks();
 				if(mcUsers.getProfile(player).getTreeFellerTicks() <= 0){
 					mcUsers.getProfile(player).setTreeFellerMode(false);
-					mcUsers.getProfile(player).setTreeFellerCooldown(120);
+					mcUsers.getProfile(player).setTreeFellerCooldown(mcLoadProperties.treeFellerCooldown);
 					player.sendMessage(ChatColor.RED+"**Tree Feller has worn off**");
 				}
 			}
@@ -301,7 +301,7 @@ public class mcSkills {
 				mcUsers.getProfile(player).decreaseSuperBreakerTicks();
 				if(mcUsers.getProfile(player).getSuperBreakerTicks() <= 0){
 					mcUsers.getProfile(player).setSuperBreakerMode(false);
-					mcUsers.getProfile(player).setSuperBreakerCooldown(120);
+					mcUsers.getProfile(player).setSuperBreakerCooldown(mcLoadProperties.superBreakerCooldown);
 					player.sendMessage(ChatColor.RED+"**Super Breaker has worn off**");
 				}
 			}
@@ -314,7 +314,7 @@ public class mcSkills {
 				mcUsers.getProfile(player).decreaseGigaDrillBreakerTicks();
 				if(mcUsers.getProfile(player).getGigaDrillBreakerTicks() <= 0){
 					mcUsers.getProfile(player).setGigaDrillBreakerMode(false);
-					mcUsers.getProfile(player).setGigaDrillBreakerCooldown(120);
+					mcUsers.getProfile(player).setGigaDrillBreakerCooldown(mcLoadProperties.gigaDrillBreakerCooldown);
 					player.sendMessage(ChatColor.RED+"**You feel spiral energy leaving you**");
 				}
 			}
@@ -327,7 +327,7 @@ public class mcSkills {
 				mcUsers.getProfile(player).decreaseSerratedStrikesTicks();
 				if(mcUsers.getProfile(player).getSerratedStrikesTicks() <= 0){
 					mcUsers.getProfile(player).setSerratedStrikesMode(false);
-					mcUsers.getProfile(player).setSerratedStrikesCooldown(120);
+					mcUsers.getProfile(player).setSerratedStrikesCooldown(mcLoadProperties.serratedStrikeCooldown);
 					player.sendMessage(ChatColor.RED+"**Serrated Strikes has worn off**");
 				}
 			}
@@ -340,7 +340,7 @@ public class mcSkills {
 				mcUsers.getProfile(player).decreaseBerserkTicks();
 				if(mcUsers.getProfile(player).getBerserkTicks() <= 0){
 					mcUsers.getProfile(player).setBerserkMode(false);
-					mcUsers.getProfile(player).setBerserkCooldown(120);
+					mcUsers.getProfile(player).setBerserkCooldown(mcLoadProperties.berserkCooldown);
 					player.sendMessage(ChatColor.RED+"**Berserk has worn off**");
 				}
 			}

+ 7 - 0
mcMMO/com/gmail/nossr50/mcm.java

@@ -271,6 +271,12 @@ public class mcm {
 			float skillvalue = (float)mcUsers.getProfile(player).getArcheryInt();
     		String percentage = String.valueOf((skillvalue / 1000) * 100);
     		String percentagefire = String.valueOf((skillvalue / 1500) * 100);
+    		String percentagedaze;
+			if(mcUsers.getProfile(player).getArcheryInt() < 1000){
+				percentagedaze = String.valueOf((skillvalue / 2000) * 100);
+			} else {
+				percentagedaze = "50";
+			}
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"ARCHERY"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Attacking Monsters");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
@@ -279,6 +285,7 @@ public class mcm {
 			player.sendMessage(ChatColor.DARK_AQUA+"Damage+: "+ChatColor.GREEN+"Modifies Damage");
 			player.sendMessage(ChatColor.DARK_AQUA+"Arrow Retrieval: "+ChatColor.GREEN+"Chance to retrieve arrows from corpses");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"YOUR STATS"+ChatColor.RED+"[]---");
+			player.sendMessage(ChatColor.RED+"Chance to Daze: "+ChatColor.YELLOW+percentagedaze+"%");
 			player.sendMessage(ChatColor.RED+"Chance to Retrieve Arrows: "+ChatColor.YELLOW+percentage+"%");
 			player.sendMessage(ChatColor.RED+"Chance for Ignition: "+ChatColor.YELLOW+percentagefire+"%");
 			player.sendMessage(ChatColor.RED+"Damage+ (Rank"+rank+"): Bonus "+rank+" damage");

+ 1 - 1
mcMMO/plugin.yml

@@ -1,3 +1,3 @@
 name: mcMMO
 main: com.gmail.nossr50.mcMMO
-version: 0.9.6
+version: 0.9.7