Page 1 of 2
Implementing: Channels
Posted: Wed Mar 14, 2012 9:59 pm
by Scatman
Chat Channel Progress:
Last Edit: 3/18/2012 6:30pm
Bold items are new
So far these features work:
Getting a list of world channels you may join (based on your level, class, and race, and generic channels)
Joining a channel
Leaving a channel
Talking in channel
Creating custom channels with/without passwords
Still left to do:
Nothing? Bug fixes?
Thanks Xinux for doing a few collects for me!
Re: Implementing: Channels
Posted: Thu Mar 15, 2012 6:46 am
by John Adams
Awesome work, both of yas.
Scat, how are we providing a list of "World Channels"? Will there be a table in the DB for channels defined by the server admin? While I do not mind hard-coding the SOE defaults, I think they should be optional to the server admin themselves. Unless of course the client (UI) will not show "just any channels as world channels" ie., locked to Guardian, Level 1-10 as far as display goes. If the channels can be named any-damn-thing-we-want, and displayed in the World Channels dialog of Chat Settings, perhaps we can offer this customization, too?
Edit: Will this also allow for users to create "Custom Channels", and our final channel type to add, Raid? I know we don't raid yet, but as long as "we're" in the chat mode, might as well add the channel option
I thought I'd try something new, and change everything *before* you finished your work this time

Re: Implementing: Channels
Posted: Thu Mar 15, 2012 6:49 am
by John Adams
PS: you do have to commit your vcxproj file when committing new files to the project, otherwise we don't compile. I think the proj files are safe to commit now with VS2010 since our custom settings should be in vcxproj.user. Otherwise, we'll just need to be smart, use the /trunk/dev configs like good team mates and there will be no big issue with custom build locations

Re: Implementing: Channels
Posted: Thu Mar 15, 2012 9:48 am
by Scatman
the global channels ( guardian, halfling, auction, level_*, etc) are all hardcoded at the moment. Each channel can have a level restriction, a list of allowed races, and a list of allowed classes to determine who can join what. So although they are loaded from memory, they are still very dynamic in choosing who can join. So if you wanted to put the world channels into the db it would require no code changes except for code to load them.
When im done this will allow users to create custom channels, yes. You cannot create or delete world channels.
I think itd be better to handle raid chat in the raid object itself like how guilds do it.
Andd doh on the project file. Ill remember for next time.
Did i miss anything?

Re: Implementing: Channels
Posted: Thu Mar 15, 2012 12:28 pm
by Scatman
So this is interesting, I just logged into my server today and I auto-joined the channels I had joined last night when I did my last test for the night. It appears the client keeps track of what channels you're in? Does anyone know?
Re: Implementing: Channels
Posted: Thu Mar 15, 2012 12:39 pm
by Scatman
Question: Since I am having trouble with my LaunchPad (somehow it got reverted to 2008's), is there a message when someone else joins and leaves a channel? I believe there is a packet for it.
Re: Implementing: Channels
Posted: Thu Mar 15, 2012 1:04 pm
by alfa
Channels are store in client, like voice channels, mayby in socialscache.dat file.
The is no message when user come in channel as far I know.
There is a list of channels commands
/# Tell command for channel number assignment (better than /tellchannel #)
/channellist Lists all channels currently in
/joinchannel Enter a room (or create if doesn't exist)
/leaveall Exit all channels you are currently in
/leavechannel Leave a room (game/world rooms)
/tellchannel Send message to room specified. Alias: /csay
/whochannel # Lists all users in specified channel.
Re: Implementing: Channels
Posted: Thu Mar 15, 2012 1:07 pm
by xinux
Don't quote me but there is a packet sent when someone enters and leaves but i don't remember seeing a message client side in the chat box.
Re: Implementing: Channels
Posted: Thu Mar 15, 2012 1:08 pm
by Scatman
Thanks guys, that's all I needed to know and more!
Re: Implementing: Channels
Posted: Sat Mar 17, 2012 4:46 pm
by John Adams
Awesome work, Scatto. This is a cool addition.
Re: Implementing: Channels
Posted: Sat Mar 17, 2012 4:57 pm
by John Adams
Scatman wrote:Andd doh on the project file. Ill remember for next time.
Scat, maybe you know... VS2010 has the vcxproj.user file, and sometimes it puts your custom build path into there, and sometimes into our main vcxproj file. Any idea why this is so f'n inconsistent?
Devs, when you fetch latest SVN, you'll need to reset the World Debug
Output Directory back to
$(SolutionDir)worldserver\ (if you use the Dev Team solution)
Re: Implementing: Channels
Posted: Sun Mar 18, 2012 9:40 am
by Scatman
Yeah I thought all of the custom build paths went into the project file itself, kind of annoying. But after you told me I had to commit it I did, so sorry about that

I really wish they would put those paths into a different file.
Re: Implementing: Channels
Posted: Sun Mar 18, 2012 1:58 pm
by John Adams
No worries at all, I'd rather you commit the proj than have people wondering why they cannot build.

Cuz, we have sooo many devs and all
Please do commit it. Promise, no one will come to the forums and rant about how inconvenient it is they spent 9 days rebuilding the solution because someone dared commit a proj
(no, i am never gonna let that go haha)
Re: Implementing: Channels
Posted: Sun Mar 18, 2012 3:42 pm
by Scatman
Ok I think everything is done for channels. Let me know if there are any problems or something I missed. But my code never has bugs so goodluck! /sarcasm off
Edit:
Oh, did we want to do anything with the database for channels?
Re: Implementing: Channels
Posted: Tue Mar 20, 2012 7:11 am
by John Adams
Scatman wrote:But my code never has bugs so goodluck!
You're right, your code doesn't have bugs, just missing ")" so it doesn't compile

j/k!
Scatman wrote:Oh, did we want to do anything with the database for channels?
I (personally) would prefer to load channel names/restrictions from a table in the World DB, so each world can have their own World channel setup. Just more customizable that way. Nothing we have to do right now, if you'd prefer. You got the default channels working, and that's the big ticket item.
If you chose to tackle this now, we could offer the default world channel configs via PatchServer so all worlds at least have the default ones. Admins could then modify/add/remove whatever they want for a custom experience.