Jump to content
Returning Members: Password Reset Required ×

Recommended Posts

Posted

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 code

public 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.cs

public 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;

           }
       }

Posted

Not sure if it's the correct way but it works and no more error of no mana in cities

public 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);

           }
       }

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...