protected override void OnTarget(Mobile from, object targeted) { PlayerMobile pm = targeted as PlayerMobile; if (pm == null) { from.SendMessage("Speech logs aren't supported on that target."); } else if (from != targeted && from.AccessLevel <= pm.AccessLevel && from.AccessLevel != AccessLevel.Owner) { from.SendMessage("You don't have the required access level to view {0} speech log.", pm.Female ? "her" : "his"); } else if (pm.SpeechLog == null) { from.SendMessage("{0} has no speech log.", pm.Female ? "She" : "He"); } else { CommandLogging.WriteLine(from, "{0} {1} viewing speech log of {2}", from.AccessLevel, CommandLogging.Format(from), CommandLogging.Format(targeted)); Gump gump = new SpeechLogGump(pm, pm.SpeechLog); from.SendGump(gump); } }
public override void OnResponse( NetState state, RelayInfo info ) { if ( info.ButtonID != 0 && PageQueue.List.IndexOf( m_Entry ) < 0 ) { state.Mobile.SendGump( new PageQueueGump() ); state.Mobile.SendMessage( "That page has been removed." ); return; } switch ( info.ButtonID ) { case 0: // close { if ( m_Entry.Handler != state.Mobile ) { PageQueueGump g = new PageQueueGump(); g.SendTo( state ); } break; } case 1: // go to sender { Mobile m = state.Mobile; if ( m_Entry.Sender.Deleted ) { m.SendMessage( "That character no longer exists." ); } else if ( m_Entry.Sender.Map == null || m_Entry.Sender.Map == Map.Internal ) { m.SendMessage( "That character is not in the world." ); } else { m_Entry.AddResponse( state.Mobile, "[Go Sender]" ); m.MoveToWorld( m_Entry.Sender.Location, m_Entry.Sender.Map ); m.SendMessage( "You have been teleported to that page's sender." ); Resend( state ); } break; } case 2: // go to handler { Mobile m = state.Mobile; Mobile h = m_Entry.Handler; if ( h != null ) { if ( h.Deleted ) { m.SendMessage( "That character no longer exists." ); } else if ( h.Map == null || h.Map == Map.Internal ) { m.SendMessage( "That character is not in the world." ); } else { m_Entry.AddResponse( state.Mobile, "[Go Handler]" ); m.MoveToWorld( h.Location, h.Map ); m.SendMessage( "You have been teleported to that page's handler." ); Resend( state ); } } else { m.SendMessage( "Nobody is handling that page." ); Resend( state ); } break; } case 3: // go to page location { Mobile m = state.Mobile; if ( m_Entry.PageMap == null || m_Entry.PageMap == Map.Internal ) { m.SendMessage( "That location is not in the world." ); } else { m_Entry.AddResponse( state.Mobile, "[Go PageLoc]" ); m.MoveToWorld( m_Entry.PageLocation, m_Entry.PageMap ); state.Mobile.SendMessage( "You have been teleported to the original page location." ); Resend( state ); } break; } case 4: // handle page { if ( m_Entry.Handler == null ) { m_Entry.AddResponse( state.Mobile, "[Handling]" ); m_Entry.Handler = state.Mobile; state.Mobile.SendMessage( "You are now handling the page." ); } else { state.Mobile.SendMessage( "Someone is already handling that page." ); } Resend( state ); break; } case 5: // delete page { if ( m_Entry.Handler == null ) { m_Entry.AddResponse( state.Mobile, "[Deleting]" ); PageQueue.Remove( m_Entry ); state.Mobile.SendMessage( "You delete the page." ); PageQueueGump g = new PageQueueGump(); g.SendTo( state ); } else { state.Mobile.SendMessage( "Someone is handling that page, it can not be deleted." ); Resend( state ); } break; } case 6: // abandon page { if ( m_Entry.Handler == state.Mobile ) { m_Entry.AddResponse( state.Mobile, "[Abandoning]" ); state.Mobile.SendMessage( "You abandon the page." ); m_Entry.Handler = null; } else { state.Mobile.SendMessage( "You are not handling that page." ); } Resend( state ); break; } case 7: // page handled { if ( m_Entry.Handler == state.Mobile ) { m_Entry.AddResponse( state.Mobile, "[Handled]" ); PageQueue.Remove( m_Entry ); m_Entry.Handler = null; state.Mobile.SendMessage( "You mark the page as handled, and remove it from the queue." ); PageQueueGump g = new PageQueueGump(); g.SendTo( state ); } else { state.Mobile.SendMessage( "You are not handling that page." ); Resend( state ); } break; } case 8: // Send message { TextRelay text = info.GetTextEntry( 0 ); if ( text != null ) { m_Entry.AddResponse( state.Mobile, "[Response] " + text.Text ); m_Entry.Sender.SendGump( new MessageSentGump( m_Entry.Sender, state.Mobile.Name, text.Text ) ); //m_Entry.Sender.SendMessage( 0x482, "{0} tells you:", state.Mobile.Name ); //m_Entry.Sender.SendMessage( 0x482, text.Text ); } Resend( state ); break; } case 9: // predef overview { Resend( state ); state.Mobile.SendGump( new PredefGump( state.Mobile, null ) ); break; } case 10: // View Speech Log { Resend( state ); if ( m_Entry.SpeechLog != null ) { Gump gump = new SpeechLogGump( m_Entry.Sender, m_Entry.SpeechLog ); state.Mobile.SendGump( gump ); } break; } default: { int index = info.ButtonID - 100; ArrayList preresp = PredefinedResponse.List; if ( index >= 0 && index < preresp.Count ) { m_Entry.AddResponse( state.Mobile, "[PreDef] " + ((PredefinedResponse)preresp[index]).Title ); m_Entry.Sender.SendGump( new MessageSentGump( m_Entry.Sender, state.Mobile.Name, ((PredefinedResponse)preresp[index]).Message ) ); } Resend( state ); break; } } }
public override void OnResponse(NetState state, RelayInfo info) { if (info.ButtonID != 0 && PageQueue.List.IndexOf(m_Entry) < 0) { state.Mobile.SendGump(new PageQueueGump(state.Mobile)); state.Mobile.SendMessage("That page has been removed."); return; } switch (info.ButtonID) { case 0: // close { if (m_Entry.Handler != state.Mobile) { PageQueueGump g = new PageQueueGump(state.Mobile); g.SendTo(state); } break; } case 1: // go to sender { Mobile m = state.Mobile; if (m_Entry.Sender.Deleted) { m.SendMessage("That character no longer exists."); } else if (m_Entry.Sender.Map == null || m_Entry.Sender.Map == Map.Internal) { m.SendMessage("That character is not in the world."); } else { m_Entry.AddResponse(state.Mobile, "[Go Sender]"); m.MoveToWorld(m_Entry.Sender.Location, m_Entry.Sender.Map); m.SendMessage("You have been teleported to that page's sender."); Resend(state); } break; } case 2: // go to handler { Mobile m = state.Mobile; Mobile h = m_Entry.Handler; if (h != null) { if (h.Deleted) { m.SendMessage("That character no longer exists."); } else if (h.Map == null || h.Map == Map.Internal) { m.SendMessage("That character is not in the world."); } else { m_Entry.AddResponse(state.Mobile, "[Go Handler]"); m.MoveToWorld(h.Location, h.Map); m.SendMessage("You have been teleported to that page's handler."); Resend(state); } } else { m.SendMessage("Nobody is handling that page."); Resend(state); } break; } case 3: // go to page location { Mobile m = state.Mobile; if (m_Entry.PageMap == null || m_Entry.PageMap == Map.Internal) { m.SendMessage("That location is not in the world."); } else { m_Entry.AddResponse(state.Mobile, "[Go PageLoc]"); m.MoveToWorld(m_Entry.PageLocation, m_Entry.PageMap); state.Mobile.SendMessage("You have been teleported to the original page location."); Resend(state); } break; } case 4: // handle page { if (m_Entry.Handler == null) { m_Entry.AddResponse(state.Mobile, "[Handling]"); m_Entry.Handler = state.Mobile; state.Mobile.SendMessage("You are now handling the page."); } else { state.Mobile.SendMessage("Someone is already handling that page."); } Resend(state); break; } case 5: // delete page { if (m_Entry.Handler == null) { m_Entry.AddResponse(state.Mobile, "[Deleting]"); PageQueue.Remove(m_Entry); state.Mobile.SendMessage("You delete the page."); PageQueueGump g = new PageQueueGump(state.Mobile); g.SendTo(state); } else { state.Mobile.SendMessage("Someone is handling that page, it can not be deleted."); Resend(state); } break; } case 6: // abandon page { if (m_Entry.Handler == state.Mobile) { m_Entry.AddResponse(state.Mobile, "[Abandoning]"); state.Mobile.SendMessage("You abandon the page."); m_Entry.Handler = null; } else { state.Mobile.SendMessage("You are not handling that page."); } Resend(state); break; } case 7: // page handled { if (m_Entry.Handler == state.Mobile) { m_Entry.AddResponse(state.Mobile, "[Handled]"); PageQueue.Remove(m_Entry); m_Entry.Handler = null; state.Mobile.SendMessage("You mark the page as handled, and remove it from the queue."); PageQueueGump g = new PageQueueGump(state.Mobile); g.SendTo(state); } else { state.Mobile.SendMessage("You are not handling that page."); Resend(state); } break; } case 8: // Send message { TextRelay text = info.GetTextEntry(0); if (text != null) { m_Entry.AddResponse(state.Mobile, "[Response] " + text.Text); m_Entry.Sender.SendGump(new MessageSentGump(m_Entry.Sender, state.Mobile.Name, text.Text)); //m_Entry.Sender.SendMessage( 0x482, "{0} tells you:", state.Mobile.Name ); //m_Entry.Sender.SendMessage( 0x482, text.Text ); } Resend(state); break; } case 9: // predef overview { Resend(state); state.Mobile.SendGump(new PredefGump(state.Mobile, null)); break; } case 10: // View Speech Log { Resend(state); if (m_Entry.SpeechLog != null) { Gump gump = new SpeechLogGump(m_Entry.Sender, m_Entry.SpeechLog); state.Mobile.SendGump(gump); } break; } default: { int index = info.ButtonID - 100; ArrayList preresp = PredefinedResponse.List; if (index >= 0 && index < preresp.Count) { m_Entry.AddResponse(state.Mobile, "[PreDef] " + ((PredefinedResponse)preresp[index]).Title); m_Entry.Sender.SendGump(new MessageSentGump(m_Entry.Sender, state.Mobile.Name, ((PredefinedResponse)preresp[index]).Message)); } Resend(state); break; } } }
protected override void OnTarget( Mobile from, object targeted ) { PlayerMobile pm = targeted as PlayerMobile; if ( pm == null ) { from.SendMessage( "Speech logs aren't supported on that target." ); } else if ( from != targeted && from.AccessLevel <= pm.AccessLevel ) { from.SendMessage( "You don't have the required access level to view {0} speech log.", pm.Female ? "her" : "his" ); } else if ( pm.SpeechLog == null ) { from.SendMessage( "{0} has no speech log.", pm.Female ? "She" : "He" ); } else { CommandLogging.WriteLine( from, "{0} {1} viewing speech log of {2}", from.AccessLevel, CommandLogging.Format( from ), CommandLogging.Format( targeted ) ); Gump gump = new SpeechLogGump( pm, pm.SpeechLog ); from.SendGump( gump ); } }