AOH :: MODNET3.TXT

MODNET WWIV mods, version 3

Crazy Slots Download


*******************************************************************************
*                  Modifications Net Compilation Release 3                    *
*                                                                             *
* Compiled by MrBill (WWIVnet Address 1 @ 7300)                               *
* of MrBill's Abode (the original) 703-369-6140                               *
*******************************************************************************

	Hey kids, it's time for the MrBill show! Oh noooooooooooooooooooooooo!
Don't worry, i was kidding. Here's the ModNet3 file for all of you who don't
read or subscribe to the WWIV Modifications Net Sub. Hope there's some stuff 
in you like. There's some good stuff here, but the sub has been alittle (ok,
VERY) slow recently and not much code is beign posted. For example, for me to
get this small file out, i went through a little over 400 messages i believe.
So let's see some more stuff!

Me Again
08/18/89


p.s. -- Someone please write Peter Norton and tell him he needs to add a 
centering command to his editor!

Me YET Again

_______________________________________________________________________________

Post Logon Ratio Mod
Name: Allen #1 @3455
Date: Sun Jun 18 15:29:08 1989

            *************************************
            *        Post Logon Mod             *
            *        By Allen 1@3455            *
            *     Modem Madness Rehab Center    *
            *         St. Louis, Mo             *
            *          314-343-9736             *
            *************************************




       This mod will show your users what their Post Logon Ratio is
   When they logon or if they look at their information. I wrote this
   to encourage the users to post to keep their ratios at or above a given
   level. I have it set at .300 which is 1 post for every 3 logons, but could
   be set to anything that you wish. It does not do anything if their
   ratio falls below a certain level.

       The mod is easy to install just follow the steps outlines below
   adding the code where necessary.

   ***************************************************************************
                               Step 1

   In BBSUTIL.C search for the print("Software is ",VERSION_NUMBER,""):
   and add the following just above it.

   sprintf(s,"%-6.3f",pratio());                    */add/*
  print("Your Post Logon Ratio is ",s,"");          */add/*
  pl("The Required Post Logon Ratio is .300");      */add/*


  ****************************************************************************
                              Step 2

  In BBSUTIL.C search for void your_info() and add the following lines in
  that are marked add.

  itoa((int)thisuser.msgpost,s,10);
  print("                   Messages posted : ",s,"");
  itoa((int)(thisuser.emailsent+thisuser.feedbacksent+thisuser.emailnet),s,10);
  print("                   E-mail sent     : ",s,"");
  itoa((long) ((thisuser.timeon+timer()-timeon)/60.0),s,10);
  print("                   Time spent on   : ",s," Minutes","");
  {                                                                */add/*
  sprintf(s,"%-6.3f",pratio());                                    */add/*
  print("                   Post Logon Ratio: ",s,"");             */add/*
  pl("                   Required Ratio  : .300");                 */add/*
  }                                                                */add/*

  ****************************************************************************
                             Step 3

  Now in UTILITY.C add the following block of code to the end.

  float pratio()


{
  double s;

  s=((float) thisuser.msgpost) / ((float)thisuser.logons);
  if (s>99.998)
     s=99.998;
  return(s);

  }

  ****************************************************************************
                            Step 4

   In FCHS.H add the following somewhere. Really doesn't make any difference
   where it is is added as long as it is there.

   float pratio()

   ***************************************************************************
                             Step 5

    Now press 'F9' and go get a beer or something while the whole BBS
    recompiles

    I wrote this a a function so it could be called from anywhere in the BBS
    and the code wouldn't have to be written again to get the results.

    I have been using this on my BBS with no problems. But as with all mods
    I have noway of knowing what other mods you have installed that may for
    some reason conflict with this one so I take no responsibility for what
    might happen when installing this one.

    If you have any comments or sugestion you can e-mail me at 1@3455 or
    call my board Modem Madness Rehab Center
                  (314) 343-9736

                         Allen
                         1@345
_______________________________________________________________________________

Jeff Dunning @ Farpoint Station - Try this and seeifit helps
Name: Justin Kiddingsly #61 @8103
Date: Sat Jun 17 21:38:41 1989



                   MODIFICATION FOR DELETION OF WWIVnet POSTS

                               By: T BADD #1 @8750


As most of you know, when you post a message on a WWIVnet sub-board, you can
[R]emove it from the local base, but it will still go out over the net. This
is because as soon as the message is saved, it is also saved in a file called
P0.NET. This file will hold all WWIVnet posts until you log off, at which
time it will be added to your main SXXXX.NET file to go to your connecting
system.

By adding this mod, your users will have the ability to delete their WWIVnet
posts that they have made THAT LOGON before they go out over the net. This
is particularly useful for those users who post ANSI screens that mess up.

I had originally run this as a door, but found that many of the users didn't
want to use it because running a door takes away gold from them. So, I moved
it into the code itself, where it can be run from the main menu using the
//DN (Delete Net Post) command.

Mr. Bill is always saying that he would like new mods, no matter how small...
well, M.B., this may be a record holder!

In BBS.C, find the "void mainmenu()" procedure. Somewhere around the
"if ((strcmp(s,"UPLOAD")...etc commands, enter the following text:


  if (strcmp(s,"DN")==0) {
    strcpy(s,syscfg.datadir);
    strcat(s,"P0.NET");
    if (exists(s)) {
      full_external("LNET P0",0,1);
      sysoplog ("=%=%= Went into Delete Net Posts =%=%=");
      topscreen();
    } else {
    nl();
    prt(5,"You have no WWIVnet Posts going out this logon.");
    nl();
    }
  }


Re-compile, and you're finished! Pretty simple, huh? Of course, I would have
done this long ago, had I known what the LNET.EXE file did!

The only problem that I've had with this is that I don't know what menu (if
any) that LNET looks for. It gives you the commands available, along with a
"?", but it doesn't do anything. There's only 4 commands available:

[R]ead this message
[D]elete this message
[N]ext message
[Q]uit to Main Menu

If anyone knows what menu LNET looks for...please let me know. I just posted
a message with the commands with hopes (wishful thinking!) that my users
aren't too brain-dead to figure it out!

If you have only one main connection into the WWIVnet, you may also want to
create a sysop command that would allow you to edit any net posts that are
going to be sent. Just change the first line to:

  if ((strcmp(s,"SDN")==0) && (so())) {

Also replace any "P0" with "SXXXX" (where XXXX is the number of the node you
connect with for your main WWIVnet link.

Before I get anymore messages saying that it's facist to delete someones net
post, let me say that this should only be used to delete messages that are
either illegal in nature, or are something like a messed up ANSI screen.

If there are any questions...let me know. I can be reached by E-mailing
#1 @8750.

T BADD (05/08/89)
_______________________________________________________________________________

Directory Ratio Mod.
Name: Gord The Rogue #1 @7302
Date: Mon Jul 03 23:38:48 1989


                        Directory Ratio Mod v2.4
                             by R.W. Miller

  This is a very simple and straight forward system modification.  What it
does is allow you to assign a unique upload/download ratio for each and every
directory you have in your transfer area.  If like me you want to leave most
of the transfer area's ratio set to zero but want to put a lid on the abuse
of the game and gif sections this is a perfect little mod for that.

  My first version of this program used an external file to keep track of the 
informatio but after thinking about it for a little bit I realized that the 
directory type is not currently used.  After asking Wayne Bell and being told 
that this variable will NOT be used in the forseeable future I have since 
appropriated this variable for my use.

  So to use this mod you will go to directory edit routine either by using
the D from WFC or //diredit command.  Once there you select the directory you
wish to modify.  The very last entry is a 4 digit INTEGER labeled directory
type.  In this location enter your ratio in the form of 3 (THREE) digits.  For
example if you wanted a 4:1 ratio you would enter 250 (not .250 like in the
INIT program).  Please be sure that you enter three digits and that you do NOT
use a decimal point.  Once this value has been set the system will then check
to see if the user has sufficient ratio to download.  In the current setup
exempt users are still exempt and if you have your system ratio set to a value
that is higher than the directory ratio it will honor the system ratio.  So I
recommend that you set your system ratio to 0.000 (ZERO).

  There is one slight hitch to this program.  It would be possible for a user
to extract files and download using the temporary feature.  This has been
fixed by using the sysop's directory (directory number 0) as the value for 
both the sysop and temporary downloads.

  To install the mod do the following:

1. Search for void download_temp_arc()

2. After the int i,f,sent,abort; line add the following code:
  float dir_ratio;

  dir_ratio=directories[0].type;
  dir_ratio=dir_ratio/1000;

3. Step down to the if ((syscfg.req_ratio>0.0001) line and replace it with
   this if statement:
  if ((syscfg.req_ratio>0.0001) && (ratio()<syscfg.req_ratio) &&
    ((thisuser.exempt & exempt_ratio)==0) ||
    ((ratio() < dir_ratio) && (thisuser.exempt & exempt_ratio)==0)) {
    nl();
    nl();
    if (dir_ratio < syscfg.req_ratio) {
      dir_ratio=syscfg.req_ratio;
    }

4. Search down for void download()

5. After uploadsrec u; add the following:
  float dir_ratio;

  dir_ratio=directories[udir[curdir].subnum].type;
  dir_ratio=dir_ratio/1000;

6. Step down to the long if ((syscfg.req_ratio>0.0001) statement and 
   replace it with the following:
  if ((syscfg.req_ratio>0.0001) && (ratio()<syscfg.req_ratio) &&
    ((thisuser.exempt & exempt_ratio)==0) ||
    ((ratio() < dir_ratio) && (thisuser.exempt & exempt_ratio)==0)) {
    nl();
    nl();
    if (dir_ratio < syscfg.req_ratio) {
      dir_ratio=syscfg.req_ratio;
    }

7. Hit the F9 key to recompile xfer.c and you are up and running.

 If you have any questions or problems you can contact me at the NoName BBS
or through the net at 1@7302.  
_______________________________________________________________________________

Dir_Ratio mod addendum....
Name: Gord The Rogue #1 @7302
Date: Mon Jul 03 23:54:42 1989

As a follow up on my first post let me clarify about the value that needs to be
entered for the directory ratio.  I did not want to change the record structure
of WWIV as that quite often causes problems.  While you do not have to actually
enter 3 digits all the time please be aware that 250 is a 4:1 ratio and 25 is
a 40:1 ratio.  Be aware that the integer number you enter is going to be
divided by 1000 to arrive at the desired ratio.


Also to give the user some additional information you might want to include
the following in between steps 5 and 6.  Call this step 5a:


  sprintf(s,"The ratio level for this area is %5.3f",dir_ratio);
  prt(4,s);
  nl();
  sprintf(s,"Your current ratio is %5.3f",ratio());
  prt(4,s);
  nl();

Robert W. Miller
1@7302
Vint Hill Farms
Virginia
_______________________________________________________________________________

Dir Ratio Mod update (again).
Name: Gord The Rogue #1 @7302
Date: Fri Jul 07 12:15:38 1989


When I posted my dowload ratio mod I failed to include the code that modifies
the batch download routine.  Here it is:

1. Load XFER.C and search for void batchdl()

2. At the beginning of the void after the variables declarations add:

        float dir_ratio

3. Search down for rr=0; and add this after it:

        dir_ratio=directories[udir[curdir].subnum].type;
        dir_ratio=dir_ratio/1000;
        if ((syscfg.req_ratio>0.0001) && (ratio()<syscfg.req_ratio) ||
           (ratio() < dir_ratio))

4. Delete the if ((syscfg.req_ratio>0.0001) && (ratio()syscfg.req_ratio))
   line.  Or you can modify it to look like the last line in step 3.

5. Hit F9 to recompile and that should be it.

NOTE:  This is not a perfect mod to stop people from being able to download
       when they should not.  If the user has a very low transfer ratio and
       that ratio falls below the acceptable level this mod will abort the
       batch transfer IF the user is in a area that has a ratio.  If the user
       steps into another area they will be able to download the entire
       batch at the new areas ratio.  Of course once their transfer is done
       the mod will stop them from being able to download any additional
       files from these areas until they improve their ratio.  IF you have a
       problem with users finding this hole you can do one of two things.

First: You can set dir_ratio to some fixed value and delete the first line
       in step 3.

Second:Change the first line in line 3 to this:

        dir_ratio=directories[0].type;

        Which will then use the sysop value for batch downloads.

1@7302
Vint Hill Farms
Virginia
_______________________________________________________________________________

I believe....
Name: Fletcher Christian #72 @7311
Date: Sun Jul 02 10:59:29 1989
From: Eye in the Pyramid [703-534-9512]

    ...that person who asked for a mod that would limit the number of logons a 
user could have per day was not just talking about more than one a day....oh 
well, if who ever they were wanted that then here it is (very roughly)

  ++thisuser.logons;
  ++thisuser.logons;                                   /* SEARCH */
  if ((thisuser.ontoday>=4) && (thisuser.sl<=74)) {    /* ADD Line */
    prt(4,"You are only allowed to call");nl();        /* Add Line */
    prt(4,"3 times a day.");nl();                      /* Add Line */
    hangup=1;                                          /* Add Line */
  }

