All pastes #418305 Raw Edit

Miscellany

public text v1 · immutable
#418305 ·published 2007-03-31 15:30 UTC
rendered paste body
on $*:text:/^[!@](cirpg|compidle)/Si:#: {  
  if (!$2) || (!$3) {
    .notice $nick $c2(Syntax:) $c1(!cirpg NAME1 NAME2) 
    halt
  }
  else {
    set %idle.way1 $iif($left($1,1) == @,.msg $chan,.notice $nick) 
    set %idle.nick1 $2
    set %idle.nick2 $3
    sockopen IRPG1 pure.nullrouted.biz 80 
    sockopen IRPG2 pure.nullrouted.biz 80
  } 
}
on *:SOCKOPEN:IRPG1: { 
  sockwrite -nt $sockname GET /~xnemesis/playerview.php?player= $+ %idle.nick1
  sockwrite -nt $sockname Host: pure.nullrouted.biz
  sockwrite -nt $sockname $crlf $crlf 
} 
on *:SOCKREAD:IRPG1: { 
  if ($sockerr) { echo -at ** Error ** in scoket: $sockerr | halt } 
  else { 
    var %sockreader 
    sockread %sockreader
    if (*<b>No such user.</b>* iswm %sockreader) { set %idle.wrong1 1 | halt }
    if (*<b>Level:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.lvl1 $nohtml($2) }
    if (*<b>Class:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.class1 $nohtml($2-) }
    if (*<b>Next level:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.nxtlvl1 $nohtml($remove($2-,level:)) }
    if (*sum:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.sum1 $nohtml($2-) }
    if (*<b>Status:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.status1 $nohtml($2-) }
    if (*<b>Alignment:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.align1 $nohtml($2-) }
  }
}
on *:SOCKOPEN:IRPG2: {
  sockwrite -nt $sockname GET /~xnemesis/playerview.php?player= $+ %idle.nick2
  sockwrite -nt $sockname Host: pure.nullrouted.biz
  sockwrite -nt $sockname $crlf $crlf 
}
on *:SOCKREAD:IRPG2: {
  if ($sockerr) { echo -at ** Error ** in scoket: $sockerr | halt } 
  else { 
    var %sockreader 
    sockread %sockreader
    if (*<b>No such user.</b>* iswm %sockreader) { set %idle.wrong2 1 | halt }
    if (*<b>Level:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.lvl2 $nohtml($2) }
    if (*<b>Class:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.class2 $nohtml($2-) }
    if (*<b>Next level:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.nxtlvl2 $nohtml($remove($2-,level:)) }
    if (*sum:* iswm %sockreader) { tokenize 32 %sockreader | set %idle.sum2 $nohtml($2-) }
    if (*<b>Status:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.status2 $nohtml($2-) }
    if (*<b>Alignment:</b>* iswm %sockreader) { tokenize 32 %sockreader | set %idle.align2 $nohtml($2-) }
  }
}
on *:SOCKCLOSE:IRPG2: { 
  if (%idle.wrong1 == 1) || (%idle.wrong2 == 1) { %idle.way1 $c2(User) $c1($iif(%idle.nick1 == 1,%idle.nick1,%idle.nick2)) $c2(was not found.) | unset %idle.* |
    unset %idle.* | halt
  }
  else {
    %idle.way1 $c2(Idle comparison for) $c2($chr(40)) $+ $c1(%idle.nick1) $c2(the level) $c1(%idle.lvl1) $c1(%idle.class1) $c2($chr(40)) $+ $c1(%idle.status1) $+ $c2($chr(41)) $+ $c2($chr(41)) $c2(and) $c2($chr(40)) $+ $c1(%idle.nick2) $c2(the level) $c1(%idle.lvl2) $c1(%idle.class2) $c2($chr(40)) $+ $c1(%idle.status2) $+ $c2($chr(41)) $+ $c2($chr(41)) $+ $c2(:)
    %idle.way1 $c2($chr(40)) $+ $c1(%idle.nick1) $+ $c2($chr(41)) $+ $c2('s) $c2(alignment is) $c1(%idle.align1) $c2(and) $c2($chr(40)) $+ $c1(%idle.nick2) $+ $c2($chr(41)) $+ $c2('s) $c2(alignment is) $c1(%idle.align2) $+ $c2(.)
    %idle.way1 $c2($chr(40)) $+ $c1(%idle.nick1) $+ $c2($chr(41)) $c2(is) $c1($datediff(%idle.nxtlvl1,%idle.nxtlvl2,wdhns)) $c2($iif(%idle.nxtlvl1 < %idle.nxtlvl2,behind,ahead)) $c2($chr(40)) $+ $c1(%idle.nick2) $+ $c2($chr(41)) $+ $c2(.)
    %idle.way1 $c2($chr(40)) $+ $c1(%idle.nick1) $+ $c2($chr(41)) $c2(has) $c1($iif(%idle.sum1 < %idle.sum2, $calc(%idle.sum2 - %idle.sum1), $calc(%idle.sum1 - %idle.sum2))) $c2($iif(%idle.sum1 < %idle.sum2,less,more)) $c2(of an item sum than) $c2($chr(40)) $+ $c1(%idle.nick2) $+ $c2($chr(41)) $+ $c2(.)
    unset %idle.*
  }
}
alias datediff {
  var %t,%result,%n = $crlf , %com = dd $+ $ticks, %s = $iif($3,$qt($1),Date) , %e = $qt($iif($3,$2,$1)), %values = $($+($,$0),2), $&
    %error = $regex(%values,/[^yqmwadhns]/g), %values = $gettok($regsubex(%values,/([yqmwdhnsa])/g,$+(\t,$chr(44))),1-,44), $&
    %right = y,q,m,w,d,h,n,s, %values = $iif(a !isin %values,$gettok($remove(%right, [ $remove(%right, [ %values ] ) ] ),1-,44),%right)
  if ($istok(95 98,$os,32)) return E_OS
  if (%error) return E_FORMAT
  %t = Dim sd,ed,ret, $+ %values %n sd = %s %n ed = %e %n If isDate(sd) AND isDate(ed) Then %n
  tokenize 44 %values
  while ($0) {
    %t = %t $1 = DateDiff( $qt($replace($upper($1),y,YYYY)) ,sd,ed) %n
    if (e !isin $prop) %t = %t sd = DateAdd( $qt($replace($upper($1),y,YYYY,w,ww)) , $1 ,sd) %n
    tokenize 32 $2-
  }
  %t = %t ret = $replace(%values,$chr(44),$+($chr(32),&,,$chr(32)," ",,$chr(32),&,$chr(32))) %n Else ret = "E_DATE" %n End If
  .comopen %com MSScriptControl.ScriptControl
  if ($comerr) return E_COM
  noop $com(%com,language,4,bstr*,vbscript)
  if ($com(%com,executestatement,1,bstr*,%t)) && ($com(%com,eval,3,bstr*,ret )) %result = $com(%com).result
  else return = E_VB
  :error
  if ($com(%com)) .comclose %com $com(%com,reset,1)
  if ((E_* iswm %result) || (s isin $prop)) return %result
  else return $regsubex($replacex($regsubex(%result,/(\d+)/g,$+(\t,$gettok(%values,\n,44))),y,years,m,months,q,quarters,w,weeks,d,days,h,hours,n,minutes,s,seconds),/(?<!\d)(1[a-z]+?)s/g,\t)
}
;;-------------------------------------------
on $*:TEXT:/^[!@](penalties|penal)/Si:#:{
  if (!$2) || (!$3) || ($3 !isnum) {
    .notice $nick $c2(Syntax:) $c1(!penalties *QUIT*PART*LOGOUT*MSG*KICK*NICK* LEVEL *TEXT*) $c2((*TEXT* is only needed to find out what peanlty is for that amount of text.))
    halt
  }
  else {
    set %pen.n $iif($left($1,1) == @,.msg $chan,.notice $nick) 
    set %pen.t $2
    if (%pen.t == PART) {
      %pen.n $c2(For parting the IRPG channel) $c1($duration($calc(200*(1.14^($3))),1)) $c2(would be added to your time till next level.)
    }
    elseif (%pen.t == KICK) {
      %pen.n $c2(For being kicked from the IRPG channel) $c1($duration($calc(250*(1.14^($3))),1)) $c2(would be added to your time till next level.)
    }
    elseif (%pen.t == NICK) {
      %pen.n $c2(For changing your nick while on the IRPG channel) $c1($duration($calc(30*(1.14^($3))),1)) $c2(would be added to your time till next level.)
    }
    elseif (%pen.t == MSG) {
      %pen.n $c2(For messaging the IRPG channel ") $+ $c1($4-) $+ $c2(") $c1($duration($calc($len($4-)*(1.14^($3))),1)) $c2(would be added to your time till next level.)
    }
    elseif (%pen.t == LOGOUT) {
      %pen.n $c2(For logging out of IRPG) $c1($duration($calc(20*(1.14^($3))),1)) $c2(would be added to your time till next level.)
    }
    elseif (%pen.t == QUIT) {
      %pen.n $c2(For quitting while being logged into IRPG) $c1($duration($calc(20*(1.14^($3))),1)) $c2(would be added to your time till next level.)
    }
  }
}
;;;---------------------------------