قديم 2020-02-04, 02:45 AM
المشاركة #2  
amr69940
  • غير متواجد
افتراضي رد: تعديل علي ضربه RageofWar
طيب بص انا عندي مظبوطة فهاش اي مشكلة جرب كدا وقولي

كود:
#region RageofWar(Passive)
                                
case 12930:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
Game.Attacking.InLineAlgorithm ila = new Game.Attacking.InLineAlgorithm(attacker.X,
                                        
Xattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
bool first false;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            continue;
                                                        if (
Kernel.GetDistance(attacked.Xattacked.Yattacker.Xattacker.Y) > 15) continue;
                                                        if (!
first)
                                                        {
                                                            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.RageOfWarTrap;
                                                            
flooritem.attacked.X;
                                                            
flooritem.MapID map.ID;
                                                            
flooritem.attacked.Y;
                                                            
flooritem.MapObjType MapObjectType.FloorSpell;
                                                            
flooritem.Type FloorItem.Effect;
                                                            
flooritem.mColor 15;
                                                            
flooritem.OwnerUID attacker.UID;
                                                            
flooritem.OnFloor Time32.Now;
                                                            
flooritem.Owner attacker.Owner;
                                                            
flooritem.Name2 "RageofWarTrap";
                                                            
map.AddFloorItem(flooritem);
                                                            
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                                            
first true;
                                                        }
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                        if (
attacker.NobilityRank == TOFAN.Game.ConquerStructures.NobilityRank.King)
                                                        {
                                                            
damage = (uint)(damage 0.738);
                                                        }
                                                        if (
attacker.NobilityRank == TOFAN.Game.ConquerStructures.NobilityRank.Prince)
                                                        {
                                                            
damage = (uint)(damage 0.838);
                                                        }
                                                        if (
attacker.NobilityRank == TOFAN.Game.ConquerStructures.NobilityRank.Duke)
                                                        {
                                                            
damage = (uint)(damage 0.900);
                                                        }
                                                        if (
attacker.NobilityRank == TOFAN.Game.ConquerStructures.NobilityRank.Earl)
                                                        {
                                                            
damage = (uint)(damage 1.000);
                                                        }
                                                        
attack.Damage damage;
                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.Monster)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            continue;
                                                        if (
Kernel.GetDistance(attacked.Xattacked.Yattacker.Xattacker.Y) > 11) continue;
                                                        if (!
first)
                                                        {
                                                            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.RageOfWarTrap;
                                                            
flooritem.attacked.X;
                                                            
flooritem.MapID map.ID;
                                                            
flooritem.attacked.Y;
                                                            
flooritem.Type FloorItem.Effect;
                                                            
flooritem.MapObjType MapObjectType.FloorSpell;
                                                            
flooritem.mColor 15;
                                                            
flooritem.OwnerUID attacker.UID;
                                                            
flooritem.OnFloor Time32.Now;
                                                            
flooritem.Owner attacker.Owner;
                                                            
flooritem.Name2 "RageofWarTrap";
                                                            
map.AddFloorItem(flooritem);
                                                            
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                                            
first true;
                                                        }

                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);
                                                        
damage = (uint)(damage 1.0);

                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }


                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;
                                                    if (
attackedsob == null) continue;
                                                    if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedsobspell))
                                                            continue;
                                                        if (
Kernel.GetDistance(attackedsob.Xattackedsob.Yattacker.Xattacker.Y) > 11) continue;
                                                        if (!
first)
                                                        {
                                                            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.MapObjType MapObjectType.FloorSpell;
                                                            
flooritem.ItemID FloorItem.RageOfWarTrap;
                                                            
flooritem.attackedsob.X;
                                                            
flooritem.MapID map.ID;
                                                            
flooritem.attackedsob.Y;
                                                            
flooritem.Type FloorItem.Effect;
                                                            
flooritem.mColor 15;
                                                            
flooritem.OwnerUID attacker.UID;
                                                            
flooritem.OnFloor Time32.Now;
                                                            
flooritem.Owner attacker.Owner;
                                                            
flooritem.Name2 "RageofWarTrap";
                                                            
map.AddFloorItem(flooritem);
                                                            
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                                            
first true;
                                                        }

                                                        
