aRound() public static method

public static aRound ( bool &b, float &x, float &y ) : bool
b bool
x float
y float
return bool
コード例 #1
0
        private obj getMob(int id, List <string> param)
        {
            short AREA = short.Parse(param[1]);
            float x    = Convert.ToInt32(param[2]);
            float z    = Convert.ToInt32(param[3]);
            float y    = Convert.ToInt32(param[4]);
            obj   o    = new obj();

            o.AutoMovement = true;
            o.LocalType    = Data.ObjectBase[id].Type;
            o.OrgMovement  = o.AutoMovement;
            o.StartRunTimer(Global.RandomID.GetRandom(5000, 8000));
            o.ID       = id;
            o.Ids      = new Global.ID(Global.ID.IDS.Object);
            o.UniqueID = o.Ids.GetUniqueID;

            o.xSec = Convert.ToByte((AREA).ToString("X4").Substring(2, 2), 16);
            o.ySec = Convert.ToByte((AREA).ToString("X4").Substring(0, 2), 16);
            o.x    = (o.xSec - 135) * 192 + (x) / 10;
            o.z    = z;
            o.y    = (o.ySec - 92) * 192 + (y) / 10;

            o.oX = o.x;
            o.oY = o.y;
            Systems.aRound(ref o.oX, ref o.oY, 9);
            o.State      = 1;
            o.Move       = 1;
            o.AutoSpawn  = true;
            o.State      = 2;
            o.HP         = Data.ObjectBase[id].HP;
            o.Kat        = 1;
            o.Agro       = new List <_agro>();
            o.SpeedWalk  = Data.ObjectBase[o.ID].SpeedWalk;
            o.SpeedRun   = Data.ObjectBase[o.ID].SpeedRun;
            o.SpeedZerk  = Data.ObjectBase[o.ID].SpeedZerk;
            o.oldAgresif = o.Agresif;
            if (o.Type == 1)
            {
                o.Agresif = 1;
            }
            //if (o.Type == 0) o.Agresif = 0;
            o.spawnOran = 20;
            if (id == 1979 || id == 2101 || id == 2124 || id == 2111 || id == 2112)
            {
                o.AutoMovement = false;
            }
            o.OrgMovement = o.AutoMovement;

            if (o.AutoMovement)
            {
                o.StartRunTimer(Global.RandomID.GetRandom(5000, 8000));
            }
            o.Type = Systems.RandomType(Data.ObjectBase[id].Level, ref o.Kat, false, ref o.Agresif);
            o.HP  *= o.Kat;
            if (o.Type == 1)
            {
                o.Agresif = 1;
            }
            return(o);
        }
