var scr="";; var loading="";; var loaded="";; defcom downl = downl;; defcom next = next;; defcom nextpack = nextpack;; defcom getpack=getpack;; defcom version=version I;; var stage=0;; var sizeload=0;; var typ=0;; var sizeloaded=0;; typeof ls=[S r1];; fun searchfile(l,nm)= if l==nil then 0 else let l->[s n] in if !strcmp nm s then 1 else searchfile n nm;; fun _connected()= INETdisableProxy; _cacheActivate; _refine _getress "License"; _SETtext message loc "CHKPKG"; _on _channel version [_version]; _on _channel getpack []; _on _channel nextpack [];; fun getlst(l)= if l==nil then nil else let l->[x n] in [hd x atoi hd tl x atoi hd tl tl x]::getlst n;; fun checklst(l)= if l==nil then if sizeload then (_SETtext message strloc loc "TODOWNL" (itoa (sizeload>>10))::nil; set stage=1; 0) else _on _channel next [] else let l->[[s sz sign] n] in (if (_checkpack s)==nil then set sizeload = sizeload + sz else nil; checklst n);; fun __packlst(s)= checklst getlst strextr s;; fun checkreq(l)= if l==nil then if sizeload then (_SETtext message strloc loc "TODOWNL" (itoa (sizeload>>10))::nil; set stage=1; 0) else _on _channel next [] else let l->[[s [sz [sign _]]] n] in let _getpack _checkpack s -> cont in (if (cont==nil)||(strcmp sign _getlongname cont "" "#") then (set ls=s::ls; set sizeload = sizeload + atoi sz) else 0; checkreq n);; fun __require(s)= checkreq strextr s;; fun __need(s,sz,sign)= if stage==0 then (if (_checkpack s)==nil then (set sizeload = sizeload + sz) else 0; _on _channel nextpack []) else if (!searchfile ls s)&&(_checkpack s)!=nil then _on _channel nextpack [] else (set loading=s; set typ=sign; set loaded=""; _on _channel downl []; _SETtext message strloc loc "DOWNL" s::(itoa (sz>>10))::nil; 0);; fun startdown()= set stage=1; _on _channel nextpack [];; fun __endlist()= if stage==0 && sizeload then (_SETtext message strloc loc "TODOWNL" (itoa (sizeload>>10))::nil; set stage=1; _on _channel nextpack []; 0) else _on _channel next [];; fun __addscript(s)= set scr=strcat scr s; _on _channel next [];; fun __endscript()= _DSwindow win; _DSbitmap barre; _killchannel screen; _setrights rights; _setenv _channel nil; _script scr;; fun __down(s)= set loaded=strcat loaded s; _on _channel downl []; set sizeloaded=sizeloaded+ strlen s; _DRAWrectangle barre 5 5 290*sizeloaded/sizeload 10 DRAW_INVISIBLE 0 0 DRAW_SOLID 0xff; _BLTbitmap win barre 5 75 ;; fun __enddown()= _storepack (if typ==1 then munzip loaded else if typ then unzip loaded else loaded) loading; _on _channel nextpack [];; fun _closed()= _SETtext message loc "NOTAVAIL";; fun __FullServer()= _SETtext message loc "FULL"; set message=nil;;