Put this in BBSUTL.C in void logon() and those people with SL's below 75 will 
only be allowed to call 3 times a day no matter what time limit they have.

Fletcher Christian
_______________________________________________________________________________

Reposting of //REN *.* as requested
Name: The Black Dragon #1 @2380
Date: Sun Jul 09 19:46:04 1989
From: Black Dragon Enterprises [213-470-6869]

The Black Dragon #1 @2380
Sun Jan 29 19:59:47 1989
Well, I got sick of the BBS only allowing me to change one filename or
description on the //REN xfer command.  So, below is my version which will
loop through all files if a pattern is given to the "File to rename:" prompt.
Just take the code below and replace the entire subroutine in XFER.C

        The Black Dragon.
        Black Dragon Enterprises.
=======================( Beginning of Modification )====================

void rename_file()
{
  char s[81],s0[81],s1[81],s2[81];
  int count,i;
  uploadsrec u;

  nl();
  nl();
  prt(2,"File to rename: ");
  input(s,12);
  if (!s[0])
    return;
  if (strchr(s,'.')==NULL)
    strcat(s,".*");
  align(s);
  dliscan();
  nl();
  count=0;
  i=recno(s);
  while ((i>0) && !hangup) {
    SETREC(i);
    read(dlf,(void *)&u,sizeof(uploadsrec));
    printfileinfo(&u);
    nl();
    prt(2,"New filename? ");
    input(s0,12);
    if (s0[0]) {
      align(s0);
      if (strcmp(s0,"        .   ")) {
        strcpy(s1,directories[udir[curdir].subnum].path);
        strcpy(s2,s1);
        strcat(s1,s0);
        if (exist(s1))
          pl("Filename already in use; not changed.");
        else {
          strcat(s2,u.filename);
          rename(s2,s1);
          if (exist(s1))
            strcpy(u.filename,s0);
          else
            pl("Bad filename.");
        }
      }
    }
    nl();
    pl("New description:");
    prt(2,": ");
    inputl(s0,58);
    if (s0[0]) {
      strcpy(u.description,s0);
    }
    SETREC(i);
    write(dlf,(void *)&u,sizeof(uploadsrec));
    i=nrecno(s,i);
    count++;
  }
  if (count) {
    sprintf(s,"%d file(s) found",count);
    pl(s);
    }
  else
    pl("No files found.");
  closedl();
}

