Hay algunas habilidades que no consumen stamina ya busque por todos los codigos tanto en calculate.cs como en handle.cs y tambien busque en el navicat la tabla spell que son las ubicaciones mas comunes donde se encuentran los codigos de las habilidades y no tengo el conocimiento necesario para ver la parte de la stamina.
Por el momento encontre una solucion momentanea que da un poco mas de igualdad que fue agregar un codigo para que la habilidad tarde 1.5 segundos ( CONFIGURABLE ) para volver a utilizarse se que no es la solucion pero da un poco mas de igualdad por el momento aqui abajo dejare el codigo de la habilidad y ver si al codigo le faltan algunas lineas sobre stamina o esa configuracion se encuentra en otro lado de ejemplo dejare el codigo del super twofold blade ( habilidad epica ninja ) por cierto si a alguien le sirve el codigo de la habilidad se la dejo a disposicion.
Realmente busque en el codigo por todos en la base de datos la tabla spell tiene un cuadro de use_ep que es la stamina a usar ya lo cambie en la ID de la habilidad pero nada.
CODIGO
`#region SuperTwofoldBlade
case 12080:
{
if (CanUseSpell(spell, attacker.Owner))
{
attacker.SuperTwofoldBlade = Time64.Now;
ushort Xx, Yx;
if (attacked != null)
{
Xx = attacked.X;
Yx = attacked.Y;
}
else
{
Xx = attackedsob.X;
Yx = attackedsob.Y;
}
if (Kernel.GetDistance(attacker.X, attacker.Y, Xx, Yx) <= spell.Distance)
{
if (attackedsob == null)
if (attacked.ContainsFlag(Network.GamePackets.Update.Flags.Fly))
return;
if (attacker.ContainsFlag(Network.GamePackets.Update.Flags.Fly))
return;
PrepareSpell(spell, attacker.Owner);
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell.ID;
suse.SpellLevel = spell.Level;
suse.X = X;
suse.Y = Y;
bool send = false;
if (attackedsob == null)
{
if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
{
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
damage = (uint)(damage * Program.SuperTwoFold);
var dist = Kernel.GetDistance(attacker.X, attacker.Y, attacked.X, attacked.Y);
if (dist <= 5)
{
damage *= 112 / 100;
}
else
{
damage *= 85 / 100;
}
suse.Effect1 = attack.Effect1;
ReceiveAttack(attacker, attacked, attack, damage, spell);
suse.AddTarget(attacked.UID, damage, attack);
send = true;
if (attacker.Owner.Spells.ContainsKey(11230) && !attacked.Dead)
{
var s = attacker.Owner.Spells[11230];
var spellz = Database.SpellTable.SpellInformations[s.ID][s.Level];
if (spellz != null)
{
if (Kernel.Rate(spellz.Percent))
{
SpellUse ssuse = new SpellUse(true);
ssuse.Attacker = attacker.UID;
ssuse.SpellID = spellz.ID;
ssuse.SpellLevel = spellz.Level;
damage = (uint)(damage * Program.SuperTwoFold);
ssuse.AddTarget(attacked.UID, new SpellUse.DamageClass().Damage = damage, attack);
ReceiveAttack(attacker, attacked, attack, damage, spellz);
attacker.Owner.SendScreen(ssuse, true);
}
}
}
}
}
else
{
if (CanAttack(attacker, attackedsob, spell))
{
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = Calculate.Melee(attacker, attackedsob, ref attack);
damage = (uint)(damage * 100 / 60);
ReceiveAttack(attacker, attackedsob, attack, damage, spell);
suse.Effect1 = attack.Effect1;
suse.AddTarget(attackedsob.UID, damage, attack);
send = true;
}
}
if (send)
attacker.Owner.SendScreen(suse, true);
attacker.SpellStamp = Time64.Now;
}
else
{
attacker.AttackPacket = null;
}
}
break;
}
#endregion`
ese es el codigo de la habilidad las personas mas experimentadas podrian decirme donde se estaria manejando la stamina ? o de otra opcion agregarle al codigo asi tal cual esta agregarle que para usarla habria que tener stamina mayor o igual a 20. desde ya muchas gracias es el unico foro que queda de privados.