Dropping items in jail 5165

10/04/2010 17:44 †he Knight#1
Again the noob awwwwwwwww............
I'm having a problem , when i die in jail/pka/gw i drop items , anybody fixed this?
[Only registered and activated users can see links. Click Here To Register...] <-my msn
10/04/2010 17:52 _Vodka#2
In Character.cs find:
Code:
public void LoseInvItemsAndSilvers()
replace the whole void with:
Code:
public void LoseInvItemsAndSilvers()
        {
            try
            {
                if (MyClient.AuthInfo.Status == "")
                {
                    if (Loc.Map == 1005 || Loc.Map == 6000 || Loc.Map == 1036 || Loc.Map == 1038)
                    {
                      
                      //Nuthin
                    }
                    else
                    {
                        double Pc = (double)((Level & 15) + ((double)Level / 10));
                        uint SilversLose = (uint)(Silvers * Pc / 100);

                        DroppedItem DI = new DroppedItem();
                        DI.Info = new Item();
                        DI.Silvers = SilversLose;
                        Silvers -= SilversLose;

                        if (DI.Silvers < 10)
                            DI.Info.ID = 1090000;
                        else if (DI.Silvers < 100)
                            DI.Info.ID = 1090010;
                        else if (DI.Silvers < 1000)
                            DI.Info.ID = 1090020;
                        else if (DI.Silvers < 3000)
                            DI.Info.ID = 1091000;
                        else if (DI.Silvers < 10000)
                            DI.Info.ID = 1091010;
                        else
                            DI.Info.ID = 1091020;
                        DI.UID = (uint)Rnd.Next(10000000);
                        DI.DropTime = DateTime.Now;
                        DI.Loc = Loc;
                        if (DI.FindPlace((Hashtable)World.H_Items[Loc.Map]))
                            DI.Drop();

                        ArrayList ItemsLost = new ArrayList();
                        foreach (Item I in Inventory)
                        {
                            if (MyMath.ChanceSuccess(Pc) && !I.FreeItem)
                                ItemsLost.Add(I);
                        }
                        foreach (Item I in ItemsLost)
                        {
                            RemoveItem(I);
                            DroppedItem DI2 = new DroppedItem();
                            DI2.UID = (uint)Rnd.Next(10000000);
                            DI2.DropTime = DateTime.Now;
                            DI2.Loc = Loc;
                            DI2.Info = I;
                            DI2.Loc.X = (ushort)(DI2.Loc.X + Rnd.Next(4) - Rnd.Next(4));
                            DI2.Loc.Y = (ushort)(DI2.Loc.Y + Rnd.Next(4) - Rnd.Next(4));

                            if (DI2.FindPlace((Hashtable)World.H_Items[Loc.Map]))
                                DI2.Drop();
                        }
                    }
                }
            }
            catch (Exception Exc) { Program.WriteLine(Exc); }
        }
