المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : حـل مشكـلة


Hassan Emprator
2019-08-19, 09:21 PM
عندي في مشكله في ضربت الاساسيه بتاعت السلاح نفسه في الخشبه يعني اي شخصيه تقدر تضرب في الخشبه عادي لاكن الضربه
الاساسيه بتاعت السلاح نفسه في الخشبه مش بتتضرب اصلا اسكلات بتتضرب اه لاكن ضرب عادي بي السلاح لا

Tefa
2019-08-19, 10:39 PM
رجاء التوضيح او ارفاق صور

Hassan Emprator
2019-08-19, 10:53 PM
رجاء التوضيح او ارفاق صور

تعرف ضربه السلاح نفسه بتاع الويند ولكر لما تيجي تضرب في الخشبه مش بتتضرب اصلا يعني هيا بتتخبط اه لاكن اكنها مش بتتضرب

Tefa
2019-08-19, 10:54 PM
ضربه الي هيه بتطلع نور و الكلام ده الي بكلك شمال

Hassan Emprator
2019-08-19, 10:56 PM
ضربه الي هيه بتطلع نور و الكلام ده الي بكلك شمال

يعم ضربه السلاح نفسه السلاح نفسه لما بتضرب في الخشبه او تكون انت حاطط خشب تضرب بي الخشبه بي الضربه الاساسيه الي هما بي ايدك تمام
تيجي تضرب بيهم مش بيبان انه اضرب وخلاص الضربه تظهر لاكن وله اكنو ضرب في البوله حاجه اصلا وله نقص منها

Tefa
2019-08-19, 11:23 PM
برجاء وضع صوره للتوضيح او فيديو

Hassan Emprator
2019-08-20, 10:45 AM
يحبيبي افهمني عارف ضربه السلاح نفسها تمام ؟ لما تضرب بي السلاح مش بي اسكله تمام كدا ؟ تضرب بقا في الخشبه الي تكون عاملها في التوام بي ضربه السلاح بتاعت الويند ولكر مش بتضرب اه لاكن تخبط فيه اه لاكن الخشبه مش تنضرب خالص وله ينقص دمها فهمتني .؟
الضربه بتظهر اه لاكن لما بتضربها مش بتنقص الخشبه وله اكنك ضربت وله بيظهر ارقام وكدا زي اي شخصيه

Tefa
2019-08-20, 04:59 PM
Handle.cs