uint damage = (uint)(Game.Attacking.Calculate.Melee(attackerattackedsobref attack) * (spell.Power 30000) / 450);

                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                        
suse.AddTarget(attackedsobdamageattack);
                                                    }


                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion 


قديم 2020-02-04, 04:39 AM
المشاركة #3  
MRonlineGvrix
  • غير متواجد
افتراضي رد: تعديل علي ضربه RageofWar

كود:
                                #region RageofWar(Passive)
                                
case 12930:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
Game.Attacking.InLineAlgorithm ila = new Game.Attacking.InLineAlgorithm(attacker.X,
                                        
Xattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            
attacker.Owner.SendScreen(susetrue);
                                            
bool first false;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null)
                                                    continue;
                                                if (
_obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            continue;
                                                        if (
Kernel.GetDistance(attacked.Xattacked.Yattacker.Xattacker.Y) > 15) continue;
                                                        if (!
first)
                                                        {
                                                            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.RageOfWarTrap;
                                                            
flooritem.attacked.X;
                                                            
flooritem.MapID map.ID;
                                                            
flooritem.attacked.Y;
                                                            
flooritem.MapObjType MapObjectType.FloorSpell;
                                                            
flooritem.Type FloorItem.Effect;
                                                            
flooritem.mColor 15;
                                                            
flooritem.OwnerUID attacker.UID;
                                                            
flooritem.OnFloor Time32.Now;
                                                            
flooritem.Owner attacker.Owner;
                                                            
flooritem.Name2 "RageofWarTrap";
                                                            
map.AddFloorItem(flooritem);
                                                            
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                                            
first true;
                                                        }
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

                                                        if (
attacker.NobilityRank == AbdoRedaGxV4.Game.ConquerStructures.NobilityRank.King)
                                                        {
                                                            
damage = (uint)(damage 0.550);
                                                        }
                                                        if (
attacker.NobilityRank == AbdoRedaGxV4.Game.ConquerStructures.NobilityRank.Prince)
                                                        {
                                                            
damage = (uint)(damage 0.550);
                                                        }
                                                        if (
attacker.NobilityRank == AbdoRedaGxV4.Game.ConquerStructures.NobilityRank.Duke)
                                                        {
                                                            
damage = (uint)(damage 0.550);
                                                        }
                                                        if (
attacker.NobilityRank == AbdoRedaGxV4.Game.ConquerStructures.NobilityRank.Earl)
                                                        {
                                                            
damage = (uint)(damage 0.550);
                                                        }
                                                        if (
attacker.NobilityRank == AbdoRedaGxV4.Game.ConquerStructures.NobilityRank.Baron)
                                                        {
                                                            
damage = (uint)(damage 0.550);
                                                        }
                                                        if (
attacker.NobilityRank == AbdoRedaGxV4.Game.ConquerStructures.NobilityRank.Knight)
                                                        {
                                                            
damage = (uint)(damage 0.550);
                                                        }
                                                        if (
attacker.NobilityRank == AbdoRedaGxV4.Game.ConquerStructures.NobilityRank.Serf)
                                                        {
                                                            
damage = (uint)(damage 0.300);
                                                        }
                                                        
attack.Damage damage;
                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.Monster)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                            continue;
                                                        if (
Kernel.GetDistance(attacked.Xattacked.Yattacker.Xattacker.Y) > 11) continue;
                                                        if (!
first)
                                                        {
                                                            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.RageOfWarTrap;
                                                            
flooritem.attacked.X;
                                                            
flooritem.MapID map.ID;
                                                            
flooritem.attacked.Y;
                                                            
flooritem.Type FloorItem.Effect;
                                                            
flooritem.MapObjType MapObjectType.FloorSpell;
                                                            
flooritem.mColor 15;
                                                            
flooritem.OwnerUID attacker.UID;
                                                            
flooritem.OnFloor Time32.Now;
                                                            
flooritem.Owner attacker.Owner;
                                                            
flooritem.Name2 "RageofWarTrap";
                                                            
map.AddFloorItem(flooritem);
                                                            
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                                            
first true;
                                                        }

                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedspellref attack);
                                                        
