Witaj gościu!
Zarejestruj się lub zaloguj.

Wyłapywanie Cheaterów

Mod wypisuje na forum, nicki osób, które wyuploadowały xxx gb/min np:)

Pliki potrzebe do zmodyfikowania skryptu:

announce.php

forums.php

global.php

1.Otwórz plik global.php i znajdź

Znajdź:

function get_ratio_color($ratio)

{

if ($ratio < 0.1) return "#ff0000";

if ($ratio < 0.2) return "#ee0000";

if ($ratio < 0.3) return "#dd0000";

if ($ratio < 0.4) return "#cc0000";

if ($ratio < 0.5) return "#bb0000";

if ($ratio < 0.6) return "#aa0000";

if ($ratio < 0.7) return "#990000";

if ($ratio < 0.8) return "#880000";

if ($ratio < 0.9) return "#770000";

if ($ratio < 1) return "#660000";

return "#000000";

}

Dodaj przed tym:

function auto_post($subject = "Error - Subject Missing",$body = "Error - No Body") // Function to use the special system message forum

{

$forumid = 'XX'; // Remember to change this if the forum is recreated for some reason.

$res = mysql_query("SELECT id FROM topics WHERE forumid = ".$forumid" AND subject = ".$subject) or sqlerr(__FILE__, __LINE__);

if(mysql_num_rows($res)==1) { // Topic already exists in the system forum.

$arr = mysql_fetch_array($res);

$topicid = $arr['id'];

}

else { // Create new topic.

mysql_query( "INSERT INTO topics (userid, forumid, subject) VALUES(0, $forumid, $subject)") or sqlerr(__FILE__, __LINE__);

$topicid = @mysql_insert_id();

}

$added = "'" . get_date_time() . "'";

mysql_query( "INSERT INTO posts (topicid, userid, added, body) " .

"VALUES($topicid, 0, $added, $body)") or sqlerr(__FILE__, __LINE__);

$res = mysql_query("SELECT id FROM posts WHERE topicid=$topicid ORDER BY id DESC LIMIT 1") or sqlerr(__FILE__, __LINE__);

$arr = mysql_fetch_row($res) or die("No post found");

$postid = $arr[0];

mysql_query("UPDATE topics SET lastpost=$postid WHERE id=$topicid") or sqlerr(__FILE__, __LINE__);

}

Oczywscie zamiast XX w linicje

$forumid = 'XX'

Wpisz swoj ID forum

2.Otwórz plik forums.php

a) Znajdź:

if ($postername == "")

{

$by = "unknown[$posterid]";

$avatar = "";

}

Zamień na:

if ($postername == "")

{

if( $posterid == 0 )

$by = "System";

else

$by = "unknown[$posterid]";

$avatar = "";

}

b) Znajdź:

if (mysql_num_rows($res) == 1)

{

$arr = mysql_fetch_assoc($res);

$lpusername = "$arr[username]";

}

else

$lpusername = "unknown[$topic_userid]";

Zamień na:

if (mysql_num_rows($res) == 1)

{

$arr = mysql_fetch_assoc($res);

$lpusername = "$arr[username]";

}

else if( $lpuserid == 0 )

$lpusername = "System";

else

$lpusername = "unknown[$lpuserid]";

c) Znajdź:

if (mysql_num_rows($res) == 1)

{

$arr = mysql_fetch_assoc($res);

$lpauthor = "$arr[username]";

}

else

$lpauthor = "unknown[$topic_userid]";

Zamień na:

if (mysql_num_rows($res) == 1)

{

$arr = mysql_fetch_assoc($res);

$lpauthor = "$arr[username]";

}

else if( $topic_userid == 0 )

$lpauthor = "System";

else

$lpauthor = "unknown[$topic_userid]";

Zamknij i zapisz plik forums.php

3. Otwórz plik announce.php i dokonaj modyfikacji:

Znajdź:

mysql_query("UPDATE peers SET uploaded = $uploaded, downloaded = $downloaded, to_go = $left, last_action = NOW(), seeder = '$seeder'"

. ($seeder == "yes" && $self["seeder"] != $seeder ? ", finishedat = " . time() : "") . " WHERE $selfwhere");

Zamień na:

mysql_query("UPDATE peers SET uploaded = $uploaded, downloaded = $downloaded, to_go = $left, last_action = NOW(), seeder = '$seeder'"

. ($seeder == "yes" && $self["seeder"] != $seeder ? ", finishedat = " . time() : "")

. ", ip = " . sqlesc($ip) . " WHERE $selfwhere")

Znajdź:

if (mysql_affected_rows() && $self["seeder"] != $seeder)

{

Dodaj PO TYM

// Initial sanity check xMB/s for 1 second

if( $upthis > 2097152 ){

// Work out time difference

$rrr = @mysql_query( "SELECT UNIX_TIMESTAMP(last_action) AS ts FROM peers WHERE $selfwhere" );

$aaa = @mysql_fetch_assoc( $rrr );

$starttime = $self['ts'];

$endtime = $aaa['ts'];

$diff = $endtime - $starttime;

// Normalise to prevent divide by zero.

$rate = $upthis / ( $diff + 1 );

// Currently 2MB/s. Increase to 5MB/s once finished testing.

if( $rate > 2097152 ){

$rrr = @mysql_query( "SELECT username,class FROM users WHERE id=$userid" );

$aaa = @mysql_fetch_assoc( $rrr );

$username = $aaa['username'];

$class = $aaa['class'];

if( $class < 6 ){

$rrr = @mysql_query( "SELECT name FROM torrents WHERE id=$torrentid" );

$aaa = @mysql_fetch_assoc( $rrr );

$torrentname = $aaa['name'];

$subject = sqlesc( "Upload - $username" );

$rate = mksize( $rate );

$client = $self['agent'];

$body = sqlesc(

"

"" target="_blank">".$username"
just uploaded at $rate/s. (".

mksize( $upthis )" in $diff seconds.)\n".

"On Torrent

$torrentid"" target="_blank">".$torrentname"
\n".

"Using $client from $ip\n\n".

"This members last actual recorded total uploaded was " . mksize( $last_up ) );

auto_post( $subject , $body );

}

}

}

Znajdź:

$upthis = max(0, $uploaded - $self["uploaded"]);

$downthis = max(0, $downloaded - $self["downloaded"]);

if ($upthis > 0 || $downthis > 0)

mysql_query("UPDATE users SET uploaded = uploaded + $upthis, downloaded = downloaded + $downthis WHERE id=$userid") or err("Tracker error 3");

}/

Zamien na:

$upthis = max(0, $uploaded - $self["uploaded"]);

$downthis = max(0, $downloaded - $self["downloaded"]);

if ($upthis > 0 || $downthis > 0)

mysql_query("UPDATE users SET uploaded = uploaded + $upthis, downloaded = downloaded + $downthis WHERE id=$userid") or err("Tracker error 3");

}

Znajdź:

$fields = "seeder, peer_id, ip, port, uploaded, downloaded, userid";

Zamień na:

$fields = "seeder, peer_id, agent, ip, port, uploaded, downloaded, userid, UNIX_TIMESTAMP(last_action) AS ts";

Zamknij plik announce.php