=========================( End of Modification )========================
_______________________________________________________________________________

...And Justice For All!
Name: Wolverine #1 @6910
Date: Sun Jul 09 16:41:45 1989
From: Destination Unknown [609-486-7631]

                      The New User Questions Modification
                             By Wolverine 1@6910
                                609-486-7631

    OKay well, i was looking for a mod so i could ask my users questions, i 
didn't find anything except a questionairre but that thing was all screwed up, 
so i decided to make this VERY easy mod, to compensate for the loss. I know 
most of you could do this in your sleep, but no one had, so i did.
    What this is, is after a NEW user leaves feedback it will ask them 
questions, and depending on their answer it will e-mail the sysop and tell 
them the answer, i use this for asking users if they support Hacking or 
Phreaking, cause if they say no, then you cannot be held liable. Well here it 
is:
------------------------------------------------------------------------------- KEY
+ Add a this line
* See Note at bottom

First load up Newuser.c and do a Ctrl-Q-F, for 'strcpy(irt,"Validation 
Feedback.");' 

strcpy(irt,"Validation Feedback.");
byline[0]=0; *
email(1,0,1,0);
After that add this:
/*****************************Begin Mod*************************************/
  nl();
  nl();
  prt(3,"Do you support Hacking or Phreaking? ");
  if (yn()){
  sysoplog("+*+*+*+*+* Hacker/Phreaker");
  nl();
  pl("Explain your answer to the Fullest extent.");
  strcpy(irt," Hacking/Phreaking.");
  byline[0]=0; 
  email(1,0,1,0);
if thisuser.feedbacksent==1){
  sysoplog("*$*$*$*$* Aborted Hacking Answer");
  prt(1," You did not explain, you will not be validated ");
  nl();
  prt(1," until you do! "); nl();
  nl();
  pausescr();
    }
