Value is set as items as used or damaged. Not calculated on the fly.
This commit is contained in:
@@ -140,6 +140,11 @@ public class RepairMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (!DbManager.ItemQueries.SET_DURABILITY(toRepair, max))
|
if (!DbManager.ItemQueries.SET_DURABILITY(toRepair, max))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
toRepair.value = (int) (toRepair.template.item_value * (toRepair.combat_health_current / toRepair.template.combat_health_full));
|
||||||
|
|
||||||
|
if (!DbManager.ItemQueries.UPDATE_VALUE(toRepair, toRepair.value))
|
||||||
|
return true;
|
||||||
|
|
||||||
//repair the item
|
//repair the item
|
||||||
|
|
||||||
toRepair.setCombat_health_current(max);
|
toRepair.setCombat_health_current(max);
|
||||||
|
|||||||
@@ -105,17 +105,7 @@ public class VendorSellMsgHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
//get goldItem cost to sell
|
//get goldItem cost to sell
|
||||||
|
|
||||||
cost = sell.template.item_value;
|
cost = sell.value;
|
||||||
|
|
||||||
//apply damaged value reduction
|
|
||||||
float damagedModifier = sell.combat_health_current / sell.template.combat_health_full;
|
|
||||||
float chargeModifier = 1.0f;
|
|
||||||
|
|
||||||
if (sell.chargesRemaining != 0)
|
|
||||||
chargeModifier = sell.chargesRemaining * 1.0f / sell.template.item_initial_charges;
|
|
||||||
|
|
||||||
cost *= damagedModifier;
|
|
||||||
cost *= chargeModifier;
|
|
||||||
|
|
||||||
float bargain = player.getBargain();
|
float bargain = player.getBargain();
|
||||||
float profit = npc.getBuyPercent(player) + bargain;
|
float profit = npc.getBuyPercent(player) + bargain;
|
||||||
|
|||||||
@@ -2358,7 +2358,9 @@ public class CharacterItemManager {
|
|||||||
if (!DbManager.ItemQueries.SET_DURABILITY(item, dur))
|
if (!DbManager.ItemQueries.SET_DURABILITY(item, dur))
|
||||||
return;
|
return;
|
||||||
item.setCombat_health_current((short) dur);
|
item.setCombat_health_current((short) dur);
|
||||||
|
item.value = (int) (item.template.item_value * (item.combat_health_current / item.template.combat_health_full));
|
||||||
|
if (!DbManager.ItemQueries.UPDATE_VALUE(item, item.value))
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.absCharacter.getObjectType().equals(GameObjectType.PlayerCharacter) == false)
|
if (this.absCharacter.getObjectType().equals(GameObjectType.PlayerCharacter) == false)
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class Item extends AbstractWorldObject {
|
|||||||
public Enum.EquipSlotType equipSlot;
|
public Enum.EquipSlotType equipSlot;
|
||||||
private boolean canDestroy;
|
private boolean canDestroy;
|
||||||
private boolean isRandom = false;
|
private boolean isRandom = false;
|
||||||
private int value;
|
public int value;
|
||||||
public OwnerType ownerType;
|
public OwnerType ownerType;
|
||||||
public int templateID;
|
public int templateID;
|
||||||
private long dateToUpgrade;
|
private long dateToUpgrade;
|
||||||
@@ -781,6 +781,8 @@ public class Item extends AbstractWorldObject {
|
|||||||
if (this.chargesRemaining < 0)
|
if (this.chargesRemaining < 0)
|
||||||
this.chargesRemaining = 0;
|
this.chargesRemaining = 0;
|
||||||
DbManager.ItemQueries.UPDATE_REMAINING_CHARGES(this);
|
DbManager.ItemQueries.UPDATE_REMAINING_CHARGES(this);
|
||||||
|
this.value = this.value * (this.chargesRemaining / this.template.item_initial_charges);
|
||||||
|
DbManager.ItemQueries.UPDATE_VALUE(this, this.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void zeroItem() {
|
public void zeroItem() {
|
||||||
|
|||||||
Reference in New Issue
Block a user