| QUOTE (Shariz @ Jun 28 2003, 10:47 AM) |
| Ps : Tu parles pas de l'animal, là? |
| CODE |
using System; using System.Collections; using Server.Mobiles; using Server.Gumps; using Server.Items; using Server.Network; namespace Server.Scripts.Commands { public class ServerWideChatGump : Gump { public static void Initialize() { Server.Commands.Register( "Chat", AccessLevel.Player, new CommandEventHandler( Chat_OnCommand ) ); } [Usage( "Chat" )] [Description( "Activates server-wide chat." )] private static void Chat_OnCommand( CommandEventArgs e ) { Mobile chatUser = e.Mobile; chatUser.CloseGump( typeof( ServerWideChatGump ) ); chatUser.SendGump( new ServerWideChatGump( chatUser, chatText, 0, 0 ) ); } private static ArrayList chatText = new ArrayList(); private string chatSend; public ServerWideChatGump( Mobile chatUser, ArrayList text, int x, int y ) : base( x, y ) { string sendText = null; if ( text != null ) { if ( text.Count > 20 ) text.Remove( text[0] ); for ( int i = ( text.Count - 1 ); i >= 0; --i ) chatSend += text[i] + "\n"; } AddPage(0); // Page 0 AddBackground( 80, 80, 600, 200, 0 ); AddImageTiled( 80, 80, 600, 200, 2624 ); AddImageTiled( 140, 236, 448, 20, 2604 ); AddAlphaRegion( 100, 100, 560, 160 ); AddImage( 30, 50, 10400); AddImage( 648, 50, 10410); AddLabel( 140, 80, 4, "Name:" ); AddLabel( 180, 80, 4, chatUser.Name ); AddLabel( 380, 80, 60, "Server Wide Chat" ); AddPage(1); // Page 1 AddButton( 600, 236, 4017, 4019, 1, GumpButtonType.Reply, 0 ); AddHtml( 100, 100, 560, 130, chatSend, false, true ); AddTextEntry( 140, 236, 448, 20, 1153, 0, sendText ); AddButton( 100, 236, 4029, 4031, 2, GumpButtonType.Reply, 0 ); } public override void OnResponse( Server.Network.NetState sender, RelayInfo info ) { Mobile chatUser = (Mobile) sender.Mobile; switch ( info.ButtonID ) { case 1: // Close Gump { chatUser.CloseGump( typeof ( ServerWideChatGump ) ); break; } case 2: { TextRelay text = info.GetTextEntry( 0 ); string sendText = Convert.ToString( text.Text ); if ( sendText != "" ) { string second = DateTime.Now.Second.ToString(); if ( second.Length < 2 ) second = "0" + second; chatText.Add( chatUser.Name.ToString() + " (" + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + second + "): " + sendText ); foreach ( NetState state in NetState.Instances ) { Mobile chatUserSend = state.Mobile; Gump[] gumps = state.Gumps; for ( int i = 0; i < gumps.Length; ++i ) { if ( gumps[i] is ServerWideChatGump ) { chatUserSend.CloseGump( typeof ( ServerWideChatGump ) ); chatUserSend.SendGump( new ServerWideChatGump( chatUserSend, chatText, gumps[i].X, gumps[i].Y ) ); } } } } else { chatUser.CloseGump( typeof ( ServerWideChatGump ) ); chatUser.SendGump( new ServerWideChatGump( chatUser, chatText, X, Y ) ); } break; } } } } } |