Esempio n. 1
0
        // Token: 0x060001DD RID: 477 RVA: 0x0003A20C File Offset: 0x0003840C
        public static void Packet_AcceptInvite(int index, ref byte[] data)
        {
            ByteStream buffer   = new ByteStream(data);
            int        response = buffer.ReadInt32();

            buffer.Dispose();
            bool flag = response == 1;

            if (flag)
            {
                bool flag2 = modTypes.TempPlayer[index].Invitationindex > 0;
                if (flag2)
                {
                    bool flag3 = modTypes.TempPlayer[index].InvitationTimer > S_General.GetTimeMs();
                    if (flag3)
                    {
                        bool flag4 = S_NetworkConfig.IsPlaying(modTypes.TempPlayer[index].Invitationindex);
                        if (flag4)
                        {
                            modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].InHouse = modTypes.TempPlayer[index].Invitationindex;
                            modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].LastX   = S_Players.GetPlayerX(index);
                            modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].LastY   = S_Players.GetPlayerY(index);
                            modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].LastMap = S_Players.GetPlayerMap(index);
                            modTypes.TempPlayer[index].InvitationTimer = 0;
                            S_Players.PlayerWarp(index, modTypes.Player[modTypes.TempPlayer[index].Invitationindex].Character[(int)modTypes.TempPlayer[index].CurChar].Map, S_Housing.HouseConfig[modTypes.Player[modTypes.TempPlayer[index].Invitationindex].Character[(int)modTypes.TempPlayer[modTypes.TempPlayer[index].Invitationindex].CurChar].House.Houseindex].X, S_Housing.HouseConfig[modTypes.Player[modTypes.TempPlayer[index].Invitationindex].Character[(int)modTypes.TempPlayer[modTypes.TempPlayer[index].Invitationindex].CurChar].House.Houseindex].Y, true, true);
                        }
                        else
                        {
                            modTypes.TempPlayer[index].InvitationTimer = 0;
                            S_NetworkSend.PlayerMsg(index, "Cannot find player!", 12);
                        }
                    }
                    else
                    {
                        S_NetworkSend.PlayerMsg(index, "Your invitation has expired, have your friend re-invite you.", 14);
                    }
                }
            }
            else
            {
                bool flag5 = S_NetworkConfig.IsPlaying(modTypes.TempPlayer[index].Invitationindex);
                if (flag5)
                {
                    modTypes.TempPlayer[index].InvitationTimer = 0;
                    S_NetworkSend.PlayerMsg(modTypes.TempPlayer[index].Invitationindex, (S_Players.GetPlayerName(index).Trim()) + " rejected your invitation", 12);
                }
            }
        }
Esempio n. 2
0
        public static void DestroyServer()
        {
            S_NetworkConfig.Socket.StopListening();

            Console.WriteLine("Saving players online...");
            modDatabase.SaveAllPlayersOnline();

            Console.WriteLine("Unloading players...");
            for (int i = 1; i <= Constants.MAX_PLAYERS; i++)
            {
                S_NetworkSend.SendLeftGame(i);
                S_Players.LeftGame(i);
            }

            S_NetworkConfig.DestroyNetwork();
            ClearGameData();

            Environment.Exit(0);
        }
Esempio n. 3
0
        // Token: 0x060001E1 RID: 481 RVA: 0x0003B8F8 File Offset: 0x00039AF8
        public static void Packet_SellHouse(int index, ref byte[] data)
        {
            ByteStream buffer   = new ByteStream(data);
            int        Tmpindex = modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].House.Houseindex;
            bool       flag     = Tmpindex > 0;

            checked
            {
                if (flag)
                {
                    int refund = (int)Math.Round((double)S_Housing.HouseConfig[Tmpindex].Price / 2.0);
                    modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].House.Houseindex     = 0;
                    modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].House.FurnitureCount = 0;
                    modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].House.Furniture      = new S_Housing.FurnitureRec[modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].House.FurnitureCount + 1];
                    int furnitureCount = modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].House.FurnitureCount;
                    for (int i = 0; i <= furnitureCount; i++)
                    {
                        modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].House.Furniture[i].ItemNum = 0;
                        modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].House.Furniture[i].X       = 0;
                        modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].House.Furniture[i].Y       = 0;
                    }
                    bool flag2 = modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].InHouse == Tmpindex;
                    if (flag2)
                    {
                        S_Players.PlayerWarp(index, modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].LastMap, modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].LastX, modTypes.Player[index].Character[(int)modTypes.TempPlayer[index].CurChar].LastY, false, false);
                    }
                    modDatabase.SavePlayer(index);
                    S_NetworkSend.PlayerMsg(index, "You sold your House for " + Conversions.ToString(refund) + " Gold!", 10);
                    S_Players.GiveInvItem(index, 1, refund, true);
                }
                else
                {
                    S_NetworkSend.PlayerMsg(index, "You dont own a House!", 12);
                }
                buffer.Dispose();
            }
        }
Esempio n. 4
0
 internal static void Socket_ConnectionReceived(int index)
 {
     Console.WriteLine("Connection received on index[" + index + "] - IP[" + Socket.ClientIp(index) + "]");
     S_NetworkSend.SendKeyPair(index);
     S_NetworkSend.SendNews(index);
 }