احصائياتى

الردود
7

المشاهدات
1363
 
Commander
.::عضو جديد ::.

    غير متواجد

المشاركات
119

+التقييم
0.04

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

الاقامة

نظام التشغيل

رقم العضوية
407
2019-08-21, 01:07 AM
المشاركة 1
2019-08-21, 01:07 AM
المشاركة 1
افتراضي مشكلة اسكلة thumdercloud في سورس Fighter
بسم الله الرحمن الرحيم
الموضوع معمول بناءا علي طلب العضو ابو مروان والمشكلة هي ان الاسكله بتضرب في اللاعب حتي لو قافل البكي
نخش علي كلاس World وبحث عن

كود:
 void ThunderCloudTimer 

هنبدل الفويد كلو بدا

كود:
 public static void ThunderCloudTimer(Entity ThunderCloud, int time)
        {
            if (
ThunderCloud == null) return;
            if (!
Kernel.Maps.ContainsKey(ThunderCloud.MapID))
            {
                
Kernel.Maps[ThunderCloud.MapID].RemoveEntity(ThunderCloud);
                
Data data = new Data(true);
                
data.UID = ThunderCloud.UID;
                
data.ID = Data.RemoveEntity;
                
ThunderCloud.MonsterInfo.SendScreen(data);
                
ThunderCloud.MonsterInfo.SendScreen(data);
                foreach (var 
client in Kernel.GamePool.Values)
                {
                    if (
Kernel.GetDistance(ThunderCloud.X, ThunderCloud.Y, client.Player.X, client.Player.Y) > 16) continue;
                    
client.RemoveScreenSpawn(ThunderCloud, true);
                }
                return;
            }
            if (
Time32.Now >= ThunderCloud.ThunderCloudStamp.AddSeconds(1))
            {
                
ThunderCloud.ThunderCloudStamp = Time32.Now;
                if (
ThunderCloud.Hitpoints > 400)
                    
ThunderCloud.Hitpoints -= 400;
                else
                {
                    
Kernel.Maps[ThunderCloud.MapID].RemoveEntity(ThunderCloud);
                    
Data data = new Data(true);
                    
data.UID = ThunderCloud.UID;
                    
data.ID = Data.RemoveEntity;
                    
ThunderCloud.MonsterInfo.SendScreen(data);
                    
ThunderCloud.MonsterInfo.SendScreen(data);
                    foreach (var 
client in Kernel.GamePool.Values)
                    {
                        if (
Kernel.GetDistance(ThunderCloud.X, ThunderCloud.Y, client.Player.X, client.Player.Y) > 16) continue;
                        
client.RemoveScreenSpawn(ThunderCloud, true);
                    }
                    return;
                }
            }
            if ((
ThunderCloud.SpawnPacket[50] == 0 && Time32.Now >= ThunderCloud.MonsterInfo.LastMove.AddMilliseconds(750)) || ThunderCloud.SpawnPacket[50] == 128)
            {
                
ThunderCloud.MonsterInfo.LastMove = Time32.Now;
                if (
ThunderCloud.MonsterInfo.InSight == 0)
                {
                    foreach (var 
one in Kernel.Maps[ThunderCloud.MapID].Entities.Values.Where(i => Kernel.GetDistance(ThunderCloud.X, ThunderCloud.Y, i.X, i.Y) <= ThunderCloud.MonsterInfo.AttackRange))
                    {
                        if (
one == null || one.Dead || one.MonsterInfo.Guard || one.Companion) continue;
                        
ThunderCloud.MonsterInfo.InSight = one.UID;
                        
Entity insight = null;
                        if (
Kernel.Maps[ThunderCloud.MapID].Entities.ContainsKey(ThunderCloud.MonsterInfo.InSight))
                            
insight = Kernel.Maps[ThunderCloud.MapID].Entities[ThunderCloud.MonsterInfo.InSight];
                        else if (
Kernel.GamePool.ContainsKey(ThunderCloud.MonsterInfo.InSight))
                            
insight = Kernel.GamePool[ThunderCloud.MonsterInfo.InSight].Player;
                        if (
insight == null || insight.Dead || (insight.MonsterInfo != null && insight.MonsterInfo.Guard))
                        {
                            
ThunderCloud.MonsterInfo.InSight = 0;
                            break;
                        }
                        new 
Game.Attacking.Handle(null, ThunderCloud, insight);
                        break;
                    }
                }
                else
                {
                    
Entity insight = null;
                    if (
Kernel.Maps[ThunderCloud.MapID].Entities.ContainsKey(ThunderCloud.MonsterInfo.InSight))
                        
insight = Kernel.Maps[ThunderCloud.MapID].Entities[ThunderCloud.MonsterInfo.InSight];
                    else if (
Kernel.GamePool.ContainsKey(ThunderCloud.MonsterInfo.InSight))
                        
insight = Kernel.GamePool[ThunderCloud.MonsterInfo.InSight].Player;
                    if (
insight == null || insight.Dead || (insight.MonsterInfo != null && insight.MonsterInfo.Guard))
                    {
                        
ThunderCloud.MonsterInfo.InSight = 0;
                        return;
                    }
                    new 
Game.Attacking.Handle(null, ThunderCloud, insight);
                }
            }

        } 

