rendered paste bodyon *: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),.)))
}