home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Devil's Doorknob BBS Capture (1996-2003)
/
devilsdoorknobbbscapture1996-2003.iso
/
Dloads
/
WWIVMODS
/
MODSUNKN.ZIP
/
MERLIN9.MOD
< prev
next >
Wrap
Text File
|
1990-07-12
|
9KB
|
238 lines
Merlin #4 @6862
Mon Jul 09 10:21:50 1990
v1.0
Hello, and welcome to MERLIN9.MOD! What this mod does, is allow a user
to put in a code in a message or email that prints out a certain
statistic on a user. For example, if you type <CTRL>-<P><G>, your name will
appear. When someone else comes along to read it, THEIR name will appear!
Now, because this mod will work across the network, I've tried to make
it as compatible as possible with existing mods (namely that of P. Opus's
8MORECOL.MOD). This mod assumes that you have the 2 extra colors mod
in; if you do not, simply change every reference of '9' to '7'.
As usual with most of these mods, the author (me) takes no resposibility
what-so-ever if this mod causes your cat to jump on your keyboard and
delete every user you have or if your modem decides it doesn't like you
and fries itself, committing datacide...
Special thanks goes to ...
The users of the Educated Guess and the Downtown Tower --
for putting up with the BETA testing. Gee, do we ALL know
how it works now??? :)
PC Guru -- for the suggestions and help along the way.
Parker Prospect -- for the friendship. D.C. will never
be the same!
ALSO!!! To insure compatibility with EVERYONE, DO NOT, and I repeat DO
NOT, alter, add, or subtract from the letters below! You might not
realize what a disaster that might be! For example, let's say that I
use 'G' as the person's name, while Fred T. Smile down the street uses
'G' as the person's SL -- so, instead of printing the SL on my system,
it prints out the dude/tte's name. So, in order that everyone remain
compatible, I'm asking that everyone submit a change to me for
authorization -- I'll play the "standardizer" so that everyone keeps
compatible. I'll post updates of the "prinfo" routine regularly...
Just to cut down on things that are "system-specific", I've defined
the letter 'M' as the letter that every sysop can define on their system.
For example, I have two phone #'s -- a "phone" and a "voicephone".
<CTRL><P><M> on my system brings up your voicephone. On someone else's
system, <CTRL><P><M> might bring up the user's horoscope sign.
>>>> SEE THE ACCOMPANYING 'STANDARD.TXT' FOR CURRENT COMMAND SET <<<<
Thanks for the support and thanks for trying MERLIN9!
|\/|erlin
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
WANTED: Since I'm too lazy to do it, would someone PLEASE add an SL check
on this puppy. Seems a lot of users like to abuse this mod for like
the first few weeks, then it dies off. Thought maybe an SL check
(or even an AR) might be handy. If you do "patch" it, please send
me a copy and I'll credit YOU with the change.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|\/|erlin's Tower
WWIVlink: @16850 (That's right guys, another
WWIVnet: PENDING dual noded system!)
3/6/12/2400 8N1 TO BE 24 HOURS
(618)-473-2213 AT A DIFFERENT NUMBER!!!
1pm-4pm CT Mon-Fri
Running WWIV 4.11 (Reg #10354) EXPECTED DATE IS AUGUST 20th!
Featuring:
AUTOMATIC CALLBACK (for local users)
SysOp Autovalidation
Close to 300 WWIV Files
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
/***********************/
/* L E G E N D */
/***********************/
/* - = Deleted Line */
/* + = New Line */
/* # = Existing Line */
/* ! = Modified Line */
/* * = Search For Line */
/***********************/
Step -- #1
File -- FCNS.H
Routine -- <n/a>
Notes --
At the very end of the file, include this...
+ void prinfo(char ch); /* MERLIN9 -- utility.c */
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Step -- #2
File -- COM.C
Routine -- outchr
* if ((c >= '0') && (c <= '9')) /* This might be a 7 on your system */
# ansic(c - '0');
+ /* MERLIN 9 */
+ else if ((c >= 'G') && (c <= 'Z')) /* Allows for letters A through Z */
+ prinfo(c);
+ else if ((c >= 'g') && (c <= 'z')) {
+ c=upcase(c); /* Cap' it, then send it to prinfo() */
+ prinfo(c);
+ }
+ /* MERLIN 9 */
# return;
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Step -- #3
File -- UTILITY.C
Routine -- prinfo
Notes --
With a little adjustment, this routine could probably go
someplace else, but I thought this might be the most
appropriate place. Anyhow, just add this to the end...
Also, you may notice that I do a check for syscfg_no_alias...
if this is defined, the real name will actually be in
thisuser.name instead of thisuser.realname and the city/state
info will be located in thisuser.realname -- what a pain. You
may have to redo the latter if you played with your newuser()
routine.
/* MERLIN 9 */
/* prinfo() v1.1 */
void prinfo(char ch)
{
char s[81];
strcpy(s,"");
switch (ch) {
case 'G': /* User's Name */
sprintf(s,"%s",thisuser.name);
break;
case 'H': /* User's Real Name */
if (syscfg.sysconfig & sysconfig_no_alias)
sprintf(s,"%s",thisuser.name);
else
sprintf(s,"%s",thisuser.realname);
break;
case 'I':
itoa(thisuser.age,s,10); /* User's Age */
break;
case 'J':
sprintf(s,"%s",thisuser.note); /* User's Note */
break;
case 'K': /* User's City/State */
/* 1 */ if (syscfg.sysconfig & sysconfig_no_alias)
/* 2 */ sprintf(s,"%s",thisuser.realname);
/* 3 */ else
/* 4 */ sprintf(s,"%s",thisuser.citystate);
break;
/* How to config:
NO FROM Mod -- Delete lines #3 & #4
Aliases -- Delete lines #1, #2, #3 */
case 'L':
sprintf(s,"%d",usernum); /* User's Number */
break;
case 'M':
sprintf(s,"%s",thisuser.voicephone);
/*RESERVED FOR LOCAL SYSTEM'S USE ONLY!
Since I figured that everyone had something that they would
want in their spec's--I left this one OPEN for THEIR use.
If you think that it warrants to become standard, give a yell.
For my system, I have it defined as the voice phone #.
If you don't have anything to put here, then just delete
the above line.*/
break;
case 'N':
sprintf(s,"%s",thisuser.phone); /* User's phone number */
break;
case 'O':
itoa(thisuser.sl,s,10); /* User's SL */
break;
case 'P':
itoa(thisuser.dsl,s,10); /* user's DSL */
break;
case 'Q':
sprintf(s,"%.0f",thisuser.gold); /* User's GOLD */
break;
case 'R':
sprintf(s,"%s",syscfg.systemname); /* BBS System Name */
break;
case 'S': /* Pause */
pausescr();
break;
case 'T': /* Time */
strcpy(s,times());
break;
case 'U': /* Date */
strcpy(s,date());
break;
default:
break;
}
outstr(s);
}
/* MERLIN 9 */
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Step -- #4
File -- bbsutl.c
Routine -- inli
* case 16: /* Ctrl-P */
# if (cp<maxlen-1) {
# ch=getkey();
+ /* MERLIN 9 */
! if (((ch>='0') && (ch<='9')) || /* This might need to be a */
+ ((ch>='G') && (ch<='Z')) || /* '7' on your system */
+ ((ch>='g') && (ch<='z'))) {
# s[cp++]=3;
# s[cp++]=ch;
# if((ch>='0') && (ch<='9')) /* Again, may be a '7' */
# ansic(ch-'0');
+ else if ((ch>='G') && (ch<='Z'))
+ prinfo(ch);
+ else {
+ ch=upcase(ch);
+ prinfo(ch);
+ }
# }
+ /* MERLIN 9 */
# }
# break;
# case 9: /* Tab */
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
That's it. Just recompile and cross your fingers!