RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Resource icon

[2.x] BoxerChat 1.5

No permission to download

nikkor1132

Sorceror
Sadly right now I don't have much free time myself. I'll see what I can do though.

Just a idea here.
But would it not be nice to also make a event channel?
So when doing events players can just change to that channel and not get all the other talking from other players.
Just a idea a few of my players ran by me.
 

Lanking

Traveler
Hi, Thank you a ton for this useful tools, could you check the errors as below once I start my own shard after dropping whole folder into the folder you pointed out?

====================================================================

Errors:
+ Customs/BoxerChat/Chat.cs:
CS0234: Line 127: The type or namespace name 'Tools' does not exist in the n
amespace 'Bittiez' (are you missing an assembly reference?)
+ Customs/BoxerChat/Init.cs:
CS0234: Line 36: The type or namespace name 'Tools' does not exist in the na

mespace 'Bittiez' (are you missing an assembly reference?)
CS0103: Line 36: The name 'Tools' does not exist in the current context
+ Customs/BoxerChat/OnlineGump.cs:
CS0234: Line 39: The type or namespace name 'Tools' does not exist in the na
mespace 'Bittiez' (are you missing an assembly reference?)
 

Formosa

Traveler
Will the author

PlayerMobile.cs
Add this line:
Bittiez.BoxerChat.Chat.SendGump((int)Bittiez.BoxerChat.CHAN.WORLD, this);

Correctly guide the goals?
I do not know increased to line
 

Miracle99

Squire
Does anyone know a way that the tab can be recolored to a different color when a new message comes in , if that tab is not your current tab?


Also , when I set the Reverse to false , so that the newest is at bottom. It works but the chat box is scrolling back up to the top, so you really cant see what anyway is saying.
 

Miracle99

Squire
Okay , found a way to do one of the things I wanted. Figured I would share.
Now if a Staff member types in staff tab then it will automatically set all online staff players tab to the Staff tab

In Chat.cs change

Code:
if (p.HasGump(typeof(ChatGump)))
                    {
                        CG = (ChatGump)p.FindGump(typeof(ChatGump));
                        CP = CG.PAGE;
                        if (CP == Page)
                        {
                            p.CloseGump(typeof(ChatGump));
                            p.SendGump(new ChatGump(p, CP));
                        }
                  }

to

Code:
if (p.HasGump(typeof(ChatGump) ))
                    {
                        CG = (ChatGump)p.FindGump(typeof(ChatGump));
                        CP = CG.PAGE;
                        if (CP == Page)
                        {
                            p.CloseGump(typeof(ChatGump));
                            p.SendGump(new ChatGump(p, CP));
                        }
                        else if ( CP != Page  && p.AccessLevel >= AccessLevel.Counselor )
                        {
                            p.CloseGump(typeof(ChatGump));
                            p.SendGump( new ChatGump(p, (int)CHAN.STAFF));
                        }
                    }
 

Talow

Sorceror
Okay , found a way to do one of the things I wanted. Figured I would share.
Now if a Staff member types in staff tab then it will automatically set all online staff players tab to the Staff tab

In Chat.cs change

Code:
if (p.HasGump(typeof(ChatGump)))
                    {
                        CG = (ChatGump)p.FindGump(typeof(ChatGump));
                        CP = CG.PAGE;
                        if (CP == Page)
                        {
                            p.CloseGump(typeof(ChatGump));
                            p.SendGump(new ChatGump(p, CP));
                        }
                  }

to

Code:
if (p.HasGump(typeof(ChatGump) ))
                    {
                        CG = (ChatGump)p.FindGump(typeof(ChatGump));
                        CP = CG.PAGE;
                        if (CP == Page)
                        {
                            p.CloseGump(typeof(ChatGump));
                            p.SendGump(new ChatGump(p, CP));
                        }
                        else if ( CP != Page  && p.AccessLevel >= AccessLevel.Counselor )
                        {
                            p.CloseGump(typeof(ChatGump));
                            p.SendGump( new ChatGump(p, (int)CHAN.STAFF));
                        }
                    }

Just want to let you know an unintended side effect of this would be that if your staffer was typing in another tap, it will close it, and then reopen on another tab, and the person will have to start what they where typing on the first tab all over again.
 

Miracle99

