Fixed double death message bug.
This commit is contained in:
parent
abe745c0ac
commit
15e872803f
Binary file not shown.
@ -804,6 +804,7 @@ public class CustomDamage {
|
|||||||
damage = preventPoisonDamageFromKilling(p, damage, reason);
|
damage = preventPoisonDamageFromKilling(p, damage, reason);
|
||||||
|
|
||||||
if (PlayerMode.getPlayerMode(p)==PlayerMode.SLAYER) {
|
if (PlayerMode.getPlayerMode(p)==PlayerMode.SLAYER) {
|
||||||
|
TwosideKeeper.log("Is a Slayer.", 2);
|
||||||
//PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
//PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
if (damage>2) {
|
if (damage>2) {
|
||||||
damage=2;
|
damage=2;
|
||||||
@ -827,8 +828,8 @@ public class CustomDamage {
|
|||||||
damage=0;
|
damage=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p.getHealth()-damage<0) {
|
/*(if (p.getHealth()-damage<0) {
|
||||||
p.damage(damage);
|
p.damage(p.getHealth());
|
||||||
final double DMG = damage;
|
final double DMG = damage;
|
||||||
Bukkit.getScheduler().runTaskLater(TwosideKeeper.plugin, ()->{
|
Bukkit.getScheduler().runTaskLater(TwosideKeeper.plugin, ()->{
|
||||||
if (p!=null && !p.isDead()) {
|
if (p!=null && !p.isDead()) {
|
||||||
@ -837,7 +838,7 @@ public class CustomDamage {
|
|||||||
TwosideKeeper.log("WARNING!! Player "+p.getName()+" was supposed to die! ["+TwosideKeeper.getServerTickTime()+"] Damage Taken: "+DMG+" from "+damagesource+",Reason: "+reasoning, 1);
|
TwosideKeeper.log("WARNING!! Player "+p.getName()+" was supposed to die! ["+TwosideKeeper.getServerTickTime()+"] Damage Taken: "+DMG+" from "+damagesource+",Reason: "+reasoning, 1);
|
||||||
}
|
}
|
||||||
}, 1);
|
}, 1);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
//pd.customtitle.updateTitle(p);
|
//pd.customtitle.updateTitle(p);
|
||||||
pd.customtitle.updateCombatBar(p, getDamagerEntity(damager));
|
pd.customtitle.updateCombatBar(p, getDamagerEntity(damager));
|
||||||
|
@ -3707,6 +3707,7 @@ public class GenericFunctions {
|
|||||||
boolean revived=false;
|
boolean revived=false;
|
||||||
boolean fromRoom=false;
|
boolean fromRoom=false;
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
DebugUtils.showStackTrace();
|
||||||
if (p.getHealth()<=dmg || (PlayerMode.getPlayerMode(p)==PlayerMode.SLAYER && pd.slayermodehp<=dmg)) {
|
if (p.getHealth()<=dmg || (PlayerMode.getPlayerMode(p)==PlayerMode.SLAYER && pd.slayermodehp<=dmg)) {
|
||||||
//This means we would die from this attack. Attempt to revive the player.
|
//This means we would die from this attack. Attempt to revive the player.
|
||||||
//Check all artifact armor for a perk.
|
//Check all artifact armor for a perk.
|
||||||
@ -3801,7 +3802,6 @@ public class GenericFunctions {
|
|||||||
if (!fromRoom) {
|
if (!fromRoom) {
|
||||||
RandomlyBreakBaubles(p);
|
RandomlyBreakBaubles(p);
|
||||||
}
|
}
|
||||||
runServerHeartbeat.UpdatePlayerScoreboardAndHealth(p);
|
|
||||||
}
|
}
|
||||||
return revived;
|
return revived;
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ public enum PlayerMode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static PlayerMode getPlayerMode(Player p) {
|
public static PlayerMode getPlayerMode(Player p) {
|
||||||
if (p!=null && p.isValid() && p.isOnline()) {
|
if (p!=null && p.isValid() && p.isOnline() && !p.isDead()) {
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
if (needsUpdating(pd)) {
|
if (needsUpdating(pd)) {
|
||||||
if (Check_isSlayer(p)) {
|
if (Check_isSlayer(p)) {
|
||||||
|
@ -481,7 +481,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
public static final int REJUVENATE_COOLDOWN=6000;
|
public static final int REJUVENATE_COOLDOWN=6000;
|
||||||
public static final int ASSASSINATE_COOLDOWN=200;
|
public static final int ASSASSINATE_COOLDOWN=200;
|
||||||
public static final int LIFESAVER_COOLDOWN=6000;
|
public static final int LIFESAVER_COOLDOWN=6000;
|
||||||
public static final int ARROWBARRAGE_COOLDOWN=200;
|
public static final int ARROWBARRAGE_COOLDOWN=2400;
|
||||||
public static final int SIPHON_COOLDOWN = 900;
|
public static final int SIPHON_COOLDOWN = 900;
|
||||||
public static final int MOCK_COOLDOWN = 400;
|
public static final int MOCK_COOLDOWN = 400;
|
||||||
public static final int ICEWAND_COOLDOWN = 1200;
|
public static final int ICEWAND_COOLDOWN = 1200;
|
||||||
@ -7854,25 +7854,29 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
Player p = (Player)ev.getEntity();
|
Player p = (Player)ev.getEntity();
|
||||||
};*/
|
};*/
|
||||||
CustomDamage.setupTrueDamage(ev);
|
CustomDamage.setupTrueDamage(ev);
|
||||||
ev.setDamage(DamageModifier.BASE, dmgdealt);
|
if (dmgdealt>0) {
|
||||||
log("Damage from this event is "+dmgdealt,4);
|
ev.setDamage(DamageModifier.BASE, dmgdealt);
|
||||||
|
log("Damage from this event is "+dmgdealt,4);
|
||||||
EntityDamagedEvent event = new EntityDamagedEvent((LivingEntity)ev.getEntity(),null,dmgdealt,ev.getCause().name(),CustomDamage.TRUEDMG);
|
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
EntityDamagedEvent event = new EntityDamagedEvent((LivingEntity)ev.getEntity(),null,dmgdealt,ev.getCause().name(),CustomDamage.TRUEDMG);
|
||||||
if (event.isCancelled()) {
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
dmgdealt=0;
|
if (event.isCancelled()) {
|
||||||
ev.setDamage(DamageModifier.BASE,0d);
|
dmgdealt=0;
|
||||||
ev.setCancelled(true);
|
ev.setDamage(DamageModifier.BASE,0d);
|
||||||
return;
|
ev.setCancelled(true);
|
||||||
} else {
|
return;
|
||||||
if (!(ev.getEntity() instanceof Player && PlayerMode.getPlayerMode((Player)(ev.getEntity()))==PlayerMode.SLAYER)) {
|
} else {
|
||||||
if (dmgdealt < 1) {
|
if (!(ev.getEntity() instanceof Player && PlayerMode.getPlayerMode((Player)(ev.getEntity()))==PlayerMode.SLAYER)) {
|
||||||
ev.setDamage(DamageModifier.BASE,dmgdealt);
|
if (dmgdealt < 1) {
|
||||||
} else {
|
ev.setDamage(DamageModifier.BASE,dmgdealt);
|
||||||
ev.setDamage(DamageModifier.BASE,1d);
|
} else {
|
||||||
((LivingEntity)ev.getEntity()).setHealth(Math.max(((LivingEntity)ev.getEntity()).getHealth() - (dmgdealt - 1d), 0.5));
|
ev.setDamage(DamageModifier.BASE,1d);
|
||||||
}
|
((LivingEntity)ev.getEntity()).setHealth(Math.max(((LivingEntity)ev.getEntity()).getHealth() - (dmgdealt - 1d), 0.5));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
ev.setCancelled(true);
|
||||||
}
|
}
|
||||||
if (ev.getEntity() instanceof Player) {
|
if (ev.getEntity() instanceof Player) {
|
||||||
Player p = (Player)ev.getEntity();
|
Player p = (Player)ev.getEntity();
|
||||||
@ -11666,230 +11670,232 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
|
|
||||||
public static void setPlayerMaxHealth(Player p, Double ratio, boolean force) {
|
public static void setPlayerMaxHealth(Player p, Double ratio, boolean force) {
|
||||||
//Determine player max HP based on armor being worn.
|
//Determine player max HP based on armor being worn.
|
||||||
if (EquipmentUpdated(p) || force) {
|
if (!p.isDead() && p.getHealth()>0) {
|
||||||
TwosideKeeper.log("Equipment updated. Checking health...", 5);
|
if (EquipmentUpdated(p) || force) {
|
||||||
double hp=10; //Get the base max health.
|
TwosideKeeper.log("Equipment updated. Checking health...", 5);
|
||||||
double bonushp=0; //Bonus Health.
|
double hp=10; //Get the base max health.
|
||||||
//Get all equips.
|
double bonushp=0; //Bonus Health.
|
||||||
ItemStack[] equipment = {p.getInventory().getHelmet(),p.getInventory().getChestplate(),p.getInventory().getLeggings(),p.getInventory().getBoots()};
|
//Get all equips.
|
||||||
double maxdeduction=1;
|
ItemStack[] equipment = {p.getInventory().getHelmet(),p.getInventory().getChestplate(),p.getInventory().getLeggings(),p.getInventory().getBoots()};
|
||||||
long equiplooptime = System.nanoTime();
|
double maxdeduction=1;
|
||||||
for (ItemStack equip : equipment) {
|
long equiplooptime = System.nanoTime();
|
||||||
if (equip!=null) {
|
for (ItemStack equip : equipment) {
|
||||||
boolean is_block_form=false;
|
if (equip!=null) {
|
||||||
//Determine if the piece is block form.
|
boolean is_block_form=false;
|
||||||
//If this is an artifact armor, we totally override the base damage reduction.
|
//Determine if the piece is block form.
|
||||||
if (GenericFunctions.isArmor(equip) && Artifact.isArtifact(equip)) {
|
//If this is an artifact armor, we totally override the base damage reduction.
|
||||||
//Let's change up the damage.
|
if (GenericFunctions.isArmor(equip) && Artifact.isArtifact(equip)) {
|
||||||
log("This is getting through",5);
|
//Let's change up the damage.
|
||||||
/*int dmgval = ArtifactItemType.valueOf(Artifact.returnRawTool(equip.getType())).getHealthAmt(equip.getEnchantmentLevel(Enchantment.LUCK));
|
log("This is getting through",5);
|
||||||
if (dmgval!=-1) {
|
/*int dmgval = ArtifactItemType.valueOf(Artifact.returnRawTool(equip.getType())).getHealthAmt(equip.getEnchantmentLevel(Enchantment.LUCK));
|
||||||
hp += dmgval;
|
if (dmgval!=-1) {
|
||||||
}*/
|
hp += dmgval;
|
||||||
} else {
|
}*/
|
||||||
long time = System.nanoTime();
|
|
||||||
if (equip.hasItemMeta() &&
|
|
||||||
equip.getItemMeta().hasLore()) {
|
|
||||||
for (int j=0;j<equip.getItemMeta().getLore().size();j++) {
|
|
||||||
if (equip.getItemMeta().getLore().get(j).contains(ChatColor.GRAY+"Breaks Remaining:")) {
|
|
||||||
//This is a block version.
|
|
||||||
is_block_form=true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Is Block Form Check", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
if (equip.getType().toString().contains("LEATHER")) {
|
|
||||||
//This is a leather piece.
|
|
||||||
bonushp+=ARMOR_LEATHER_HP;
|
|
||||||
} else if (equip.getType().toString().contains("IRON")) {
|
|
||||||
//This is an iron piece.
|
|
||||||
bonushp+=(is_block_form)?ARMOR_IRON2_HP:ARMOR_IRON_HP;
|
|
||||||
} else if (equip.getType().toString().contains("GOLD")) {
|
|
||||||
//This is a gold piece.
|
|
||||||
bonushp+=(is_block_form)?ARMOR_GOLD2_HP:ARMOR_GOLD_HP;
|
|
||||||
} else if (equip.getType().toString().contains("DIAMOND")) {
|
|
||||||
//This is a diamond piece.
|
|
||||||
bonushp+=(is_block_form)?ARMOR_DIAMOND2_HP:ARMOR_DIAMOND_HP;
|
|
||||||
}
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Increase Health for Block Armor", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
}
|
|
||||||
if (GenericFunctions.isArtifactEquip(equip)) {
|
|
||||||
//log("Add in "+GenericFunctions.getAbilityValue(ArtifactAbility.HEALTH, equip),5);
|
|
||||||
if (PlayerMode.getPlayerMode(p)==PlayerMode.RANGER) {
|
|
||||||
long time = System.nanoTime();
|
|
||||||
hp += (double)GenericFunctions.getAbilityValue(ArtifactAbility.HEALTH, equip,p)/2;
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Increase Health for Ranger Armor", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
} else {
|
} else {
|
||||||
long time = System.nanoTime();
|
long time = System.nanoTime();
|
||||||
hp += (double)GenericFunctions.getAbilityValue(ArtifactAbility.HEALTH, equip,p);
|
if (equip.hasItemMeta() &&
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Increase Health for Normal Armor", (int)(System.nanoTime()-time));time = System.nanoTime();
|
equip.getItemMeta().hasLore()) {
|
||||||
|
for (int j=0;j<equip.getItemMeta().getLore().size();j++) {
|
||||||
|
if (equip.getItemMeta().getLore().get(j).contains(ChatColor.GRAY+"Breaks Remaining:")) {
|
||||||
|
//This is a block version.
|
||||||
|
is_block_form=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Is Block Form Check", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
if (equip.getType().toString().contains("LEATHER")) {
|
||||||
|
//This is a leather piece.
|
||||||
|
bonushp+=ARMOR_LEATHER_HP;
|
||||||
|
} else if (equip.getType().toString().contains("IRON")) {
|
||||||
|
//This is an iron piece.
|
||||||
|
bonushp+=(is_block_form)?ARMOR_IRON2_HP:ARMOR_IRON_HP;
|
||||||
|
} else if (equip.getType().toString().contains("GOLD")) {
|
||||||
|
//This is a gold piece.
|
||||||
|
bonushp+=(is_block_form)?ARMOR_GOLD2_HP:ARMOR_GOLD_HP;
|
||||||
|
} else if (equip.getType().toString().contains("DIAMOND")) {
|
||||||
|
//This is a diamond piece.
|
||||||
|
bonushp+=(is_block_form)?ARMOR_DIAMOND2_HP:ARMOR_DIAMOND_HP;
|
||||||
|
}
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Increase Health for Block Armor", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
}
|
}
|
||||||
|
if (GenericFunctions.isArtifactEquip(equip)) {
|
||||||
long time = System.nanoTime();
|
//log("Add in "+GenericFunctions.getAbilityValue(ArtifactAbility.HEALTH, equip),5);
|
||||||
if (ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, equip)) {
|
if (PlayerMode.getPlayerMode(p)==PlayerMode.RANGER) {
|
||||||
maxdeduction /= ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, equip)?2:1;
|
long time = System.nanoTime();
|
||||||
|
hp += (double)GenericFunctions.getAbilityValue(ArtifactAbility.HEALTH, equip,p)/2;
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Increase Health for Ranger Armor", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
} else {
|
||||||
|
long time = System.nanoTime();
|
||||||
|
hp += (double)GenericFunctions.getAbilityValue(ArtifactAbility.HEALTH, equip,p);
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Increase Health for Normal Armor", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
long time = System.nanoTime();
|
||||||
|
if (ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, equip)) {
|
||||||
|
maxdeduction /= ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, equip)?2:1;
|
||||||
|
}
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Decrease Health based on Greed", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
}
|
}
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Decrease Health based on Greed", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
TwosideKeeper.HeartbeatLogger.AddEntry("----]> Equipment Check", (int)(System.nanoTime()-equiplooptime));
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----]> Equipment Check", (int)(System.nanoTime()-equiplooptime));
|
|
||||||
|
long time = System.nanoTime();
|
||||||
|
//Check the hotbar for set equips.
|
||||||
|
bonushp+=ItemSet.GetTotalBaseAmount(p, ItemSet.GLADOMAIN);
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Gladomain Set Increase", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
log("Health is now "+hp,5);
|
||||||
|
if (ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, p.getEquipment().getItemInMainHand())) {
|
||||||
|
maxdeduction /= ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, p.getEquipment().getItemInMainHand())?2:1;
|
||||||
|
}
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Greed Reduction Main Hand", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
log("maxdeduction is "+maxdeduction,5);
|
||||||
|
|
||||||
|
if (PlayerMode.isDefender(p)) {
|
||||||
|
bonushp+=10;
|
||||||
|
}
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Defender HP and Regeneration", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
if (PlayerMode.isBarbarian(p)) {
|
||||||
|
double red = 1-CustomDamage.CalculateDamageReduction(1,p,null);
|
||||||
|
bonushp+=(red*2)*100;
|
||||||
|
}
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Barbarian HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
|
||||||
|
|
||||||
long time = System.nanoTime();
|
bonushp+=ItemSet.GetTotalBaseAmount(p, ItemSet.DAWNTRACKER);
|
||||||
//Check the hotbar for set equips.
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER, 4, 4);
|
||||||
bonushp+=ItemSet.GetTotalBaseAmount(p, ItemSet.GLADOMAIN);
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dawntracker HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Gladomain Set Increase", (int)(System.nanoTime()-time));time = System.nanoTime();
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.SONGSTEEL, 2, 2);
|
||||||
log("Health is now "+hp,5);
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Songsteel HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
if (ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, p.getEquipment().getItemInMainHand())) {
|
|
||||||
maxdeduction /= ArtifactAbility.containsEnchantment(ArtifactAbility.GREED, p.getEquipment().getItemInMainHand())?2:1;
|
/*
|
||||||
}
|
if (p.hasPotionEffect(PotionEffectType.ABSORPTION)) {
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Greed Reduction Main Hand", (int)(System.nanoTime()-time));time = System.nanoTime();
|
Collection<PotionEffect> player_effects = p.getActivePotionEffects();
|
||||||
log("maxdeduction is "+maxdeduction,5);
|
for (int i=0;i<player_effects.size();i++) {
|
||||||
|
if (Iterables.get(player_effects, i).getType().equals(PotionEffectType.ABSORPTION)) {
|
||||||
if (PlayerMode.isDefender(p)) {
|
hp += (Iterables.get(player_effects, i).getAmplifier()+1)*4;
|
||||||
bonushp+=10;
|
}
|
||||||
}
|
}
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Defender HP and Regeneration", (int)(System.nanoTime()-time));time = System.nanoTime();
|
}*/
|
||||||
if (PlayerMode.isBarbarian(p)) {
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 2, 2)+ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 3, 3);
|
||||||
double red = 1-CustomDamage.CalculateDamageReduction(1,p,null);
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Alikahn HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
bonushp+=(red*2)*100;
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.COMET, 2, 2);
|
||||||
}
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Comet HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Barbarian HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.CUPID, 2, 2);
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Cupid HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DONNER, 2, 2);
|
||||||
bonushp+=ItemSet.GetTotalBaseAmount(p, ItemSet.DAWNTRACKER);
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Donner HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER, 4, 4);
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.RUDOLPH, 2, 2);
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dawntracker HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Rudolph HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.SONGSTEEL, 2, 2);
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.OLIVE, 2, 2);
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Songsteel HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Olive HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DASHER, 3, 3);
|
||||||
/*
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dasher HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
if (p.hasPotionEffect(PotionEffectType.ABSORPTION)) {
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DANCER, 3, 3);
|
||||||
Collection<PotionEffect> player_effects = p.getActivePotionEffects();
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dancer HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
for (int i=0;i<player_effects.size();i++) {
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.PRANCER, 3, 3);
|
||||||
if (Iterables.get(player_effects, i).getType().equals(PotionEffectType.ABSORPTION)) {
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Prancer HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
hp += (Iterables.get(player_effects, i).getAmplifier()+1)*4;
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.VIXEN, 3, 3);
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Vixen HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.BLITZEN, 3, 3);
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Blitzen HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
/*bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 4, 4)+
|
||||||
|
ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 4, 4)+
|
||||||
|
ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.LORASAADI, 4, 4)+
|
||||||
|
ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.JAMDAK, 4, 4);*/
|
||||||
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.SHARD, 4, 4);
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Shard HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
bonushp+=ItemSet.GetTotalBaseAmount(p, ItemSet.SUSTENANCE);
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Sustenance HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER,6) ||
|
||||||
|
ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.LEGION,6) ||
|
||||||
|
ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.PRIDE,6)) {
|
||||||
|
hp*=1.0+(0.1d*ItemSet.GetItemTier(p.getEquipment().getItemInMainHand()));
|
||||||
|
}
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dawntracker bonus HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
||||||
|
if (!pd.had3pieceprotecterset && ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.PROTECTOR, 3)) {
|
||||||
|
//Update all other party members' health.
|
||||||
|
pd.had3pieceprotecterset=true;
|
||||||
|
for (Player pl : PartyManager.getPartyMembers(p)) {
|
||||||
|
if (!pl.equals(p)) {
|
||||||
|
setPlayerMaxHealth(pl,pl.getHealth()/pl.getMaxHealth(),true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (pd.had3pieceprotecterset && !ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.PROTECTOR, 3)) {
|
||||||
|
//Update all other party members' health.
|
||||||
|
pd.had3pieceprotecterset=false;
|
||||||
|
for (Player pl : PartyManager.getPartyMembers(p)) {
|
||||||
|
if (!pl.equals(p)) {
|
||||||
|
setPlayerMaxHealth(pl,pl.getHealth()/pl.getMaxHealth(),true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}*/
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 2, 2)+ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 3, 3);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Alikahn HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.COMET, 2, 2);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Comet HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.CUPID, 2, 2);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Cupid HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DONNER, 2, 2);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Donner HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.RUDOLPH, 2, 2);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Rudolph HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.OLIVE, 2, 2);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Olive HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DASHER, 3, 3);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dasher HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DANCER, 3, 3);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dancer HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.PRANCER, 3, 3);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Prancer HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.VIXEN, 3, 3);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Vixen HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.BLITZEN, 3, 3);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Blitzen HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
/*bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.ALIKAHN, 4, 4)+
|
|
||||||
ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.DARNYS, 4, 4)+
|
|
||||||
ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.LORASAADI, 4, 4)+
|
|
||||||
ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.JAMDAK, 4, 4);*/
|
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(p, ItemSet.SHARD, 4, 4);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Shard HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
bonushp+=ItemSet.GetTotalBaseAmount(p, ItemSet.SUSTENANCE);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Sustenance HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
if (ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.DAWNTRACKER,6) ||
|
|
||||||
ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.LEGION,6) ||
|
|
||||||
ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.PRIDE,6)) {
|
|
||||||
hp*=1.0+(0.1d*ItemSet.GetItemTier(p.getEquipment().getItemInMainHand()));
|
|
||||||
}
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Dawntracker bonus HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
PlayerStructure pd = PlayerStructure.GetPlayerStructure(p);
|
|
||||||
if (!pd.had3pieceprotecterset && ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.PROTECTOR, 3)) {
|
|
||||||
//Update all other party members' health.
|
|
||||||
pd.had3pieceprotecterset=true;
|
|
||||||
for (Player pl : PartyManager.getPartyMembers(p)) {
|
for (Player pl : PartyManager.getPartyMembers(p)) {
|
||||||
if (!pl.equals(p)) {
|
if (pl!=null && p!=null && !pl.equals(p)) {
|
||||||
setPlayerMaxHealth(pl,pl.getHealth()/pl.getMaxHealth(),true);
|
//TwosideKeeper.log("Found a Defender: "+pl.getName(), 0);
|
||||||
|
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(pl, ItemSet.PROTECTOR, 3, 3)*ItemSet.GetPlayerModeSpecificMult(p);
|
||||||
|
//TwosideKeeper.log("Increased health by: "+(ItemSet.TotalBaseAmountBasedOnSetBonusCount(pl, ItemSet.PROTECTOR, 3, 3)*ItemSet.GetPlayerModeSpecificMult(p))+" HP.", 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Protector Set Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
if (pd.had3pieceprotecterset && !ItemSet.HasSetBonusBasedOnSetBonusCount(p, ItemSet.PROTECTOR, 3)) {
|
|
||||||
//Update all other party members' health.
|
if (PlayerMode.getPlayerMode(p)==PlayerMode.NORMAL) {
|
||||||
pd.had3pieceprotecterset=false;
|
TwosideKeeper.log("Player Mode is Normal.", 5);
|
||||||
for (Player pl : PartyManager.getPartyMembers(p)) {
|
bonushp+=10;
|
||||||
if (!pl.equals(p)) {
|
}
|
||||||
setPlayerMaxHealth(pl,pl.getHealth()/pl.getMaxHealth(),true);
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Adventurer Mode HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
|
||||||
|
hp+=bonushp*(PVP.isPvPing(p)?PlayerMode.isRanger(p)?0.25:0.5:1);
|
||||||
|
|
||||||
|
if (PlayerMode.isSlayer(p) && PVP.isPvPing(p)) {
|
||||||
|
hp/=2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Buff.hasBuff(p, "DARKSUBMISSION")) {
|
||||||
|
Buff b = Buff.getBuff(p, "DARKSUBMISSION");
|
||||||
|
if (b.getAmplifier()>=50) {
|
||||||
|
hp*=0.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
hp*=maxdeduction;
|
||||||
for (Player pl : PartyManager.getPartyMembers(p)) {
|
|
||||||
if (pl!=null && p!=null && !pl.equals(p)) {
|
p.resetMaxHealth();
|
||||||
//TwosideKeeper.log("Found a Defender: "+pl.getName(), 0);
|
if (p.getHealth()>=hp) {
|
||||||
bonushp+=ItemSet.TotalBaseAmountBasedOnSetBonusCount(pl, ItemSet.PROTECTOR, 3, 3)*ItemSet.GetPlayerModeSpecificMult(p);
|
p.setHealth(hp);
|
||||||
//TwosideKeeper.log("Increased health by: "+(ItemSet.TotalBaseAmountBasedOnSetBonusCount(pl, ItemSet.PROTECTOR, 3, 3)*ItemSet.GetPlayerModeSpecificMult(p))+" HP.", 0);
|
|
||||||
}
|
}
|
||||||
}
|
p.setMaxHealth(hp);
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Protector Set Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Reset Health", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
if (!p.isDead()) {
|
||||||
if (PlayerMode.getPlayerMode(p)==PlayerMode.NORMAL) {
|
if (ratio==null) {
|
||||||
TwosideKeeper.log("Player Mode is Normal.", 5);
|
p.setHealth(p.getHealth());
|
||||||
bonushp+=10;
|
} else {
|
||||||
}
|
//TwosideKeeper.log("Hp is "+hp+". Ratio is "+ratio+". Setting to "+, loglv);
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Adventurer Mode HP Calculation", (int)(System.nanoTime()-time));time = System.nanoTime();
|
p.setHealth(ratio*p.getMaxHealth());
|
||||||
|
|
||||||
hp+=bonushp*(PVP.isPvPing(p)?PlayerMode.isRanger(p)?0.25:0.5:1);
|
|
||||||
|
|
||||||
if (PlayerMode.isSlayer(p) && PVP.isPvPing(p)) {
|
|
||||||
hp/=2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Buff.hasBuff(p, "DARKSUBMISSION")) {
|
|
||||||
Buff b = Buff.getBuff(p, "DARKSUBMISSION");
|
|
||||||
if (b.getAmplifier()>=50) {
|
|
||||||
hp*=0.5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hp*=maxdeduction;
|
|
||||||
|
|
||||||
p.resetMaxHealth();
|
|
||||||
if (p.getHealth()>=hp) {
|
|
||||||
p.setHealth(hp);
|
|
||||||
}
|
|
||||||
p.setMaxHealth(hp);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Reset Health", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
if (!p.isDead()) {
|
|
||||||
if (ratio==null) {
|
|
||||||
p.setHealth(p.getHealth());
|
|
||||||
} else {
|
|
||||||
//TwosideKeeper.log("Hp is "+hp+". Ratio is "+ratio+". Setting to "+, loglv);
|
|
||||||
p.setHealth(ratio*p.getMaxHealth());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Set Health Ratio", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
if (PlayerMode.getPlayerMode(p)==PlayerMode.SLAYER) {
|
|
||||||
double slayermodehp = PlayerStructure.GetPlayerStructure(p).slayermodehp;
|
|
||||||
if (ratio==null) {
|
|
||||||
if (slayermodehp>p.getMaxHealth()) {
|
|
||||||
slayermodehp = PlayerStructure.GetPlayerStructure(p).slayermodehp = p.getMaxHealth();
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
slayermodehp = PlayerStructure.GetPlayerStructure(p).slayermodehp = ratio*p.getMaxHealth();
|
|
||||||
}
|
}
|
||||||
p.setHealth(slayermodehp);
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Set Health Ratio", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
if (PlayerMode.getPlayerMode(p)==PlayerMode.SLAYER) {
|
||||||
|
double slayermodehp = PlayerStructure.GetPlayerStructure(p).slayermodehp;
|
||||||
|
if (ratio==null) {
|
||||||
|
if (slayermodehp>p.getMaxHealth()) {
|
||||||
|
slayermodehp = PlayerStructure.GetPlayerStructure(p).slayermodehp = p.getMaxHealth();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
slayermodehp = PlayerStructure.GetPlayerStructure(p).slayermodehp = ratio*p.getMaxHealth();
|
||||||
|
}
|
||||||
|
p.setHealth(slayermodehp);
|
||||||
|
}
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Apply Slayer Mode HP", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
p.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(hp);
|
||||||
|
p.setHealthScaled(false);
|
||||||
|
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Final Fix", (int)(System.nanoTime()-time));time = System.nanoTime();
|
||||||
|
runServerHeartbeat.UpdatePlayerScoreboardAndHealth(p);
|
||||||
}
|
}
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Apply Slayer Mode HP", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
p.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(hp);
|
|
||||||
p.setHealthScaled(false);
|
|
||||||
TwosideKeeper.HeartbeatLogger.AddEntry("----====]> Final Fix", (int)(System.nanoTime()-time));time = System.nanoTime();
|
|
||||||
runServerHeartbeat.UpdatePlayerScoreboardAndHealth(p);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user