damage = (uint)(damage 1.0);

                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                        
suse.AddTarget(attackeddamageattack);
                                                    }


                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;
                                                    if (
attackedsob == null) continue;
                                                    if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedsobspell))
                                                            continue;
                                                        if (
Kernel.GetDistance(attackedsob.Xattackedsob.Yattacker.Xattacker.Y) > 11) continue;
                                                        if (!
first)
                                                        {
                                                            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.MapObjType MapObjectType.FloorSpell;
                                                            
flooritem.ItemID FloorItem.RageOfWarTrap;
                                                            
flooritem.attackedsob.X;
                                                            
flooritem.MapID map.ID;
                                                            
flooritem.attackedsob.Y;
                                                            
flooritem.Type FloorItem.Effect;
                                                            
flooritem.mColor 15;
                                                            
flooritem.OwnerUID attacker.UID;
                                                            
flooritem.OnFloor Time32.Now;
                                                            
flooritem.Owner attacker.Owner;
                                                            
flooritem.Name2 "RageofWarTrap";
                                                            
map.AddFloorItem(flooritem);
                                                            
attacker.Owner.SendScreenSpawn(flooritemtrue);
                                                            
first true;
                                                        }

                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
damage = (uint)(damage 180 100);
                                                        
attack.Damage damage;

                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                        
suse.AddTarget(attackedsobdamageattack);
                                                    }


                                                }
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                            
attacker.AttackPacket null;
                                        }
                                        break;
                                    }
                                
#endregion 


قديم 2020-02-04, 01:46 PM
المشاركة #4  
ahmedfathy
  • غير متواجد
افتراضي رد: تعديل علي ضربه RageofWar
الحلول اللي نزله دي كلها غلط هو انا عشان انزل اتاك الاسكله اسمح الروجن بتعها ونزلوا من سورس تاني ويظهر ايرور تاني
في ايه يا رجاله الاسكله عندكم اصلآ بتضرب بي رقم عالي بردوه

الصح بتعها بتعملوا يدوي ومش بيكون عالي كدا


بس يا برنس تحت السطر دا Calculate.Melee(attacker, attacked, ref attack);
هتلاقي كلمة damge الموضوع سهل جدآ هديك مثل عشان تفهم مثلآ 1.8 هتشيل الواحد وتخلي 0 وتخلي رقم 8 دا يكون 3 وبكدا هتكون كدا 0.3 يعني هيضرب بي 10 تلاف

قديم 2020-02-04, 04:13 PM
المشاركة #5  
ElSaher
  • غير متواجد
افتراضي رد: تعديل علي ضربه RageofWar
اتفضل يصطي


كود:
                                #region RageOfWar[Stomper]
                                
case 12930:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
PrepareSpell(spellattacker.Owner);
                                            
InLineAlgorithm ila = new InLineAlgorithm(attacker.XXattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                            
SpellUse suse = new SpellUse(true);
                                            
suse.Attacker attacker.UID;
                                            
suse.SpellID SpellID;
                                            
attacker.Stamina -= spell.UseStamina;
                                            
attacker.Stamina -= 15;
                                            
suse.SpellLevel attacker.Owner.Spells[SpellID].Level;
                                            
suse.X;
                                            
suse.Y;
                                            
ushort Xo1 0Yo1 0;
                                            foreach (
Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                            {
                                                if (
_obj == null) continue;
                                                if (
_obj.MapObjType == MapObjectType.Entity)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee)) continue;
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Ranged(attackerattackedref attack);
                                                        if (
attacker.NobilityRank == ElSaher.Game.ConquerStructures.NobilityRank.King)
                                                        {
                                                            
damage = (uint)(damage 0.826);
                                                        }
                                                        if (
attacker.NobilityRank == ElSaher.Game.ConquerStructures.NobilityRank.Prince)
                                                        {
                                                            
damage = (uint)(damage 0.971);
                                                        }
                                                        if (
attacker.NobilityRank == ElSaher.Game.ConquerStructures.NobilityRank.Duke)
                                                        {
                                                            
damage = (uint)(damage 1.30);
                                                        }
                                                        if (
attacker.NobilityRank == ElSaher.Game.ConquerStructures.NobilityRank.Earl)
                                                        {
                                                            
damage = (uint)(damage 1.020);
                                                        }
                                                        
// damage = (uint)MathHelper.AdjustDataEx((int)damage, (int)spell.Power);
                                                        
suse.Effect1 attack.Effect1;
                                                        
attack.Damage damage;
                                                        
Xo1 attacked.X;
                                                        
Yo1 attacked.Y;
                                                        
suse.AddTarget(attacked.UIDdamageattack);
                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.Monster)
                                                {
                                                    
attacked _obj as Entity;
                                                    if (
ila.InLine(attacked.Xattacked.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee)) continue;
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attackclient_Spell.LevelHu2);
                                                        
