Fixed currencies (bugfix: they weren't being updated due to an empty stub on consumables);

Logging changed on MonsterBrain.cs
This commit is contained in:
Lucca Faria Ferri 2023-01-27 13:11:46 -08:00
parent 8c63392ca5
commit 18b99cd67c
4 changed files with 19 additions and 9 deletions

View File

@ -454,7 +454,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains
{ {
if (PresetPowers.ContainsKey(powerSNO)) if (PresetPowers.ContainsKey(powerSNO))
{ {
Logger.Warn($"Monster $[red]$\"{Body.Name}\"$[/]$ already has power {powerSNO}."); Logger.Trace($"Monster $[red]$\"{Body.Name}\"$[/]$ already has power {powerSNO}.");
// Logger.Debug("AddPresetPower(): power sno {0} already defined for monster \"{1}\"", // Logger.Debug("AddPresetPower(): power sno {0} already defined for monster \"{1}\"",
//powerSNO, this.Body.ActorSNO.Name); //powerSNO, this.Body.ActorSNO.Name);
return; return;

View File

@ -894,7 +894,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem
var Craft7Data = D3.Items.CurrencyData.CreateBuilder().SetId(20) var Craft7Data = D3.Items.CurrencyData.CreateBuilder().SetId(20)
.SetCount(playerAcc.BigPortalKey).Build(); // KeyStone Greater Rift. .SetCount(playerAcc.BigPortalKey).Build(); // KeyStone Greater Rift.
object[] consumables = D3.Items.CurrencyData[] consumables =
{ {
GoldData, BloodShardData, PlatinumData, Craft1Data, Craft2Data, Craft3Data, Craft4Data, Craft5Data, GoldData, BloodShardData, PlatinumData, Craft1Data, Craft2Data, Craft3Data, Craft4Data, Craft5Data,
Craft7Data, Horadric1Data, Horadric2Data, Horadric3Data, Horadric4Data, Horadric5Data, Craft8Data, Craft7Data, Horadric1Data, Horadric2Data, Horadric3Data, Horadric4Data, Horadric5Data, Craft8Data,
@ -1039,7 +1039,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem
var craft7Data = D3.Items.CurrencyData.CreateBuilder().SetId(20) var craft7Data = D3.Items.CurrencyData.CreateBuilder().SetId(20)
.SetCount(playerAcc.BigPortalKey).Build(); // KeyStone Greater Rift. .SetCount(playerAcc.BigPortalKey).Build(); // KeyStone Greater Rift.
object[] consumables = D3.Items.CurrencyData[] consumables =
{ {
goldData, bloodShardData, platinumData, craft1Data, craft2Data, craft3Data, craft4Data, craft5Data, goldData, bloodShardData, platinumData, craft1Data, craft2Data, craft3Data, craft4Data, craft5Data,
craft7Data, horadric1Data, horadric2Data, horadric3Data, horadric4Data, horadric5Data, craft8Data, craft7Data, horadric1Data, horadric2Data, horadric3Data, horadric4Data, horadric5Data, craft8Data,
@ -1193,7 +1193,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem
craft4Data = D3.Items.CurrencyData.CreateBuilder().SetId(6).SetCount(playerAcc.CraftItem4).Build(); craft4Data = D3.Items.CurrencyData.CreateBuilder().SetId(6).SetCount(playerAcc.CraftItem4).Build();
object[] horadricBoxes = { horadric1Data, horadric2Data, horadric3Data, horadric4Data, horadric5Data }; D3.Items.CurrencyData[] horadricBoxes = { horadric1Data, horadric2Data, horadric3Data, horadric4Data, horadric5Data };
foreach (var horadricBoxe in horadricBoxes) moneys.AddCurrency(horadricBoxe); foreach (var horadricBoxe in horadricBoxes) moneys.AddCurrency(horadricBoxe);
player.InGameClient.SendMessage( player.InGameClient.SendMessage(

View File

@ -2251,11 +2251,19 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
public int GetGoldAmount() public int GetGoldAmount()
{ {
if (_inventoryGold != null) if (_inventoryGold != null)
{
Logger.Warn($"InventoryGold is $[bold red]$NOT$[/]$ null: {_inventoryGold.Attributes[GameAttribute.Gold]}");
return _inventoryGold.Attributes[GameAttribute.Gold]; return _inventoryGold.Attributes[GameAttribute.Gold];
}
else else
{
Logger.Warn($"InventoryGold is $[bold red]$NULL$[/]$");
return -1; return -1;
} }
}
public void AddBloodShardsAmount(int amount, bool immediately = true) public void AddBloodShardsAmount(int amount, bool immediately = true)
{ {
@ -2306,9 +2314,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
D3.Items.CurrencyData Craft7Data = D3.Items.CurrencyData.CreateBuilder().SetId(20).SetCount(playerAcc.BigPortalKey).Build(); // KeyStone Greater Rift. D3.Items.CurrencyData Craft7Data = D3.Items.CurrencyData.CreateBuilder().SetId(20).SetCount(playerAcc.BigPortalKey).Build(); // KeyStone Greater Rift.
object[] consumables = {GoldData, BloodShardData, PlatinumData, Craft1Data, Craft2Data, Craft3Data, Craft4Data, Craft5Data, Craft7Data, Horadric1Data, Horadric2Data, Horadric3Data, Horadric4Data, Horadric5Data, Craft8Data, Craft9Data, Craft10Data, Craft11Data}; D3.Items.CurrencyData[] consumables = {GoldData, BloodShardData, PlatinumData, Craft1Data, Craft2Data, Craft3Data, Craft4Data, Craft5Data, Craft7Data, Horadric1Data, Horadric2Data, Horadric3Data, Horadric4Data, Horadric5Data, Craft8Data, Craft9Data, Craft10Data, Craft11Data};
foreach (object consumable in consumables) foreach (var consumable in consumables)
{ {
Moneys.AddCurrency(consumable); Moneys.AddCurrency(consumable);
} }
@ -2340,6 +2348,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
Item item = null; Item item = null;
int goldAmount = (int)_owner.World.Game.GameDBSession.SessionGet<DBGameAccount>(_owner.Toon.GameAccount.PersistentID).Gold; int goldAmount = (int)_owner.World.Game.GameDBSession.SessionGet<DBGameAccount>(_owner.Toon.GameAccount.PersistentID).Gold;
Logger.Warn($"User {this._owner.Toon.PersistentID} has {goldAmount} gold.");
this.BloodShards = (int)_owner.World.Game.GameDBSession.SessionGet<DBGameAccount>(_owner.Toon.GameAccount.PersistentID).BloodShards; this.BloodShards = (int)_owner.World.Game.GameDBSession.SessionGet<DBGameAccount>(_owner.Toon.GameAccount.PersistentID).BloodShards;
// Clear already present items // Clear already present items
// LoadFromDB is called every time World is changed, even entering a dungeon // LoadFromDB is called every time World is changed, even entering a dungeon
@ -2402,9 +2411,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem
//}).ContinueWith((a) =>{ //}).ContinueWith((a) =>{
_inventoryGold = ItemGenerator.CreateGold(_owner, goldAmount); _inventoryGold = ItemGenerator.CreateGold(_owner, goldAmount);
_inventoryGold.Attributes[GameAttribute.Gold] = goldAmount; _inventoryGold.Attributes[GameAttribute.Gold] = goldAmount;
Logger.Warn($"User {this._owner.Toon.PersistentID} - inventory gold has {_inventoryGold.Attributes[GameAttribute.Gold]} gold.");
_inventoryGold.Attributes[GameAttribute.ItemStackQuantityLo] = goldAmount; // This is the attribute that makes the gold visible in gamethe gold visible in game _inventoryGold.Attributes[GameAttribute.ItemStackQuantityLo] = goldAmount; // This is the attribute that makes the gold visible in gamethe gold visible in game
_inventoryGold.Owner = _owner; _inventoryGold.Owner = _owner;
_inventoryGold.SetInventoryLocation((int)EquipmentSlotId.Gold, 0, 0); _inventoryGold.SetInventoryLocation((int)EquipmentSlotId.Gold, 0, 0);
_inventoryGold.Attributes.SendChangedMessage(_owner.InGameClient);
//this.inventoryPotion = ItemGenerator.CreateItem(this._owner, ItemGenerator.GetItemDefinition(DiIiS_NA.Core.Helpers.Hash.StringHashHelper.HashItemName("HealthPotionBottomless"))); //this.inventoryPotion = ItemGenerator.CreateItem(this._owner, ItemGenerator.GetItemDefinition(DiIiS_NA.Core.Helpers.Hash.StringHashHelper.HashItemName("HealthPotionBottomless")));
//this.inventoryPotion.Owner = _owner; //this.inventoryPotion.Owner = _owner;

View File

@ -6579,9 +6579,7 @@ namespace D3.Items {
return this; return this;
} }
public void AddCurrency(object consumable)
{
}
} }
static CurrencySavedData() { static CurrencySavedData() {
object.ReferenceEquals(global::D3.Items.Items.Descriptor, null); object.ReferenceEquals(global::D3.Items.Items.Descriptor, null);