home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Devil's Doorknob BBS Capture (1996-2003)
/
devilsdoorknobbbscapture1996-2003.iso
/
Dloads
/
SYSOP
/
MODS1.ZIP
/
CREDIT-1.MOD
< prev
next >
Wrap
Text File
|
1993-10-27
|
29KB
|
739 lines
┌────────────────────────────────────────────────────────────────────────────┐
│ Mod Name: Credit.mod (v1.0) Mod Author(s): Arc Angel WWIVNet 1@4067 │
│ Difficulty: Fairly advanced, quite a few changes to the code │
│ WWIV Version: WWIV v4.22 Date: 10/23/93 │
│ Files Affected: batch,bbs,bbsutl,conio,lilo,newuser,sr,uedit,utility,*.h │
│ Description: A credit system for WWIV with dl earnings & free files │
└────────────────────────────────────────────────────────────────────────────┘
Extended: This modification gives WWIV an advanced credit system complete
with :
* earned credit based on downloads of files the user had
uploaded (ek)
* earned dl credit tracked even on extracted downloads
* change exemptions in addition to ratio exemptions (so charges
to the account during the exemption period do not adversely
affect the user later) (exemption 4)
exempted k is stored to track this (xk), thus specific
amounts of exempted credit can be added to an account
(credit balance is calculated as:
uk/req_ratio + ek*dl_earned_multiplier - dk + xk)
* exemption expiration dates (exemptions are valid through
the end of the date of expiration)
* (the time exemption is implemented) (exemption 1)
* exemptions and the exemption expiration date is shown
on the (y)our info screen in the main menu and xfer menu
* the F1 editor and //uedit are modified to allow editing
the transfer credits ("c" edits credits in //uedit)
* the xfer command //FREE can be used to mark files as
free downloads. Free downloads still earn credit for
the uploader as normal. Files extracted from free downloads
are also free.
* the batchfile lists are changed to include size and time
Disclaimer: I am not responsible for any problems or complications due to your
use of this modification. I urge you to make a full backup of your
BBS and keep it for at least a few weeks after beginning to use
your new code.
Key + Add this Line
diff -H -b -p ./batch.c Credit/batch.c
*** ./batch.c Thu Dec 03 19:56:36 1992
--- credit/batch.c Fri Oct 22 20:34:40 1993
*************** void listbatch(void)
*** 29,34 ****
--- 29,36 ----
{
char s[81];
int abort,i;
+ /* Credit MOD */ char s1[81];
+ /* Credit MOD */ int i1;
abort=0;
nl();
*************** void listbatch(void)
*** 35,40 ****
--- 37,43 ----
outstr(get_string(864));
npr("%d ",numbatch);
if (numbatchdl) {
+ /* Credit MOD */ npr("Size - %ldk ",((batchlen+1023)/1024));
outstr(get_string(865));
pl(ctim(batchtime));
} else
*************** void listbatch(void)
*** 41,46 ****
--- 44,50 ----
nl();
nl();
for (i=0; (i<numbatch) && (!abort) && (!hangup); i++) {
+ /* Credit MOD
if (batch[i].sending)
sprintf(s,"%d. (D) %s %s %s",i+1, batch[i].filename,
ctim(batch[i].time),
*************** void listbatch(void)
*** 48,53 ****
--- 52,73 ----
else
sprintf(s,"%d. (U) %s %s",i+1,batch[i].filename,
directories[batch[i].dir].name);
+ Credit MOD */
+ /* Credit MOD */ if (batch[i].sending) {
+ /* Credit MOD */ sprintf(s," . (D) %.13s k %.8s %.30s",batch[i].filename,ctim(batch[i].time),directories[batch[i].dir].name);
+ /* Credit MOD */ itoa(i+1,s1,10);
+ /* Credit MOD */ for (i1=0; i1<strlen(s1); i1++)
+ /* Credit MOD */ s[2-strlen(s1)+i1]=s1[i1];
+ /* Credit MOD */ ltoa((((batch[i].len)+1023)/1024),s1,10);
+ /* Credit MOD */ for (i1=0; i1<strlen(s1); i1++)
+ /* Credit MOD */ s[26-strlen(s1)+i1]=s1[i1];
+ /* Credit MOD */ }
+ /* Credit MOD */ else {
+ /* Credit MOD */ sprintf(s," . (U) %.13s %.30s",batch[i].filename,directories[batch[i].dir].name);
+ /* Credit MOD */ itoa(i+1,s1,10);
+ /* Credit MOD */ for (i1=0; i1<strlen(s1); i1++)
+ /* Credit MOD */ s[2-strlen(s1)+i1]=s1[i1];
+ /* Credit MOD */ }
pla(s,&abort);
}
*************** void delbatch(int i)
*** 60,65 ****
--- 80,87 ----
if (i<numbatch) {
if (batch[i].sending) {
batchtime -= batch[i].time;
+ /* Credit MOD */ batchcharge -= batch[i].charge;
+ /* Credit MOD */ batchlen -= batch[i].len;
--numbatchdl;
}
--numbatch;
*************** void downloaded(char *fn, long cps)
*** 74,79 ****
--- 96,103 ----
int i,i1;
uploadsrec u;
char s[81];
+ /* Credit MOD */ char s1[81], s2[81];
+ /* Credit MOD */ userrec uu;
for (i1=0; i1<numbatch; i1++) {
if ((strcmp(fn,batch[i1].filename)==0) && (batch[i1].sending)) {
*************** void downloaded(char *fn, long cps)
*** 82,89 ****
--- 106,118 ----
if (i>0) {
SETREC(i);
read(dlf,(void *)&u,sizeof(uploadsrec));
+ /* Credit MOD */ if (u.filetype!='F') {
++thisuser.downloaded;
thisuser.dk += (int) ((u.numbytes+1023)/1024);
+ /* Credit MOD */ if (thisuser.exempt & exempt_charge && before_end_of_day(thisuser.exempt_daten))
+ /* Credit MOD */ thisuser.xk += (unsigned long) (u.numbytes+1023)/1024;
+ /* Credit MOD */ }
+ /* Credit MOD */ if (usernum!=u.ownerusr && !(thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten)))
++u.numdloads;
SETREC(i);
write(dlf,(void *)&u,sizeof(uploadsrec));
*************** void downloaded(char *fn, long cps)
*** 92,102 ****
--- 121,151 ----
else
sprintf(s,get_stringx(1,43),u.filename);
sysoplog(s);
+ /* Credit MOD
if (syscfg.sysconfig & sysconfig_log_dl) {
sprintf(s,get_stringx(1,51),
nam(&thisuser,usernum), u.filename, date());
ssm(u.ownerusr,0,s);
}
+ Credit MOD */
+ /* Credit MOD */ if ((usernum!=u.ownerusr) && !(thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten))) {
+ /* Credit MOD */ if ((u.ownersys==0) && (u.ownerusr!=0)) {
+ /* Credit MOD */ read_user(u.ownerusr,&uu);
+ /* Credit MOD */ if ((uu.inact & inact_deleted)==0) {
+ /* Credit MOD */ uu.ek += (1023L+u.numbytes)/1024L;
+ /* Credit MOD */ write_user(u.ownerusr,&uu);
+ /* Credit MOD */ }
+ /* Credit MOD */ if ((syscfg.sysconfig & sysconfig_log_dl) &&
+ /* Credit MOD */ (uu.dsl>=directories[batch[i1].dir].dsl) &&
+ /* Credit MOD */ (uu.age>=directories[batch[i1].dir].age) &&
+ /* Credit MOD */ (!directories[batch[i1].dir].dar ||
+ /* Credit MOD */ (directories[batch[i1].dir].dar & uu.dar)!=0)) {
+ /* Credit MOD */ ltoa((1023L+(u.numbytes*extcfg.dl_earnings_multiplier))/1024L,s2,10);
+ /* Credit MOD */ sprintf(s1,"%.20s downloaded %.13s on %.8s, %.5sk credit earned.",nam(&thisuser,usernum),stripfn(u.filename),date(),s2);
+ /* Credit MOD */ ssm(u.ownerusr,0,s1);
+ /* Credit MOD */ }
+ /* Credit MOD */ }
+ /* Credit MOD */ }
}
closedl();
delbatch(i1);
*************** void uploaded(char *fn, long cps)
*** 255,266 ****
--- 304,318 ----
}
}
closedl();
+ /* Credit MOD */ if (d1>=0)
delbatch(i1);
return;
}
}
closedl();
+ /* Credit MOD
delbatch(i1);
+ Credit MOD */
if (try_to_ul(fn)) {
sprintf(s,get_stringx(1,55), fn);
sysoplog(s);
*************** void ymbatchdl(int had)
*** 290,296 ****
--- 342,351 ----
if (!incom)
return;
+ /* Credit MOD
sprintf(s,get_stringx(1,57),numbatchdl, ctim(batchtime));
+ Credit MOD */
+ /* Credit MOD */ sprintf(s,"Ymodem BATCH DL, %d files, size=%ldk, time=%s",numbatchdl, ((batchlen+1023)/1024), ctim(batchtime));
if (had)
strcat(s,get_stringx(1,58));
sysoplog(s);
*************** void ymbatchdl(int had)
*** 303,310 ****
--- 358,369 ----
tleft(1);
if ((syscfg.req_ratio>0.0001) && (ratio()<syscfg.req_ratio))
rr=1;
+ /* Credit MOD
if (thisuser.exempt & exempt_ratio)
rr=0;
+ Credit MOD */
+ /* Credit MOD */ if (thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten))
+ /* Credit MOD */ rr=0;
if (!batch[cur].sending) {
rr=0;
++cur;
*************** void ymbatchdl(int had)
*** 316,322 ****
--- 375,384 ----
delbatch(cur);
closedl();
} else {
+ /* Credit MOD
sprintf(s,get_stringx(1,59),numbatchdl,ctim(batchtime));
+ Credit MOD */
+ /* Credit MOD */ sprintf(s,"%d files left, Size left = %ldk, Time left = %s\r\n",numbatchdl,((batchlen+1023)/1024),ctim(batchtime));
outs(s);
SETREC(i);
read(dlf,(void *)&u,sizeof(uploadsrec));
*************** void make_dl_batch_list(char *listfn)
*** 465,476 ****
--- 527,546 ----
cd_to(cdir);
sprintf(s,"%s%s\r\n",s1,stripfn(batch[i].filename));
ok=1;
+ /* Credit MOD
if (nsl() < (batch[i].time + at))
+ Credit MOD */
+ /* Credit MOD */ if (nsl() < (batch[i].time + at) && !(thisuser.exempt & exempt_time && before_end_of_day(thisuser.exempt_daten)))
ok=0;
+ /* Credit, Credit MOD
thisk=(batch[i].len+1023)/1024;
if ((syscfg.req_ratio>0.0001) && (ratio1(addk+thisk)<syscfg.req_ratio) &&
(!(thisuser.exempt & exempt_ratio)))
ok=0;
+ Credit, Credit MOD */
+ /* Credit, Credit MOD */ thisk=(batch[i].len+1023)/1024;
+ /* Credit, Credit MOD */ if (((double)(balance()-addk) < 0.0) && !(thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten)))
+ /* Credit, Credit MOD */ ok=0;
if (ok) {
write(f,s,strlen(s));
at += batch[i].time;
*************** void dszbatchdl(int had, char *cmdln, ch
*** 582,589 ****
--- 652,662 ----
char listfn[81],dl[100];
+ /* Credit MOD
sprintf(dl,get_stringx(1,61),
desc, numbatchdl, ctim(batchtime));
+ Credit MOD */
+ /* Credit MOD */ sprintf(dl,"%s BATCH DL, %d files, size=%ldk, time=%s",desc,numbatchdl,((batchlen+1023)/1024),ctim(batchtime));
if (had)
strcat(dl,get_stringx(1,58));
sysoplog(dl);
*************** void dszbatchul(int had, char *cmdln, ch
*** 618,624 ****
--- 691,699 ----
ti=timer()-ti;
if (ti<0)
ti += 24.0*3600.0;
+ /* Credit MOD
thisuser.extratime += ti;
+ Credit MOD */
}
/****************************************************************************/
*************** void batchdl(void)
*** 658,663 ****
--- 733,739 ----
{
int i,abort,done,i1,i2,had,dsz;
char s[81],s1[81],ch,ch1;
+ /* Credit MOD */ long old_balance;
done=0;
if (numbatch==0) {
*************** void batchdl(void)
*** 704,709 ****
--- 780,787 ----
numbatch=0;
numbatchdl=0;
batchtime=0.0;
+ /* Credit MOD */ batchcharge=0;
+ /* Credit MOD */ batchlen=0;
done=1;
pl(get_string(875));
}
*************** void batchdl(void)
*** 723,728 ****
--- 801,807 ----
i=get_protocol(xf_up_batch);
if (i>0) {
+ /* Credit MOD */ old_balance = balance();
dszbatchul(had, externs[i-6].receivebatchfn, externs[i-6].description);
if (!had) {
*************** void batchdl(void)
*** 730,735 ****
--- 809,815 ----
outstr(get_string(782));
npr("%-6.3f\r\n",ratio());
}
+ /* Credit MOD */ npr("You %s have a credit balance of: %ldk\r\n",((old_balance == balance()) ? "still" : "now"),balance());
done=1;
}
break;
*************** void batchdl(void)
*** 752,757 ****
--- 832,838 ----
i=get_protocol(xf_bi);
if (i>0) {
+ /* Credit MOD */ old_balance = balance();
bibatch(had, externs[i-6].bibatchfn, externs[i-6].description);
if (!had) {
*************** void batchdl(void)
*** 759,764 ****
--- 840,846 ----
outstr(get_string(782));
npr("%-6.3f\r\n",ratio());
}
+ /* Credit MOD */ npr("You %s have a credit balance of: %ldk\r\n",((old_balance == balance()) ? "still" : "now"),balance());
done=1;
}
break;
*************** void batchdl(void)
*** 785,790 ****
--- 867,873 ----
i=get_protocol(xf_down_batch);
if (i>0) {
+ /* Credit MOD */ old_balance = balance();
if (i==4) {
if (over_intern && (over_intern[2].othr & othr_override_internal) &&
*************** void batchdl(void)
*** 800,805 ****
--- 883,889 ----
outstr(get_string(782));
npr("%-6.3f\r\n",ratio());
}
+ /* Credit MOD */ npr("You %s have a credit balance of: %ldk\r\n",((old_balance == balance()) ? "still" : "now"),balance());
done=1;
}
break;
diff -H -b -p ./bbs.c Credit/bbs.c
*** ./bbs.c Mon Jan 11 19:37:54 1993
--- credit/bbs.c Fri Oct 22 18:03:06 1993
*************** void mainmenu(void)
*** 558,563 ****
--- 558,567 ----
set_x_only(1, "POSTS.TXT", 0);
nscan(0);
set_x_only(0, NULL, 0);
+ /* Credit MOD */ tempfreefile=1;
+ /* Credit MOD */ strcpy(tempfilename,"POSTS");
+ /* Credit MOD */ tempownersys=0;
+ /* Credit MOD */ tempownerusr=0;
add_arc("OFFLINE", "POSTS.TXT", 0);
download_temp_arc("OFFLINE", 0);
}
*************** void dlmainmenu(void)
*** 799,804 ****
--- 803,810 ----
sysopchar(s1);
} else
sysopchar(s);
+ /* Credit MOD */ if ((strcmp(s,"FREE")==0) && (so()))
+ /* Credit MOD */ freefile();
if (strcmp(s,"/O")==0)
hangup=1;
if (strcmp(s,"/S")==0) {
*************** void dlmainmenu(void)
*** 806,811 ****
--- 812,821 ----
set_x_only(1,"FILES.TXT", 1);
searchall();
set_x_only(0, NULL, 0);
+ /* Credit MOD */ tempfreefile=1;
+ /* Credit MOD */ strcpy(tempfilename,"FILELIST");
+ /* Credit MOD */ tempownersys=0;
+ /* Credit MOD */ tempownerusr=0;
add_arc("TEMP", "FILES.TXT", 1);
}
if ((strcmp(s,"/?")==0) && (dcs()))
diff -H -b -p ./bbsutl.c Credit/bbsutl.c
*** ./bbsutl.c Fri Jan 08 21:42:12 1993
--- credit/bbsutl.c Fri Oct 22 17:32:14 1993
*************** void yourinfo(void)
*** 491,496 ****
--- 491,498 ----
} else
nl();
outstr(get_string(606)); pln(thisuser.dsl);
+ /* Credit MOD */ if (thisuser.exempt && before_end_of_day(thisuser.exempt_daten))
+ /* Credit MOD */ npr("Exemptions : %s%s%s%sthrough %s\r\n",
+ /* Credit MOD */ (thisuser.exempt & exempt_time ? "time " : ""),
+ /* Credit MOD */ (thisuser.exempt & exempt_ratio ? "balance " : ""),
+ /* Credit MOD */ (thisuser.exempt & exempt_charge ? "charges " : ""),
+ /* Credit MOD */ (thisuser.exempt & exempt_post ? "post " : ""),
+ /* Credit MOD */ ntos(thisuser.exempt_daten));
outstr(get_string(366)); pl(thisuser.laston);
outstr(get_string(607)); pln(thisuser.logons);
outstr(get_string(608)); pln(thisuser.ontoday);
diff -H -b -p ./conio.c Credit/conio.c
*** ./conio.c Wed Dec 30 17:33:08 1992
--- credit/conio.c Sat Oct 23 01:23:20 1993
*************** void val_cur_user(void)
*** 684,689 ****
--- 684,690 ----
char sl[4],dsl[4],exempt[4],sysopsub[4],ar[17],dar[17],restrict[17],rst[17],
tl[50];
int cp,i,done,rc,wx,wy;
+ /* Credit MOD */ char ex_dt[9], ndl[33],uk[34],dk[34],ek[34],xk[34],nul[33],gold[33],posts[34],logons[34],timeon[34];
pr_wait(1);
savescreen(&screensave);
*************** void val_cur_user(void)
*** 690,696 ****
--- 691,711 ----
curatr=7;
wx=15;
wy=4;
+ /* Credit MOD
makewindow(wx,wy,50,7);
+ Credit MOD */
+ /* Credit MOD */ makewindow(wx,wy,50,10);
+ /* Credit MOD */ ltoa(thisuser.dk,dk,10);
+ /* Credit MOD */ ltoa(thisuser.uk,uk,10);
+ /* Credit MOD */ ltoa(thisuser.ek,ek,10);
+ /* Credit MOD */ ltoa(thisuser.xk,xk,10);
+ /* Credit MOD */ itoa((int)thisuser.downloaded,ndl,10);
+ /* Credit MOD */ itoa((int)thisuser.uploaded,nul,10);
+ /* Credit MOD */ gcvt(thisuser.gold,10,gold);
+ /* Credit MOD */ itoa((int)thisuser.msgpost,posts,10);
+ /* Credit MOD */ itoa((int)thisuser.logons,logons,10);
+ /* Credit MOD */ ultoa((unsigned long)thisuser.timeon,timeon,10);
+ /* Credit MOD */ strcpy(ex_dt,ntos(thisuser.exempt_daten));
itoa((int)thisuser.sl,sl,10);
itoa((int)thisuser.dsl,dsl,10);
itoa((int)thisuser.exempt,exempt,10);
*************** void val_cur_user(void)
*** 721,729 ****
--- 736,754 ----
movecsr(wx+2,wy+2); sprintf(tl,get_stringx(1,79),dsl); outs(tl);
movecsr(wx+26,wy+2); sprintf(tl,get_stringx(1,80),dar); outs(tl);
movecsr(wx+2,wy+3); sprintf(tl,get_stringx(1,81),exempt); outs(tl);
+ /* Credit MOD */ movecsr(wx+12,wy+3); sprintf(tl,"- %s",ex_dt); outs(tl);
movecsr(wx+26,wy+3); sprintf(tl,get_stringx(1,82),restrict); outs(tl);
movecsr(wx+2,wy+4); sprintf(tl,get_stringx(1,83),sysopsub); outs(tl);
+ /* Credit MOD
movecsr(wx+2,wy+5); sprintf(tl,get_stringx(1,84),thisuser.note); outs(tl);
+ Credit MOD */
+ /* Credit MOD */ movecsr(wx+26,wy+4); sprintf(tl,"GOLD : %s",gold); outs(tl);
+ /* Credit MOD */ movecsr(wx+2,wy+5); sprintf(tl,"UL= %3s/%6s/%6s",nul,uk,ek); outs(tl);
+ /* Credit MOD */ movecsr(wx+2,wy+6); sprintf(tl,"DL= %3s/%6s/%6s",ndl,dk,xk); outs(tl);
+ /* Credit MOD */ movecsr(wx+26,wy+5); sprintf(tl,"# OF LOGONS : %s",logons); outs(tl);
+ /* Credit MOD */ movecsr(wx+26,wy+6); sprintf(tl,"TIME ONLINE : %s",timeon); outs(tl);
+ /* Credit MOD */ movecsr(wx+26,wy+7); sprintf(tl,"POSTED MSGS : %s",posts); outs(tl);
+ /* Credit MOD */ movecsr(wx+2,wy+8); sprintf(tl,get_stringx(1,84),thisuser.note); outs(tl);
while (done==0) {
switch(cp) {
case 0:
*************** void val_cur_user(void)
*** 763,769 ****
--- 788,803 ----
itoa((int)thisuser.exempt,exempt,10);
sprintf(tl,"%-3s",exempt); outs(tl);
break;
+ /* Credit MOD */ case 5:
+ /* Credit MOD */ movecsr(wx+14,wy+3);
+ /* Credit MOD */ editline(ex_dt,8,ALL,&rc,"");
+ /* Credit MOD */ thisuser.exempt_daten=ston(ex_dt);
+ /* Credit MOD */ sprintf(tl,"%8s",ex_dt); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD
case 5:
+ Credit MOD */
+ /* Credit MOD */ case 6:
movecsr(wx+32,wy+3);
editline(restrict,16,SET,&rc,rst);
thisuser.restrict=0;
*************** void val_cur_user(void)
*** 771,777 ****
--- 805,814 ----
if (restrict[i]!=32)
thisuser.restrict |= (1 << i);
break;
+ /* Credit MOD
case 6:
+ Credit MOD */
+ /* Credit MOD */ case 7:
movecsr(wx+12,wy+4);
editline(sysopsub,3,NUM_ONLY,&rc,"");
*qsc= atoi(sysopsub);
*************** void val_cur_user(void)
*** 778,792 ****
--- 815,909 ----
itoa((int)*qsc,sysopsub,10);
sprintf(tl,"%-3s",sysopsub); outs(tl);
break;
+ /* Credit MOD
case 7:
+ Credit MOD */
+ /* Credit MOD */ case 8:
+ /* Credit MOD */ movecsr(wx+33,wy+4);
+ /* Credit MOD */ editline(gold,15,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.gold = atof(gold);
+ /* Credit MOD */ gcvt(thisuser.gold,10,gold);
+ /* Credit MOD */ sprintf(tl,"%-15s",gold); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 9:
+ /* Credit MOD */ movecsr(wx+6,wy+5);
+ /* Credit MOD */ editline(nul,3,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.uploaded=(int) atoi(nul);
+ /* Credit MOD */ itoa((int)thisuser.uploaded,nul,10);
+ /* Credit MOD */ sprintf(tl,"%3s",nul); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 10:
+ /* Credit MOD */ movecsr(wx+10,wy+5);
+ /* Credit MOD */ editline(uk,6,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.uk=atol(uk);
+ /* Credit MOD */ ltoa(thisuser.uk,uk,10);
+ /* Credit MOD */ sprintf(tl,"%6s",uk); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 11:
+ /* Credit MOD */ movecsr(wx+17,wy+5);
+ /* Credit MOD */ editline(ek,6,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.ek=atol(ek);
+ /* Credit MOD */ ultoa(thisuser.ek,ek,10);
+ /* Credit MOD */ sprintf(tl,"%6s",ek); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 12:
+ /* Credit MOD */ movecsr(wx+6,wy+6);
+ /* Credit MOD */ editline(ndl,3,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.downloaded=(int) atoi(ndl);
+ /* Credit MOD */ itoa((int)thisuser.downloaded,ndl,10);
+ /* Credit MOD */ sprintf(tl,"%3s",ndl); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 13:
+ /* Credit MOD */ movecsr(wx+10,wy+6);
+ /* Credit MOD */ editline(dk,6,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.dk=atol(dk);
+ /* Credit MOD */ ultoa(thisuser.dk,dk,10);
+ /* Credit MOD */ sprintf(tl,"%6s",dk); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 14:
+ /* Credit MOD */ movecsr(wx+17,wy+6);
+ /* Credit MOD */ editline(xk,6,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.xk=atol(xk);
+ /* Credit MOD */ ultoa(thisuser.xk,xk,10);
+ /* Credit MOD */ sprintf(tl,"%6s",xk); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 15:
+ /* Credit MOD */ movecsr(wx+40,wy+5);
+ /* Credit MOD */ editline(logons,8,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.logons=(int) atoi(logons);
+ /* Credit MOD */ itoa((int)thisuser.logons,logons,10);
+ /* Credit MOD */ sprintf(tl,"%8s",logons); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 16:
+ /* Credit MOD */ movecsr(wx+40,wy+6);
+ /* Credit MOD */ editline(timeon,8,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.timeon=atof(timeon);
+ /* Credit MOD */ ultoa((unsigned long)thisuser.timeon,timeon,10);
+ /* Credit MOD */ sprintf(tl,"%8s",timeon); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 17:
+ /* Credit MOD */ movecsr(wx+40,wy+7);
+ /* Credit MOD */ editline(posts,8,NUM_ONLY,&rc,"");
+ /* Credit MOD */ thisuser.msgpost=(int) atoi(posts);
+ /* Credit MOD */ itoa((int)thisuser.msgpost,posts,10);
+ /* Credit MOD */ sprintf(tl,"%8s",posts); outs(tl);
+ /* Credit MOD */ break;
+ /* Credit MOD */ case 18:
+ /* Credit MOD */ movecsr(wx+8,wy+8);
+ /* Credit MOD
movecsr(wx+8,wy+5);
+ Credit MOD */
editline(thisuser.note,40,ALL,&rc,"");
break;
}
switch(rc) {
case DONE: done=1; break;
+ /* Credit MOD
case NEXT: cp=(cp+1) % 8; break;
case PREV: cp--; if (cp==-1) cp=7; break;
+ Credit MOD */
+ /* Credit MOD */ case NEXT: cp=(cp+1) % 19; break;
+ /* Credit MOD */ case PREV: cp--; if (cp==-1) cp=18; break;
}
}
restorescreen(&screensave);
*************** void tleft(int x)
*** 1088,1094 ****
--- 1205,1214 ----
curatr=cc;
movecsr(cx,cy);
if ((x) && (useron))
+ /* Credit MOD
if (nsln==0.0) {
+ Credit MOD */
+ /* Credit MOD */ if ((nsln==0.0) && (! (thisuser.exempt & exempt_time && before_end_of_day(thisuser.exempt_daten)))) {
nl();
pl(get_string(926));
nl();
diff -H -b -p ./lilo.c Credit/lilo.c
*** ./lilo.c Thu Dec 03 19:55:02 1992
--- credit/lilo.c Fri Oct 22 18:24:24 1993
*************** void logon(void)
*** 475,480 ****
--- 475,481 ----
nscandate=thisuser.daten;
batchtime=0.0;
numbatchdl=numbatch=0;
+ /* Credit MOD */ batchcharge=batchlen=0;
i1=0;
for (i=0; i<20; i++) {
if (questused[i])
*************** void logoff(void)
*** 519,526 ****
--- 520,529 ----
ton=timer()-timeon;
thisuser.timeon += ton;
thisuser.timeontoday += (ton-extratimecall);
+ /* Credit MOD */ if (! (thisuser.exempt & exempt_time && before_end_of_day(thisuser.exempt_daten))) {
status.activetoday += (int) (ton/60.0);
save_status();
+ /* Credit MOD */ }
diff -H -b -p ./newuser.c Credit/newuser.c
*** ./newuser.c Tue Dec 08 19:35:02 1992
--- credit/newuser.c Fri Oct 22 23:13:14 1993
*************** void newuser(void)
*** 740,745 ****
--- 740,746 ----
}
write_user(usernum,&thisuser);
close_user();
+ /* Credit MOD */ disassociate_uploads(usernum);
write_qscn(usernum, qsc, 0);
isr(usernum,thisuser.name);
ok=0;
diff -H -b -p ./sr.c Credit/sr.c
*** ./sr.c Thu Dec 03 19:56:10 1992
--- credit/sr.c Fri Oct 22 18:24:22 1993
*************** void maybe_internal(char *fn, int *xferr
*** 463,469 ****
--- 463,472 ----
}
+ /* Credit MOD
void send_file(char *fn, int *sent, int *abort, char ft, char *sfn, int dn, long fs)
+ Credit MOD */
+ /* Credit MOD */ void send_file(char *fn, int *sent, int *abort, char ft, char *sfn, int dn, long fs, long fc)
{
int i,i1,ok;
double percent,t;
*************** void send_file(char *fn, int *sent, int
*** 519,525 ****
--- 522,538 ----
t=(12.656) / ((double) (modem_speed)) * ((double)(fs));
else
t=0.0;
+ /* Credit MOD
if (nsl()<=(batchtime + t)) {
+ Credit MOD */
+ /* Credit MOD */ if (((double)(balance()-batchcharge) < 0.0) && !(thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten))) {
+ /* Credit MOD */ nl();
+ /* Credit MOD */ pl("Batch list exceeds credit limit.");
+ /* Credit MOD */ nl();
+ /* Credit MOD */ *sent=0;
+ /* Credit MOD */ *abort=0;
+ /* Credit MOD */ } else
+ /* Credit MOD */ if (nsl()<=(batchtime + t) && !(thisuser.exempt & exempt_time && before_end_of_day(thisuser.exempt_daten))) {
nl();
pl(get_string(901));
nl();
*************** void send_file(char *fn, int *sent, int
*** 534,539 ****
--- 547,554 ----
*abort=0;
} else {
batchtime += t;
+ /* Credit MOD */ batchcharge += fc;
+ /* Credit MOD */ batchlen += fs;
strcpy(batch[numbatch].filename,sfn);
batch[numbatch].dir=dn;
batch[numbatch].time=t;
*************** void send_file(char *fn, int *sent, int
*** 544,551 ****
--- 559,569 ----
++numbatchdl;
nl();
pl(get_string(903));
+ /* Credit MOD
sprintf(s,"%s - %d %s - %s",get_string(904),
numbatch, get_string(905),ctim(batchtime));
+ Credit MOD */
+ /* Credit MOD */ sprintf(s,"Batch: Files - %d Size - %ldk Time - %s",numbatch,((batchlen+1023)/1024),ctim(batchtime));
nl();
pl(s);
nl();