damage = (uint)(damage SkillsAttack.RageofWarMonsters);
                                                        
suse.Effect1 attack.Effect1;
                                                        
attack.Damage damage;
                                                        
Xo1 attacked.X;
                                                        
Yo1 attacked.Y;
                                                        
suse.AddTarget(attacked.UIDdamageattack);
                                                        
ReceiveAttack(attackerattackedattackref damagespell);

                                                    }
                                                }
                                                else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                {
                                                    
attackedsob _obj as SobNpcSpawn;
                                                    if (
ila.InLine(attackedsob.Xattackedsob.Y))
                                                    {
                                                        if (!
CanAttack(attackerattackedsobspell)) continue;
                                                        
attack.Effect1 Attack.AttackEffects1.None;
                                                        
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                        
damage = (uint)(damage 3.4);
                                                        
suse.AddTarget(attackedsob.UIDdamageattack);
                                                        
ReceiveAttack(attackerattackedsobattackdamagespell);

                                                    }
                                                }
                                            }
                                            if (
Xo1 != && Yo1 != 0)
                                            {
                                                
FloorItem item = new FloorItem(true);
                                                
item.Owner attacker.Owner;
                                                
item.UID FloorItem.FloorUID.Next;
                                                
// item.MapObjType = MapObjectType.Item;
                                                
item.ItemID 1500;
                                                
item.= (ushort)(Xo1);
                                                
item.= (ushort)(Yo1);
                                                
item.Type 10;
                                                
item.mColor 14;
                                                
item.OwnerUID attacker.UID;
                                                
item.FlowerType 1;
                                                
item.Name "RageofWarTrap";
                                                
attacker.SendScreen(item);
                                                var 
map Kernel.Maps[attacker.MapID];
                                                while (
map.Npcs.ContainsKey(item.UID))
                                                    
item.UID Network.GamePackets.FloorItem.FloorUID.Next;
                                                
map.AddFloorItem(item);
                                            }
                                            
attacker.Owner.SendScreen(susetrue);
                                        }
                                        break;
                                    }
                                
#endregion 

وهتنحل انشاء الله

قديم 2020-02-05, 04:24 PM
المشاركة #6  
Hassan Emprator
  • غير متواجد
افتراضي رد: تعديل علي ضربه RageofWar
يغلق لعدم المتابعه من صاحب الموضوع


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



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

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

المواضيع المتشابهه للموضوع: تعديل علي ضربه RageofWar
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
حل مشكله شخصيه بيضرب فيه اول ضربه يختفي Tefa تطوير سيرفرات كونكر 15 2023-12-07 01:29 AM
تعديل وقت Bayoumi مشكلات السيرفيرات كونكر الشخصيه 4 2020-04-12 02:23 PM
طلب تعديل التوبات ElSaher مشكلات السيرفيرات كونكر الشخصيه 8 2020-02-05 07:36 PM
مشكله تعديل ضربه اسكله FatalVortex يارجاله ahmedshetos888 مشكلات السيرفيرات كونكر الشخصيه 6 2020-01-23 02:44 AM
عندي مشكلة ف اسكلة RageofWar Omar Mohamed100 مشكلات السيرفيرات كونكر الشخصيه 2 2019-11-05 08:31 AM


الساعة الآن 05:38 AM

Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.