Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/L2Top и системы поощрения/[баг] L2top (скрипт за голосование)
Search

[баг] L2top (скрипт за голосование)

5 replies185 viewsCurrently viewing: 1
cokol
cokol

User

Бывалый

Posts: 203

На форуме с: 03/30/2009

Репутация: +251

Рейтинг: 0

· 04/19/2009, 07:40 AM

Вот, пользуюсь скриптом, для поощерений за голосование

Цитата
<?


if(!isset($_POST['name'])){

echo '<form action="l2top.php" method="post">';


echo 'Ник персонажа<br/>
<input type="text" name="name"/><br/><br/>
<input type="submit" value="Получить бонус"/>

</form>';


}else{

$bonus_id=6673; // ID вещи которую зачисляем игроку как бонус за голосование | По умолчанию 6673 - Festival Adena
$cols_for_vote=5; // Колличество зачисляемых вещей за одно голосование
$id_l2top=0000; // Ваш ID в рейтинге L2Top

$host='host'; // сервер на котором установлена база данных L2J
$user='root'; // имя пользователя от базы данный
$pass='pass'; // пароль пользователя от базы данный
$db='l2db'; // название базы данных

$mc = mysql_connect($host, $user, $pass);
if($mc){
$db = mysql_select_db ($db);
}

if(!$mc || !$db){

echo 'Нет соединения с базой данных.';

exit;

}

$name=mysql_escape_string($_POST['name']);

$ch=mysql_query("SELECT obj_Id FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);

$char_id=$chd['obj_Id'];
$total=0;
$your_ip = $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$your_ip);
$your_ip1 = $dip[0].'.'.$dip[1].'.'.$dip[2].'.xxx';

$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if (!$html || !preg_match_all('/<td>([^<]+)<\/td>/', $html, $matches))
$error .= 'Не удалось получить информацию с L2Top.ru!<br/>';
else
{
foreach ($matches[1] as $id => $nick)
{
if (strtolower(trim($nick))==strtolower(trim($name))) {
$voters[] = $matches[1][$id-2];
}
}
if ($voters != array())
{
foreach ($voters as $time)
{
$result = mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = $result = mysql_query("SELECT * FROM `items` WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = ".$bonus_id."");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`");
$row = mysql_fetch_assoc($result);
$ins_id = $row['id'];
/*
mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
данный запрос необходимо переделывать взависимости от того, какая структура таблицы items у вас на сборке сервера. Данный запрос отвечает за добавление бонусной вещи за голосование в инвентарь, если у вас её еще нет.
*/
mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = ".$bonus_id." ");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= 'Голос за '. $time.' зачислен.<br/>';
}
else
$error .= 'Голос за '. $time.' уже был зачислен.<br/>';
}
}
else
$error .= 'Ваш голос на сайте L2Top.ru не найден.<br>';
}

echo $error.'<br><b>'.$total.'</b> Festival Adens зачислено вашему персонажу!<br/>';

}

?>


Так вот:
1) Заходим на Л2Топ голосуем;
2) Заходим на сайт, заходим на страницу там где получать бонус;
3) Голосуем, вышло окошко типо ваш голос защитан!
4) Нажимаем в браузере кнопку "Назад" или обновляем страницу, и повторно голосуем!

Итак, можно за день до 1000+ колов срубить, я в скриптах неочень шарю, прошу помощи, как его пофиксить, юзал поиск не нашел..(Заранее спасибки)

0
Никита
Никита

User

Ветеран

Posts: 580

На форуме с: 05/30/2008

Репутация: +696

Рейтинг: 0

· 04/19/2009, 07:45 AM

Вот тебе готовый, в установки прост.
[spoil]

Код
<?
$bonus_id=6673;     // ID предмета-бонуса (по умолчанию Festival Adena)
$bunus_name='Festival Adena'; // название бонуса
$cols_for_vote=1; // Колличество зачисляемых вещей за одно голосование
$id_l2top=1234; // Ваш ID в рейтинге L2Top

if(!isset($_POST['name'])){

echo "<div align=\"center\"><table width='450'><tr><td><b>Здесь вы можете принять участие в акции:<br>« Бонус за голосование »<br><br>
Для этого необходимо:</b><br>
1. Проголосовать за наш сервер в рейтинге L2Top.ru: <a href=\"http://l2top.ru/?voteme=".$id_l2top."\">Голосовать</a><br>
2. Вписать в форму ниже ник вашего чара и нажать на кнопку « Получить бонус »<BR>
3. После этого вашему чару в инвентарь будет выдано поощрение<br>« ".$bunus_name." » в количестве ".$cols_for_vote." шт.<br><br>
<b>Вниманние !</b><br>
Чтобы получить бонус ваш ник должен быть в <a href=\"http://l2top.ru/?servID=".$id_l2top."&act=info\"><b>этом списке</b></a><br>А также персонаж должен находиться не в игре.<br><br><center>
<form action=\"module/l2top.php\" method=\"post\">
Ник персонажа<br/>
<input type=\"text\" name=\"name\"/><br/><br/>
<input type=\"submit\" value=\"Получить бонус\"/>
</form></center></td></tr></table></div>";

}else{

$host='localhost'; // сервер на котором установлена база данных L2J
$user='root'; // имя пользователя от базы данный
$pass='21121'; // пароль пользователя от базы данный
$db='l2jdb'; // название базы данных

$mc = mysql_connect($host, $user, $pass);
if($mc){
$db = mysql_select_db ($db);
}

if(!$mc || !$db){

echo '<div align=center>Нет соединения с базой данных.</div>';

exit;

}

$name=mysql_escape_string($_POST['name']);

$ch=mysql_query("SELECT obj_Id,online FROM characters WHERE char_name = '".$name."';");
if (mysql_num_rows($ch)==0)
{
    echo "<div align=center>Персонаж не найден</div>";
    exit;
}
$chd=mysql_fetch_assoc($ch);
if ($chd['online']==1)
{
    echo "<div align=center>Ваш персонаж в игре, для начала надо выйти</div>";
    exit;
}
$char_id=$chd['obj_Id'];
$total=0;
$your_ip = $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$your_ip);
$your_ip1 = $dip[0].'.'.$dip[1].'.'.$dip[2].'.xxx';

$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if (!$html || !preg_match_all('/<td>([^<]+)<\/td>/', $html, $matches))
$error .= '<div align=center>Не удалось получить информацию с L2Top.ru!<br/></div>';
else
{
foreach ($matches[1] as $id => $nick)
{
if (strtolower(trim($nick))==strtolower(trim($name))) {
$voters[] = $matches[1][$id-2];
}
}
if ($voters != array())
{
foreach ($voters as $time)
{
$result = mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = mysql_query("SELECT * FROM `items` WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = '".$bonus_id."'");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`");
$row = mysql_fetch_assoc($result);
$ins_id = $row['id'];
$putitem=mysql_query("INSERT INTO items (owner_id, object_id, item_id, count, enchant_level, loc, loc_data, price_sell, price_buy, time_of_use, custom_type1, custom_type2, mana_left) VALUES('".mysql_escape_string($char_id)."', '".$ins_id."', '".$bonus_id."', '".$cols_for_vote."', '0', 'INVENTORY', '0', '0', '0', NULL, '0', '0', '-1')") or die(mysql_error());
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = '".$bonus_id."' ");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= '<div align=center>Голос за '. $time.' зачислен.<br/></div>';
}
else
$error .= '<div align=center>Голос за '. $time.' уже был зачислен.<br/></div>';
}
}
else
$error .= '<div align=center>Ваш голос на сайте L2Top.ru не найден.<br></div>';
}

echo $error.'<div align=center><br><b>'.$total.'</b> '.$bunus_name.' зачислено вашему персонажу!<br/></div>';

}

?>
[/spoil]

0
cokol
cokol

User

Бывалый

Posts: 203

На форуме с: 03/30/2009

Репутация: +251

Рейтинг: 0

· 04/19/2009, 08:06 AM

Ух, спасибо большое, сейчас протестим..

0
Boec
Boec

User

Бывалый

Posts: 185

На форуме с: 05/22/2007

Репутация: +327

Рейтинг: 0

· 04/19/2009, 08:18 AM

cokol, щас модераторы тебя предупреждение дадут, есть же специальный форум L2Top и системы поощрения пиши лучше сам модераторам, чтобы перенесли.

//Knokswille: в честь праздника и как на первый раз можно закрыть глаза на это)

0
danokos
danokos

Author

Новичок

Posts: 11

На форуме с: 12/29/2008

Рейтинг: 0

· 04/19/2009, 10:33 AM

люди,подскажите можит быть такое что у меня незаходит на л2топ,можит забанили всю локалку по ипу...у нас один ип на всю сеть(может быть такое?).

0
Войдите или зарегистрируйтесь чтобы ответить