[help]помогите с сайтом дле
6 ответов235 просмотровСейчас просматривают: 1
· 31.08.2009, 14:55
Привет всем скачать скрипт л2топ
Цитата
<?php
/****************************************/
/* */
/* Lineage2 DLE Module, © rb338 */
/* (especially for Mr. Grey) */
/* ------------------------- */
/* [l2top.php - bonus] */
/* uses: l2top.tpl */
/* */
/****************************************/
if(!defined('DATALIFEENGINE')) die("Hacking attempt!");
if(!$_logged) die("Hacking attempt!");
include_once ENGINE_DIR.'/l2top.php';
function get_item_name($item_id, $item_type){
global $dbg, $_serv;
switch($item_type){
case 'etciem':
case 'etc':
$q = $dbg[$_serv]->sql_query("SELECT `name` FROM `etcitem` WHERE `item_id`=$item_id");
$lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
$item_data = $dbg[$_serv]->sql_fetchrow($q);
return $item_data['name'];
break;
case 'armor':
$q = $dbg[$_serv]->sql_query("SELECT `name` FROM `armor` WHERE `item_id`=$item_id");
$lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
$item_data = $dbg[$_serv]->sql_fetchrow($q);
return $item_data['name'];
break;
case 'weapon':
$q = $dbg[$_serv]->sql_query("SELECT `name` FROM `weapon` WHERE `item_id`=$item_id");
$lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
$item_data = $dbg[$_serv]->sql_fetchrow($q);
return $item_data['name'];
break;
default:
return 'null';
break;
}
}
// получение бонуса
if($_POST['form'] == 'get_bonus'){
$charId = check_int($_POST['char_id']);
$q = $dbg[$_serv]->sql_query("SELECT `char_name` FROM `characters` WHERE `obj_Id`=$charId");
print check_mysql($dbg[$_serv], __FILE__, __LINE__);
$char_data = $dbg[$_serv]->sql_fetchrow($q);
$char_name = $char_data['char_name'];
if($char_name == '') $lineage = '<center>Ошибка, персонаж не найден!</center>';
else{
$q3 = $dbl->sql_query("SELECT `date` FROM `accounts_log` WHERE `login`='".$account_data['login']."' AND `action` LIKE 'l2top%(char#$charId)' ORDER BY `date` DESC LIMIT 1");
print check_mysql($dbg[$_serv], __FILE__, __LINE__);
$last_act_data = $dbl->sql_fetchrow($q3);
$last_act = $last_act_data['date'];
$elapsed_last = round((time() - $last_act) / 60);
// проверка, сколько времени прошло с посл запроса
if($elapsed_last > $config_l2top['get_timeout']){
$fp = @fsockopen("l2top.ru", 80, $errno, $errstr, $config_l2top['timeout']);
if($fp){
$headers = "GET /?servID=".$config_l2top['ServerId'][$_serv]."&act=info HTTP/1.1\r\n"
."Host: l2top.ru\r\n"
."Referer: http://l2top.ru/?servID=".$config_l2top['ServerId'][$_serv]."&act=vote\r\n"
."Connection: Close\r\n\r\n";
fwrite($fp, $headers);
while(!feof($fp)) $output .= fgets($fp, 512);
fclose($fp);
$bytes = strlen($output);
$output = substr($output, strpos($output, $config_l2top['search_str']));
$output = str_replace(" colspan='1'", '', $output); // удаление косяка с смс-записями
preg_match_all('/<td>([^<]+)<\/td>/', $output, $matches);
$voted = 0;
$vote_date = 0;
$vote_key = 0;
foreach($matches[1] as $key => $td_str){
if(trim($td_str) == $char_name){
$voted = 1;
$vote_date = $matches[1][$key-2];
$vote_key = $key;
break;
}
}
// ник найден
if($voted == 1){
preg_match("|([0-9]{2}):([0-9]{2}):([0-9]{2}) ([0-9]{2}).([0-9]{2}).([0-9]{2})|", $vote_date, $out);
$vote_date_timestamp = mktime($out[1], $out[2], $out[3], $out[5], $out[4], $out[6]);
$vote_date_timestamp = $vote_date_timestamp - ($config_l2top['l2top_time_correction'] * 60);
$now_timestamp = time();
$elapsed = round((time() - $vote_date_timestamp) / 60);
// проверка числа прошедших минут с момента голосования
if($elapsed > $config_l2top['voted_timeout']){
$lineage .= '<br><center>К сожалению, с момента голосования прошло более '.$config_l2top['voted_timeout'].' минут ('.$elapsed.')</center>';
InsertLogRecord($account_data['login'], "l2top - error: expired (char#$charId)");
}
else{ // всё ок, даём чару бонус
// проверяем смс-х3
if($matches[1][$vote_key-3] == 'SMS' &&
$matches[1][$vote_key-2] == $matches[1][$vote_key+3] &&
$matches[1][$vote_key-2] == $matches[1][$vote_key+8] && // проверка совпадения первых 3х дат
$matches[1][$vote_key] == $matches[1][$vote_key+5] &&
$matches[1][$vote_key] == $matches[1][$vote_key+10]){ // проверка совпадения первых 3х имён
// массив вероятностей
foreach($config_l2top['bonus'] as $bonus_key => $bonus){
$probability = $bonus['probability'];
for($i = 1; $i <= $probability; $i++) $bonus_array[] = $bonus_key;
}
shuffle($bonus_array);
//
for($i = 0; $i < $config_l2top['sms_bonus_count']; $i++){
$bonus_index = rand(0, count($bonus_array)-1);
$bonus_id = $bonus_array[$bonus_index]; // id выпавшего бонуса
$item_id = check_int($config_l2top['bonus'][$bonus_id]['item_id']);
$item_count = check_int($config_l2top['bonus'][$bonus_id]['item_count']);
$q2 = $dbg[$_serv]->sql_query("INSERT INTO `items_delayed` (`owner_id`, `item_id`, `count`) VALUES ('$charId', '$item_id', '$item_count')");
$lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
$item_name = get_item_name($item_id, $config_l2top['bonus'][$bonus_id]['item_type']);
$items_str[] = "<b>$item_name</b> ($item_count)";
$items_ids[] = $item_id;
}
$items_str_str = implode(', ', $items_str);
$lineage .= "<center>Поздравляем, Вы получили предметы $items_str_str!<br>\nПредметы появится в Вашем инвентаре после захода в игру.</center>";
$items_ids_str = implode(', ', $items_ids);
InsertLogRecord($account_data['login'], "l2top - get $items_ids_str (char#$charId)");
}
else{ // это простое голосование, или простая смска
// массив вероятностей
foreach($config_l2top['bonus'] as $bonus_key => $bonus){
$probability = $bonus['probability'];
for($i = 1; $i <= $probability; $i++) $bonus_array[] = $bonus_key;
}
shuffle($bonus_array);
$bonus_index = rand(0, count($bonus_array)-1);
$bonus_id = $bonus_array[$bonus_index]; // id выпавшего бонуса
$item_id = check_int($config_l2top['bonus'][$bonus_id]['item_id']);
$item_count = check_int($config_l2top['bonus'][$bonus_id]['item_count']);
$q2 = $dbg[$_serv]->sql_query("INSERT INTO `items_delayed` (`owner_id`, `item_id`, `count`) VALUES ('$charId', '$item_id', '$item_count')");
if(!$q2) $lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
else{
$item_name = get_item_name($item_id, $config_l2top['bonus'][$bonus_id]['item_type']);
InsertLogRecord($account_data['login'], "l2top - get #$item_id (char#$charId)");
$lineage .= "<center>Поздравляем, Вы получили предмет <b>$item_name</b> ($item_count)!<br>Предмет появится в Вашем инвентаре после захода в игру.</center>";
}
}
}
}
else{
InsertLogRecord($account_data['login'], "l2top - error: not in list (char#$charId)");
$lineage .= "<br><center>В списке последних проголосовавших Ваш ник ($char_name) не найден!</center>";
}
}
else $lineage .= "При запросе данных с l2top.ru произошла ошибка $errno:<br>$errstr\n<br>Попробуйте позже.";
}
else{
$lineage .= "<br><center>Ошибка, проверять бонус можно только раз в ".$config_l2top['get_timeout']." минут!</center>";
InsertLogRecord($account_data['login'], "l2top - error: recheck (char#$charId)");
}
}
}
// отображение формы и список бонусных итемов
else{
if(empty($_GET['charId'])) $lineage = 'Ошибка';
else{
$charId = check_int($_GET['charId']);
$q = $dbg[$_serv]->sql_query("SELECT `char_name` FROM `characters` WHERE `obj_Id`=$charId");
print check_mysql($dbg[$_serv], __FILE__, __LINE__);
$char_data = $dbg[$_serv]->sql_fetchrow($q);
$char_name = $char_data['char_name'];
$bonus_array = $config_l2top['bonus'];
function arr_compare($first, $second){
if($first['probability'] == $second['probability']) return 0;
else{
if($first['probability'] > $second['probability']) return -1;
else return 1;
}
}
usort($bonus_array, "arr_compare");
$bonus_items = '';
foreach($bonus_array as $bonus){
$item_id = $bonus['item_id'];
$item_type = $bonus['item_type'];
$item_count = $bonus['item_count'];
$probability = $bonus['probability'];
$item_name = get_item_name($item_id, $item_type);
$item_icon = GetItemIcon($item_id, $item_type, $dbg[$_serv]);
$bonus_items .= "<tr><td width=32><img src='{THEME}/lineage/img/items/".$item_icon.".gif' width=32 height=32></td>
<td style='padding-left: 15px;'><b>$item_name</b> ($item_count)</td></tr>\n";
}
// затухание кнопки при повторном запросе
$q3 = $dbl->sql_query("SELECT `date` FROM `accounts_log` WHERE `login`='".$account_data['login']."' AND `action` LIKE 'l2top%(char#$charId)' ORDER BY `date` DESC LIMIT 1");
print check_mysql($dbg[$_serv], __FILE__, __LINE__);
$last_act_data = $dbl->sql_fetchrow($q3);
$last_act = $last_act_data['date'];
$elapsed_last = round((time() - $last_act) / 60);
if($elapsed_last > $config_l2top['get_timeout']) $disabled = '';
else $disabled = 'disabled';
$tpl->load_template($tpldir.'/lineage/l2top.tpl');
$tpl->set('{bonus_items}', $bonus_items);
$tpl->set('{disabled}', $disabled);
$tpl->set('{voted_timeout}', $config_l2top['voted_timeout']);
$tpl->set('{get_timeout}', $config_l2top['get_timeout']);
$tpl->set('{char_name}', $char_name);
$tpl->set('{char_id}', $charId);
$tpl->set('{server_title}', $la2config["gameserver"][$_serv]["title"]);
$tpl->set('{server_id}', $config_l2top['ServerId'][$_serv]);
$tpl->compile('lineage');
$lineage = $tpl->result["lineage"];
}
}
?>
/****************************************/
/* */
/* Lineage2 DLE Module, © rb338 */
/* (especially for Mr. Grey) */
/* ------------------------- */
/* [l2top.php - bonus] */
/* uses: l2top.tpl */
/* */
/****************************************/
if(!defined('DATALIFEENGINE')) die("Hacking attempt!");
if(!$_logged) die("Hacking attempt!");
include_once ENGINE_DIR.'/l2top.php';
function get_item_name($item_id, $item_type){
global $dbg, $_serv;
switch($item_type){
case 'etciem':
case 'etc':
$q = $dbg[$_serv]->sql_query("SELECT `name` FROM `etcitem` WHERE `item_id`=$item_id");
$lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
$item_data = $dbg[$_serv]->sql_fetchrow($q);
return $item_data['name'];
break;
case 'armor':
$q = $dbg[$_serv]->sql_query("SELECT `name` FROM `armor` WHERE `item_id`=$item_id");
$lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
$item_data = $dbg[$_serv]->sql_fetchrow($q);
return $item_data['name'];
break;
case 'weapon':
$q = $dbg[$_serv]->sql_query("SELECT `name` FROM `weapon` WHERE `item_id`=$item_id");
$lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
$item_data = $dbg[$_serv]->sql_fetchrow($q);
return $item_data['name'];
break;
default:
return 'null';
break;
}
}
// получение бонуса
if($_POST['form'] == 'get_bonus'){
$charId = check_int($_POST['char_id']);
$q = $dbg[$_serv]->sql_query("SELECT `char_name` FROM `characters` WHERE `obj_Id`=$charId");
print check_mysql($dbg[$_serv], __FILE__, __LINE__);
$char_data = $dbg[$_serv]->sql_fetchrow($q);
$char_name = $char_data['char_name'];
if($char_name == '') $lineage = '<center>Ошибка, персонаж не найден!</center>';
else{
$q3 = $dbl->sql_query("SELECT `date` FROM `accounts_log` WHERE `login`='".$account_data['login']."' AND `action` LIKE 'l2top%(char#$charId)' ORDER BY `date` DESC LIMIT 1");
print check_mysql($dbg[$_serv], __FILE__, __LINE__);
$last_act_data = $dbl->sql_fetchrow($q3);
$last_act = $last_act_data['date'];
$elapsed_last = round((time() - $last_act) / 60);
// проверка, сколько времени прошло с посл запроса
if($elapsed_last > $config_l2top['get_timeout']){
$fp = @fsockopen("l2top.ru", 80, $errno, $errstr, $config_l2top['timeout']);
if($fp){
$headers = "GET /?servID=".$config_l2top['ServerId'][$_serv]."&act=info HTTP/1.1\r\n"
."Host: l2top.ru\r\n"
."Referer: http://l2top.ru/?servID=".$config_l2top['ServerId'][$_serv]."&act=vote\r\n"
."Connection: Close\r\n\r\n";
fwrite($fp, $headers);
while(!feof($fp)) $output .= fgets($fp, 512);
fclose($fp);
$bytes = strlen($output);
$output = substr($output, strpos($output, $config_l2top['search_str']));
$output = str_replace(" colspan='1'", '', $output); // удаление косяка с смс-записями
preg_match_all('/<td>([^<]+)<\/td>/', $output, $matches);
$voted = 0;
$vote_date = 0;
$vote_key = 0;
foreach($matches[1] as $key => $td_str){
if(trim($td_str) == $char_name){
$voted = 1;
$vote_date = $matches[1][$key-2];
$vote_key = $key;
break;
}
}
// ник найден
if($voted == 1){
preg_match("|([0-9]{2}):([0-9]{2}):([0-9]{2}) ([0-9]{2}).([0-9]{2}).([0-9]{2})|", $vote_date, $out);
$vote_date_timestamp = mktime($out[1], $out[2], $out[3], $out[5], $out[4], $out[6]);
$vote_date_timestamp = $vote_date_timestamp - ($config_l2top['l2top_time_correction'] * 60);
$now_timestamp = time();
$elapsed = round((time() - $vote_date_timestamp) / 60);
// проверка числа прошедших минут с момента голосования
if($elapsed > $config_l2top['voted_timeout']){
$lineage .= '<br><center>К сожалению, с момента голосования прошло более '.$config_l2top['voted_timeout'].' минут ('.$elapsed.')</center>';
InsertLogRecord($account_data['login'], "l2top - error: expired (char#$charId)");
}
else{ // всё ок, даём чару бонус
// проверяем смс-х3
if($matches[1][$vote_key-3] == 'SMS' &&
$matches[1][$vote_key-2] == $matches[1][$vote_key+3] &&
$matches[1][$vote_key-2] == $matches[1][$vote_key+8] && // проверка совпадения первых 3х дат
$matches[1][$vote_key] == $matches[1][$vote_key+5] &&
$matches[1][$vote_key] == $matches[1][$vote_key+10]){ // проверка совпадения первых 3х имён
// массив вероятностей
foreach($config_l2top['bonus'] as $bonus_key => $bonus){
$probability = $bonus['probability'];
for($i = 1; $i <= $probability; $i++) $bonus_array[] = $bonus_key;
}
shuffle($bonus_array);
//
for($i = 0; $i < $config_l2top['sms_bonus_count']; $i++){
$bonus_index = rand(0, count($bonus_array)-1);
$bonus_id = $bonus_array[$bonus_index]; // id выпавшего бонуса
$item_id = check_int($config_l2top['bonus'][$bonus_id]['item_id']);
$item_count = check_int($config_l2top['bonus'][$bonus_id]['item_count']);
$q2 = $dbg[$_serv]->sql_query("INSERT INTO `items_delayed` (`owner_id`, `item_id`, `count`) VALUES ('$charId', '$item_id', '$item_count')");
$lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
$item_name = get_item_name($item_id, $config_l2top['bonus'][$bonus_id]['item_type']);
$items_str[] = "<b>$item_name</b> ($item_count)";
$items_ids[] = $item_id;
}
$items_str_str = implode(', ', $items_str);
$lineage .= "<center>Поздравляем, Вы получили предметы $items_str_str!<br>\nПредметы появится в Вашем инвентаре после захода в игру.</center>";
$items_ids_str = implode(', ', $items_ids);
InsertLogRecord($account_data['login'], "l2top - get $items_ids_str (char#$charId)");
}
else{ // это простое голосование, или простая смска
// массив вероятностей
foreach($config_l2top['bonus'] as $bonus_key => $bonus){
$probability = $bonus['probability'];
for($i = 1; $i <= $probability; $i++) $bonus_array[] = $bonus_key;
}
shuffle($bonus_array);
$bonus_index = rand(0, count($bonus_array)-1);
$bonus_id = $bonus_array[$bonus_index]; // id выпавшего бонуса
$item_id = check_int($config_l2top['bonus'][$bonus_id]['item_id']);
$item_count = check_int($config_l2top['bonus'][$bonus_id]['item_count']);
$q2 = $dbg[$_serv]->sql_query("INSERT INTO `items_delayed` (`owner_id`, `item_id`, `count`) VALUES ('$charId', '$item_id', '$item_count')");
if(!$q2) $lineage .= check_mysql($dbg[$_serv], __FILE__, __LINE__);
else{
$item_name = get_item_name($item_id, $config_l2top['bonus'][$bonus_id]['item_type']);
InsertLogRecord($account_data['login'], "l2top - get #$item_id (char#$charId)");
$lineage .= "<center>Поздравляем, Вы получили предмет <b>$item_name</b> ($item_count)!<br>Предмет появится в Вашем инвентаре после захода в игру.</center>";
}
}
}
}
else{
InsertLogRecord($account_data['login'], "l2top - error: not in list (char#$charId)");
$lineage .= "<br><center>В списке последних проголосовавших Ваш ник ($char_name) не найден!</center>";
}
}
else $lineage .= "При запросе данных с l2top.ru произошла ошибка $errno:<br>$errstr\n<br>Попробуйте позже.";
}
else{
$lineage .= "<br><center>Ошибка, проверять бонус можно только раз в ".$config_l2top['get_timeout']." минут!</center>";
InsertLogRecord($account_data['login'], "l2top - error: recheck (char#$charId)");
}
}
}
// отображение формы и список бонусных итемов
else{
if(empty($_GET['charId'])) $lineage = 'Ошибка';
else{
$charId = check_int($_GET['charId']);
$q = $dbg[$_serv]->sql_query("SELECT `char_name` FROM `characters` WHERE `obj_Id`=$charId");
print check_mysql($dbg[$_serv], __FILE__, __LINE__);
$char_data = $dbg[$_serv]->sql_fetchrow($q);
$char_name = $char_data['char_name'];
$bonus_array = $config_l2top['bonus'];
function arr_compare($first, $second){
if($first['probability'] == $second['probability']) return 0;
else{
if($first['probability'] > $second['probability']) return -1;
else return 1;
}
}
usort($bonus_array, "arr_compare");
$bonus_items = '';
foreach($bonus_array as $bonus){
$item_id = $bonus['item_id'];
$item_type = $bonus['item_type'];
$item_count = $bonus['item_count'];
$probability = $bonus['probability'];
$item_name = get_item_name($item_id, $item_type);
$item_icon = GetItemIcon($item_id, $item_type, $dbg[$_serv]);
$bonus_items .= "<tr><td width=32><img src='{THEME}/lineage/img/items/".$item_icon.".gif' width=32 height=32></td>
<td style='padding-left: 15px;'><b>$item_name</b> ($item_count)</td></tr>\n";
}
// затухание кнопки при повторном запросе
$q3 = $dbl->sql_query("SELECT `date` FROM `accounts_log` WHERE `login`='".$account_data['login']."' AND `action` LIKE 'l2top%(char#$charId)' ORDER BY `date` DESC LIMIT 1");
print check_mysql($dbg[$_serv], __FILE__, __LINE__);
$last_act_data = $dbl->sql_fetchrow($q3);
$last_act = $last_act_data['date'];
$elapsed_last = round((time() - $last_act) / 60);
if($elapsed_last > $config_l2top['get_timeout']) $disabled = '';
else $disabled = 'disabled';
$tpl->load_template($tpldir.'/lineage/l2top.tpl');
$tpl->set('{bonus_items}', $bonus_items);
$tpl->set('{disabled}', $disabled);
$tpl->set('{voted_timeout}', $config_l2top['voted_timeout']);
$tpl->set('{get_timeout}', $config_l2top['get_timeout']);
$tpl->set('{char_name}', $char_name);
$tpl->set('{char_id}', $charId);
$tpl->set('{server_title}', $la2config["gameserver"][$_serv]["title"]);
$tpl->set('{server_id}', $config_l2top['ServerId'][$_serv]);
$tpl->compile('lineage');
$lineage = $tpl->result["lineage"];
}
}
?>
вот этот создал файлик l2top.php закинул его в деректорию сайта и пытался его открыть и он мне выдаёт что я хакер кто знает вчем пробла ?помогите
0
· 03.09.2009, 15:24
Код
if(!defined('DATALIFEENGINE')) die("Hacking attempt!");
if(!$_logged) die("Hacking attempt!");
if(!$_logged) die("Hacking attempt!");
Убери Это, возможно поможет
0
Войдите или зарегистрируйтесь чтобы ответить



тыкни