Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Due to spam on this forum, all posts now need moderator approval.
Entire forum
➜ SMAUG
➜ Running the server
➜ clans problems
It is now over 60 days since the last post. This thread is closed.
Refresh page
Pages: 1 2
Posted by
| Blackhawk
USA (13 posts) Bio
|
Date
| Wed 09 May 2001 02:19 AM (UTC) |
Message
| I have a problem starting up a clan.
I set up a .clan file according to the help file, but i get a "Cannot open clan vault" for the clan. (I only have one) I have the clanstoreroom flag set on the room and the storeroom number set in the clans file.
A "clans" command doesn't show any clans.
| Top |
|
Posted by
| Blackhawk
USA (13 posts) Bio
|
Date
| Reply #1 on Fri 11 May 2001 05:52 PM (UTC) |
Message
| ooops, my mistake. "clans" doesn't show any, but "guilds" does. So, the real problem is opening the clan vaults.
Thanks! | Top |
|
Posted by
| Blackhawk
USA (13 posts) Bio
|
Date
| Reply #2 on Tue 15 May 2001 03:06 AM (UTC) |
Message
| alright, got the problems solved, just an oversight on my part. but i have another problem with the clans.
i have a guild set up for each class, and the clan vault works fine now, but how do you add a leader to the clan?
i added the name of the PC who should be the leader of the clan in the .clan file under Leader. and a "guilds" command shows the PC as the leader, but the PC can't get into his own guild and doesn't seem to be able to induct anyone. Is there anything else i should do to start a clan?
Thanks for all of your help!
| Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #3 on Tue 15 May 2001 05:50 AM (UTC) Amended on Tue 15 May 2001 05:53 AM (UTC) by Nick Gammon
|
Message
| OK, this has been quite tricky to work out. :)
First, if the clan shows up under "guilds" but not "clans" then it isn't really a clan, but a guild. The simplest thing to do is change the "Type" entry in the clan file to zero. A type of 13 is an "order" and 14 is a "guild".
Based on the instructions given on web page ...
http://www.cs.utk.edu/~london/smaug/
The easiest way to start a new clan is to make a small file like this:
#CLAN
Name Dragonslayer~
Filename dslay.clan~
End
#END
Then add this file name (dslay.clan) to the clans.lst file.
The type will default to zero, which is a normal clan, not an order or guild.
Then you can set a deity, leader and clan storeroom like this:
setclan dragonslayer deity Shaddai
setclan dragonslayer leader Nivek
setclan dragonslayer storage 1200
Each time you type one of these commands the clan file will be written out.
Now, typing "clans" (not "guilds") will list the clan in the clan list.
The storage rooms must have the "clanstoreroom" flag set (you can do this in the Area Editor).
Then, if you go to the clan storeroom, and put something into a container there, it will be placed into the clan vault and the clan "vault" file will be immediately written out/updated.
As for inducting people, it seems you have to be a clan member before you can induct other members (which seems fair enough), even if you are listed as the leader.
What I did to get that to work was, quit my character (so his player file was written out), and then edit the player file and add the line:
Clan Dragonslayer~
Then when I connected again with that player and typed:
who Dragonslayer
I was listed as a member of the clan.
Finally, I could induct another player, provided:
* I am level 50 or over
* I am in the same room as the other player
* The other player is level 10 or above
* The other player is not a higher level than me
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Blackhawk
USA (13 posts) Bio
|
Date
| Reply #4 on Thu 17 May 2001 09:30 PM (UTC) |
Message
| Thanks Nick, that worked like a charm. The clan vault problem i had already solved, but the rest was giving me a headache.
The default clan files had been set to Type 14, so i didn't change it. I couldn't find a list of what the different numbers of the clans types were.
Also, am i wrong to assume that Clans, Guilds, and Orders are different in name only? (and their Type numbers.)
I also wonder why the level restrictions. 10th level seems high to wait to induct someone. I was thinking more like 5th. but that doesn't matter as much.
Also, as a side note, i would think that naming a clan with the same name as a class would cause some confusion for the server.
| Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #5 on Fri 18 May 2001 02:53 AM (UTC) |
Message
| Here are the clan types, from mud.h file:
0 Plain
1 Vampire
2 Warrior
3 Druid
4 Mage
5 Celtic
6 Thief
7 Cleric
8 Undead
9 Chaotic
10 Neutral
11 Lawful
12 Nokill
13 Order
14 Guild
I think the first 12 are the same, except for type number. Order and Guild are used a bit differently. For example, if you use "clantalk" and the type number is 13 or 14 it won't let you.
I agree it would be confusing to have a clan and a guild of the same name, and it might not let you, as they are stored in the same list internally.
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Kris
USA (198 posts) Bio
|
Date
| Reply #6 on Mon 21 May 2001 09:56 PM (UTC) |
Message
| I noticed that, on the tutorial website you mentioned from the smaug site, it seems that they haven't added the howto on adding channels yet. So.... How do I add a channel exactly? The reason I'm posting it in this subject is because I want to replace 'guildtalk' with a uniquely-named line for each guild (you may not understand why I wanna do this, but I'd like it better that way). I looked in the source code, but was unable to even add a channel. Furthermore, I want the function to do an ifcheck to see if a person is a member of a certain guild. For example, the guildtalk line for the 'Honored Aethians' guild may be something line 'honor' or something, i.e. Kris honors 'welcome to this guild' etc. Or if it's the 'We Suck' guild, then perhaps: Kris suckers 'what the heck kinda guild is this?!' etc. How would I accomplish this? | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #7 on Tue 22 May 2001 05:13 AM (UTC) Amended on Tue 22 May 2001 05:14 AM (UTC) by Nick Gammon
|
Message
| In mud.h there are defines for the various inbuilt channels:
#define CHANNEL_AUCTION BV00
#define CHANNEL_CHAT BV01
#define CHANNEL_QUEST BV02
#define CHANNEL_IMMTALK BV03
#define CHANNEL_MUSIC BV04
#define CHANNEL_ASK BV05
#define CHANNEL_SHOUT BV06
#define CHANNEL_YELL BV07
#define CHANNEL_MONITOR BV08
#define CHANNEL_LOG BV09
#define CHANNEL_HIGHGOD BV10
#define CHANNEL_CLAN BV11
#define CHANNEL_BUILD BV12
#define CHANNEL_HIGH BV13
#define CHANNEL_AVTALK BV14
#define CHANNEL_PRAY BV15
#define CHANNEL_COUNCIL BV16
#define CHANNEL_GUILD BV17
#define CHANNEL_COMM BV18
#define CHANNEL_TELLS BV19
#define CHANNEL_ORDER BV20
#define CHANNEL_NEWBIE BV21
#define CHANNEL_WARTALK BV22
#define CHANNEL_RACETALK BV23
#define CHANNEL_WARN BV24
#define CHANNEL_WHISPER BV25
#define CHANNEL_AUTH BV26
You could add more to that list, but you can only go up to BV31, as there are 32 bits in an int, and the list starts at BV00.
You probably need to add a bit of code to "talk_channel" in act_comm.c, look at the existing stuff for ideas.
Then add a new function like the "do_racetalk" function in the same file.
As for testing whether the player is in the clan/guild, you could do something like what I spotted in clans.c:
if ( ch->pcdata->clan->clan_type == CLAN_GUILD )
{
send_to_char( "This player does not belong to your guild!\n\r", ch );
return;
}
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Kris
USA (198 posts) Bio
|
Date
| Reply #8 on Tue 22 May 2001 07:43 PM (UTC) |
Message
| I got the guild line all set up and everything, and it works just fine. However, the ifcheck only checks to see if the person is in a guild. How do I check to see if a person is in a -specific- guild, i.e. Guild of Thieves, or Honored Aethians, or Poopy Guild, etc? I tried putting a testchar in the guild of mages, and that person can use the honor line. However, nobody else can see what he types on the honor line, and he doesn't see what they type. They see each other just fine, so I'm not worried about people not in the guild being able to see it.
Actually, I've been having a problem similar to that with the newbiechat (renamed it to 'newbie') line. I'm trying to set it up so anyone can use it. I removed the ifcheck in do_newbie, so a newbie can use it, but nobody else sees it, and the newbie doesn't see anything that's on the line. I couldn't find ANYTHING in the source code that was responsible for this. What should I do about those 2 problems? | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #9 on Tue 22 May 2001 09:46 PM (UTC) |
Message
| Problem 1. You are going to have to test the clan type, eg. ch->pcdata->clan->mainclan or ch->pcdata->clan
Problem 2. This will be resolved somewhere in talk_channel function which is in act_comm.c
Inside there is a loop, cycling through each player, like this:
for ( d = first_descriptor; d; d = d->next )
{
// work out what to send
}
Inside there, I think the important line is:
&& !IS_SET(och->deaf, channel)
This is testing to see if the player is "deaf" (ie. not listening) to that channel.
This bit is set by the "channels +newbie" command (see do_channels function).
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Kris
USA (198 posts) Bio
|
Date
| Reply #10 on Tue 29 May 2001 08:50 PM (UTC) |
Message
| Could you be more specific with your solution to Problem 1? I apologize, but I can't seem to figure out what I'm supposed to do and how that will check for a specifically-named guild. Thanks for your help :) | Top |
|
Posted by
| Kris
USA (198 posts) Bio
|
Date
| Reply #11 on Tue 29 May 2001 09:06 PM (UTC) |
Message
| Oh, and with problem 2, how do I just set newbie line so you're automatically able to hear it? There has to be somewhere in the source that determines what lines can (i.e. chat) be heard, and what lines can't (i.e. newbie). | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #12 on Wed 30 May 2001 11:50 PM (UTC) |
Message
|
Quote:
Could you be more specific with your solution to Problem 1? I apologize, but I can't seem to figure out what I'm supposed to do and how that will check for a specifically-named guild.
I assume you will have set up another enum for your clan in mud.h, eg.
typedef enum
{
CLAN_PLAIN, CLAN_VAMPIRE, CLAN_WARRIOR, CLAN_DRUID, CLAN_MAGE, CLAN_CELTIC,
CLAN_THIEF, CLAN_CLERIC, CLAN_UNDEAD, CLAN_CHAOTIC, CLAN_NEUTRAL, CLAN_LAWFUL,
CLAN_NOKILL, CLAN_ORDER, CLAN_GUILD,
CLAN_MYCLAN // add here
} clan_types;
Then you test for that clan number:
if (ch->pcdata->clan->clan_type == CLAN_MYCLAN)
blah
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #13 on Wed 30 May 2001 11:52 PM (UTC) |
Message
|
Quote:
Oh, and with problem 2, how do I just set newbie line so you're automatically able to hear it? There has to be somewhere in the source that determines what lines can (i.e. chat) be heard, and what lines can't (i.e. newbie).
To make the newbie channel available you would do this somewhere relevant (eg. as they connect, or when they create a new character):
REMOVE_BIT( ch->deaf, CHANNEL_NEWBIE);
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Kris
USA (198 posts) Bio
|
Date
| Reply #14 on Fri 01 Jun 2001 12:14 AM (UTC) |
Message
| The solution for problem 1 worked :)
However, I tried putting
REMOVE_BIT( ch->deaf, CHANNEL_NEWBIE);
in several places in comm.c (the file that contains stuff for newly created chars). It still doesn't work. The person can use the newbie line, and can hear himself using it. Other people can hear him using it. However, if anyone else uses the newbie line, even though they hear each other, the newbie does not hear it. | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
47,408 views.
This is page 1, subject is 2 pages long: 1 2
It is now over 60 days since the last post. This thread is closed.
Refresh page
top