/***************************END MOD****************************************/

    If you like this mod, or have any suggestions or improvements, please 
e-mail me at my system, 1 @6910, Also if there are any problems, let me know 
and i will see what i can do. This works on my system and i have a heavily 
modified 4.07, so it should work.
                             Disclaimer
    I am not a programmer, this was just a little thing i thru together, i am 
sure it can be better, but if you use this e-mail and make me feel important, 
this is the first thing i actually wrote all by myself, that works anyway.
    I am not responsible if your system blows up or anything, if there is any 
trouble lemme know and i will be able to fix it.

         \x/olverine
         #1 @6910
_______________________________________________________________________________

The Gold Mod for those who do not have it...
Name: Charles Brady #1 @3461
Date: Mon Jul 10 16:29:13 1989
From: The Brady Board [314-731-0932]

Lord Samos #12 @8414
Mon Jun 12 09:14:51 1989
/***************************************************************************/
                        Addition's to F1 User Edit

                          By: Caramon Majere
             With Post-Call Ratio additions by: Lord Samos


Caramon Majere:                                        Lord Samos:
 3@8412 The Alliance                                    1@8412 The Alliance
/***************************************************************************/

This mod is fairly simple to add into your source.  It will take no more
than 15 minutes to put in.  If you get any errors (Which you shouldn't,
but it can always happen), just e-mail one of us at the above net nodes.

