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 и системы поощрения/Баг в скрипте л2 топ (Под сборку L2open)
Search

Баг в скрипте л2 топ (Под сборку L2open)

7 replies173 viewsCurrently viewing: 1
андрей
андрей

User

Бывалый

Posts: 287

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

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

Рейтинг: 0

· 11/24/2009, 11:53 AM

Вот скрипт под сборку l2open (GF)
Проблема в том что 1 раз проголосовал, а потом на кнопочку получить бонус жмёшь несколько раз, тебе выдаёт бонус заново и в двойном кол-ве!Т.е. поставил 1 фа=2 фа + 1 раз проголосовал, и целый день жми на кнопку.. будет тебе бонус
Что делать?

Код
<?php

$bonus_id=6673; // ID предмета-бонуса (по умолчанию Festival Adena)

$bunus_name='Festival Adena'; // название бонуса

$cols_for_vote=1; // Колличество зачисляемых вещей за одно голосование

$id_l2top=8966; // Ваш ID в рейтинге L2Top

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

echo "<div align='center'><table width='450'><tr><td><center><b>Здесь вы можете принять участие в акции: <br>«Бонус за голосование».<br><br>

<i>Для этого необходимо:</i></b></center><br>

1. Проголосовать за наш сервер в рейтинге L2top.ru: <a href='http://l2top.ru/vote/".$id_l2top."/'>Голосовать</a><br>

2. Получить бонус. Для чего необходимо:<br>

<ul><li>Вписать в форму ниже ник вашего чара (не путайте с названием аккаунта)</li>

<li>Нажать на кнопку «Получить бонус»</li></ul>

<center>После этого вашему чару в инвентарь будет выдано поощрение «".$bunus_name."» в количестве ".$cols_for_vote." шт.</center><br>

<b>Вниманние!</b><br>

Чтобы получить бонус ваш ник должен быть в <a href='http://l2top.ru/info/".$id_l2top."/'><b>этом списке</b></a><br>А также персонаж должен находиться не в игре.<br><br><center>

<form action='' method='post'>

Ник персонажа<br/>

<input type='text' name='name'/><br/><br/>

<input type='submit' value='Получить бонус'/>

</form></center></td></tr></table></div>";

}else{



$host='  '; // сервер на котором установлена база данных L2J

$user='  '; // имя пользователя от базы данный

$pass='  '; // пароль пользователя от базы данный

$db='  '; // название базы данных



$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']);

$sel_char=mysql_query("SELECT charId,online FROM characters WHERE char_name = '".$name."';");

if (mysql_num_rows($sel_char)==0)

{

echo "<div align=center>Персонаж не найден</div>";

exit;

}

list($char_id,$online) = mysql_fetch_array($sel_char);

if ($online==1)

{

echo "<div align=center>Ваш персонаж в игре, для начала надо выйти</div>";

exit;

}

$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/info/'.$id_l2top.'/');

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_array($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_array($result);

if ($row == array())

{

$result = mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`");

$row = mysql_fetch_array($result);

$ins_id = $row['id'];

$putitem=mysql_query("

INSERT INTO `items` (`owner_id`,`object_id`,`item_id`,`count`,`loc`,`loc_data`) VALUES ('".mysql_escape_string($char_id)."', '".$ins_id."', '".$bonus_id."', '".$cols_for_vote."', 'INVENTORY', '0')") 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>';

}

?>

З.Ы. с меня спасибка

0
N
Nik21

User

Участник

Posts: 37

На форуме с: 01/08/2009

Рейтинг: 0

· 11/24/2009, 12:01 PM

Вот рабочий..

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

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

echo "<div align=\"center\"><table width='450'><tr><td><center><b>Здесь вы можете принять участие в акции: <br>«Бонус за голосование».<br><br>
<i>Для этого необходимо:</i></b></center><br>
1. Проголосовать за наш сервер в рейтинге L2top.ru: <a href=\"http://l2top.ru/vote/".$id_l2top."/\">Голосовать</a><br>
2. Получить бонус. Для чего необходимо:<br>
<ul><li>Вписать в форму ниже ник вашего чара (не путайте с названием аккаунта)</li>
<li>Нажать на кнопку «Получить бонус»</li></ul>
<center>После этого вашему чару в инвентарь будет выдано поощрение «".$bunus_name."» в количестве ".$cols_for_vote." шт.</center><br>
<b>Вниманние!</b><br>
Чтобы получить бонус ваш ник должен быть в <a href=\"http://l2top.ru/info/".$id_l2top."/\"><b>этом списке</b></a><br>А также персонаж должен находиться не в игре.<br><br><center>
<form action=\"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=blablabla'; // пароль пользователя от базы данный
$db='l2open_db'; // название базы данных

$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 charid,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['charid'];
$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/info/'.$id_l2top.'/');
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, 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', 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>';

}

?>

запрос в мускл

CREATE TABLE `l2top` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`nick` varchar(30) NOT NULL,
`ip` varchar(20) NOT NULL,
`time` varchar(20) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

0
андрей
андрей

User

Бывалый

Posts: 287

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

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

Рейтинг: 0

· 11/24/2009, 12:44 PM

Спс, ща потестим!

Такой же баг. Зря спасибку давал!

0
Андрей
Андрей

User

Бывалый

Posts: 314

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

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

Рейтинг: 0

· 11/24/2009, 01:15 PM

Выход - покупать обвязку!

Ктулху зохавывает всех (;,;)
Lineage 2: C4 - online / C5,IT,Kamael - offline>

0
андрей
андрей

User

Бывалый

Posts: 287

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

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

Рейтинг: 0

· 11/24/2009, 01:57 PM

Купим если проект раскрутим, ща надо на бесплатном побыть))
Так что никто не поможет?

0
M
mhost
· 11/24/2009, 03:15 PM

Никто бесплатно не раскручивается. Найди Marts'a и хватит думать о халяве... А то РАСКРУТИМСЯ.. угу.. вы уже фейлитесь.

0
андрей
андрей

User

Бывалый

Posts: 287

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

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

Рейтинг: 0

· 11/28/2009, 01:40 PM

Закройте тему, решил проблему

0
Topic is closed for replies