عرض مشاركة واحدة
احصائياتى

الردود
1

المشاهدات
45
تفاعلات العضو
 
QR تعريفي
QR Code
Muhammad

Muhammad is on a distinguished road

    غير متواجد

المشاركات
79

+التقييم
0.03

تاريخ التسجيل
May 2019

الاقامة

نظام التشغيل

رقم العضوية
158
2026-05-22, 01:38 PM
المشاركة 1 
#1  
افتراضي تصليح اسكل ال CliffCrusher لشخصية Dune Wonder
بسم الله الرحمن الرحيم

نبدأ علي طول من غير مقدمات ورغي كتير دي اسكل ال CliffCrusher للشخصية الجديدة في السورس اللي نزلته


دور علي


كود:
case (ushort)Role.Flags.SpellIDDune.CliffCrusher:

عيرها بده



كود:
case (ushort)Role.Flags.SpellIDDune.CliffCrusher: { MsgSpellAnimation MsgSpell = new MsgSpellAnimation(user.Player.UID , 0, Attack.X, Attack.Y, ClientSpell.ID , ClientSpell.Level, ClientSpell.UseSpellSoul); Algoritms.InLineAlgorithm Line = new Algoritms.InLineAlgorithm(user.Player.X, Attack.X, user.Player.Y, Attack.Y, user.Map, DBSpell.Range, 0, ClientSpell.ID); int width = 3; uint Experience = 0; foreach (Role.IMapObj target in user.Player.View.Roles(Role.MapObjectType.Monster)) { if (Line.InLine(target.X, target.Y, width)) { MsgMonster.MonsterRole attacked = target as MsgMonster.MonsterRole; if (CheckAttack.CanAttackMonster.Verified(user, attacked, DBSpell)) { MsgSpellAnimation.SpellObj AnimationObj; Calculate.Physical.OnMonster(user.Player, attacked, DBSpell, out AnimationObj); Experience += ReceiveAttack.Monster.Execute(stream, AnimationObj, user, attacked); MsgSpell.Targets.Enqueue(AnimationObj); } } } foreach (Role.IMapObj targer in user.Player.View.Roles(Role.MapObjectType.Player)) { if (Line.InLine(targer.X, targer.Y, 0)) { var attacked = targer as Role.Player; if (CheckAttack.CanAttackPlayer.Verified(user, attacked, DBSpell, true, Attack)) { MsgSpellAnimation.SpellObj AnimationObj; Calculate.Physical.OnPlayer(user.Player, attacked, DBSpell, out AnimationObj); ReceiveAttack.Player.Execute(AnimationObj, user, attacked); MsgSpell.Targets.Enqueue(AnimationObj); } } else if (Line.InLine(targer.X, targer.Y, width)) { var attacked = targer as Role.Player; if (CheckAttack.CanAttackPlayer.Verified(user, attacked, DBSpell, true, Attack)) { MsgSpellAnimation.SpellObj AnimationObj; Calculate.Physical.OnPlayer(user.Player, attacked, DBSpell, out AnimationObj, false, 1); ReceiveAttack.Player.Execute(AnimationObj, user, attacked); MsgSpell.Targets.Enqueue(AnimationObj); } } } foreach (Role.IMapObj targer in user.Player.View.Roles(Role.MapObjectType.SobNpc)) { if (Line.InLine(targer.X, targer.Y, width)) { var attacked = targer as Role.SobNpc; if (CheckAttack.CanAttackNpc.Verified(user, attacked, DBSpell)) { MsgSpellAnimation.SpellObj AnimationObj; Calculate.Physical.OnNpcs(user.Player, attacked, DBSpell, out AnimationObj); Experience += ReceiveAttack.Npc.Execute(stream, AnimationObj, user, attacked); MsgSpell.Targets.Enqueue(AnimationObj); } } } MsgSpell.SetStream(stream); MsgSpell.Send(user); if (!user.Player.FloorSpells.ContainsKey(ClientSpell.ID)) { user.Player.FloorSpells.TryAdd(ClientSpell.ID, new FloorSpell.ClientFloorSpells(user.Player.UID, user.Player.X, user.Player.Y, ClientSpell.SoulLevel, DBSpell, user.Map)); } var FloorItem = new FloorSpell(MsgItemPacket.CliffCrusher, Attack.X, Attack.Y, 23, DBSpell, 2000, 1000); FloorItem.FloorPacket.m_X = Attack.X; FloorItem.FloorPacket.m_Y = Attack.Y; FloorItem.FloorPacket.OwnerX = user.Player.X; FloorItem.FloorPacket.OwnerY = user.Player.Y; FloorItem.FloorPacket.GuildID = user.Player.GuildID; FloorItem.FloorPacket.ItemOwnerUID = user.Player.UID; FloorItem.FloorPacket.m_Color = 14; FloorItem.FloorPacket.FlowerType = 31; FloorItem.FloorPacket.Name = "STR_TRAP_ID_@@" + (uint)FloorItem.FloorPacket.m_ID; user.Player.FloorSpells[ClientSpell.ID].AddItem(FloorItem); user.Player.View.SendView(stream.ItemPacketCreate(FloorItem.FloorPacket), true); break; }