Legend:
 * - Search for this.
 + - Add this.
 - - Delete this line.
 ! - Change this line.



*void val_cur_user()
 /* val_cur_user allows the sysop at the keyboard to validate the current user,
    chaning sl, dsl, ar, dar, sysop sub, exemptions, restrictions, and user
    note
  */
 {
!  char sl[4],dsl[4],exempt[4],sysopsub[4],ar[17],dar[17],restrict[17],rst[17],
        tl[50],dk[34],uk[34],ndl[33],nul[33],gold[34],pr[5],cr[5];
   int cp,i,done,rc,wx,wy;
 
   pr_wait(1);
   thisuser.sl=realsl;
   savescreen(&screensave);
!  curatr=14;
   wx=15;
   wy=4;
   ansic(5);
!  makewindow(wx,wy,50,11);
   itoa((int)thisuser.sl,sl,10);
   itoa((int)thisuser.dsl,dsl,10);
   itoa((int)thisuser.exempt,exempt,10);
   itoa((int)thisuser.sysopsub,sysopsub,10);
+  itoa((int)thisuser.dk,dk,10);
+  itoa((int)thisuser.uk,uk,10);
+  itoa((int)thisuser.downloaded,ndl,10);
+  itoa((int)thisuser.uploaded,nul,10);
+  itoa((int)thisuser.gold,gold,10);
+  itoa((int)thisuser.msgpost,pr,10);
+  itoa((int)thisuser.logons,cr,10);
   strcpy(rst,restrict_string);
   for (i=0; i<=15; i++) {
     if (thisuser.ar & (1 << i))
       ar[i]='A'+i;
     else
       ar[i]=32;
     if (thisuser.dar & (1 << i))
       dar[i]='A'+i;
     else
       dar[i]=32;
     if (thisuser.restrict & (1 << i))
       restrict[i]=rst[i];
     else
       restrict[i]=32;
   }
   dar[16]=0;
   ar[16]=0;
   restrict[16]=0;
   cp=0;
   done=0;
 
   movecsr(wx+2,wy+1); sprintf(tl,"SL  : %s",sl); outs(tl);
   movecsr(wx+26,wy+1); sprintf(tl,"AR  : %s",ar); outs(tl);
   movecsr(wx+2,wy+2); sprintf(tl,"DSL : %s",dsl); outs(tl);
   movecsr(wx+26,wy+2); sprintf(tl,"DAR : %s",dar); outs(tl);
   movecsr(wx+2,wy+3); sprintf(tl,"EXMT: %s",exempt); outs(tl);
   movecsr(wx+26,wy+3); sprintf(tl,"RSTR: %s",restrict); outs(tl);
   movecsr(wx+2,wy+4); sprintf(tl,"SYSOPSUB: %s",sysopsub); outs(tl);
+  movecsr(wx+26,wy+4); sprintf(tl,"GOLD: %s",gold); outs(tl);
   movecsr(wx+2,wy+5); sprintf(tl,"NOTE: %s",thisuser.note); outs(tl);
+  movecsr(wx+2,wy+6); sprintf(tl,"D/L KB : %s",dk); outs(tl);
+  movecsr(wx+26,wy+6); sprintf(tl,"U/L KB : %s",uk); outs(tl);
+  movecsr(wx+2,wy+7); sprintf(tl,"# OF D/L'S : %s",ndl); outs(tl);
+  movecsr(wx+26,wy+7); sprintf(tl,"# OF U/L'S : %s",nul); outs(tl);
+  movecsr(wx+2,wy+8); sprintf(tl,"# OF POSTS MADE : %s",pr); outs(tl);
+  movecsr(wx+26,wy+8); sprintf(tl,"# OF CALLS MADE : %s",cr); outs(tl);
+  movecsr(wx+2,wy+9); sprintf(tl,"CURRENT P/C RATIO : %-6.3f",mratio()); 
outs(tl);
   while (done==0) {
     switch(cp) {
       case 0:
         movecsr(wx+8,wy+1);
         editline(sl,3,NUM_ONLY,&rc,"");
         thisuser.sl=(char) atoi(sl);
         itoa((int)thisuser.sl,sl,10);
         sprintf(tl,"%-3s",sl); outs(tl);
         break;
       case 1:
         movecsr(wx+32,wy+1);
         editline(ar,16,SET,&rc,"ABCDEFGHIJKLMNOP");
         thisuser.ar=0;
         for (i=0; i<=15; i++)
          if (ar[i]!=32)
             thisuser.ar |= (1 << i);
         break;
       case 2:
         movecsr(wx+8,wy+2);
         editline(dsl,3,NUM_ONLY,&rc,"");
         thisuser.dsl=(char) atoi(dsl);
         itoa((int)thisuser.dsl,dsl,10);
         sprintf(tl,"%-3s",dsl); outs(tl);
         break;
       case 3:
         movecsr(wx+32,wy+2);
         editline(dar,16,SET,&rc,"ABCDEFGHIJKLMNOP");
         thisuser.dar=0;
         for (i=0; i<=15; i++)
           if (dar[i]!=32)
             thisuser.dar |= (1 << i);
         break;
       case 4:
         movecsr(wx+8,wy+3);
         editline(exempt,3,NUM_ONLY,&rc,"");
         thisuser.exempt=(char) atoi(exempt);
         itoa((int)thisuser.exempt,exempt,10);
         sprintf(tl,"%-3s",exempt); outs(tl);
         break;
       case 5:
         movecsr(wx+32,wy+3);
         editline(restrict,16,SET,&rc,rst);
         thisuser.restrict=0;
         for (i=0; i<=15; i++)
           if (restrict[i]!=32)
             thisuser.restrict |= (1 << i);
         break;
       case 6:
         movecsr(wx+12,wy+4);
         editline(sysopsub,3,NUM_ONLY,&rc,"");
         thisuser.sysopsub=(char) atoi(sysopsub);
         itoa((int)thisuser.sysopsub,sysopsub,10);
         sprintf(tl,"%-3s",sysopsub); outs(tl);
         break;
+      case 7:
+        movecsr(wx+32,wy+4);
+        editline(gold,4,NUM_ONLY,&rc,"");
+        thisuser.gold=(int) atoi(gold);
+        itoa((int)thisuser.gold,gold,10);
+        sprintf(tl,"%-3s",gold); outs(tl);
+        break;
!      case 8:
         movecsr(wx+8,wy+5);
         editline(thisuser.note,40,ALL,&rc,"");
         break;
+      case 9:
+        movecsr(wx+11,wy+6);
+        editline(dk,4,NUM_ONLY,&rc,"");
+        thisuser.dk=(int) atoi(dk);
+        itoa((int)thisuser.dk,dk,10);
+        sprintf(tl,"%-3s",dk); outs(tl);
+        break;
+      case 10:
+        movecsr(wx+35,wy+6);
+        editline(uk,4,NUM_ONLY,&rc,"");
+        thisuser.uk=(int) atoi(uk);
+        itoa((int)thisuser.uk,uk,10);
+        sprintf(tl,"%-3s",uk); outs(tl);
+        break;
+      case 11:
+        movecsr(wx+15,wy+7);
+        editline(ndl,3,NUM_ONLY,&rc,"");
+        thisuser.downloaded=(int) atoi(ndl);
+        itoa((int)thisuser.downloaded,ndl,10);
+        sprintf(tl,"%-3s",ndl); outs(tl);
+        break;
+      case 12:
+        movecsr(wx+39,wy+7);
+        editline(nul,3,NUM_ONLY,&rc,"");
+        thisuser.uploaded=(int) atoi(nul);
+        itoa((int)thisuser.uploaded,nul,10);
+        sprintf(tl,"%-3s",nul); outs(tl);
+        break;
+      case 13:
+        movecsr(wx+20,wy+8);
+        editline(pr,3,NUM_ONLY,&rc,"");
+        thisuser.msgpost=(int) atoi(pr);
+        itoa(thisuser.msgpost,pr,10);
+        sprintf(tl,"%-3s",pr); outs(tl);
+        movecsr(wx+2,wy+9); sprintf(tl,"CURRENT P/C RATIO : 
%-6.3f",mratio()); outs(tl);
+        break;
+      case 14:
+        movecsr(wx+44,wy+8);
+        editline(cr,3,NUM_ONLY,&rc,"");
+        thisuser.logons=(int) atoi(cr);
+        itoa(thisuser.logons,cr,10);
+        sprintf(tl,"%-3s",cr); outs(tl);
+        movecsr(wx+2,wy+9); sprintf(tl,"CURRENT P/C RATIO : 
%-6.3f",mratio()); outs(tl);
+        break;
     }
     switch(rc) {
       case DONE: done=1; break;
!      case NEXT: cp=(cp+1) % 15; break;
!      case PREV: cp--; if (cp==-1) cp=14;  break;
     }
   }
   restorescreen(&screensave);
   changedsl();
   pr_wait(0);
 }


Now just hi F9 and test it out....


Caramon Majere: 3@8412                                  Lord Samos: 1@8412
         |                                                        |
         +------------>  The Alliance: (804) 598-7659  <----------+
_______________________________________________________________________________

Oh Nooooooooooooooooooooooooooooooooooooooooooooooooooooooo!
Name: Mrbill #2 @7301
Date: Tue Jul 11 14:20:58 1989
From: MrBill's Abode ][ (or too) [703-754-2336]

RE: Well

Freddy --

     about your Q for PCP bbslists.....sure is easy to do...just go in void 
bbslist() (or void bbslist(int n) if using my extended bbslist) and find where 
it asks for the name and comments (input(s,60)) then delete change it to 
input(s,63) and change the mpl statement too...then below that add something 
like this:

pl("Please enter the PC Pursuit city code.");
mpl(6);
input(s4,6);     /* don't forget to add the s4 variable in the declarations */
strcat(s," ");
strcat(s,s4);
strcat(s," ");

play with it alittle and you'll see how easy it is...

Me Again
1 @ 7300
_______________________________________________________________________________

Display network connection data stored in CONTACT.NET
Name: The Black Dragon #1 @2380
Date: Sun Jul 16 13:04:17 1989
From: Black Dragon Enterprises [213-470-6869]

The following additional subroutine displays the status of all network
connections to the board it is compiled into.  The data displayed is:
     - The node #
     - # of times data successfully transferred
     - # of failed attempts (since last successful transfer supposedly)
     - Date of first contact
     - Date last transfer out occurred
     - Date last contact occurred
     - Date and time of last contact attempt
     - # of bytes received
     - # of bytes sent
     - # of bytes waiting to be sent
Personally, I installed the call to this subroutine into the WFC menu as
part of the "N" (list net log) command.  I also installed it as a main menu
option.  However, it will be up to the individual sysop on where he wants
to install it (or the file to modify to put it into the source).
     The Black Dragon
=============================( Any BBS File )===========================
extern int num_ncn;
extern net_contact_rec *ncn;

print_net_status()
{
  int i;
  char s[81],s0[9],s1[6],s2[6],s3[15];
  struct time ti;
  struct date da;

  for (i=0;i<num_ncn;i++) {
    unixtodos(ncn[i].firstcontact,&da,&ti);
    sprintf(s0,"%02d/%02d/%02d",da.da_mon,da.da_day,(da.da_year%100));
    unixtodos(ncn[i].lastcontactsent,&da,&ti);
    sprintf(s1,"%02d/%02d",da.da_mon,da.da_day);
    unixtodos(ncn[i].lastcontact,&da,&ti);
    sprintf(s2,"%02d/%02d",da.da_mon,da.da_day);
    unixtodos(ncn[i].lasttry,&da,&ti);
    sprintf(s3,"%02d/%02d/%02d %02d:%02d",da.da_mon,da.da_day,(da.da_year%100),
      ti.ti_hour,ti.ti_min);
    sprintf(s,"@%-5u %5u %5u %8s %5s %5s %14s %7ld %7ld %7ld",
      ncn[i].systemnumber,ncn[i].numcontacts,ncn[i].numfails,s0,s1,s2,s3,
      ncn[i].bytes_received,ncn[i].bytes_sent,ncn[i].bytes_waiting);
    pl(s);
  }
}
=========================( End of Modification )========================
______________________________________________________________________________

The version 1.5 of the bargraph for moving files which
Name: Cheat Sheet (Co-Sysop) #3 @4
Date: Thu Jul 27 17:06:40 1989
From: Caesar's Palace [213-398-1224]

supports non ANSI...

/* Display a Bar Graph when moving files from one drive to another in WWIV.
 * By: Cheat Sheet        Date:  7/26/1989       Version: 1.0
 * 
 * File :  Xfer.C       Function : Move File
 */
 
@= Look For
+= Add
 
@        if ((s1[1]!=':') && (s2[1]!=':'))
@          d2=1;
@        if ((s1[1]==':') && (s2[1]==':') && (s1[0]==s2[0]))
@          d2=1;
@        if (d2) {
@          rename(s1,s2);
@          unlink(s1);
@        } else {
+          nl();
+          print("Moving : ",u.filename," to ",directories[d1].name,"");
@          b=(char *)farmalloc(16400);
@          d1=open(s1,O_RDONLY | O_BINARY);
@          d2=open(s2,O_RDWR | O_BINARY | O_CREAT, S_IREAD | S_IWRITE);
+          if(okansi())
+              mpl((filelength(d1)/16384)+1);
+          else {                      /* NOTE 1 */
+              for(i=0;i<(filelength(d1)/16384+1);i++)  /* NOTE 1 */
+                   outchr('.');                 /* NOTE 1 */
+              for(i=0;i<(filelength(d1)/16384+1);i++)  /* NOTE 1 */
+                   outchr('\x8');               /* NOTE 1 */
+         }                                             /* NOTE 1 */
@          i=read(d1,(void *)b,16384);
@          while (i>0) {
+              if(okansi())
+                 outchr('Û');
+              else                         /* NOTE 1 */
+                 outchr('O');              /* NOTE 1 */
@            write(d2,(void *)b,i); 
@            i=read(d1,(void *)b,16384);
@          }
+          nl();
@          close(d1);
@          close(d2);
@          unlink(s1);
@          farfree(b);
 
 
/* NOTE 1 - You can delete the lines marked with 'NOTE 1' if you don't 
 *      have any use for the ASCII version/option
 */

Cheat Sheet  @4 [Caesar's Palace]
_______________________________________________________________________________


	I'm sure you noticed this file was alittle smaller then the last two.
Well like i said at the beginning, what there was to work with is here. I'm 
going to try to get this out on a regular basis now and expect to see a new
one out in around two months time; even if it is only 2k or so <GRIN>.

MrBill



The entire AOH site is optimized to look best in Firefox® 3 on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2010 AOH
We do not send spam. If you have received spam bearing an artofhacking.com email address, please forward it with full headers to abuse@artofhacking.com.