احصائياتى

الردود
0

المشاهدات
27
 
Hazem
.:: المدير العام::.

    غير متواجد

المشاركات
2,311

+التقييم
0.84

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

الاقامة
Egypt

نظام التشغيل
windows 7

رقم العضوية
1
2021-08-16, 12:34 PM
المشاركة 1
2021-08-16, 12:34 PM
المشاركة 1
افتراضي Twilight Dance - EpicNinja Skill 100% TQ


بسم الله الرحمن الرحيم ,

الموضوع بأين من العنوان علشان مناخدش وقت كتير فى الشرح ,

فـ Handle.cs تحت اى فويد هنضيف دي


كود:
private void TwilightAction(Entity attacker, SpellUse suse, SpellInformation spell, ushort X, ushort Y)
        {
            
byte dist = 18;
            var 
map = attacker.Owner.Map;

            var 
algo = new InLineAlgorithm(attacker.X, X, attacker.Y, Y, dist);

            var 
count = (double)algo.lcoords.Count / 3;
            
int i = 1;
            
Program.World.DelayedTask.StartDelayedTask(() =>
            {
                var 
selected = i * (int)count;
                
selected = Math.Min(algo.lcoords.Count - 1, selected);
                
X = (ushort)algo.lcoords[selected].X;
                
Y = (ushort)algo.lcoords[selected].Y;


                
FloorItem floorItem = new FloorItem(true);
                
floorItem.ItemID = FloorItem.Twilight;
                
floorItem.ItemColor = (Enums.Color)(i + 1);
                
floorItem.MapID = attacker.MapID;
                
floorItem.Type = FloorItem.Effect;
                
floorItem.X = X;
                
floorItem.Y = Y;
                
floorItem.OnFloor = Time32.Now;
                
floorItem.Owner = attacker.Owner;
                while (
map.Npcs.ContainsKey(floorItem.UID))
                    
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                
map.AddFloorItem(floorItem);

                
attacker.Owner.SendScreenSpawn(floorItem, true);

                if (
i != 0)
                {
                    
Data data = new Network.GamePackets.Data(true);
                    
data.UID = attacker.UID;
                    
data.X = X;
                    
data.Y = Y;
                    
data.ID = 434;
                    
data.wParam1 = attacker.X;
                    
data.wParam2 = attacker.Y;
                    
attacker.Owner.SendScreen(data, true);

                    
//double percent = 1;
                    //switch (i)
                    //{
                    //    case 1:
                    //        percent = 0.92;
                    //        break;
                    //    case 2:
                    //        percent = 1.02;
                    //        break;
                    //    case 3:
                    //        percent = 1.2;
                    //        break;
                    //}


                    
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                    {
                        
bool hit = false;
                        var 
selected2 = Math.Max(0, i - 1) * (int)count;
                        
selected2 = Math.Min(algo.lcoords.Count - 1, selected2);
                        if (
Kernel.GetDistance(_obj.X, _obj.Y, (ushort)algo.lcoords[selected].X, (ushort)algo.lcoords[selected].Y) <= spell.Range)
                            
hit = true;
                        
//for (int j = selected2; j < selected; j++)
                        //    if (Kernel.GetDistance(_obj.X, _obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= spell.Range)
                        //        hit = true;
                        
if (hit)
                        {
                            if (
_obj.MapObjType == MapObjectType.Monster)
                            {
                                
attacked = _obj as Entity;
                                if (
CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
                                {
                                    var 
damage = Game.Attacking.Calculate.Melee(attacker, attacked, spell, ref attack);
                                    
ReceiveAttack(attacker, attacked, attack, ref damage, spell);

                                    
suse.AddTarget(attacked, damage, attack);
                                }
                            }
                            else if (
_obj.MapObjType == MapObjectType.Player)
                            {
                                
attacked = _obj as Entity;
                                if (
CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
                                {
                                    var 
damage = Game.Attacking.Calculate.Melee(attacker, attacked, spell, ref attack);
                                    
damage = (uint)(damage * 0.5);
                                    
//damage = (uint)((double)(damage * percent));
                                    
ReceiveAttack(attacker, attacked, attack, ref damage, spell);

                                    
suse.AddTarget(attacked, damage, attack);
                                }
                            }
                            else if (
_obj.MapObjType == MapObjectType.SobNpc)
                            {
                                var 
attackedsob = _obj as SobNpcSpawn;
                                if (
CanAttack(attacker, attackedsob, spell))
                                {
                                    var 
damage = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);

                                    
ReceiveAttack(attacker, attackedsob, attack, damage, spell);

                                    
suse.AddTarget(attackedsob, damage, attack);
                                }
                            }
                        }
                    }
                    if (
suse.Targets.Count > 0)
                        
attacker.Owner.SendScreen(suse, true);
                    
suse.Targets.Clear();
                }
                
i++;
            }, 
0, 2, 500);
        } 

هنبحث عن

كود:
#region TwilightDance 

وهنقفلها من السالب ونبدلها بدى

كود:
#region TwilightDance
                                
case 12070:
                                    {
                                        if (
CanUseSpell(spell, attacker.Owner))
                                        {
                                            
PrepareSpell(spell, attacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker = attacker.UID;
                                            
suse.Attacker1 = attacker.UID;
                                            
suse.SpellID = spell.ID;
                                            
suse.SpellLevel = spell.Level;

                                            
TwilightAction(attacker, suse, spell, X, Y);

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

                                        }
                                        break;
                                    }
                                
#endregion 

هنبحث عن

كود:
public enum SkillIDs : ushort 

وبعد اول قوس نضيف دى تحتيه ,

كود:
TwilightDance = 12070, 

فـ FloorItem

هنضيف دي

كود:
Twilight = 40, 

هتخش Screen.cs

هتبحث عن

كود:
private static void itemsCallback 

هتنزل تحت شوية لحد ماتلاقى

كود:
 if (item.ItemID == FloorItem.DaggerStorm || item.ItemID == FloorItem.Furyof 

فوقيها على طول هنضيف دى

كود:
                            if (item.ItemID == FloorItem.Twilight)
                            {
                                if (
item.OnFloor.AddMilliseconds(500).Next(time: time))
                                {
                                    
item.Type = Network.GamePackets.FloorItem.RemoveEffect;
                                    
//client.SendScreen(item, true);
                                    
client.Map.RemoveFloorItem(item);
                                    
client.RemoveScreenSpawn(item, true);
                                }
                            } 

ملحوظة الاضافات ممكن تلاقى في منها حاجات عندك انا منزلها كاملة علشان الى مش عندو خالص ,
لمشاهدة الفديو عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع




العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

الانتقال السريع

المواضيع المتشابهه للموضوع: Twilight Dance - EpicNinja Skill 100% TQ
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
مشكلة في skill للويند واكر Royal-Co مشكلات السيرفيرات كونكر الشخصيه 5 2020-05-09 04:56 AM
Trojan Skill xHazem مشكلات السيرفيرات كونكر الشخصيه 3 2020-05-03 09:09 PM
سيستم الاسكلات التلقائيه Auto Skill And Promotion Mero تطوير سيرفرات كونكر 3 2019-10-23 02:38 PM
مشكله في Team Pk وي Skill Team Pk Amr Khalid مشكلات السيرفيرات كونكر الشخصيه 5 2019-09-21 09:02 AM


الساعة الآن 10:14 PM