コード例 #2
0
ファイル: DropSystem.cs プロジェクト: uvbs/DarkEmu
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Drop System Base
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public void SkillDrop(obj o, character c, string type)
        {
            try
            {
                world_item sitem = new world_item();
                switch (type)
                {
                case "mask":
                    sitem.Model     = 10364;
                    sitem.Ids       = new Global.ID(Global.ID.IDS.World);
                    sitem.UniqueID  = sitem.Ids.GetUniqueID;
                    sitem.PlusValue = 0;
                    sitem.x         = this.x + rnd.Next(0, 7);
                    sitem.z         = this.z;
                    sitem.y         = this.y + rnd.Next(0, 6);
                    sitem.xSec      = this.xSec;
                    sitem.ySec      = this.ySec;
                    sitem.Type      = 3;
                    sitem.fromType  = 5;
                    sitem.downType  = true;
                    sitem.fromOwner = this.UniqueID;
                    sitem.Owner     = ((Systems)this.GetTarget()).Character.Account.ID;

                    Systems.aRound(ref sitem.x, ref sitem.y, 0);
                    Systems.WorldItem.Add(sitem);
                    sitem.Send(Packet.ObjectSpawn(sitem), true);
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Skill drop error {0}", ex);
                Systems.Debugger.Write(ex);
            }
        }
コード例 #3
0
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Monster Summon Scrolls
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        void HandleSummon(int scrollid)
        {
            try
            {
                //if (this.Character.Information.Level < 10) return;

                int count = 1;//Default should be set to 1

                //single scroll
                if (scrollid == 3936)
                {
                    count = 5;
                }
                //party scroll
                if (scrollid == 3935)
                {
                    if (this.Character.Network.Party == null)
                    {
                        return;
                    }
                    if (this.Character.Network.Party.Members.Count < 5)
                    {
                        return;
                    }

                    count = this.Character.Network.Party.Members.Count;
                }

                int  model = GetStrongMobByLevel(this.Character.Information.Level);
                byte type  = Data.ObjectBase[model].ObjectType;

                for (int i = 1; i <= count; i++)
                {
                    obj Spawn = new obj();

                    Spawn.ID           = model;
                    Spawn.Type         = type;
                    Spawn.Ids          = new Global.ID(Global.ID.IDS.Object);
                    Spawn.UniqueID     = Spawn.Ids.GetUniqueID;
                    Spawn.x            = Character.Position.x;
                    Spawn.z            = Character.Position.z;
                    Spawn.y            = Character.Position.y;
                    Spawn.oX           = Spawn.x;
                    Spawn.oY           = Spawn.y;
                    Spawn.xSec         = Character.Position.xSec;
                    Spawn.ySec         = Character.Position.ySec;
                    Spawn.AutoMovement = true;
                    Spawn.State        = 1;
                    Spawn.Move         = 1;
                    Spawn.SpeedWalk    = Data.ObjectBase[Spawn.ID].SpeedWalk;
                    Spawn.SpeedRun     = Data.ObjectBase[Spawn.ID].SpeedRun;
                    Spawn.SpeedZerk    = Data.ObjectBase[Spawn.ID].SpeedZerk;
                    Spawn.HP           = Data.ObjectBase[model].HP;
                    Spawn.Agresif      = Data.ObjectBase[model].Agresif;
                    Spawn.LocalType    = 1;
                    Spawn.AutoSpawn    = false;
                    Spawn.Kat          = 1;
                    Systems.aRound(ref Spawn.x, ref Spawn.y, 1);
                    Systems.Objects.Add(Spawn);
                    Spawn.SpawnMe();
                }
            }
            catch (Exception ex)
            {
                Systems.Debugger.Write(ex);
            }
        }
コード例 #4
0
ファイル: DropSystem.cs プロジェクト: uvbs/DarkEmu
        public void MonsterDrop()
        {
            try
            {
                if (this.GetDie || this.Die)
                {
                    if (this.Type != 16)
                    {
                        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        // Set Target Information
                        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        Systems sys = (Systems)this.GetTarget();
                        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        // If There's no target return
                        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        if (sys == null)
                        {
                            return;
                        }

                        sbyte Leveldiff  = (sbyte)(sys.Character.Information.Level - Data.ObjectBase[ID].Level);
                        int   Amountinfo = 0;

                        if (Math.Abs(Leveldiff) < 10 || Math.Abs(Leveldiff) == 0)
                        {
                            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            // Gold Drop
                            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            #region Gold
                            int Golddrop = rnd.Next(Data.LevelGold[Data.ObjectBase[ID].Level].min, Data.LevelGold[Data.ObjectBase[ID].Level].max);
                            Amountinfo = 0;
                            if (this.Type == 4 && (rnd.Next(0, 200) < 200 * Systems.Rate.Gold))
                            {
                                Amountinfo = Convert.ToByte(rnd.Next(1, 3));
                            }
                            if (this.Type == 3 && (rnd.Next(0, 200) < 200 * Systems.Rate.Gold))
                            {
                                Amountinfo = Convert.ToByte(rnd.Next(4, 6));
                            }
                            if (this.Type == 1 && (rnd.Next(0, 200) < 200 * Systems.Rate.Gold))
                            {
                                Amountinfo = Convert.ToByte(rnd.Next(1, 3));
                            }
                            if (this.Type == 0 && (rnd.Next(0, 200) < 100 * Systems.Rate.Gold))
                            {
                                Amountinfo = 1;
                            }

                            for (byte a = 1; a <= Amountinfo;)
                            {
                                world_item Gold_Drop = new world_item();

                                Gold_Drop.amount = Golddrop * Systems.Rate.Gold;
                                Gold_Drop.Model  = 1;

                                if (Gold_Drop.amount < 1000)
                                {
                                    Gold_Drop.Model = 1;
                                }
                                else if (Gold_Drop.amount > 1000 && Gold_Drop.amount < 10000)
                                {
                                    Gold_Drop.Model = 2;
                                }
                                else if (Gold_Drop.amount > 10000)
                                {
                                    Gold_Drop.Model = 3;
                                }

                                Gold_Drop.Ids      = new Global.ID(Global.ID.IDS.World);
                                Gold_Drop.UniqueID = Gold_Drop.Ids.GetUniqueID;
                                Gold_Drop.x        = this.x + rnd.Next(0, 7);
                                Gold_Drop.z        = this.z;
                                Gold_Drop.y        = this.y + rnd.Next(0, 7);
                                Gold_Drop.xSec     = this.xSec;
                                Gold_Drop.ySec     = this.ySec;
                                Gold_Drop.Type     = 1;
                                Gold_Drop.downType = true;
                                Gold_Drop.fromType = 5;

                                Systems.aRound(ref Gold_Drop.x, ref Gold_Drop.y, 0);
                                Systems.WorldItem.Add(Gold_Drop);
                                Gold_Drop.Send(Packet.ObjectSpawn(Gold_Drop), true);
                                a++;

                                ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                // Send Info To Grabpet
                                ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                if (((Systems)this.GetTarget()).Character.Grabpet.Active)
                                {
                                    ((Systems)this.GetTarget()).Pet_PickupItem(Gold_Drop);
                                }
                            }
                            #endregion
                            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            // Drop Database
                            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            #region Drop Databases
                            foreach (KeyValuePair <string, DarkEmu_GameServer.Global.drop_database> p in Data.DropBase)
                            {
                                Amountinfo = p.Value.GetAmount(Data.ObjectBase[ID].Type, p.Key);
                                if (Amountinfo > 0)
                                {
                                    for (byte c = 1; c <= Amountinfo; c++)
                                    {
                                        world_item Dropped_Item = new world_item();
                                        Dropped_Item.Model = p.Value.GetDrop(Data.ObjectBase[this.ID].Level, this.ID, p.Key, sys.Character.Information.Race);
                                        if (Dropped_Item.Model == -1)
                                        {
                                            continue;
                                        }
                                        Dropped_Item.Ids       = new Global.ID(Global.ID.IDS.World);
                                        Dropped_Item.UniqueID  = Dropped_Item.Ids.GetUniqueID;
                                        Dropped_Item.PlusValue = Function.Items.RandomPlusValue();
                                        Dropped_Item.MagAtt    = Function.Items.RandomStatValue();
                                        Dropped_Item.x         = this.x + rnd.Next(0, 11);
                                        Dropped_Item.z         = this.z;
                                        Dropped_Item.y         = this.y + rnd.Next(0, 11);
                                        Dropped_Item.xSec      = this.xSec;
                                        Dropped_Item.ySec      = this.ySec;
                                        Dropped_Item.Type      = p.Value.GetSpawnType(p.Key);
                                        Dropped_Item.fromType  = 5;
                                        Dropped_Item.downType  = true;
                                        Dropped_Item.fromOwner = this.UniqueID;
                                        Dropped_Item.amount    = p.Value.GetQuantity(this.Type, p.Key);
                                        Dropped_Item.Owner     = ((Systems)this.GetTarget()).Character.Account.ID;
                                        Systems.WorldItem.Add(Dropped_Item);
                                        Dropped_Item.Send(Packet.ObjectSpawn(Dropped_Item), true);
                                    }
                                }
                            }
                        }
                        #endregion
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Drop system error: {0}", ex);
            }
        }