[(Awesome)RELEASE] CoEmuv2.Nano(5095) Source Code

05/31/2009 03:26 scottdavey#436
Quote:
Originally Posted by $HaDoW View Post
yes you should :D
Try converting a command from lotf :D something whats not added yet ^_^
Btw kinshi Mabye you could help use all to fix the trade bug ? cus this bug need's a proffesional to help :)
Trade bug? I didn't think there was a bug, i just thought it wasn't coded yet..
05/31/2009 03:57 Zeroxelli#437
Trading? I started to look at that, got "[Trade] 'Your ID' to 'Their ID'" and a bunch of numbers but got bored with it.
05/31/2009 04:42 kinshi88#438
Quote:
Originally Posted by Zeroxelli View Post
Trading? I started to look at that, got "[Trade] 'Your ID' to 'Their ID'" and a bunch of numbers but got bored with it.
Yeah, I started working on trading a little while ago, here's what I got so far.
It's not done yet, still got a bit too add to it.

Code:
                    case 1056: // Trading
                        {
                            int UID = BitConverter.ToInt32(Data, 4);
                            byte Option = Data[8];

                            switch (Option)
                            {
                                case 1: // Request Trade
                                    {
                                        ClientSocket tSocket = null;
                                        foreach (ClientSocket csoc in Nano.ClientPool.Values)
                                        {
                                            if (csoc.Client.ID == UID)
                                            {
                                                tSocket = csoc;
                                                break;
                                            }
                                        }
                                        if (tSocket == null)
                                            return;
                                        if (UID != CSocket.Client.TradingWith)
                                        {
                                            tSocket.Send(ConquerPacket.Trade(CSocket.Client.ID, 1));
                                            tSocket.Client.TradingWith = CSocket.Client.ID;
                                            CSocket.Client.TradingWith = tSocket.Client.ID;
                                            CSocket.Send(ConquerPacket.Chat(0, "TRADE", CSocket.Client.Name, "[Trade] Your trade request has been sent out.", Struct.ChatType.Top));
                                        }
                                        else
                                        {
                                            CSocket.Send(ConquerPacket.Chat(0, "TRADE", CSocket.Client.Name, "[Trade] Trade Confirmed!", Struct.ChatType.Top));
                                            tSocket.Send(ConquerPacket.Trade(CSocket.Client.ID, 3));
                                            CSocket.Send(ConquerPacket.Trade(tSocket.Client.ID, 3));
                                        }
                                        break;
                                    }
                                case 2: // End Trade
                                    {
                                        if (CSocket.Client.TradingWith == 0)
                                            return;

                                        ClientSocket tSocket = null;
                                        foreach (ClientSocket csoc in Nano.ClientPool.Values)
                                        {
                                            if (csoc.Client.ID == CSocket.Client.TradingWith)
                                            {
                                                tSocket = csoc;
                                                break;
                                            }
                                        }
                                        if (tSocket == null)
                                            return;
                                        tSocket.Send(ConquerPacket.Trade(CSocket.Client.TradingWith, 5));
                                        CSocket.Send(ConquerPacket.Chat(0, "TRADE", CSocket.Client.Name, "[Trade] Trading Ended.", Struct.ChatType.Top));
                                        tSocket.Send(ConquerPacket.Chat(0, "TRADE", CSocket.Client.Name, "[Trade] Trading Ended.", Struct.ChatType.Top));
                                        CSocket.Client.TradingWith = 0;
                                        tSocket.Client.TradingWith = 0;
                                        foreach (Struct.ItemInfo Item in CSocket.Client.TradeList)
                                        {
                                            CSocket.Client.Inventory.Add(Item.UID, Item);
                                            CSocket.Send(ConquerPacket.ItemInfo(
                                                Item.UID,
                                                Item.ItemID,
                                                Item.Plus,
                                                Item.Bless,
                                                Item.Enchant,
                                                Item.Soc1,
                                                Item.Soc2,
                                                Item.Dura,
                                                Item.MaxDura,
                                                Item.Position,
                                                Item.Color,
                                                Item.Free,
                                                Item.Progress,
                                                Item.Suspicious,
                                                Item.Locked));
                                        }
                                        CSocket.Client.TradeList = new ArrayList(20);
                                        foreach (Struct.ItemInfo Item in tSocket.Client.TradeList)
                                        {
                                            tSocket.Client.Inventory.Add(Item.UID, Item);
                                            tSocket.Send(ConquerPacket.ItemInfo(
                                                Item.UID,
                                                Item.ItemID,
                                                Item.Plus,
                                                Item.Bless,
                                                Item.Enchant,
                                                Item.Soc1,
                                                Item.Soc2,
                                                Item.Dura,
                                                Item.MaxDura,
                                                Item.Position,
                                                Item.Color,
                                                Item.Free,
                                                Item.Progress,
                                                Item.Suspicious,
                                                Item.Locked));
                                        }
                                        tSocket.Client.TradeList = new ArrayList(20);

                                        CSocket.Client.TradeSilver = 0;
                                        CSocket.Client.TradeCP = 0;
                                        CSocket.Client.TradeOK = false;
                                        tSocket.Client.TradeSilver = 0;
                                        tSocket.Client.TradeCP = 0;
                                        tSocket.Client.TradeOK = false;

                                        break;
                                    }
                                case 6: // Add Item
                                    {
                                        ClientSocket tSocket = null;
                                        foreach (ClientSocket csoc in Nano.ClientPool.Values)
                                        {
                                            if (csoc.Client.ID == UID)
                                            {
                                                tSocket = csoc;
                                                break;
                                            }
                                        }
                                        if (tSocket == null)
                                            return;

                                        if (tSocket.Client.Inventory.Count + CSocket.Client.TradeList.Count < 40)
                                        {
                                            Struct.ItemInfo tItem = new Struct.ItemInfo();
                                            foreach (Struct.ItemInfo item in CSocket.Client.Inventory.Values)
                                            {
                                                if (item.UID == UID)
                                                {
                                                    tItem = item;
                                                    break;
                                                }
                                            }
                                            CSocket.Client.TradeList.Add(tItem);
                                            // Send Packet to show trade person what the item is... argh
                                            tSocket.Send(ConquerPacket.TradeItem(
                                                tItem.UID,
                                                    tItem.ItemID,
                                                    tItem.Plus,
                                                    tItem.Bless,
                                                    tItem.Enchant,
                                                    tItem.Soc1,
                                                    tItem.Soc2,
                                                    tItem.Dura,
                                                    tItem.MaxDura,
                                                    tItem.Position,
                                                    tItem.Color,
                                                    tItem.Free,
                                                    tItem.Progress,
                                                    tItem.Suspicious,
                                                    tItem.Locked));
                                        }
                                        else
                                        {
                                            CSocket.Send(ConquerPacket.Trade(UID, 11));
                                            CSocket.Send(ConquerPacket.Chat(0, "TRADE", CSocket.Client.Name, "[Trade] " + tSocket.Client.Name + " cannot hold anymore items.", Struct.ChatType.Top));
                                        }
                                        break;
                                    }
                                case 7: // Specify Money
                                    {
                                        ClientSocket tSocket = null;
                                        foreach (ClientSocket csoc in Nano.ClientPool.Values)
                                        {
                                            if (csoc.Client.ID == CSocket.Client.TradingWith)
                                            {
                                                tSocket = csoc;
                                                break;
                                            }
                                        }
                                        if (tSocket == null)
                                            return;

                                        if (CSocket.Client.Money >= UID)
                                        {
                                            CSocket.Client.TradeSilver = UID;
                                            tSocket.Send(ConquerPacket.Trade(UID, 8));
                                        }
                                        else
                                        {
                                            tSocket.Send(ConquerPacket.Trade(tSocket.Client.ID, 2));
                                            CSocket.Send(ConquerPacket.Trade(CSocket.Client.ID, 2));
                                        }
                                        break;
                                    }
                                case 13: // Specify CPs
                                    {
                                        ClientSocket tSocket = null;
                                        foreach (ClientSocket csoc in Nano.ClientPool.Values)
                                        {
                                            if (csoc.Client.ID == CSocket.Client.TradingWith)
                                            {
                                                tSocket = csoc;
                                                break;
                                            }
                                        }
                                        if (tSocket == null)
                                            return;

                                        if (CSocket.Client.CPs >= UID)
                                        {
                                            CSocket.Client.TradeCP = UID;
                                            tSocket.Send(ConquerPacket.Trade(UID, 12));
                                        }
                                        else
                                        {
                                            tSocket.Send(ConquerPacket.Trade(tSocket.Client.ID, 2));
                                            CSocket.Send(ConquerPacket.Trade(CSocket.Client.ID, 2));
                                        }
                                        break;
                                    }
                                case 10: // Confirm Trade
                                    {
                                        ClientSocket tSocket = null;
                                        foreach (ClientSocket csoc in Nano.ClientPool.Values)
                                        {
                                            if (csoc.Client.ID == CSocket.Client.TradingWith)
                                            {
                                                tSocket = csoc;
                                                break;
                                            }
                                        }
                                        if (tSocket == null)
                                            return;

                                        if (tSocket.Client.TradeOK)
                                        {
                                            // Moneys Check
                                            if (CSocket.Client.TradeSilver <= CSocket.Client.Money)
                                            {
                                                if (tSocket.Client.TradeSilver <= tSocket.Client.Money)
                                                {
                                                    if (CSocket.Client.TradeCP <= CSocket.Client.CPs)
                                                    {
                                                        if (tSocket.Client.TradeCP <= tSocket.Client.CPs)
                                                        {
                                                            CSocket.Client.Money -= CSocket.Client.TradeSilver;
                                                            tSocket.Client.Money += CSocket.Client.TradeSilver;
                                                            tSocket.Client.Money -= tSocket.Client.TradeSilver;
                                                            CSocket.Client.Money += tSocket.Client.TradeSilver;
                                                            tSocket.Client.CPs -= tSocket.Client.TradeCP;
                                                            CSocket.Client.CPs += tSocket.Client.TradeCP;
                                                            CSocket.Client.CPs -= CSocket.Client.TradeCP;
                                                            tSocket.Client.CPs += CSocket.Client.TradeCP;

                                                            CSocket.Send(ConquerPacket.Status(CSocket, 2, CSocket.Client.Money, Struct.StatusTypes.InvMoney));
                                                            CSocket.Send(ConquerPacket.Status(CSocket, 2, CSocket.Client.CPs, Struct.StatusTypes.InvCPoints));
                                                            tSocket.Send(ConquerPacket.Status(CSocket, 2, tSocket.Client.Money, Struct.StatusTypes.InvMoney));
                                                            tSocket.Send(ConquerPacket.Status(CSocket, 2, tSocket.Client.CPs, Struct.StatusTypes.InvCPoints));
                                                        }
                                                        else
                                                        {
                                                            tSocket.Send(ConquerPacket.Trade(tSocket.Client.ID, 2));
                                                            CSocket.Send(ConquerPacket.Trade(CSocket.Client.ID, 2));
                                                            return;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        tSocket.Send(ConquerPacket.Trade(tSocket.Client.ID, 2));
                                                        CSocket.Send(ConquerPacket.Trade(CSocket.Client.ID, 2));
                                                        return;
                                                    }
                                                }
                                                else
                                                {
                                                    tSocket.Send(ConquerPacket.Trade(tSocket.Client.ID, 2));
                                                    CSocket.Send(ConquerPacket.Trade(CSocket.Client.ID, 2));
                                                    return;
                                                }
                                            }
                                            else
                                            {
                                                tSocket.Send(ConquerPacket.Trade(tSocket.Client.ID, 2));
                                                CSocket.Send(ConquerPacket.Trade(CSocket.Client.ID, 2));
                                                return;
                                            }
                                            // ---

                                            tSocket.Send(ConquerPacket.Trade(tSocket.Client.TradingWith, 5));
                                            CSocket.Send(ConquerPacket.Trade(CSocket.Client.TradingWith, 5));
                                            foreach (Struct.ItemInfo Item in tSocket.Client.TradeList)
                                            {
                                                CSocket.Client.Inventory.Add(Item.UID, Item);
                                                CSocket.Send(ConquerPacket.ItemInfo(
                                                    Item.UID,
                                                    Item.ItemID,
                                                    Item.Plus,
                                                    Item.Bless,
                                                    Item.Enchant,
                                                    Item.Soc1,
                                                    Item.Soc2,
                                                    Item.Dura,
                                                    Item.MaxDura,
                                                    Item.Position,
                                                    Item.Color,
                                                    Item.Free,
                                                    Item.Progress,
                                                    Item.Suspicious,
                                                    Item.Locked));

                                                tSocket.Send(ConquerPacket.ItemUsage(Item.UID, 0, Struct.ItemUsage.RemoveItem));
                                                Database.Database.DeleteItem(Item.UID);
                                                tSocket.Client.Inventory.Remove(Item.UID);
                                            }
                                            tSocket.Client.TradeList = new ArrayList(20);
                                            foreach (Struct.ItemInfo Item in CSocket.Client.TradeList)
                                            {
                                                tSocket.Client.Inventory.Add(Item.UID, Item);
                                                tSocket.Send(ConquerPacket.ItemInfo(
                                                    Item.UID,
                                                    Item.ItemID,
                                                    Item.Plus,
                                                    Item.Bless,
                                                    Item.Enchant,
                                                    Item.Soc1,
                                                    Item.Soc2,
                                                    Item.Dura,
                                                    Item.MaxDura,
                                                    Item.Position,
                                                    Item.Color,
                                                    Item.Free,
                                                    Item.Progress,
                                                    Item.Suspicious,
                                                    Item.Locked));

                                                CSocket.Send(ConquerPacket.ItemUsage(Item.UID, 0, Struct.ItemUsage.RemoveItem));
                                                Database.Database.DeleteItem(Item.UID);
                                                CSocket.Client.Inventory.Remove(Item.UID);
                                            }
                                            CSocket.Client.TradeList = new ArrayList(20);

                                            CSocket.Client.TradingWith = 0;
                                            tSocket.Client.TradingWith = 0;
                                            CSocket.Client.TradeSilver = 0;
                                            CSocket.Client.TradeCP = 0;
                                            CSocket.Client.TradeOK = false;
                                            tSocket.Client.TradeSilver = 0;
                                            tSocket.Client.TradeCP = 0;
                                            tSocket.Client.TradeOK = false;

                                            CSocket.Send(ConquerPacket.Chat(0, "TRADE", CSocket.Client.Name, "[Trade] Trading was Sucessful!", Struct.ChatType.Top));
                                            tSocket.Send(ConquerPacket.Chat(0, "TRADE", tSocket.Client.Name, "[Trade] Trading was Sucessful!", Struct.ChatType.Top));
                                        }
                                        else
                                        {
                                            CSocket.Client.TradeOK = true;
                                            tSocket.Send(ConquerPacket.Trade(0, 10));
                                        }
                                        break;
                                    }
                            }
                            break;
                        }
05/31/2009 04:45 Zeroxelli#439
@kinshi88

Further than I got, I was just messing with lotto after I got bored :p nice work.
05/31/2009 05:07 scottdavey#440
Nice kinshi, gonna release the finished work?
05/31/2009 07:16 kiltz#441
Sorry for being a noob at what *.cs is trading be implemented? is it in the UseItem.cs?
05/31/2009 07:31 jasonk1980#442
how exactly do you run COemu ? is there an exe included in there or does it run when you click the conquer.exe in the client file??? the only thing in the rar file i got from this thread was visual C# files any help would be great as im tryin to get some practice at building/running my own server
05/31/2009 07:38 jasonk1980#443
ok nvm i see what i didnt do now cause i was tired at the time and not paying attention lol
05/31/2009 07:40 jasonk1980#444
how in the world do you run the game server and login server files???
05/31/2009 07:44 jasonk1980#445
nvm yet again
05/31/2009 07:53 tao4229#446
click on them. LOL
had to say it
05/31/2009 08:14 kiltz#447
In what *.cs trading code be implemented?
05/31/2009 08:21 jasonk1980#448
ok now that i got that figured out i have mysql and appserv and navicat lite now how do i set up a database on navicat so that i can create accounts and and all that cause im not entirely sure how to do it and its not cause im tired this time (mountain dew works wonders for energy levels lol)
05/31/2009 17:32 xXVamXx#449
Sorry Kinshi where should i paste that trading??

And guys can someone help or tell me wat is the code for giving exp and lvl?

Been looking that but still cant find it
05/31/2009 19:39 $HaDoW#450
If you are talking about exp per level :D then go to databse and look at "levelexp" table
but if you are taliking about emu exp that you set up :D I have no Fing IDEA !