Zion Sphinx — File Browser
ZionSphinxv3.0 / ZionSphinxv3.0 / zionuser.mrc
zionuser.mrc — 29.56 KB — Download this file
; --------< Zion >----------------------------------------------------
; Name....: Zion User System
; File....: zionuser.mrc
; Ver.....: 1.0b280807
; Author..: sprion
; Email...: sprion@lyniq.com
; Date....: 28 Aug 07
; URL.....: http://zion.zincplay.com
; Info....: User System
; Changes.: Fixed an issue that allowed users to bypass login and get Gamelist working.
;---------------------------------------------------------------------
;translatable
; script unload signal
on *:signal:zion_unload:.unload -rs $+(",$script,")
;on *:signal:zion_check:if (%zion.s.pvar.syn) return | var %f $z3.pfile | if ($crc(%f) != $z.h.getvar(pfile)) z3.spf
;on *:signal:zion_mirc_start:if (!$isfile($+(",$scriptdir,user.dat,"))) { z.echo error: $z.lang(err,3) | zion.unload }
;on *:load:z3.spf
alias -l saveID return zion_userinfo
alias zion.user.id return ZIONUSER.280807
on *:signal:zion_cmdlistopen:{
zion.listcmd z.modpop ; Increases or decreases a user's popularity. ; /z.modpop <+|-> <forumID> ; /z.modpop + sprion
zion.listcmd z.deauth ; Logs off Zion, allowing you to sign in as another user.
zion.listcmd z.myinfo ; Opens your Userinfo Window.
}
alias zion_user_auth {
var %p = -mdr
if ($left($1,1) = -) %p = $1
else %zion.s.auth.store = $1-
dialog %p zion_user_auth zion_user_auth_table
}
dialog zion_user_auth_table {
title $z.lang(user,dialogname)
size -1 -1 405 231
}
on *:dialog:zion_user_auth:*:*: {
if ($devent == init) {
dll_mc SetIcon -w $dialog($dname).hwnd 1 $z.icl
dcx Mark $dname zion_user_auth_cb
xdialog -b $dname +ty
zion_user_auth_init_dcx
beep 2
flash $z.lang(user,loginflash)
}
}
alias -l zion_user_auth_init_dcx {
var %t $rgb(255,255,255)
var %b $rgb(16,95,152)
var %e $rgb(9,43,67)
;dialog bg
xdialog -g $dname +i $z.images(userlogin.bmp)
xdialog -c $dname 1 text 66 115 60 20
xdid -t $dname 1 $z.lang(user,username)
xdid -C $dname 1 +t %t
xdid -C $dname 1 +kb %b
xdid -f $dname 1 +a ansi 8 Tahoma
xdialog -c $dname 2 edit 129 113 150 20 autohs autovs tabstop
; xdid -a $dname 2
xdid -C $dname 2 +bk %e
xdid -C $dname 2 +t %t
xdialog -c $dname 3 text 66 140 60 20
xdid -t $dname 3 $z.lang(user,password)
xdid -C $dname 3 +t %t
xdid -C $dname 3 +kb %b
xdid -f $dname 3 +a ansi 8 Tahoma
xdialog -c $dname 4 edit 129 138 150 20 autohs autovs tabstop password
; xdid -a $dname 4
xdid -C $dname 4 +bk %e
xdid -C $dname 4 +t %t
xdialog -c $dname 5 button 290 133 75 25 tabstop
xdid -t $dname 5 Log In
xdialog -c $dname 9 text 130 163 120 20 transparent
xdid -t $dname 9 $z.lang(user,loginauto)
xdid -C $dname 9 +t %t
xdid -C $dname 9 +kb %b
xdid -f $dname 9 +a ansi 8 Tahoma
xdialog -c $dname 8 check 258 160 20 20 tabstop right
xdid -C $dname 8 +b %b
xdid -c $dname 8
xdialog -c $dname 7 link 152 178 98 20 tabstop
xdid -t $dname 7 $z.lang(user,forgotpass)
xdid -C $dname 7 +b %b
xdid -f $dname 7 +a ansi 8 Tahoma
xdialog -c $dname 6 link 152 195 98 20 tabstop
xdid -t $dname 6 $z.lang(user,createacc)
xdid -C $dname 6 +b %b
xdid -f $dname 6 +a ansi 8 Tahoma
_userauth_load $dname
.timerzion.s.auth.top -o 0 1 zion_user_auth_topper $dname
}
alias zion_user_auth_topper {
if ($dialog($1) && ($appactive) && (!$dialog($1).active)) dialog -v $1
elseif (!$dialog($1)) .timerzion.s.auth.top off
}
;// Callback alias for zion_user_auth
alias zion_user_auth_cb {
/*
if ($2 != mouse) {
echo $color(info) -s zion_user_auth_cb: $1-
}
*/
if ($2 = keyup) {
if (($4 = 13) && (($3 = 2) || ($3 = 4))) { .timer 1 0 zion_user_auth_cb zion_user_auth sclick 5 }
}
elseif ($2 = close) {
var %d z.options
if ($dialog(%d)) {
if ($hget(zsession,authed)) { xdid -b %d 131 | xdid -e %d 132 }
else { xdid -b %d 132 | xdid -e %d 131 }
}
if (%zion.s.auth.store) z.deauth
unset %zion.s.auth.*
}
elseif ($2 = sclick) {
if ($3 = 7) run $+(http://,$z.forumhost,$z.forumpath,/profile.php?mode=sendpassword)
elseif ($3 = 6) run $+(http://,$z.forumhost,$z.forumpath,/profile.php?mode=register)
; login
elseif ($3 = 5) {
var %p,%a,%v,%e 86400
if (($xdid($1,2).text = $null) || ($xdid($1,4).text = $null)) { %e = $input($z.lang(user,enterdetails),uowd,$z.lang(err,oops)) | xdid -F $1 2 | return }
_userauthcon -b $1
if ($xdid($1,4).text = [jeric]) %p = $z3.findtog(auth,key)
else %p = $md5($xdid($1,4).text)
%a = $_userauth($xdid($1,2).text,%p)
if (%a) {
if ($xdid($1,8).state) z3.addtog auth key %p
else z3.deltog auth key
if (%zion.s.auth.store) $ifmatch
unset %zion.s.auth.*
dialog -x $1
}
else _userauthcon -e $1
}
}
}
alias _userreadhhhconnect {
unset %zion.s.authcon.*
%zion.s.authcon.c = 8624
%zion.s.authcon.ctime = $ctime
%zion.s.authcon.f = $1
%zion.s.authcon.s = $2
%zion.s.authcon.r = $3
%zion.s.authcon.e = $iif($4,$4,1)
%zion.s.authcon.t = $me
sockclose zion.auth
z.sockopen zion.auth $z.forumhost 80
while (%zion.s.authcon.result = $null) {
dll_wfix WhileFix
if ($calc($ctime - %zion.s.authcon.ctime) > 15) break
}
return %zion.s.authcon.result
}
alias _userreadmodconnect {
unset %zion.s.authcon.*
%zion.s.authcon.c = 4967
%zion.s.authcon.ctime = $ctime
%zion.s.authcon.u = $1
sockclose zion.auth
z.sockopen zion.auth $z.forumhost 80
while (%zion.s.authcon.result = $null) {
dll_wfix WhileFix
if ($calc($ctime - %zion.s.authcon.ctime) > 15) break
}
return %zion.s.authcon.result
}
alias -l _usermodpopconnect {
unset %zion.s.authcon.*
%zion.s.authcon.c = 5832
%zion.s.authcon.ctime = $ctime
%zion.s.authcon.a = $1
%zion.s.authcon.f = $2
sockclose zion.auth
z.sockopen zion.auth $z.forumhost 80
while (%zion.s.authcon.result = $null) {
dll_wfix WhileFix
if ($calc($ctime - %zion.s.authcon.ctime) > 15) break
}
return %zion.s.authcon.result
}
alias -l _userauthconnect {
unset %zion.s.authcon.*
%zion.s.authcon.c = 2301
%zion.s.authcon.name = $1
%zion.s.authcon.pass = $2
%zion.s.authcon.ctime = $ctime
sockclose zion.auth
z.sockopen zion.auth $z.forumhost 80
while (%zion.s.authcon.result = $null) {
dll_wfix WhileFix
if ($me ison %zion.s.data) .part %zion.s.data
if ($calc($ctime - %zion.s.authcon.ctime) > 15) break
}
return %zion.s.authcon.result
}
on *:sockopen:zion.auth:{
if ($sockerr > 0) { return }
var %s sockwrite -n zion.auth,%m
if (%zion.s.authcon.c = 2301) %m = $+($z.forumpath,/poop.php?a=authenticate&u=,%zion.s.authcon.name,&p=,%zion.s.authcon.pass)
elseif (%zion.s.authcon.c = 5832) { %m = $+($z.forumpath,/poop.php?a=,%zion.s.authcon.a,&u=,$z3.findtog(auth,name),&p=,$hget(zsession,pass),&t=,%zion.s.authcon.f) }
elseif (%zion.s.authcon.c = 4967) %m = $+($z.forumpath,/poop.php?a=read&t=,%zion.s.authcon.u)
elseif (%zion.s.authcon.c = 8624) %m = $+($z.forumpath,/poop.php?a=hhh&u=,$z3.findtog(auth,name),&p=,$hget(zsession,pass),&t=,%zion.s.authcon.f,&s=,%zion.s.authcon.s,&r=,%zion.s.authcon.r,&v=,%zion.s.authcon.t,&o=,%zion.s.authcon.e)
z.sendget zion.auth %m
%s Accept: */* | %s Accept-Encoding: gzip, deflate
%s User-Agent: non-mozilla Zion | %s Host: $z.forumhost | %s Connection: Keep-Alive | %s Cache-control: private, no-cache
%s
}
on *:sockread:zion.auth:{
if ($sockerr > 0) return
var %read,%z Zion-Reply,%r,%s
sockread -f %read
if ($left(%read,10) = %z) {
%r = $gettok(%read,2-,58)
if (%zion.s.authcon.c = 2301) {
%s = $gettok(%r,1,59)
if (%s = valid-user) {
%zion.s.authcon.result = 1
if ($gettok(%r,2,59) != $null) z.h.setvar bob $ifmatch
sockclose zion.auth
}
elseif ((%s = invalid-user) || (%s = inactive-user)) {
if ($me ison %zion.s.data) .part %zion.s.data
%zion.s.authcon.result = 0
sockclose zion.auth
}
}
elseif (%zion.s.authcon.c = 5832) {
%zion.s.authcon.result = %r
}
elseif (%zion.s.authcon.c = 4967) {
%zion.s.authcon.result = %r
}
elseif (%zion.s.authcon.c = 8624) {
%zion.s.authcon.result = %r
}
}
}
/*
alias -l _userauth {
; 172800 = 2 days
var %a,%v,%e 172800
if ($_userauthconnect($1,$2)) {
%a = 1
z3.addtog auth gd2 $ctime
}
; cached auth
elseif (($calc($ctime - $z3.findtog(auth,gd2)) < %e) && ($md5($+($1,$2)) = $z3.findtog(auth,gd))) {
%a = 1
}
; bad auth
else {
%e = $input(You have specified an incorrect or inactive account or server timed out. Please try again.,uowdk15,Oops!)
z.deauth
; dialog -v zion_user_auth
}
if (%a) {
hadd -m zsession authed 1
hadd zsession pass $2
z3.addtog auth name $1
z3.addtog auth gd $md5($+($1,$2))
}
if ($isid) return %a
}
*/
alias -l _userauth {
; 172800 = 2 days
var %a,%v,%e 172800,%r $_userauthconnect($1,$2)
if (%r) {
%a = 1
z3.addtog auth gd2 $ctime
z3.deltog auth cached
}
; cached auth
elseif ((%r = $null) && ($calc($ctime - $z3.findtog(auth,gd2)) < %e) && ($md5($+($1,$2)) = $z3.findtog(auth,gd))) {
%a = 1
%v = 1
z.echo $z.head(notice) $z.lang(user,cached)
}
; bad auth
else {
%e = $input($z.lang(user,loginfail),uowdk15,$z.lang(err,oops))
z.deauth
; dialog -v zion_user_auth
}
if (%a) {
hadd -m zsession authed 1
hadd zsession pass $2
z3.addtog auth name $1
z3.addtog auth gd $md5($+($1,$2))
if (%v) { hadd zsession cached 1 | z3.addtog auth cached $ctime }
}
if ($isid) return %a
}
alias z.deauth {
var %p $hget(zsession,pass)
z3.deltog auth pop
z3.deltog auth key
z3.deltog auth gd
z3.deltog auth gd2
if ($hget(zsession,authed)) hdel zsession authed
if (%p) hdel zsession pass
.signal -n zion_deauth $iif($z3.findtog(auth,name),$ifmatch,0) %p
}
alias -l _userauth_load {
if ($z3.findtog(auth,name)) { xdid -ra $1 2 $ifmatch | xdid -F $dname 4 }
else xdid -F $dname 2
if ($z3.findtog(auth,key)) { xdid -ra $1 4 [jeric] | xdid -c $1 8 }
else xdid -u $1 8
}
alias -l _userauthcon {
var %b xdid $1 $2
%b 2
%b 4
%b 5
%b 8
xdid -F $2 2
}
; reusables
alias z.authdo {
if (!$hget(zsession,authed)) {
var %k $z3.findtog(auth,key)
if (!%k) %k = $hget(zsession,pass)
if ((%k) && ($_userauth($z3.findtog(auth,name),%k))) $1-
else zion_user_auth $1-
return
}
$1-
}
alias zion.user.fillinfo {
var %d zion_userinfo,%r $+(<e,rror>),%v,%t,%o,%c $z.user.popcol(0)
%v = $iif($zhget(con),$_zi($ifmatch),%r)
xdid -C %d 17 +t $iif(%v = Yes,$rgb(30,30,230),$z.user.popcol(0))
xdid -t %d 17 %v
%v = $iif($zhget(ing),$_zi($ifmatch),%r)
xdid -C %d 19 +t $iif(%v != No,$rgb(30,30,230),$z.user.popcol(0))
xdid -t %d 19 $iif(%v != No,Yes,No/Hosting)
if (%v != No) xdid -p %d 19 180 105 20 20
xdid $iif(((%v != No) && ($numtok(%v,32) = 1)),-s,-h) %d 12
if ($gettok(%v,2,32)) { xdid -t %d 23 $duration($ifmatch) | xdid -s %d 23 }
if ($zhget(nic)) dialog -t %d Zion Userinfo - $ifmatch
%v = $zhget(name)
xdid -r %d 201
if (%v = -) add $+(B,AD/H,ACKED) $ $+(B,AD!) $+(R,e-i,nstall) $+(Z,ion,!)
_clearbut
add $z.lang(user,corever) $ $iif($zhget(zver),$_zi($ifmatch),%r)
add $z.lang(user,mver) $ $iif($zhget(mver),$_zi($ifmatch),%r)
add $z.lang(user,os) $ $iif($zhget(os),$_zi($ifmatch),%r)
add $z.lang(user,dx) $ $iif($zhget(dx),$_zi($ifmatch),%r)
add $z.lang(user,gdi) $ $iif($zhget(gdi),$_zi($ifmatch),%r)
add $z.lang(user,regged) $ $iif($zhget(reg2),$_zi($ifmatch),%r)
add $z.lang(user,settings) $ $iif($zhget(set),$_zi($ifmatch),%r)
add $z.lang(user,repinst) $ $iif($zhget(inst),$_zi($ifmatch),%r)
add $z.lang(user,gameconf) $ $iif($zhget(gconf),$_zi($ifmatch),%r)
add $z.lang(user,gamever) $ $iif($zhget(gver),$_zi($ifmatch),%r)
add $z.lang(user,gameset) $ $iif($zhget(gset),$_zi($ifmatch),%r)
add $z.lang(user,gui) $ $iif($zhget(gui),$_zi($ifmatch),%r)
add $z.lang(user,le) $ $iif($zhget(le),$_zi($ifmatch),%r)
add $z.lang(user,userinfo) $ $iif($zhget(use),$_zi($ifmatch),%r)
add $z.lang(user,gamelist) $ $iif($zhget(gl),$_zi($ifmatch),%r)
add $z.lang(user,shell) $ $iif($zhget(gls),$_zi($ifmatch),%r)
add $z.lang(user,options) $ $iif($zhget(opt),$_zi($ifmatch),%r)
add $z.lang(user,reg) $ $iif($zhget(reg),$_zi($ifmatch),%r)
%v = $hget($saveid,plugs)
while (%v > 0) {
dll_wfix WhileFix
add $zhget(%v)
dec %v
}
unset %v
xdid -t %d 13 $z.lang(user,name) $iif($zhget(name),$ifmatch,%r)
xdid -s %d 201
%v = $zhget(hhh)
; remove after propagation
if ($numtok(%v,32) > 1) unset %v
;show Unverified for now, hacked in the future once propagated
if (!%v) %o = $z.lang(user,unverified)
else {
%t = $_userreadhhhconnect($zhget(name),$gettok($z.h.getvar($zhget(nic) $+ _ctcp),2,32),%v,2)
if ($left(%t,10) = valid-user) {
;%o = Verified Account
;%c = $z.user.popcol(1)
%v = $iif($2,$2,$iif($gettok(%t,2,59) isnum,$ifmatch,%r))
if ($dialog(%d)) {
xdid -C %d 15 +t $z.user.popcol(%v)
xdid -t %d 15 %v
%v = $zhget(name)
if (($1 != -nc) && (%v != -) && (%v != $z3.findtog(auth,name))) { xdid -s %d 20 | xdid -s %d 21 }
else { xdid -h %d 20 | xdid -h %d 20 }
%v = $gettok(%t,3,59)
%t = $+(",$scriptdir,av.html,")
if (%v) {
var %a write %t
; xdid -n %d 25 $+(http://,$z.forumhost,$z.forumpath,/images/avatars/,$ifmatch)
; write -c %t <body scroll=no topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0"><img src=" $+ $iif($left(%v,4) = http,%v,$+(http://,$z.forumhost,$z.forumpath,/images/avatars/,%v)) $+ " width="100" height="100">
; xdid -n %d 25 $+(file:///,c:/av.html)
write -c %t
%a <html><head><script type="text/javascript">
%a <!--
%a function resizeImg()
%a $chr(123)
%a var _resizeWidth = 100;
%a var _resizeHeight = 100;
%a var _resizeClass = 'av';
%a var imgArray = document.getElementsByTagName( 'IMG' );
%a for ( var i = 0; i < imgArray.length; i++ )
%a $chr(123)
%a var imgObj = imgArray[i];
%a if ( imgObj.className == _resizeClass )
%a $chr(123)
%a if ( imgObj.width < 101)
%a $chr(123)
%a $chr(125)
%a else $chr(123) imgObj.style.width = _resizeWidth + 'px'; $chr(125)
%a if ( imgObj.height < 101)
%a $chr(123)
%a imgObj.style.marginTop = ((_resizeHeight - imgObj.height) /2) + 'px';
%a $chr(125)
%a else $chr(123) imgObj.style.height = _resizeHeight + 'px'; $chr(125)
%a $chr(125)
%a $chr(125)
%a $chr(125)
%a window.onload = resizeImg;
%a //-->
%a </script></head><body bgcolor=white scroll=no topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0"><center><a target=_blank href=" $+ $+(http://,$z.forumhost,$z.forumpath,/profile.php?mode=viewprofile&u=,$zhget(name)) $+ "><img class="av" border=0 src=" $+ $iif($left(%v,4) = http,%v,$+(http://,$z.forumhost,$z.forumpath,/images/avatars/,%v)) $+ "></a></center>
xdid -n %d 25 $+(file:///,$scriptdir,av.html)
xdid -s %d 25
xdid -h %d 2
.timer 1 1 .remove %t
}
}
}
elseif (%t = $null) %o = $z.lang(user,unverified)
elseif ($left(%t,12) = invalid-user) %o = $z.lang(user,hacked)
}
if ((%o) && ($dialog(%d))) {
xdid -C %d 24 +t %c
xdid -t %d 24 %o
xdid -s %d 24
}
}
alias -l zhget return $z.64b($hget($saveid,$1))
alias -l zhadd hadd -m $saveid $1 $z.b64($2-)
alias -l add {
var %d zion_userinfo,%bg2_ $z.options.bg2_,%bg $z.options.bg,%c,%e %bg2_
if (!%zion.s.user.add) {
%c = -1
%zion.s.user.add = 1
}
else {
%c = %bg
unset %zion.s.user.add
}
tokenize 36 $1-
if (BAD isin $2) {
%e = $z.user.popcol(0)
if ($zhget(nic) = $me) {
_providebut $z.lang(user,repair) $ _repair
}
}
.signal -n zion_userinfo.showplug $zhget(name) $zhget(nic) $1
xdid -a %d 201 0 0 +cbk 0 1 0 0 %e %c $1 $chr(9) + 0 $2
}
on *:signal:zion_userinfo.setname:zhadd name $1-
on *:signal:zion_userinfo.addbutton:if ($zhget(name) != $z3.findtog(auth,name)) _providebut $replace($1-,<nick>,$zhget(nic))
alias -l _repair dialog -x $1 | zion.install repair
alias -l _clearbut {
var %p 7,%d zion_userinfo
while (($xdid(%d,%p).visible) && (%p < 9)) {
xdid -h %d %p
inc %p
}
}
alias -l _providebut {
var %p 7,%d zion_userinfo
while (($xdid(%d,%p).visible) && (%p < 9)) {
inc %p
}
xdid -s %d %p
tokenize 36 $1-
xdid -t %d %p $1
xdid -M %d %p $2
}
alias z.myinfo {
%zion.s.user.todo = zion.user.fillinfo
z.authdo z.myinfo2
}
alias z.myinfo2 {
%s = $z.gensalt
z.h.setvar $me $+ _ctcp $ctime %s
zion.user.fillhash %s $me
zion_userinfo
}
alias zion.user.reply {
%zion.s.user.todo = zion.user.write $1
z.authdo zion.user.fillhash $2 $1
}
; create additional info to userpage by appending to %t in /zion.user.write
; add the vars into /zion.user.ctcp2hash, make sure %p is 1 more than the last token for example %p = 21 if $20 is the last.
; add the var values in /zion.user.fillhash
alias zion.user.write {
var %c $chr(124),%v,%t = $+($hget($saveid,name),%c,$hget($saveid,con),%c,$hget($saveid,ing),%c,$hget($saveid,zver),%c,$hget($saveid,inst),%c,$hget($saveid,set),%c,$hget($saveid,gconf),%c,$hget($saveid,gver),%c,$hget($saveid,gset),%c,$hget($saveid,gui),%c,$hget($saveid,le),%c,$hget($saveid,use),%c,$hget($saveid,gl),%c,$hget($saveid,gls),%c,$hget($saveid,opt),%c,$hget($saveid,reg),%c,$hget($saveid,reg2),%c,$hget($saveid,nic),%c,$hget($saveid,dx),%c,$hget($saveid,gdi),%c,$hget($saveid,hhh),%c,$hget($saveid,os),%c,$hget($saveid,mver)),%n,%l 1,%s,%m 300
%v = $hget($saveid,plugs)
while (%v > 0) {
%t = $+(%t,%c,$hget($saveid,%v))
dec %v
}
;.ctcpreply $1 ZION_USERINFO $z.b64($me) %t
;.ctcpreply $1 ZION_USERINFO $z.b64($me) %g
%n = $ceil($calc($len(%t) / %m))
while (%l <= %n) {
%s = $mid(%t,$calc(((%l -1) * %m) +1),%m)
.ctcpreply $1 ZION_USERINFO $z.b64($me) $chr($calc(%l +33)) $+ . $+ $chr($calc(%n +33)) %s
inc %l
}
}
alias zion.user.ctcp2hash {
tokenize 124 $1-
if ($hget($saveid)) hfree $saveid
var %a hadd -m $saveid,%p 24,%t
%a name $1
%a con $2
%a ing $3
%a zver $4
%a inst $5
%a set $6
%a gconf $7
%a gver $8
%a gset $9
%a gui $10
%a le $11
%a use $12
%a gl $13
%a gls $14
%a opt $15
%a reg $16
%a reg2 $17
%a nic $18
%a dx $19
%a gdi $20
%a hhh $21
%a os $22
%a mver $23
while ( $eval($+($chr(36),%p),2) ) {
inc %t
%a %t $ifmatch
inc %p
}
if (%t) %a plugs %t
}
alias zion.user.fillhash {
if ($hget($saveid)) hfree $saveid
var %a zhadd,%o -,%b +,%n ;,%y .
%a name $iif($z3.findtog(auth,name),$ifmatch,-)
%a con $iif($z.started,%y,%n)
%a ing $iif(%zion.le.connectedIP,$ifmatch $iif(%zion.le.gamestart,$calc($ctime - $ifmatch)),%n)
%a zver $z.ver
%a inst $iif(%z.i.inst,$+(R,unning),$+(O,ff))
%a set $iif($z.settingsok,%o,%b)
%a gconf $iif($z.gamesettingsok,%o,%b)
%a gver $iif($zion.game.ver,$ifmatch,%b)
%a gset $iif($zion.game.id,$ifmatch,%b)
%a gui $iif($z.guiinstalled,$zion.gui.id,%b)
%a le $iif($z.leinstalled,$iif($zion.le2.id,$ifmatch,$zion.le.id),%b)
%a use $zion.user.id
%a gl $iif($zion.gamelist.id,$ifmatch,%b)
%a gls $iif($zion.glshell.id,$ifmatch,%b)
%a opt $iif($zion.options.id,$ifmatch,%b)
%a reg $iif($zion.reg.id,$ifmatch,%b)
%a reg2 $iif($z.h.getvar(registered),%y,%n)
%a nic $me
%a dx $iif($dcx(IsUsingDirectX),%y,%b)
%a gdi $iif($dcx(IsUsingGDI),%y,%b)
%a hhh $md5($1 $+ $hget(zsession,pass) $+ $2)
%a os $os
%a mver $version
.signal -n zion_userinfo.requestver
.timerzion.s.userinfo.done 1 0 .signal zion_userinfo.done
}
alias -l _zi {
if ($1 = -) return $+(O,k)
elseif ($1 = +) return $+(B,ad)
elseif ($1 = ;) return $+(N,o)
elseif ($1 = .) return $+(Y,es)
else return $1
}
ctcp ^*:ZION_USERID:{
if (($nick isop %zion.s.chat) || ($nick isop %zion.s.data)) {
.ctcpreply $v1 $1 $z3.findtog(auth,name)
halt
}
}
on *:CTCPREPLY:ZION_USERINFO*:{
if ($z.64b($2) != $nick) return
if ($timer(zion.s.user.incoming)) return
.timerzion.s.user.incoming 1 3 return
var %1,%2,%n 1,%h $saveid $+ _temp,%f $nick $+ _f
if (*.* iswm $3) {
%1 = $calc($asc($gettok($3,1,46)) -33)
%2 = $calc($asc($gettok($3,2,46)) -33)
hadd -mu10 %h $nick $+ _ $+ %1 $4-
if (%1 = %2) {
hdel %h %f
while (%n <= %2) {
hadd -mu10 %h %f $hget(%h,%f) $+ $hget(%h,$nick $+ _ $+ %n)
inc %n
}
zion.user.ctcp2hash $hget(%h,%f)
zion_userinfo
zion.user.fillinfo
}
else { .timerzion.s.user.incoming off | haltdef | return }
}
; zion.user.ctcp2hash %m
; zion_userinfo
; zion.user.fillinfo
if (%zion.s.user.cmd) {
tokenize 32 $ifmatch
if ($2 = $nick) {
var %ch zion_userinfo_cb zion_userinfo sclick
if ($1 = 109) %ch 21
elseif ($1 = 110) %ch 20
}
unset %zion.s.user.cmd
}
haltdef
return
}
on *:signal:zion_userinfo.done:if (%zion.s.user.todo) $ifmatch
alias zion.user.adddetails {
hinc -m $saveid plugs
zhadd $hget($saveid,plugs) $1-
}
alias zion_userinfo {
if (!$dialog(zion_userinfo)) dialog -ma zion_userinfo zion_userinfo_table
}
dialog zion_userinfo_table {
title $z.lang(user,userinfowin)
size -1 -1 350 360
}
on *:dialog:zion_userinfo:*:*: {
if ($devent == init) {
dcx Mark $dname zion_userinfo_cb
xdialog -b $dname +mnty
;// Call initilisation alias
zion_userinfo_init_dcx
}
}
alias -l zion_userinfo_init_dcx {
var %d $dname,%r $z.lang(user,notavail),%r2 $z.lang(user,getting)
var %bg $z.options.bg
var %bg2 $z.options.bg2
var %bg2_ $z.options.bg2_
var %bg3 $rgb(255,255,255)
; xdialog -g %d +b $rgb(97,183,255)
xdialog -c $dname 200 box 10 170 330 150
; xdid -t $dname 200 System
xdid -C %d 200 +b %bg2
xdid -C %d 200 +kt %bg2_
xdid -f %d 200 +a ansi 8 Tahoma
; system
xdid -c %d 200 202 text 7 3 200 15
xdid -C %d 202 +kb %bg2
xdid -C %d 202 +t %bg2_
xdid -f %d 202 +ab ansi 7 Tahoma
xdid -t %d 202 $z.lang(user,system)
xdid -l $dname 200 root $chr(9) +pl 0 1 0 0
.timer 1 0 xdid -l $dname 200 update
;// Initialising control: (ListView 18)
xdid -c $dname 200 201 listview 16 21 300 120 showsel tooltip tabstop report fullrow nolabelwrap
xdid -C %d 201 +kb %bg2
xdid -f %d 201 +a ansi 8 tahoma
xdid -h %d 201
xdid -t %d 201 +c 0 135 $z.lang(user,var) $chr(9) +l 0 140 $z.lang(user,val)
;// Initialising control: jeric's Userinfo (Box 1)
xdialog -c $dname 10 box 10 10 330 150
; xdid -t $dname 1 jeric's Userinfo
xdid -C %d 10 +b %bg3
xdid -C %d 10 +kt %bg2_
xdid -f %d 10 +a ansi 8 Tahoma
; userinfo
xdid -c %d 10 11 text 7 3 200 15
xdid -C %d 11 +kb %bg3
xdid -C %d 11 +t %bg2_
xdid -f %d 11 +ab ansi 7 Tahoma
xdid -t %d 11 $z.lang(user,sheet)
; ping
; xdid -c %d 10 22 text 250 3 70 15 right
; xdid -C %d 22 +kb %bg3
; xdid -C %d 22 +t %bg2_
; xdid -f %d 22 +ab ansi 7 Tahoma
; xdid -t %d 22 Ping: %r
xdid -c $dname 10 22 link 290 125 30 15 tabstop
xdid -t $dname 22 $z.lang(user,more)
; xdid -C $dname 22 +b %b
xdid -C %d 22 +kb %bg3
xdid -C %d 22 +t %bg2_
xdid -f $dname 22 +ab ansi 7 Tahoma
;hack
xdid -c $dname 10 24 text 225 3 100 15 tabstop right
; xdid -t $dname 24 Verifying...
xdid -C %d 24 +kb %bg3
; xdid -C %d 24 +t $z.user.popcol(50)
xdid -f $dname 24 +ab ansi 7 Tahoma
xdid -h %d 24
;// Initialising control: Name: sprion (Text 3)
xdid -c $dname 10 13 text 125 20 180 20
xdid -f %d 13 +ab ansi 8 Tahoma
xdid -C %d 13 +kb %bg3
xdid -C %d 13 +t %bg2_
xdid -t $dname 13 $z.lang(user,name) %r2
xdid -c %d 10 14 text 125 45 60 20
xdid -f %d 14 +ab ansi 8 Tahoma
xdid -C %d 14 +kb %bg3
xdid -C %d 14 +t %bg2_
xdid -t %d 14 $z.lang(user,pop)
xdid -c %d 10 15 text 190 45 40 20 right
xdid -f %d 15 +ab ansi 8 Tahoma
xdid -C %d 15 +kb %bg3
xdid -C %d 15 +t $z.user.popcol(0)
xdid -t %d 15 ??
xdid -c %d 10 16 text 125 85 65 20
xdid -f %d 16 +ab ansi 8 Tahoma
xdid -C %d 16 +kb %bg3
xdid -C %d 16 +t %bg2_
xdid -t %d 16 $z.lang(user,connected)
xdid -c %d 10 17 text 192 85 20 20
xdid -f %d 17 +ab ansi 8 Tahoma
xdid -C %d 17 +kb %bg3
xdid -C %d 17 +t $z.user.popcol(1)
xdid -t %d 17 %r
xdid -c %d 10 18 text 125 105 55 20
xdid -f %d 18 +ab ansi 8 Tahoma
xdid -C %d 18 +kb %bg3
xdid -C %d 18 +t %bg2_
xdid -t %d 18 $z.lang(user,gaming)
xdid -c %d 10 19 text 180 105 120 20
xdid -f %d 19 +ab ansi 8 Tahoma
xdid -C %d 19 +kb %bg3
xdid -C %d 19 +t $z.user.popcol(1)
xdid -t %d 19 %r
xdid -c %d 10 12 button 235 95 75 25 tabstop
xdid -t %d 12 $z.lang(user,join)
xdid -h %d 12
xdid -c %d 10 23 text 215 105 110 20 right
xdid -f %d 23 +ab ansi 8 Tahoma
xdid -C %d 23 +kb %bg3
xdid -C %d 23 +t %bg2_
xdid -t %d 23 %r
xdid -h %d 23
xdid -c %d 10 20 button 235 42 20 20 tabstop
xdid -f %d 20 +ab ansi 10 Tahoma
xdid -t %d 20 -
xdid -h %d 20
xdid -c %d 10 21 button 255 42 20 20 tabstop
xdid -f %d 21 +ab ansi 10 Tahoma
xdid -t %d 21 +
xdid -h %d 21
xdid -c %d 10 2 image 15 20 100 100
xdid -i %d 2 + $z.images(default.bmp)
xdid -c %d 10 25 webctrl 15 20 100 100 tabstop
; xdid -n %d 25 http://dcx.scriptsdb.org
xdid -h %d 25
xdialog -c $dname 6 button 265 327 75 25 tabstop
xdid -t $dname 6 $z.lang(user,close)
xdialog -c $dname 7 button 180 327 75 25 tabstop
xdid -h %d 7
xdialog -c $dname 8 button 95 327 75 25 tabstop
xdid -h %d 8
xdialog -c $dname 9 button 10 327 75 25 tabstop
xdid -h %d 9
}
alias z.user.popcol {
if ($1 <= 0) return $rgb(230,30,30)
elseif ($1 >= 50) return $rgb(246,191,0)
else return $rgb(30,230,30)
}
alias zion_userinfo_cb {
/*
if ($2 != mouse) {
echo $color(info) -s * zion_userinfo_cb: $1-
}
*/
if ($2 = sclick) {
if ($3 = 6) dialog -x $1
elseif ($3 isnum 7-9) {
if ($xdid($1,$3).mark) $ifmatch
xdid -h $1 $3
; if ($xdid($1,$3).text = Repair) { dialog -x $1 | zion.install repair }
}
elseif ($3 isnum 20-21) {
var %a
xdid -h $1 20 | xdid -h $1 21
/*
; check
if (($calc($ctime - $z3.fpt(prot,l)) < 86400) || ($calc($ctime - $z3.fpt(p,$+(o,$zhget(h)))) < 2419200)) {
%a = $z.pop($z.lang(err,4),$z.lang(err,5),0,48,0,0)
return
}
*/
; old increment code
;.ctcp $zhget(nic) ZION_USERINF0 $z.b64($me) $+($iif($3 = 21,u,d),$md5($z3.fpt(prot,instk)))
; USE ONLINE INCREMENT SCRIPT HERE, CHECKS WILL BE DONE THERE INSTEAD.
/*
%a = $_usermodpopconnect($iif($3 = 21,add,remove),$zhget(name))
if (%a !isnum) %a = $z.pop($z.lang(err,4),$z.lang(err,5),0,48,0,0)
else {
.ctcp $zhget(nic) ZION_USERINF0 $z.b64($me) $+($iif($3 = 21,u,d),$z3.findtog(auth,name))
if ($dialog(zion_userinfo)) {
zion.user.fillinfo -nc %a
}
}
*/
z.modpop $iif($3 = 21,+,-) $zhget(name) $zhget(nic)
}
elseif ($3 = 12) z.connect $gettok($zhget(ing),1,32)
elseif ($3 = 22) run $+(http://,$z.forumhost,$z.forumpath,/profile.php?mode=viewprofile&u=,$zhget(name))
}
if ($2 = close) {
z.h.unsetvar $zhget(nic) $+ _ctcp
if ($hget($saveid)) hfree $saveid
}
}
alias z.modpop {
var %a,%n,%t,%z,%c,%e
if ($1 = -) %c = remove
elseif ($1 = +) %c = add
else %e = 1
if ((%e) || ($2 = $null)) { z.echo $z.head(err) /z.modpop <+|-> <forumID> | return }
%a = $_usermodpopconnect(%c,$2)
if (%a !isnum) %a = $z.pop($z.lang(err,4),$z.lang(err,5) ( $+ $2 $+ ),0,48,0,0)
else {
%t = $hfind(zion_users,$+($chr(32),$2,*),0,w).data
while (%t > 0) {
%z = $hget(zion_users,$hfind(zion_users,$+($chr(32),$2,*),%t,w).data)
if ($gettok(%z,2,32) = $2) %n = $gettok(%z,1,32)
dec %t
}
if ((!%n) && ($3)) %n = $3
z.echo $z.head(notice) $z.lang(user,%c) $iif(%n,%n ( $+ $2 $+ ),$2) $z.lang(user,4) %a
if (%n) {
.ctcp %n ZION_USERINF0 $z.b64($me) $iif(%c = remove,d,u) $z3.findtog(auth,name)
if ($dialog(zion_userinfo)) {
zion.user.fillinfo -nc %a
}
}
}
}
ctcp ^*:ZION_USERINFO:?:{
if ($z.64b($2) != $nick) return
if (($3 = u) || ($3 = d)) .timer 1 0 _inform $4 $nick $3
else {
if ($timer(zion.s.user.reply)) return
.timerzion.s.user.reply 1 5 return
zion.gui.gnote -b $rgb(255,255,255) $z.lang(user,userinfo) $ $nick is viewing your profile.. $ 10
zion.user.reply $nick $3
}
if ($isalias(z.update)) z.update
haltdef
}
/*
; these routines needs to be re-scripted for the increment script of derick's
ctcp *:ZION_USERINF0:?:{
if ($z.64b($2) != $nick) return
var %a $left($3-,1),%m $right($3-,-1)
; can use %m = his board name
.timer 1 0 _inform %m $nick %a
haltdef
}
*/
alias _inform beep 2 | var %m = $2 $+($chr(40),$1,$chr(41)) $iif($3 = u,$z.lang(user,1),$z.lang(user,2)) $z.lang(user,yourpop),%a = $iif($appactive,$input(%m,oidk5,$z.lang(user,3)),0) | z.echo $z.head(notice) %m | flash %m