All pastes #237277 Raw Edit

Stuff

public text v1 · immutable
·published 2006-11-04 13:12 UTC
rendered paste body
on *:CONNECT:{
  /set %channel $read($mircdir $+ scripts\sampechocfg.txt, 1)
  /set %dir $shortfn($read($mircdir $+ scripts\sampechocfg.txt, 2))
  /fopen -o clear %dir $+ echo.txt
  /fclose clear
  /timerjoin 1 10 /join %channel
}

on *:JOIN:#LTS.echo:{
  if (($nick == $me) && (%channel == #)) {
    /set %line 0
    /set %data 0
    /timersampecho 0 1 /start #
  }
}

on *:PART:#LTS.echo:{
  if (($nick == $me) && (%channel == #)) {
    /timersampecho off
  }
}

on *:TEXT:!say *:#LTS.echo:{
  if (%channel == #LTS.echo) {
    /write %dir $+ irc.txt /say * $nick $+ : $2-
  }
}

on *:TEXT:!showmessage *:#LTS.echo:{
  if (%channel == #LTS.echo) {
    /write %dir $+ irc.txt /showmessage * $nick $+ : $2-
  }
}


on *:TEXT:!kick *:#LTS.echo:{
  if ($chan == #LTS.echo) {
    /write %dir $+ irc.txt /kick $$2
  }
}  

on *:TEXT:!players:#LTS.echo:{
  samp.query -p echoplayers 213.10.65.73 22003
}

alias start {
  /set %totallines $lines(%dir $+ echo.txt)
  if (%line < %totallines) {
    inc %line
    /set %data $read(%dir $+ echo.txt, %line)
    if (%data != $null) {
      /msg $1 %data
    }
  }
}




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;SA-MP Query Script by Trix [irc.gtanet.com];;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

alias samp.query {
  if ($numtok($1-,32) != 4) { echo -a 3* /samp.query: insufficient parameters [/samp.query -(p,i,pi) responsesignal ip port | halt }
  if ($1 == -p) { sockudp -k $+(samp.,$2,.players) $3 $4 $samp.packet($3,$4,c) }
  elseif ($1 == -i) { sockudp -k $+(samp.,$2,.info) $3 $4 $samp.packet($3,$4,i) }
  elseif ($1 == -pi) { sockudp -k $+(samp.,$2,.info) $3 $4 $samp.packet($3,$4,i) | sockudp -k $+(samp.,$2,.players) $3 $4 $samp.packet($3,$4,c) }
}

on *:signal:samp.outputcommand.querydata:{
  if ($1 == info) {
    var %ip = $+($2,:,$3)
    tokenize 7 $4-
    echo -a Name: $1 Password: $2 Players: $3 GameMode: $4 ( %ip )
  }

  elseif ($1 == players) { 
    echo -a Player Name: $4 - Score: $5
  }
}

on *:udpread:samp.*.info:{
  sockread &a
  bcopy -c &a 1 &a 12 $bvar(&a,0)
  var %gamemodelen = $a32int2numr($bvar(&a,$calc($a32int2numr($bvar(&a,6,4)) + 10),32243))

  .signal $gettok($sockname,1-2,46) $+ .querystart $sock($sockname).saddr $sock($sockname).sport

  .signal $gettok($sockname,1-2,46) $+ .querydata $gettok($sockname,3,46) $sock($sockname).saddr $sock($sockname).sport $bvar(&a,10,$a32int2numr($bvar(&a,6,4))).text $chr(7) $iif($bvar(&a,1),Yes,No) $chr(7) $+($a16int2numr($bvar(&a,2,2)),/,$a16int2numr($bvar(&a,4,2))) $chr(7) $bvar(&a,$calc($a32int2numr($bvar(&a,6,4)) + 14),%gamemodelen).text

  .signal $gettok($sockname,1-2,46) $+ .querycomplete $sock($sockname).saddr $sock($sockname).sport

  sockclose $sockname
}

on *:udpread:samp.*.players:{
  var %a = 1, %len, %namelen, %curpos = 3
  sockread &a
  bcopy -c &a 1 &a 12 $bvar(&a,0)

  .signal $gettok($sockname,1-2,46) $+ .querystart $sock($sockname).saddr $sock($sockname).sport

  .signal $gettok($sockname,1-2,46) $+ .queryplayercount $a16int2numr($bvar(&a,1,2)) $sock($sockname).saddr $sock($sockname).sport

  while (%a <= $a16int2numr($bvar(&a,1,2))) {
    %len = $bvar(&a,%curpos)

    .signal $gettok($sockname,1-2,46) $+ .querydata $gettok($sockname,3,46) $sock($sockname).saddr $sock($sockname).sport $bvar(&a,$calc(%curpos +1),%len).text $a32int2numr($bvar(&a,$calc(%curpos + %len + 1),4))

    inc %curpos $calc(5 + %len)
    inc %a
  }

  .signal $gettok($sockname,1-2,46) $+ .querycomplete $sock($sockname).saddr $sock($sockname).sport

  sockclose $sockname
}

alias -l samp.packet {
  return $+( $&
    SAMP, $&
    $chr($gettok($1,1,46)), $&
    $chr($gettok($1,2,46)), $&
    $chr($gettok($1,3,46)), $&
    $chr($gettok($1,4,46)), $&
    $chr($gettok($longip($2),4,46)), $&
    $chr($gettok($longip($2),3,46)), $&
    $3)
}

alias -l reverse32 {
  return $gettok($1,4,46) $+ . $+ $gettok($1,3,46) $+ . $+ $gettok($1,2,46) $+ . $+ $gettok($1,1,46)
}

alias -l a32int2numr {
  return $longip($reverse32($replace($1-,$chr(32),.)))
}

alias -l a16int2numr {
  return $longip($reverse32($replace($1- 0 0,$chr(32),.)))
}