Now find:
Code:
public void InitAngry(bool _kind)
replace it with:
Code:
        public void InitAngry(bool _kind)
        {
            if (Loc.Map == 1005 || Loc.Map == 6000 || Loc.Map == 1036 || Loc.Map == 1038)
            {

                //Nuthin
            }
            else
            {
                if (VipLevel < 3 || !MyClient.GM)
                {
                    Random _rand = new Random();
                    #region Silver drop
                    int DropSilver = _rand.Next(0, (int)Silvers);
                    if (DropSilver > 1000)
                        DropSilver /= 10;
                    DroppedItem DI2 = new DroppedItem();
                    DI2.DropTime = DateTime.Now;
                    DI2.UID = (uint)Rnd.Next(10000000);
                    DI2.Loc = new Location();
                    DI2.Loc = Loc;
                    DI2.Loc.Map = Loc.Map;
                    DI2.Info = new Item();
                    DI2.Info.UID = (uint)Rnd.Next(10000000);
                    DI2.UID = (uint)Rnd.Next(10000000);
                    DI2.Silvers = (uint)DropSilver;
                    if (DI2.Silvers < 10)
                        DI2.Info.ID = 1090000;
                    else if (DI2.Silvers < 100)
                        DI2.Info.ID = 1090010;
                    else if (DI2.Silvers < 1000)
                        DI2.Info.ID = 1090020;
                    else if (DI2.Silvers < 3000)
                        DI2.Info.ID = 1091000;
                    else if (DI2.Silvers < 10000)
                        DI2.Info.ID = 1091010;
                    else
                        DI2.Info.ID = 1091020;
                    if (DI2.FindPlace((Hashtable)Game.World.H_Items[Loc.Map]))
                    { DI2.Drop(); Silvers -= (uint)DropSilver; }
                    #endregion
                    #region Item drop
                    byte _val1 = (byte)_rand.Next(Inventory.Count);
                    List<Item> _list1 = new List<Item>();
                    for (byte _val2 = 0; _val2 < _val1; _val2++)
                    {
                        byte _val3 = (byte)_rand.Next(Inventory.Count);
                        Item _item = Inventory[_val3] as Item;
                        if (_item.FreeItem || _item.Locked)
                            continue;
                        if (Merchant == MerchantTypes.Yes)
                        {
                            Game.DroppedItem DI = new NewestCOServer.Game.DroppedItem();
                            DI.Info = _item;
                            DI.DropTime = DateTime.Now;
                            DI.Loc = Loc;
                            DI.Loc.X = (ushort)(Loc.X + Rnd.Next(4) - Rnd.Next(4));
                            DI.Loc.Y = (ushort)(Loc.Y + Rnd.Next(4) - Rnd.Next(4));
                            DI.UID = (uint)Program.Rnd.Next(10000000);
                            if (!DI.FindPlace((Hashtable)Game.World.H_Items[Loc.Map])) continue;
                            DI.Drop();
                            RemoveItem(_item);
                        }
                        else
                        {
                            if (_item.Pot <= 8)
                            {
                                Game.DroppedItem DI = new NewestCOServer.Game.DroppedItem();
                                DI.Info = _item;
                                DI.DropTime = DateTime.Now;
                                DI.Loc = Loc;
                                DI.Loc.X = (ushort)(Loc.X + Rnd.Next(4) - Rnd.Next(4));
                                DI.Loc.Y = (ushort)(Loc.Y + Rnd.Next(4) - Rnd.Next(4));
                                DI.UID = (uint)Program.Rnd.Next(10000000);
                                if (!DI.FindPlace((Hashtable)Game.World.H_Items[Loc.Map])) continue;
                                DI.Drop();
                                RemoveItem(_item);
                            }
                        }
                    }
                    #endregion
                    #region Equipment drop
                    if (_kind)
                    {
                        if (PKPoints > 29)
                        {
                            _val1 = 0;
                            Item[] _equipment = Equips;
                            foreach (Item _equip in _equipment)
                            {
                                if (_val1 == 2)
                                    return;
                                if (_equip.ID == 0)
                                    continue;
                                if (_equip.FreeItem)
                                    continue;
                                if (MyMath.ChanceSuccess(10))
                                {
                                    EquipStats(Equips.GetSlot(_equip.UID), false);
                                    Equips.UnEquip(Equips.GetSlot(_equip.UID), this);
                                    MyClient.AddSend(Packets.ItemPacket(_equip.UID, 0, 3));
                                    Game.DroppedItem DI = new NewestCOServer.Game.DroppedItem();
                                    DI.Info = _equip;
                                    DI.DropTime = DateTime.Now;
                                    DI.Loc = Loc;
                                    DI.Loc.X = (ushort)(Loc.X + Rnd.Next(4) - Rnd.Next(4));
                                    DI.Loc.Y = (ushort)(Loc.Y + Rnd.Next(4) - Rnd.Next(4));
                                    DI.UID = (uint)Program.Rnd.Next(10000000);
                                    if (!DI.FindPlace((Hashtable)Game.World.H_Items[Loc.Map])) continue;
                                    DI.Drop();
                                    return;
                                }
                            }
                        }
                    #endregion
                    }
                }
            }
        }
Try this ^

Dont know if it works.
10/04/2010 18:21 _DreadNought_#3
Your posting your every last problem here for everyone else to fix.
10/04/2010 18:40 †he Knight#4
Quote:
Originally Posted by _DreadNought_ View Post
Your posting your every last problem here for everyone else to fix.
Not Really ,
Reborn Script = Fixed By my own
Detoxation = By my own
ToxicFog Fix = By My Own

Also I'm proud of myself .. Still noob but im sure i'll be a pro oneday

Fullworking , goodjob!
10/04/2010 18:57 _DreadNought_#5
Close?
10/04/2010 18:57 _Vodka#6
Quote:
Originally Posted by JuiceDCodeR View Post
Fullworking , goodjob!
#reported

please don't do double post :)
Use the edit button.

And good to know it works, but you could have done this by your self.