ونحط فوق الفويد الي احنا بدلناه دول

كود:
  public bool Register(Entity ThunderCloudd)
        {
            if (
ThunderCloudd.Owner.TimerSubscriptions == null)
            {
                
ThunderCloudd.Owner.TimerSyncRoot = new object();
                
ThunderCloudd.Owner.TimerSubscriptions = new IDisposable[]
                {
                    
ThunderCloud.Add(ThunderCloudd)
                };
                return 
true;
            }
            return 
false;
        }
        public 
void Unregister(Entity Thundercloud)
        {
            if (
Thundercloud.Owner == null || Thundercloud.Owner.TimerSubscriptions == null) return;
            
lock (Thundercloud.Owner.TimerSyncRoot)
            {
                if (
Thundercloud.Owner.TimerSubscriptions != null)
                {
                    foreach (var 
timer in Thundercloud.Owner.TimerSubscriptions)
                        
timer.Dispose();
                    
Thundercloud.Owner.TimerSubscriptions = null;
                }
            }
        } 

بعد كدا نروح كلاس handle ونبحث عن

كود:
 case 12840: 

هنبدل الاسكلة بده

كود:
#region ThunderCloud
                                
case 12840:
                                    {
                                        if (
CanUseSpell(spell, attacker.Owner))
                                        {
                                            
PrepareSpell(spell, attacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker = attacker.UID;
                                            
suse.X = X;
                                            
suse.Y = Y;
                                            
suse.SpellID = spell.ID;
                                            
attacker.Owner.SendScreen(suse, true);
                                            
//////////////////////////////////////////////////
                                            ///////////////////////////////////////////////////
                                            
uint UID = Kernel.Maps[attacker.MapID].EntityUIDCounter.Next;
                                            
uint Mesh = 980;
                                            
//////////////////////////////////////////////////////
                                            
byte[] Buffer = new byte[68 + 8];
                                            
Writer.Write(Buffer.Length - 8, 0, Buffer);
                                            
Writer.Write(2035, 2, Buffer);//Packet ID
                                            
Writer.Write(UID, 4, Buffer);//FlowerUID
                                            
Writer.Write(4264, 8, Buffer);
                                            
Buffer[12] = 3;
                                            
Writer.Write(Mesh, 16, Buffer);//FloorItemID
                                            
Buffer[24] = 14;//AttackRange
                                            
Writer.Write(X, 26, Buffer);
                                            
Writer.Write(Y, 28, Buffer);
                                            
Writer.Write("Thundercloud", 30, Buffer);
                                            
//////////////////////////////////////////////////
                                            ///////////////////////////////////////////////////
                                            //////////////////////////////////////////////////////
                                            
Entity ThunderCloud = new Entity(Game.EntityFlag.Monster, true);
                                            
ThunderCloud.Name = "Thundercloud";
                                            
ThunderCloud.Mesh = Mesh;
                                            
ThunderCloud.UID = UID;
                                            
ThunderCloud.GuildID = attacker.GuildID;
                                            
ThunderCloud.MaxHitpoints = attacker.MaxHitpoints;
                                            
ThunderCloud.Level = 140;
                                            
ThunderCloud.X = X;
                                            
ThunderCloud.Y = Y;
                                            
ThunderCloud.Facing = attacker.Facing;
                                            
ThunderCloud.Boss = 1;
                                            
ThunderCloud.MapID = attacker.MapID;
                                            
Writer.Write(3, 308, ThunderCloud.SpawnPacket);
                                            
Writer.Write(15, 272, ThunderCloud.SpawnPacket);
                                            
Writer.Write(3, 271, ThunderCloud.SpawnPacket);//AttackUser

                                            
ThunderCloud.CUID = attacker.UID;
                                            
ThunderCloud.Owner = new Client.GameState(null);
                                            
ThunderCloud.Owner.Player = ThunderCloud;
                                            
ThunderCloud.MonsterInfo = new MonsterInformation();
                                            
ThunderCloud.MonsterInfo.AttackType = 24;
                                            
ThunderCloud.MonsterInfo.AttackSpeed = 1000;
                                            
ThunderCloud.MonsterInfo.AttackRange = 14;
                                            
ThunderCloud.MonsterInfo.Boss = true;
                                            
ThunderCloud.MonsterInfo.BoundX = X;
                                            
ThunderCloud.Companion = true;
                                            
ThunderCloud.MonsterInfo.Guard = false;
                                            
ThunderCloud.MonsterInfo.BoundY = Y;
                                            
ThunderCloud.MonsterInfo.Defence = attacker.Defence;
                                            
ThunderCloud.MonsterInfo.Hitpoints = 10000;
                                            
ThunderCloud.MonsterInfo.Mesh = 980;
                                            
ThunderCloud.MonsterInfo.MoveSpeed = int.MaxValue;
                                            
ThunderCloud.MonsterInfo.Name = "Thundercloud";
                                            
ThunderCloud.MonsterInfo.Owner = attacker;
                                            
ThunderCloud.MonsterInfo.ViewRange = 14;
                                            
ThunderCloud.MonsterInfo.RespawnTime = 0;
                                            
ThunderCloud.MonsterInfo.RunSpeed = int.MaxValue;
                                            
ThunderCloud.MonsterInfo.SpellID = 13190;
                                            
ThunderCloud.Hitpoints = 10000;
                                            
Kernel.Maps[ThunderCloud.MapID].AddEntity(ThunderCloud);
                                            
//////////////////////////////////////////////////////////////
                                            //////////////////////////////////////////////////////////
                                            //////////////////////////////////////////////////////////
                                            /////////////////////////////////////////////
                                            
Network.GamePackets.Data d = new Data(true);
                                            
d.UID = UID;
                                            
d.ID = Data.AddEntity;
                                            
d.Facing = attacker.Facing;
                                            
d.X2 = ThunderCloud.X;
                                            
d.Y2 = ThunderCloud.Y;
                                            
///////////////////////////////////////////////
                                            ////////////////////////////////////////////
                                            /////////////////////////////////////////
                                            
attacker.Owner.SendScreen(Buffer, true);
                                            
attacker.Owner.SendScreen(ThunderCloud.SpawnPacket, true);
                                            
attacker.Owner.SendScreenSpawn(ThunderCloud, true);
                                            
attacker.Owner.SendScreen(d, true);
                                            
ThunderCloud.ThunderCloudStamp = Time32.Now;
                                            
Program.World.Register(ThunderCloud);
                                            
attacker.AttackPacket = null;
                                        }
                                        break;

                                    }
                                
#endregion 

هيجيلك ايرور في x2 و y2 حلهم جي في الاخر
في نفس الكلاس زي ما احنا ركزو بقي في الحته ده هنبحث عن

كود:
 if (attacker.MonsterInfo.SpellID == 0) 

هتنزل سطرين او تلاته وهتلاقي ريجون اسمو thundercloud امسحو وبعدين انزل شويه لحد سطر

كود:
 uint damage = Calculate.MonsterDamage(attacker, attacked, attacker.MonsterInfo.SpellID); 

حط تحته دا

كود:
#region ThunderCloud
                        
if (attacker.Name == "Thundercloud")
                        {
                            if (
Kernel.GamePool.ContainsKey(attacker.CUID))
                            {
                                var 
owner = Kernel.GamePool[attacker.CUID];
                                var 
spell = Database.SpellTable.GetSpell(12840, owner);
                                var 
spell2 = Database.SpellTable.GetSpell(12970, owner);
                                
uint damage2 = (uint)(Calculate.Melee(owner.Player, attacked, ref attack, 0) * (spell.Level < 8 ? spell.FirstDamage : 50) / 100);
                                if (
attacker.SpawnPacket[50] == 128)
                                    
damage2 = (uint)(damage2 * spell2.FirstDamage);
                                
SpellUse suse2 = new SpellUse(true);
                                
suse2.Attacker = attacker.UID;
                                
suse2.Attacker1 = attacked.UID;
                                
suse2.SpellID = 13190;
                                
suse2.X = attacked.X;
                                
suse2.Y = attacked.Y;
                                
suse2.AddTarget(attacked, damage2, attack);
                                
attacker.MonsterInfo.SendScreen(suse2);
                                if (
attacked.Hitpoints <= damage2)
                                {
                                    
attacked.Die(attacker);
                                    
attack = new Attack(true);
                                    
attack.Attacker = attacker.UID;
                                    
attack.Attacked = attacked.UID;
                                    
attack.AttackType = Network.GamePackets.Attack.Kill;
                                    
attack.X = attacked.X;
                                    
attack.Y = attacked.Y;
                                    
attack.Damage = 1;
                                    
attack.ResponseDamage = damage2;
                                    
attacker.MonsterInfo.SendScreen(attack);
                                }
                                else
                                {
                                    
attacked.Hitpoints -= damage2;
                                }
                                return;
                            }
                            else
                                return;
                        }
                        
#endregion 

هيتبقالك ايرور x2 و y2 روح class data ابحث عن

كود:
 public ushort Thundercloud 

ضيف تحتها

كود:
   public ushort X2
        
{
            
get
            
{
                return 
BitConverter.ToUInt16(Buffer, 28);
            }
            
set
            
{
                
Writer.Write(value, 28, Buffer);
            }
        }
        public 
ushort Y2
        
{
            
get
            
{
                return 
BitConverter.ToUInt16(Buffer, 30);
            }
            
set
            
{
                
Writer.Write(value, 30, Buffer);
            }
        } 

بس كدا المشكلة اتحلت والسلام عليكم ورحمة الله وبركاته


قديم 2019-08-21, 01:10 AM
المشاركة 2
LyokaWarior
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: مشكلة اسكلة thumdercloud في سورس Fighter
عــأأش يبنــ عمــي تقــيم 4 نجــووم

قديم 2019-08-21, 01:24 AM
المشاركة 3
Hassan Emprator
.:: مشرف قسم المشاكل ::.
  • غير متواجد
افتراضي رد: مشكلة اسكلة thumdercloud في سورس Fighter
عاش يحبي ولله تسلم ايدك تقيم برضو هاههاه

قديم 2019-08-21, 01:53 AM
المشاركة 4
Commander
.::عضو جديد ::.
  • غير متواجد
افتراضي رد: مشكلة اسكلة thumdercloud في سورس Fighter
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
عــأأش يبنــ عمــي تقــيم 4 نجــووم
تسلم يحب

عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
عاش يحبي ولله تسلم ايدك تقيم برضو هاههاه
حبيبي

قديم 2019-08-21, 03:12 PM
المشاركة 5
ALz3em
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: مشكلة اسكلة thumdercloud في سورس Fighter
عفواً لايمكن عرض الرابط إلا بعد الرد على الموضوع
تسلم يحب


حبيبي
طيب في مشكلة في الويند ولكر لو فتح بي كل في التون بيضرب اى حد واسمو يزرق ويسود لو قتل كتير ايه الحل

قديم 2019-08-21, 10:44 PM
المشاركة 6
ابو مروان
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: مشكلة اسكلة thumdercloud في سورس Fighter
تسلم يا غالى مجهود رائع جارى التجربه والكلمه الاخيرة بعد التجربه :]

