コード例 #1
0
            public override void OnResponse(NetState state, RelayInfo info)
            {
                if (m_From.Deleted)
                {
                    return;
                }
                if (info.ButtonID == 2)
                {
                    TextRelay tr_BuyTickets = info.GetTextEntry(1);
                    if (tr_BuyTickets != null)
                    {
                        int i_BuyTickets = 0;
                        try
                        {
                            i_BuyTickets = Convert.ToInt32(tr_BuyTickets.Text, 10);
                        }
                        catch
                        {
                            m_From.SendMessage("Please make sure you wrote only numbers.");
                            m_From.SendGump(new LadyLuckSellingGump(m_From));
                        }
                        if (i_BuyTickets <= 0)
                        {
                            return;
                        }
                        else if (i_BuyTickets >= 1000000)
                        {
                            m_From.SendMessage(32, "you can't buy more then 999,999 tickets at the same time");
                            return;
                        }
                        else
                        {
                            if (TokenSystem.TakePlayerTokens(m_From as PlayerMobile, (i_BuyTickets * i_TicketCost), true))
                            {
                                LotteryTicket lottery = new LotteryTicket();
                                lottery.DrawingNumber     = i_Drawing;
                                lottery.StartTicketNumber = i_Ticket;
                                lottery.EndTicketNumber   = (i_Ticket + i_BuyTickets - 1);
                                m_From.AddToBackpack(lottery);

                                i_Ticket = (i_Ticket + i_BuyTickets);
                                m_From.CloseGump(typeof(LadyLuckSellingGump));
                                m_From.SendMessage("You bought {0} lottery tickets.", i_BuyTickets);
                                i_Reward = (i_Reward + (i_BuyTickets * (i_TicketCost / 2)));
                            }
                        }
                    }
                }
            }
コード例 #2
0
        public override bool OnDragDrop(Mobile from, Item dropped)
        {
            CheckDrawingTime();
            Mobile       m      = from;
            PlayerMobile mobile = m as PlayerMobile;

            if (mobile != null)
            {
                if (dropped is LotteryTicket)
                {
                    LotteryTicket ticket = dropped as LotteryTicket;
                    if (((LotteryTicket)ticket).DrawingNumber == (i_Drawing - 1))                                                         //last drawing
                    {
                        if (((LotteryTicket)ticket).StartTicketNumber <= i_Winner && i_Winner <= ((LotteryTicket)ticket).EndTicketNumber) //winner
                        {
                            switch (Utility.Random(3))
                            {
                            case 0: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "I am very Pleased to Inform you that you have won!!!", mobile.NetState); break;

                            case 1: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "Congratulations!!! You have won!!!", mobile.NetState); break;

                            case 2: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "YAY! We have a winner!", mobile.NetState); break;
                            }
                            m.AddToBackpack(new TokenCheck(i_WinnerReward));
                            m.AddToBackpack(new FireworksWand());
                            if (m.Name == null)
                            {
                                s_WinnerName = "John Doe";
                            }
                            else
                            {
                                s_WinnerName = m.Name;
                            }
                            World.Broadcast(88, true, "{0} claimed {1} tokens from drawing {2},  Congratulations.", s_WinnerName, i_WinnerReward, (i_Drawing - 1));
                            World.Broadcast(66, true, "Drawing number {0} will take place at {1}.", i_Drawing, dt_NextDrawing);
                            new Celebration(m.Map, m).Start();
                        }
                        else                         //looser
                        {
                            switch (Utility.Random(3))
                            {
                            case 0: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "Sorry, The Gods are not with you today. Try again next time.", mobile.NetState); break;

                            case 1: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "You are not a winner.", mobile.NetState); break;

                            case 2: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "You are a big Loser!", mobile.NetState); break;
                            }
                        }
                        dropped.Delete();
                        return(true);
                    }
                    else if (((LotteryTicket)ticket).DrawingNumber == i_Drawing)                       //drowing isn't over
                    {
                        switch (Utility.Random(3))
                        {
                        case 0: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "I am sorry, the drawing is not yet closed.", mobile.NetState); break;

                        case 1: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "This drawing is not over yet.", mobile.NetState); break;

                        case 2: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "Please come back at the end of drawing to see if you have won.", mobile.NetState); break;
                        }
                    }
                    else                     //old drawings
                    {
                        switch (Utility.Random(3))
                        {
                        case 0: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "I am very sorry, That ticket has expired.", mobile.NetState); break;

                        case 1: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "That Ticket is no longer any good.", mobile.NetState); break;

                        case 2: this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "Do not try to fool me With outdated Tickets!!!", mobile.NetState); break;
                        }
                        dropped.Delete();
                    }
                    return(false);
                }
                else
                {
                    this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "I have no need of this!", mobile.NetState);
                }
            }
            return(false);
        }
コード例 #3
0
            public override void OnResponse(NetState state, RelayInfo info)
            {
                if (m_From.Deleted)
                {
                    return;
                }
                if (info.ButtonID == 2)
                {
                    TextRelay tr_BuyTickets = info.GetTextEntry(1);
                    if (tr_BuyTickets != null)
                    {
                        int i_BuyTickets = 0;
                        try
                        {
                            i_BuyTickets = Convert.ToInt32(tr_BuyTickets.Text, 10);
                        }
                        catch
                        {
                            m_From.SendMessage("Please make sure you wrote only numbers.");
                            m_From.SendGump(new LadyLuckSellingGump(m_From));
                        }
                        if (i_BuyTickets <= 0)
                        {
                            return;
                        }
                        else if (i_BuyTickets >= 1000000)
                        {
                            m_From.SendMessage(32, "you can't buy more then 999,999 tickets at the same time");
                            return;
                        }
                        else
                        {
                            Item[] items = m_From.Backpack.FindItemsByType(typeof(TokenLedger));

                            foreach (TokenLedger tl in items)
                            {
                                if (tl.Owner == m_From.Serial)
                                {
                                    if (tl.Tokens >= (i_BuyTickets * i_TicketCost))
                                    {
                                        if (!(tl.Deleted))
                                        {
                                            tl.Tokens = (tl.Tokens - (i_BuyTickets * i_TicketCost));

                                            LotteryTicket lottery = new LotteryTicket();
                                            lottery.DrawingNumber     = i_Drawing;
                                            lottery.StartTicketNumber = i_Ticket;
                                            lottery.EndTicketNumber   = (i_Ticket + i_BuyTickets - 1);
                                            m_From.AddToBackpack(lottery);

                                            i_Ticket = (i_Ticket + i_BuyTickets);
                                            m_From.CloseGump(typeof(LadyLuckSellingGump));
                                            m_From.SendMessage("You bought {0} lottery tickets.", i_BuyTickets);
                                            i_Reward = (i_Reward + (i_BuyTickets * (i_TicketCost / 2)));
                                        }
                                        else
                                        {
                                            m_From.PlaySound(1069);                                             //play Hey!! sound
                                            m_From.SendMessage("Hey, don't try to rob the bank!!!");
                                            m_From.SendGump(new LadyLuckSellingGump(m_From));
                                        }
                                        return;
                                    }
                                }
                            }
                            m_From.SendMessage("Please make sure you have your token ledger with enough tokens in your backpack.");
                            return;
                        }
                    }
                }
            }