كونكر عرب

كونكر عرب (https://conquer-arab.com/index.php)
-   مشكلات السيرفيرات كونكر الشخصيه (https://conquer-arab.com/forumdisplay.php?f=12)
-   -   ضربة القرصان (https://conquer-arab.com/showthread.php?t=2547)

ViORX 2019-09-29 12:54 PM

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

Rider 2019-09-30 07:09 AM

رد: ضربة القرصان
 
قرصان ف ضربه دي بيضربه ضربه واحده ولا اكتر من ضربه

ViORX 2019-10-01 02:05 AM

رد: ضربة القرصان
 
اقتباس:

المشاركة الأصلية كتبت بواسطة rider (المشاركة 18486)
قرصان ف ضربه دي بيضربه ضربه واحده ولا اكتر من ضربه

هى مجرد لمسة من القرصان من غير اسكلة يعد ارقام سريعة وقوية بيموت اى حد 1 هت

ElSaher 2019-10-01 02:27 AM

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

لو طلبت اي حاجا مش هدهالك وانا غلطان اصلن اني بساعد ناس بي الاشكال دي

ElSaher 2019-10-01 02:29 AM

رد: ضربة القرصان
 
انا لازم ادهولك لازم لان المنتدا دا للمساعده خود اهي

هتبحق في السورس في Handle-Cs عن

#region PirateSpells
هتقفله بي السالب
وهتمسحه وهتضيف دا بداله في التعليق التاني

ElSaher 2019-10-01 02:30 AM

رد: ضربة القرصان
 
كود PHP:

                                #region PirateSpells

                                #region GaleBomb
                                
case 11070:
                                    if (
CanUseSpell(spell, attacker.Owner))
                                    {

                                        
PrepareSpell(spell, attacker.Owner);
                                        
Map map;
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker = attacker.UID;
                                        
suse.SpellID = spell.ID;
                                        
suse.SpellLevel = spell.Level;
                                        
suse.X = X;
                                        
suse.Y = Y;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
MessiProject.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                        
int num = 0;

                                        switch (
spell.Level)
                                        {
                                            case 
0:
                                            case 
1:
                                                
num = 3;
                                                break;
                                            case 
2:
                                            case 
3:
                                                
num = 4;
                                                break;
                                            default:
                                                
num = 5;
                                                break;
                                        }
                                        
int i = 0;
                                        
Kernel.Maps.TryGetValue(attacker.Owner.Map.BaseID, out map);
                                        foreach (var 
t in attacker.Owner.Screen.Objects)
                                        {
                                            if (
t == null)
                                                continue;
                                            if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                            {
                                                var 
target = t as Entity;
                                                if (
Kernel.GetDistance(X, Y, target.X, target.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attacker, target, spell, false))
                                                    {
                                                        
tar.Damage = Calculate.Ranged(attacker, target, spell, ref attack);
                                                        
tar.Hit = true;
                                                        
tar.newX = target.X;
                                                        
tar.newY = target.Y;
                                                        
Map.Pushback(ref tar.newX, ref tar.newY, attacker.Facing, 5);

                                                        if (
map != null)
                                                        {
                                                            if (
map.Floor[tar.newX, tar.newY, MapObjectType.Entity, attacker])
                                                            {
                                                                
target.X = tar.newX;
                                                                
target.Y = tar.newY;
                                                            }
                                                            else
                                                            {
                                                                
tar.newX = target.X;
                                                                
tar.newY = target.Y;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if (
attacker.Owner.Map.Floor[tar.newX, tar.newY, MapObjectType.Entity, attacker])
                                                            {
                                                                
target.X = tar.newX;
                                                                
target.Y = tar.newY;
                                                            }
                                                            else
                                                            {
                                                                
target.X = tar.newX;
                                                                
target.Y = tar.newY;
                                                            }
                                                        }
                                                        
suse.AddTarget(target, tar, attack);
                                                        
ReceiveAttack(attacker, target, attack, ref tar.Damage, spell);

                                                        
i++;
                                                        if (
i > num) break;
                                                    }
                                                }
                                            }
                                        }

                                        if (
attacker.EntityFlag == EntityFlag.Entity)
                                            
attacker.Owner.SendScreen(suse, true);
                                    }
                                    break;
                                
#endregion

                                #region BladeTempest
                                
case 11110:
                                    {
                                        if (
CanUseSpell(spell, attacker.Owner))
                                        {
                                            
PrepareSpell(spell, attacker.Owner);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker = attacker.UID;
                                            
suse.SpellID = spell.ID;
                                            
//suse.SpellLevelHu = 0;
                                            
suse.SpellLevel = spell.Level;
                                            
ushort _X = attacker.X, _Y = attacker.Y;
                                            
ushort _tX = X, _tY = Y;
                                            
byte dist = (byte)spell.Distance;
                                            var Array = 
attacker.Owner.Screen.Objects;
                                            
InLineAlgorithm algo = new InLineAlgorithm(attacker.X, X, attacker.Y, Y, dist,
                                                                               
InLineAlgorithm.Algorithm.DDA);
                                            
X = attacker.X;
                                            
Y = attacker.Y;
                                            
int i = 0;
                                            for (
i = 0; i < algo.lcoords.Count; i++)
                                            {
                                                if (
attacker.Owner.Map.Floor[algo.lcoords[i].X, algo.lcoords[i].Y, MapObjectType.Entity]
                                                    && !
attacker.ThroughGate(algo.lcoords[i].X, algo.lcoords[i].Y))
                                                {
                                                    
X = (ushort)algo.lcoords[i].X;
                                                    
Y = (ushort)algo.lcoords[i].Y;
                                                }
                                                else
                                                {
                                                    break;
                                                }
                                            }
                                            
suse.X = X;
                                            
suse.Y = Y;
                                            if (!
attacker.Owner.Map.Floor[X, Y, MapObjectType.Entity, null])
                                                return;
                                            
double disth = 1.6;

                                            foreach (
Interfaces.IMapObject _obj in Array)
                                            {
                                                
bool hit = false;
                                                for (
int j = 0; j < i; j++)
                                                    if (
Kernel.GetDDistance(_obj.X, _obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                        
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, 0);
                                                            
ReceiveAttack(attacker, attacked, attack, ref damage, spell);

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

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

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

                                                            
suse.AddTarget(attackedsob, damage, attack);
                                                        }
                                                    }
                                                }
                                            }
                                            
attacker.PX = attacker.X;
                                            
attacker.PY = attacker.Y;
                                            
attacker.X = X;
                                            
attacker.Y = Y;
                                            
attacker.Owner.SendScreen(suse, true);
                                            
attacker.Owner.Screen.Reload(suse);
                                        }
                                        break;
                                    }
                                
#endregion

                                #region Kraken`sRevenge
                                
case 11100:
                                    {
                                        if (
CanUseSpell(spell, attacker.Owner))
                                        {

                                            
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;
                                            
int num = 0;

                                            switch (
spell.Level)
                                            {
                                                case 
0:
                                                case 
1:
                                                    
num = 3;
                                                    break;
                                                case 
2:
                                                case 
3:
                                                    
num = 4;
                                                    break;
                                                default:
                                                    
num = 5;
                                                    break;
                                            }

                                            
int i = 0;
                                            
BlackSpotPacket bsp = new BlackSpotPacket();
                                            foreach (var 
t in attacker.Owner.Screen.Objects/*.OrderBy(x => Kernel.GetDistance(x.X, x.Y, attacker.Owner.Entity.X, attacker.Owner.Entity.Y))*/)
                                            {
                                                if (
t == null)
                                                    continue;
                                                if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                                {
                                                    var 
target = t as Entity;
                                                    if (
CanAttack(attacker, target, spell, false))
                                                    {
                                                        
target.IsBlackSpotted = true;
                                                        
target.BlackSpotStamp = Time32.Now;
                                                        
target.BlackSpotStepSecs = spell.Duration;
                                                        
Kernel.BlackSpoted.TryAdd(target.UID, target);
                                                        
suse.AddTarget(target, new SpellUse.DamageClass(), attack);
                                                        
i++;
                                                        if (
i == num) break;
                                                    }
                                                }
                                            }
                                            if (
attacker.EntityFlag == EntityFlag.Entity)
                                                
attacker.Owner.SendScreen(suse, true);

                                            foreach (var 
h in Program.Values)
                                            {
                                                foreach (var 
t in suse.Targets.Keys)
                                                {
                                                    
h.Send(bsp.ToArray(true, t));
                                                }
                                            }
                                        }
                                        break;
                                    }
                                
#endregion

                                #region ScurvyBomb
                                
case 11040:
                                    if (
CanUseSpell(spell, attacker.Owner))
                                    {

                                        
PrepareSpell(spell, attacker.Owner);
                                        
Map map;
                                        
SpellUse suse = new SpellUse(true);
                                        
suse.Attacker = attacker.UID;
                                        
suse.SpellID = spell.ID;
                                        
suse.SpellLevel = spell.Level;
                                        
suse.X = X;
                                        
suse.Y = Y;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
MessiProject.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                        
int num = 0;

                                        switch (
spell.Level)
                                        {
                                            case 
0:
                                            case 
1:
                                                
num = 3;
                                                break;
                                            case 
2:
                                            case 
3:
                                                
num = 4;
                                                break;
                                            default:
                                                
num = 5;
                                                break;
                                        }
                                        
int i = 0;
                                        
Kernel.Maps.TryGetValue(attacker.Owner.Map.BaseID, out map);
                                        foreach (var 
t in attacker.Owner.Screen.Objects)
                                        {
                                            if (
t == null)
                                                continue;
                                            if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                            {
                                                var 
target = t as Entity;
                                                if (
Kernel.GetDistance(X, Y, target.X, target.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attacker, target, spell, false))
                                                    {
                                                        
tar.Damage = Calculate.Ranged(attacker, target, ref attack);
                                                        
tar.Hit = true;
                                                        
tar.newX = target.X;
                                                        
tar.newY = target.Y;
                                                        
Map.Pushback(ref tar.newX, ref tar.newY, attacker.Facing, 5);

                                                        if (
map != null)
                                                        {
                                                            if (
map.Floor[tar.newX, tar.newY, MapObjectType.Entity, attacker])
                                                            {
                                                                
target.X = tar.newX;
                                                                
target.Y = tar.newY;
                                                            }
                                                            else
                                                            {
                                                                
tar.newX = target.X;
                                                                
tar.newY = target.Y;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if (
attacker.Owner.Map.Floor[tar.newX, tar.newY, MapObjectType.Entity, attacker])
                                                            {
                                                                
target.X = tar.newX;
                                                                
target.Y = tar.newY;
                                                            }
                                                            else
                                                            {
                                                                
target.X = tar.newX;
                                                                
target.Y = tar.newY;
                                                            }
                                                        }

                                                        
suse.AddTarget(target, tar, attack);
                                                        
ReceiveAttack(attacker, target, attack, ref tar.Damage, spell);

                                                        
i++;
                                                        if (
i > num) break;
                                                    }
                                                }
                                            }
                                        }

                                        if (
attacker.EntityFlag == EntityFlag.Entity)
                                            
attacker.Owner.SendScreen(suse, true);
                                    }
                                    break;
                                
#endregion

                                #region Cannon Barrage
                                
case 11050:
                                    {
                                        if (
attacker.Owner.Entity.ContainsFlag(MessiProject.Network.GamePackets.Update.Flags.XPList))
                                        {
                                            
attacker.Owner.Entity.RemoveFlag(MessiProject.Network.GamePackets.Update.Flags.XPList);
                                            
attacker.Owner.Entity.AddFlag2(MessiProject.Network.GamePackets.Update.Flags2.CannonBarrage);
                                            
attacker.Owner.Entity.CannonBarrageStamp = Time32.Now;
                                            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;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
MessiProject.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                        foreach (var 
t in attacker.Owner.Screen.Objects)
                                        {
                                            if (
t == null)
                                                continue;
                                            if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                            {
                                                var 
target = t as Entity;
                                                if (
Kernel.GetDistance(attacker.Owner.Entity.X, attacker.Owner.Entity.Y, target.X, target.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attacker, target, spell, false))
                                                    {
                                                        
tar.Damage = Calculate.Ranged(attacker, target, ref attack, client_Spell.LevelHu2);
                                                        
suse.AddTarget(target, tar, attack);
                                                        
ReceiveAttack(attacker, target, attack, ref tar.Damage, spell);
                                                    }
                                                }
                                            }
                                        }

                                        if (
attacker.EntityFlag == EntityFlag.Entity)
                                            
attacker.Owner.SendScreen(suse, true);

                                        break;
                                    }
                                
#endregion

                                #region Blackbeard`sRage
                                
case 11060:
                                    {
                                        if (
attacker.Owner.Entity.ContainsFlag(MessiProject.Network.GamePackets.Update.Flags.XPList))
                                        {
                                            
attacker.Owner.Entity.RemoveFlag(MessiProject.Network.GamePackets.Update.Flags.XPList);
                                            
attacker.Owner.Entity.AddFlag2(MessiProject.Network.GamePackets.Update.Flags2.BlackbeardsRage);
                                            
attacker.Owner.Entity.BlackbeardsRageStamp = Time32.Now;
                                            return;
                                        }

                                        
int num = 0;
                                        switch (
spell.Level)
                                        {
                                            case 
0:
                                            case 
1:
                                                
num = 3;
                                                break;
                                            case 
2:
                                            case 
3:
                                                
num = 4;
                                                break;
                                            default:
                                                
num = 5;
                                                break;
                                        }
                                        
int i = 0;
                                        
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;
                                        
//suse.SpellLevelHu = client_Spell.LevelHu2;
                                        
MessiProject.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                        foreach (var 
t in attacker.Owner.Screen.Objects)
                                        {
                                            if (
t == null)
                                                continue;
                                            if (
t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                            {
                                                var 
target = t as Entity;
                                                if (
Kernel.GetDistance(attacker.Owner.Entity.X, attacker.Owner.Entity.Y, target.X, target.Y) <= spell.Range)
                                                {
                                                    if (
CanAttack(attacker, target, spell, false))
                                                    {
                                                        
tar.Damage = Calculate.Ranged(attacker, target, ref attack, client_Spell.LevelHu2);
                                                        
suse.AddTarget(target, tar, attack);
                                                        
ReceiveAttack(attacker, target, attack, ref tar.Damage, spell);
                                                        
i++;
                                                        if (
i == num) break;
                                                    }
                                                }
                                            }
                                        }

                                        if (
attacker.EntityFlag == EntityFlag.Entity)
                                            
attacker.Owner.SendScreen(suse, true);

                                        break;
                                    }
                                
#endregion

                                #endregion 


Rider 2019-10-01 05:05 AM

رد: ضربة القرصان
 
اقتباس:

المشاركة الأصلية كتبت بواسطة mohamed x black (المشاركة 18554)
انا معايا الحل بس مش هديك انتا حاجا خالص

لو طلبت اي حاجا مش هدهالك وانا غلطان اصلن اني بساعد ناس بي الاشكال دي

1- الحل الي انته منزله غلط
2- اوعه تكلم اي حد تاني بنفس الاسلوب ده
3- اعتذرله علي الكلام الي انته قولته

Rider 2019-10-01 05:16 AM

رد: ضربة القرصان
 
مشكله من اسكل تربل سواء مونك او قرصان
هتفتح handle.cs
هتبحث عن
كود PHP:

case 10490: 

لقيت فوقها او تحتها
كود PHP:

case 11140: 

تمام لو ملفتش بعد ما تخلص الي هتعمله ف الاولي هتعمله ف تانيه

المهم هتروح فوق
كود PHP:

ReceiveAttack( 

و تحط كود ده لحد ما تقلله لحد ما تظبط معاك
كود PHP:

 damage = damage * 50 / 100; 

بتعدل علي رقم 50

ViORX 2019-10-03 03:16 AM

رد: ضربة القرصان
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Rider (المشاركة 18561)
1- الحل الي انته منزله غلط
2- اوعه تكلم اي حد تاني بنفس الاسلوب ده
3- اعتذرله علي الكلام الي انته قولته

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

https://www13.0zz0.com/2019/10/03/04/945349041.png

https://www13.0zz0.com/2019/10/03/04/644684185.png

https://www13.0zz0.com/2019/10/03/04/791492231.png

https://www14.0zz0.com/2019/10/03/04/169371664.png

https://www14.0zz0.com/2019/10/03/04/342806696.png

https://www14.0zz0.com/2019/10/03/04/508707818.png

https://www4.0zz0.com/2019/10/03/04/140870415.png

https://www4.0zz0.com/2019/10/03/04/508288917.png

https://www4.0zz0.com/2019/10/03/04/174707165.png

https://www2.0zz0.com/2019/10/03/04/201033980.png

https://www2.0zz0.com/2019/10/03/04/944342207.png

دى كل المحادثة من بداية الكلام لاخرو
وبعتذر لو كان ردى مخالف
وانا مش عاوز اعتذار ولا حاجة انا بالنسبالى الموضوع خلصان بس حبيت اوضح اللى حصل عشان ميبقاش مفهم حد انى غلطان فى حقه فى حاجة او ناصب عليه مثلا بالكلام اللى هو قالو دة
وبشكرك ياريدر على رد فعلك على الكلام اللى حصل انت راجل محترم وعلى راسى
تحياتى ليك

ElSaher 2019-10-03 03:31 AM

رد: ضربة القرصان
 
اقتباس:

المشاركة الأصلية كتبت بواسطة rider (المشاركة 18561)
1- الحل الي انته منزله غلط
2- اوعه تكلم اي حد تاني بنفس الاسلوب ده
3- اعتذرله علي الكلام الي انته قولته

حاضر يا عم احمد


انا اسف يا عم

سلام يا ريدر


الساعة الآن 08:09 AM

مرحبا بكم في منتدي اكواد لتطوير الالعاب
new notificatio by 9adq_ala7sas