قديم 2019-08-21, 11:07 PM
المشاركة 7
ابو مروان
.:: عضو مميز ::.
  • غير متواجد
افتراضي رد: مشكلة اسكلة thumdercloud في سورس Fighter
تمام عاش بجد بس الاضافه فيها مشكله بسيطه
دالوقت لم بفتح ال pk اللسكله مش بتضرب حد ولا حتى اسم الشخصيه بيزرق ودى صورة

ودى صور للاضافه الى انا ضيفتها زى ما انت قولت




واللسكله بتضرب فى الفراخ ب 1
والف شكر على محاولت مساعدتك

قديم 2019-09-23, 01:28 AM
المشاركة 8
انت عمري
.:: عضو نشيط ::.
  • غير متواجد
افتراضي رد: مشكلة اسكلة thumdercloud في سورس Fighter
عايز سورس نضيف من غير مشاكل


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



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

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

المواضيع المتشابهه للموضوع: مشكلة اسكلة thumdercloud في سورس Fighter
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
سورس fighter بعد التعديل :] محمودمحمدسالم سورسات كونكر 69 2021-01-14 02:15 AM
مشكلة في اسكلة ThunedCloud Mostafa Shalby مشكلات السيرفيرات كونكر الشخصيه 2 2019-11-01 12:42 AM
مشكلة فى اسكلة TwilightDance ViORX مشكلات السيرفيرات كونكر الشخصيه 4 2019-09-27 02:44 PM
مشكلة فى ســوورس Fighter MeGoo مشكلات السيرفيرات كونكر الشخصيه 6 2019-08-22 10:29 AM
مشكلة في اسكلة SuperTwofoldBlade ElSaher مشكلات السيرفيرات كونكر الشخصيه 4 2019-08-04 12:34 PM


الساعة الآن 02:20 PM