سيرش
#region Stomper(Melee)
امسحه و حط ده مكانه
#region Stomper(Melee)
#region Anger-Horror-Peace~of~Stomper(Windwalker-Stomper-Passive)
var lastattacked = attacked;
var spell5 = Database.SpellTable.GetSpell(12980, attacker.Owner);
if (Kernel.Rate(spell5.Percent) && attacker.Owner.Spells.ContainsKey(12980) && attacker.IsStomper2())
{
#region AngerofStomper
{
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell5.ID;
suse.SpellLevel = spell5.Level;
suse.X = lastattacked.X;
suse.Y = lastattacked.Y;
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj == null)
continue;
attacked = _obj as Entity;
if (attacked == null) continue;
if (Kernel.GetDistance(attacked.X, attacked.Y, attacker.X, attacker.Y) <= spell5.Range)
{
if (_obj.MapObjType == MapObjectType.Entity)
{
if (!CanAttack(attacker, attacked, null, attack.AttackType == Attack.Melee)) continue;
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
suse.Effect1 = attack.Effect1;
attack.Damage = 0;
ReceiveAttack(attacker, attacked, attack, ref damage, spell5);
suse.AddTarget(attacked, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.Monster)
{
if (!CanAttack(attacker, attacked, null, attack.AttackType == Attack.Melee)) continue;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);

attack.Damage = 0;
ReceiveAttack(attacker, attacked, attack, ref damage, spell5);
suse.AddTarget(attacked, damage, attack);
}
}

}
attacker.AttackPacket = null;
attacker.Owner.SendScreen(suse, true);

}
#endregion
#region HorrorofStomper
{
var spell2 = Database.SpellTable.GetSpell(12990, attacker.Owner);
if (!attacker.Owner.Spells.ContainsKey(12990)) return;
attack.Damage = 0;
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell2.ID;
suse.SpellLevel = spell2.Level;
suse.X = lastattacked.X;
suse.Y = lastattacked.Y;
attacker.AttackPacket = null;
attacker.Owner.SendScreen(suse, true);
#region Flooritem
var map = Kernel.Maps[attacker.MapID];
Network.GamePackets.FloorItem flooritem = new Network.GamePackets.FloorItem(true);
flooritem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (map.Npcs.ContainsKey(flooritem.UID))
flooritem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
flooritem.ItemID = FloorItem.HorrorofStomper;
flooritem.X = lastattacked.X;
flooritem.Y = lastattacked.Y;
flooritem.Type = FloorItem.Effect;
flooritem.mColor = 14;
flooritem.OwnerUID = attacker.UID;
flooritem.OwnerGuildUID = attacker.GuildID;
flooritem.FlowerType = 3;
flooritem.Unknown37 = 1;
flooritem.X2 = attacker.X;
flooritem.Y2 = attacker.Y;
flooritem.Angle = attacker.Facing;
flooritem.MapID = map.ID;
flooritem.Attack = attack;
flooritem.OnFloor = Time32.Now;
flooritem.Owner = attacker.Owner;
map.AddFloorItem(flooritem);
attacker.Owner.SendScreenSpawn(flooritem, true);
#endregion
}
#endregion
#region PeaceofStomper
{
var spell3 = Database.SpellTable.GetSpell(13000, attacker.Owner);
if (!attacker.Owner.Spells.ContainsKey(13000)) return;
attack.Damage = 0;
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellLevel = spell3.Level;
suse.SpellID = spell3.ID;
suse.X = lastattacked.X;
suse.Y = lastattacked.Y;
attacker.AttackPacket = null;
attacker.Owner.SendScreen(suse, true);
#region Flooritem
var map = Kernel.Maps[attacker.MapID];
Network.GamePackets.FloorItem flooritem = new Network.GamePackets.FloorItem(true);
flooritem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (map.Npcs.ContainsKey(flooritem.UID))
flooritem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
flooritem.ItemID = FloorItem.PeaceofStomper;
flooritem.X = lastattacked.X;
flooritem.Y = lastattacked.Y;
flooritem.X2 = attacker.X;
flooritem.Y2 = attacker.Y;
flooritem.Type = FloorItem.Effect;
flooritem.mColor = 14;
flooritem.OwnerUID = attacker.UID;
flooritem.OwnerGuildUID = attacker.GuildID;
flooritem.FlowerType = 3;
flooritem.Unknown37 = 1;
flooritem.MapID = map.ID;
flooritem.Attack = attack;
flooritem.OnFloor = Time32.Now;
flooritem.Owner = attacker.Owner;
map.AddFloorItem(flooritem);
attacker.Owner.SendScreenSpawn(flooritem, true);
#endregion
}
#endregion
return;
}
#endregion
else if (attacker.Class >= 160&&attacker.Class <= 165)
{
#region Sector-Circle-Rectangle(Windwalker-Stomper-Melee)
if (attack.SpellID == 13040 || attack.SpellID == 13050 || attack.SpellID == 13060)
{
#region Sector
if (attack.SpellID == 13040)
{
var spell = Database.SpellTable.GetSpell(13040, attacker.Owner);
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = attack.SpellID;
suse.X = attacker.X;
suse.Y = attacker.Y;
var angle = Kernel.GetAngle(attacker.X, attacker.Y, attacked.X, attacked.Y);
Map.UpdateCoordonatesForAngle(ref X, ref Y, angle);
Fan sector = new Fan(attacker.X, attacker.Y, X, Y, spell.Range, spell.Sector);
if (Kernel.GetDistance(attacker.X, attacker.Y, X, Y) <= 7)
{
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj.MapObjType == MapObjectType.Entity || _obj.MapObjType == MapObjectType.Monster)
{
if (_obj == null)
continue;
attacked = _obj as Entity;
if (attacked == null) continue;
if (CanAttack(attacker, attacked, null, attack.AttackType == Attack.Melee))
{
if (sector.IsInFan(attacked.X, attacked.Y))
{
if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
{
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, spell, ref attack);
damage = (uint)(damage * 0.2);
attack.Damage = 0;
suse.Effect1 = attack.Effect1;
ReceiveAttack(attacker, attacked, attack, ref damage, spell);
suse.AddTarget(attacked, damage, attack);
}
}
}
}
}
}
}
#endregion
#region Circle
if (attack.SpellID == 13050)
{
var spell = Database.SpellTable.GetSpell(13050, attacker.Owner);
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = attack.SpellID;
suse.X = attacker.X;
suse.Y = attacker.Y;
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj.MapObjType == MapObjectType.Entity || _obj.MapObjType == MapObjectType.Monster)
{
if (_obj == null)
continue;
attacked = _obj as Entity;
if (attacked == null) continue;
if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
{
if (Kernel.GetDistance(attacked.X, attacked.Y, attacker.X, attacker.Y) > 5) continue;
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
damage = (uint)(damage * 0.4);
attack.Damage = 0;
ReceiveAttack(attacker, attacked, attack, ref damage, spell);
suse.AddTarget(attacked, damage, attack);
}
}
}
attacker.Owner.SendScreen(suse, true);
return;
}
#endregion
#region Rectangle
if (attack.SpellID == 13060)
{
var spell = Database.SpellTable.GetSpell(13060, attacker.Owner);
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = attack.SpellID;
suse.X = attacker.X;
suse.Y = attacker.Y;
var angle = Kernel.GetAngle(attacker.X, attacker.Y, attacked.X, attacked.Y);
Map.UpdateCoordonatesForAngle(ref X, ref Y, angle);
Fan sector = new Fan(attacker.X, attacker.Y, X, Y, spell.Range, spell.Sector);
uint damage2 = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
{
ReceiveAttack(attacker, attacked, attack, ref damage2, spell);
suse.AddTarget(attacked, damage2, attack);
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj.MapObjType == MapObjectType.Entity || _obj.MapObjType == MapObjectType.Monster)
{
if (_obj == null)
continue;
attacked = _obj as Entity;
if (attacked == null) continue;

if (sector.IsInFan(attacked.X, attacked.Y))
{
if (Kernel.GetDistance(attacked.X, attacked.Y, attacker.X, attacker.Y) > 7) continue;
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
damage = (uint)(damage * 0.2);
attack.Damage = 0;
ReceiveAttack(attacker, attacked, attack, ref damage, spell);
suse.AddTarget(attacked, damage, attack);
}
}
}
}
attacker.Owner.SendScreen(suse, true);
return;
}
#endregion
}
#endregion

}
#endregion