Squire
Just want to let you know an unintended side effect of this would be that if your staffer was typing in another tap, it will close it, and then reopen on another tab, and the person will have to start what they where typing on the first tab all over again.
Thanks Talow,
I actually got rid of the Input Chat Box so players and staff just use the [ commands

But now I am running into another issue not associated with this.
I wanted to have the SHOW CHAT stay minimized , which I figured out but when doing some testing I realized that at the very end of the Chat.Cs file
Code:
else
                    {
                        if (SETTINGS.Send_Message_As_SysMessage_If_Gump_Closed && CS.Messages.Count > 0)
                            p.SendMessage( "<WORLD> " + (CS.Messages[CS.Messages.Count - 1].MOBILE.RawName + "  :  " + CS.Messages[CS.Messages.Count - 1].MESSAGE));
                    }
If someone has their chat box minimized, and a staff or guild type something, then the last message is said again on their screen. I feel like I could put another if statement that if its minimized and message is coming from staff

Also if your minimzed and the a guildmember types something the guild chat doesnt show up , but instead its the last world message
 

Talow

Sorceror
Code:
if (SETTINGS.Send_Message_As_SysMessage_If_Gump_Closed && CS.Messages.Count > 0)

Yeah just find the minimized var, then add the check to be sure that it is closed not just minimized.
 

Bittiez

Sorceror
Does anyone know a way that the tab can be recolored to a different color when a new message comes in , if that tab is not your current tab?


Also , when I set the Reverse to false , so that the newest is at bottom. It works but the chat box is scrolling back up to the top, so you really cant see what anyway is saying.
That's the reason I included the reverse option, because with RunUO and UO's limitations, you can't auto scroll gumps =/
 

Bittiez

Sorceror
Does anyone know a way that the tab can be recolored to a different color when a new message comes in , if that tab is not your current tab?


Also , when I set the Reverse to false , so that the newest is at bottom. It works but the chat box is scrolling back up to the top, so you really cant see what anyway is saying.
I like this idea, however to reduce potential lag, this is not currently a feature that is available, sorry.
 

Bittiez

Sorceror
Bittiez updated BoxerChat with a new update entry:

Bug fixes and feature request changes

-Removed [m as a default command prefix.
-Added option to disable the chat input box completely.
-Added option to disable the entire BoxerChat system.
-Fixed the chat messages when the gump is closed, it will not work for guild messages though, but it shouldn't display messages when it's not supposed to anymore.


Replace all files, if you want to keep your settings file add these lines:
C#:
public static bool BoxerChat_Enabled = true;
public static bool Chat_Input_Gump_Enabled = true;...

Read the rest of this update entry...
 

Miracle99

Squire
Bittiez,

Great update but there is a mistake in the when minimized for staff.

Correction is as follows, You were still calling the CS.Messages even though it was a staff message that needed to be sent to the Staff.

Code:
if ((CS.LastMessage == CHAN.STAFF) && (CS.Staff_Messages.Count > 0) && (p.AccessLevel == SETTINGS.Staff_Tab_Access_Level || p.AccessLevel > SETTINGS.Staff_Tab_Access_Level))
                                p.SendMessage(("<Staff Only> " + CS.Staff_Messages[CS.Staff_Messages.Count - 1].MOBILE.RawName + " : " + CS.Staff_Messages[CS.Staff_Messages.Count - 1].MESSAGE));

Also, Is there a way to do this same thing for guild messages. This is what I attempted so far and it works to send the last guild message when minimized but it sends it to everyone that is in a guild , not just my guildmembers. I saw how you pulled out for guild in the init.cs but I am unable to think about how to do it here to only send to the same guild people.

Code:
if(CS.LastMessage == CHAN.GUILD && CS.Guild_Messages.Count > 0 )
                                p.SendMessage(("<Guild Chat> " + CS.Guild_Messages[CS.Guild_Messages.Count - 1].MOBILE.RawName + " : " + CS.Guild_Messages[CS.Guild_Messages.Count - 1].MESSAGE));
 

Bittiez

Sorceror
Thanks for pointing out my error, ill have it fixed in the next release.
Next release also contains guild sysmessage if the gump isn't open.
 

tindo

Sorceror
Love the chat system. An issue I noticed. If you minimize the chatbox and then send a message using [c it opens a new chatbox window but still leaves the minimize window open as well. If you repeat this, you soon have multiple minimized boxer chats :)

Also, would like to see an option for the chatbox NOT to force open when you use [c and then a command to open the chatbox gump when you want it. This would allow players to close the chatbox and just send and receive the messages as a system message and not have to worry about the chatbox opening itself but still giving them a way to open the chatbox when desired.

P.S. I know you are busy, so I made the changes for my self and will post them here if you want to incorporate them or if someone else wants them.

In Chat.cs:
Code:
public static void On_Chat_Staff(CommandEventArgs e)
        {
            if (e.ArgString == null || e.ArgString == "")
            {
                if (SETTINGS.ONLINE_LIST_NO_TEXT)
                    e.Mobile.SendGump(new OnlineGump(e.Mobile));
                return;
            }
            Mobile Chatter = e.Mobile;
            string Message = e.ArgString.Trim();
            Init CS = Init.Chat_Server;
            CS.LastMessage = CHAN.STAFF;
            AddMessage(CS.Staff_Messages, Chatter, Message, 3);
            if (SETTINGS.SendGumpOnChat)
                {
                    SendGump((int)CHAN.STAFF, Chatter); //Send the chatter the gump if it is closed
                }
        }
 
        public static void On_Chat_World(CommandEventArgs e)
        {
            if (e.ArgString == null || e.ArgString == "")
            {
                if (SETTINGS.ONLINE_LIST_NO_TEXT)
                    e.Mobile.SendGump(new OnlineGump(e.Mobile));
                return;
            }
            Mobile Chatter = e.Mobile;
            string Message = e.ArgString.Trim();
            Init CS = Init.Chat_Server;
            CS.LastMessage = CHAN.WORLD;
            AddMessage(CS.Messages, Chatter, Message, 1);
            if (SETTINGS.SendGumpOnChat)
                {
                    SendGump((int)CHAN.WORLD, Chatter); //Send the chatter the gump if it is closed
                }
        }
 
        public static void On_Chat_Guild(CommandEventArgs e)
        {
            if (e.ArgString == null || e.ArgString == "")
            {
                if (SETTINGS.ONLINE_LIST_NO_TEXT)
                    e.Mobile.SendGump(new OnlineGump(e.Mobile));
                return;
            }
            Mobile Chatter = e.Mobile;
            if (Init.Show_For_Guild(Chatter))
            {
                string Message = e.ArgString.Trim();
                Init CS = Init.Chat_Server;
                CS.LastMessage = CHAN.GUILD;
                AddMessage(CS.Guild_Messages, Chatter, Message, 2);
                if (SETTINGS.SendGumpOnChat)
                    {
                        SendGump((int)CHAN.GUILD, Chatter); //Send the chatter the gump if it is closed
                    }
            }
        }

In SETTINGS.cs:
Code:
public static bool Chat_Input_Gump_Enabled = false; //Enable or disable the chat input gump(Not the chat gump itself, the mini chat box under it)
        public static bool REVERSE_MESSAGES = true;//Display newest messages at the top of the box if true
        public static bool Color_Names = true; //Color names based on the colors set below?
        public static bool Enable_World_Tab = true; //Enable the world tab?
        public static bool Enable_Guild_Tab = true; //Enable the guild tab?
        public static bool Enable_Staff_Tab = true; //Enable the staff tab?
        public static bool Open_On_Login = true; //Open the chat dialog on login?
        public static bool Disable_Guild_When_Not_In_Guild = true; //Disable the guild for players not in a guild
        public static bool SendGumpOnChat = true; //Disable the auto send of a gump when a chat sent

And for the issue with the minimized multiple gumps, in ChatGump.cs:
Code:
case 1004:
                    {
                        if (p.HasGump(typeof(ChatGump)))
                            p.CloseGump(typeof(ChatGump));
                        if (p.HasGump(typeof(ChatBox)))
                            p.CloseGump(typeof(ChatBox));
                        if (p.HasGump(typeof(MinChatGump)))
                            p.CloseGump(typeof(MinChatGump));
                        p.SendGump(new MinChatGump(p, CHANPAGE));
                        break;
 

shtoink

Sorceror
How does a player reopen the chat without logging if they close it? Should I just make the gump not closable?
 
Top