خش في PoolProcesses

تحت ال case (ushort)Role.Flags.SpellIDDune.FinalStand:



كود:
case (ushort)Role.Flags.SpellIDDune.CliffCrusher: { var spellclient = ID.Value; Queue<Role.FloorSpell> RemoveSpells = new Queue<Role.FloorSpell>(); using (var rec = new ServerSockets.RecycledPacket()) { var stream = rec.GetStream(); var spells = spellclient.Spells.ToArray(); foreach (var spell in spells) { if (spellclient.CheckInvocke(Now, spell)) { uint Experience = 0; RemoveSpells.Enqueue(spell); //if (Attack) spellclient.X = spell.FloorPacket.m_X; spellclient.Y = spell.FloorPacket.m_Y; spellclient.CreateMsgSpell(0); spellclient.SpellPacket.bomb = 1; foreach (var obj in client.Player.View.Roles(Role.MapObjectType.Monster)) { var monster = obj as Game.MsgMonster.MonsterRole; if (Role.Core.GetDistance(obj.X, obj.Y, spell.FloorPacket.m_X, spell.FloorPacket.m_Y) <= 3) { if (Game.MsgServer.AttackHandler.CheckAttack.CanAttackMonster.Verified(client, monster, spell.DBSkill)) { Game.MsgServer.MsgSpellAnimation.SpellObj AnimationObj; Game.MsgServer.AttackHandler.Calculate.Physical.OnMonster(client.Player, monster, spell.DBSkill, out AnimationObj); Experience += Game.MsgServer.AttackHandler.ReceiveAttack.Monster.Execute(stream, AnimationObj, client, monster); spellclient.SpellPacket.Targets.Enqueue(AnimationObj); } } } foreach (var obj in client.Player.View.Roles(Role.MapObjectType.Player)) { var target = obj as Role.Player; if (Role.Core.GetDistance(obj.X, obj.Y, spell.FloorPacket.m_X, spell.FloorPacket.m_Y) <= 3) { if (Game.MsgServer.AttackHandler.CheckAttack.CanAttackPlayer.Verified(client, target, spell.DBSkill)) { Game.MsgServer.MsgSpellAnimation.SpellObj AnimationObj; Game.MsgServer.AttackHandler.Calculate.Physical.OnPlayer(client.Player, target, spell.DBSkill, out AnimationObj); Game.MsgServer.AttackHandler.ReceiveAttack.Player.Execute(AnimationObj, client, target); spellclient.SpellPacket.Targets.Enqueue(AnimationObj); } } } foreach (var obj in client.Player.View.Roles(Role.MapObjectType.SobNpc)) { var target = obj as Role.SobNpc; if (Role.Core.GetDistance(obj.X, obj.Y, spell.FloorPacket.m_X, spell.FloorPacket.m_Y) <= 3) { if (Game.MsgServer.AttackHandler.CheckAttack.CanAttackNpc.Verified(client, target, spell.DBSkill)) { Game.MsgServer.MsgSpellAnimation.SpellObj AnimationObj; Game.MsgServer.AttackHandler.Calculate.Physical.OnNpcs(client.Player, target, spell.DBSkill, out AnimationObj); Experience += Game.MsgServer.AttackHandler.ReceiveAttack.Npc.Execute(stream, AnimationObj, client, target); AnimationObj.Hit = 1; spellclient.SpellPacket.Targets.Enqueue(AnimationObj); } } } spellclient.SendView(stream, client); Game.MsgServer.AttackHandler.Updates.IncreaseExperience.Up(stream, client, Experience); spell.FloorPacket.DropType = Game.MsgFloorItem.MsgDropID.RemoveEffect; foreach (var user in spellclient.GMap.View.Roles(Role.MapObjectType.Player, spellclient.X, spellclient.Y, p => Role.Core.GetDistance(p.X, p.Y, spellclient.X, spellclient.Y) <= 18)) user.Send(stream.ItemPacketCreate(spell.FloorPacket)); } } } while (RemoveSpells.Count > 0) spellclient.RemoveItem(RemoveSpells.Dequeue()); if (spellclient.Spells.Count == 0) { Role.FloorSpell.ClientFloorSpells FloorSpell; client.Player.FloorSpells.TryRemove(spellclient.DBSkill.ID, out FloorSpell); } break; }

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



صورة


عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع