WHITELIONX Posted October 20, 2022 Posted October 20, 2022 I had it working correctly but because of a stupid Win 11 update I had to reinstall Win 10 to my PC, I can't for the life of me remember the source I had checked to fix it in the first place but basically it's the no mana when transformed. I thought the issue was in player.cs but under "public override void SetDisguise(Database.Domain.DbMonstertype _mob, long _duration, bool increaseAS)" but seems no matter what is added then the issue is also replicated in TG?Full codepublic override void SetDisguise(Database.Domain.DbMonstertype _mob, long _duration, bool increaseAS) { if (!Alive) return; LastServerJump -= 1000; LastClientJump -= 1000; if (_mob == null) { var pctLife = Life * 100 / MaximumLife; //var pctMana = Mana * 100 / MaximumMana; Transformation = 0; waitingAttackSpeedFix = true; Recalculate(); Life = MaximumLife * pctLife / 100; //Mana = (ushort)(MaximumMana * pctMana / 100); } else { AddStatus(Enum.ClientStatus.TransformationTimeout, (int)_mob.Mesh, _duration); CombatStats = CombatStatistics.Create(_mob); if (increaseAS) { CombatStats.BonusHitratePct += 50; // todo: adjust this value } Transformation = (ushort)_mob.Mesh; TransformationAttackSpeed = CombatStats.BonusHitratePct; Send(UpdatePacket.Create(UID, UpdateType.MaxLife, MaximumLife)); Life = MaximumLife; //Mana = MaximumMana; //Mana = (ushort)CombatStats.MaxMana; } }I'm sure the answer is already in player.cspublic override void SetDisguise(Database.Domain.DbMonstertype _mob, long _duration, bool increaseAS) { if (!Alive) return; LastServerJump -= 1000; LastClientJump -= 1000; if (_mob == null) { var pctLife = Life * 100 / MaximumLife; //var pctMana = Mana * 100 / MaximumMana; Transformation = 0; waitingAttackSpeedFix = true; Recalculate(); Life = MaximumLife * pctLife / 100; //Mana = (ushort)(MaximumMana * pctMana / 100); } else { AddStatus(Enum.ClientStatus.TransformationTimeout, (int)_mob.Mesh, _duration); CombatStats = CombatStatistics.Create(_mob); if (increaseAS) { CombatStats.BonusHitratePct += 50; // todo: adjust this value } Transformation = (ushort)_mob.Mesh; TransformationAttackSpeed = CombatStats.BonusHitratePct; Send(UpdatePacket.Create(UID, UpdateType.MaxLife, MaximumLife)); Send(UpdatePacket.Create(UID, UpdateType.MaxMana, MaximumMana)); Life = MaximumLife; //Mana = MaximumMana; //Mana = (ushort)CombatStats.MaxMana; } } Quote
WHITELIONX Posted October 21, 2022 Author Posted October 21, 2022 Not sure if it's the correct way but it works and no more error of no mana in citiespublic override void SetDisguise(Database.Domain.DbMonstertype _mob, long _duration, bool increaseAS) { if (!Alive) return; LastServerJump -= 1000; LastClientJump -= 1000; if (_mob == null) { var pctLife = Life * 100 / MaximumLife; Transformation = 0; waitingAttackSpeedFix = true; Recalculate(); Life = MaximumLife * pctLife / 100; } else { AddStatus(Enum.ClientStatus.TransformationTimeout, (int)_mob.Mesh, _duration); CombatStats = CombatStatistics.Create(_mob); if (increaseAS) { CombatStats.BonusHitratePct += 50; // todo: adjust this value } Transformation = (ushort)_mob.Mesh; TransformationAttackSpeed = CombatStats.BonusHitratePct; Send(UpdatePacket.Create(UID, UpdateType.MaxLife, MaximumLife)); Life = MaximumLife; Send(UpdatePacket.Create(UID, UpdateType.MaxMana, MaximumMana)); CombatStats.MaxMana = (ushort)(Common.GetTaoistManaBonus(MaximumMana) * 100); } } Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.