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топ
Search

Не работает скрипт автоматического поощрения л2топ

25 replies447 viewsCurrently viewing: 1
Crystallon
Crystallon

User

Бывалый

Posts: 122

На форуме с: 06/24/2009

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

Рейтинг: 0

· 12/03/2009, 01:10 PM

Переделал скрипт получения бонуса из обычного(ввел ник - получил бонус) в автоматический(крон запускает, скрипт раздает бонусы), но где-то накосячил, о выдаче бонуса и говорить не приходится ибо скрипт даже данные в таблицу голосов не записывает, очень прошу ткнуть пальцем где косяк =) вот собственно сам скрипт, файл конфига я разумеется не выкладываю ибо не имеет смысла:

<?
require_once 'config.php';

connect();

//проверки char_id_ar теперь смысла не имеют, просто так их оставил чтобы не испортить скрипт

$char_id_ar=mysql_fetch_assoc(mysql_query("SELECT `obj_Id` FROM `characters` WHERE `char_name` = 'admin';"));
if($char_id_ar!=array())
{
$char_id_ar=mysql_fetch_assoc(mysql_query("SELECT `obj_Id` FROM `characters` WHERE `char_name` = 'admin';"));
if($char_id_ar!=array())
{
$bonus_id_sql=mysql_escape_string($config['bonus_id']);
$numberous_sql=mysql_escape_string($config['numberous']);
$html=@file_get_contents($config['url_info']);
if ($html && preg_match_all('/([^\s]+)/', $html, $matches))
{
foreach ($matches[1] as $id => $nick)
{
$voters[]=$matches[1][$id-2];
}
if ($voters!=array())
{
foreach ($voters as $time)
{
$char_id_arr=mysql_fetch_assoc(mysql_query("SELECT `obj_Id` FROM `characters` WHERE `char_name` = '$nick';"));
$char_id_sql=mysql_escape_string($char_id_arr['obj_Id']);
$time_sql=mysql_escape_string($time);
$array=mysql_fetch_assoc(mysql_query("SELECT * FROM `character_vote1` WHERE `char_name` = '$nick' AND `date` = '$time_sql';"));
if ($array == array())
{
$SQL=mysql_query("INSERT INTO `items_delayed` (`owner_id`, `item_id`, `count`, `enchant_level`, `flags`, `payment_status`, `description`)
VALUES('$char_id_sql', '$bonus_id_sql', '$numberous_sql', '0', '0', '0', 'L2Top')");
}
if ($SQL)
{
mysql_query("INSERT INTO `character_vote1` (`char_name`, `date`, `osn`) VALUES ('$nick', '$time', 'L2Top');");
}
?>

0
Станислав
Станислав

User

Бывалый

Posts: 367

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

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

Рейтинг: 0

· 12/03/2009, 01:37 PM

Ув. поделись авто голосовалкой:) давно в поисках етого скрипта

0
Crystallon
Crystallon

User

Бывалый

Posts: 122

На форуме с: 06/24/2009

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

Рейтинг: 0

· 12/03/2009, 01:39 PM

xLaPax: Ув. поделись авто голосовалкой:) давно в поисках етого скрипта

Если кто-нибудь поможет довести его до рабочего состояния конешн выложу, мне не жалко, но пока неработает т.ч. смысла скидывать нету =)

0
Руслан
Руслан

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 12/03/2009, 02:46 PM

А чем тебе готовый скрипт не нравится?

То о чем ты говоришь должно правильно парсить страницу топа и вносить изменения в БД, а твой лишь поверхностно ищит совпадения буковок.

На Форуме я тоже Radar!
Я везде Radar!

0
Станислав
Станислав

User

Бывалый

Posts: 367

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

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

Рейтинг: 0

· 12/03/2009, 02:49 PM

сылку на скрипт пожалуйста подкинь

0
Руслан
Руслан

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 12/03/2009, 02:52 PM

http://la2base.ru/forum/index.php?showtopic=32941

Там немного староват, но изменить под себя проще чем воять заново))

На Форуме я тоже Radar!
Я везде Radar!

0
Станислав
Станислав

User

Бывалый

Posts: 367

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

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

Рейтинг: 0

· 12/03/2009, 02:59 PM

Radar: http://la2base.ru/forum/index.php?showtopic=32941

Там немного староват, но изменить под себя проще чем воять заново))

ех.... облом полний, сылка уже бита на дамп (_dump.ru/file/1464426 Запрошенный файл удален)

0
Руслан
Руслан

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 12/03/2009, 03:12 PM

Значит выдергивай из Иншелла

На Форуме я тоже Radar!
Я везде Radar!

0
Crystallon
Crystallon

User

Бывалый

Posts: 122

На форуме с: 06/24/2009

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

Рейтинг: 0

· 12/03/2009, 03:50 PM

Radar: http://la2base.ru/forum/index.php?showtopic=32941

Там немного староват, но изменить под себя проще чем воять заново))

Нет, мне проще мой рабочий под себя переделать ибо тот скрипт который даешь ты я уже качал и он берет данные старым способом(со страницы топ 50 голосов), а мне нужно новым, кароче я поколдовал и вот новый вариант, тут уже я точно знаю что трабла где-то в выборке голосов непосредственно из топа, а вот где понять немогу, часть кода выдрано из hellevil последнего, мб от этого и неработает, кароче вот сам код, надеюсь на вашу помощь:

<?
require_once 'config.php';

connect();

$limit = true;
$limit_count = intval($config['limit']);
$prefixList = array_map("trim", explode(",", $la2config["l2top"]["prefix_list"]));
$bonus_id_sql=mysql_escape_string($config['bonus_id']);
$numberous_sql=mysql_escape_string($config['numberous']);
$html=@file_get_contents(htmlspecialchars_decode($config['url_info']));
if (preg_match_all("#([0-9]{4}\-[0-9]{2}\-[0-9]{2}\s+[0-9]{2}:[0-9]{2}\:[0-9]{2})\t+([0-9a-zA-Z \-\=]*)#",$html,$matches)) {
for($i = 0; $i < count($matches[1]); $i++) {

$time = substr($dbl->escape($matches[1][$i]),0,20);

if (preg_match("#([a-zA-Z0-9]+)\-([a-zA-Z0-9 -]*)#", $matches[2][$i], $char_matches)) {
if (($server = array_search($char_matches[1])) === false) {
$server = intval($char_matches[1]);
}
$nick = $dbl->escape(substr($char_matches[2],0,30));
} else {
$server = "0";
$nick = $dbl->escape(substr($matches[2][$i],0,30));
}

if (isset($dbg[$server]) == false) {
$server = "0";
}

if ($nick != "") {
$char_id_arr=mysql_fetch_assoc(mysql_query("SELECT `obj_Id` FROM `characters` WHERE `char_name` = '$nick';"));
$char_id_sql=mysql_escape_string($char_id_arr['obj_Id']);
$time_sql=mysql_escape_string($time);
$array=mysql_fetch_assoc(mysql_query("SELECT * FROM `character_vote1` WHERE `char_name` = '$nick' AND `date` = '$time_sql';"));
if ($array == array())
{
$SQL=mysql_query("INSERT INTO `items_delayed` (`owner_id`, `item_id`, `count`, `enchant_level`, `flags`, `payment_status`, `description`)
VALUES('$char_id_sql', '$bonus_id_sql', '$numberous_sql', '0', '0', '0', 'L2Top')");
}
if ($SQL)
{
mysql_query("INSERT INTO `character_vote1` (`char_name`, `date`, `osn`) VALUES ('$nick', '$time', 'L2Top');");
}
}
}
}
?>

Мне кажется не работает из за этой хрени $dbl->, похоже что это значение берется из hellevil модуля а тут разумеется ему взяться не от куда...но мб это и не единственная трабла...а как убрать $dbl-> я тоже не в курсе...

0
Crystallon
Crystallon

User

Бывалый

Posts: 122

На форуме с: 06/24/2009

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

Рейтинг: 0

· 12/03/2009, 04:59 PM

Кароче говоря скрипт я сделал, все работает, зашарил на сайте, кому нужен ждите когда промодерируют новость. Должен подойти для любой сборки т.к. работает на таблице items_delayed, а она во всех сборках на сколько я знаю одинаковая.

0
Руслан
Руслан

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 12/03/2009, 10:10 PM

Crystallon: Кароче говоря скрипт я сделал, все работает, зашарил на сайте, кому нужен ждите когда промодерируют новость. Должен подойти для любой сборки т.к. работает на таблице items_delayed, а она во всех сборках на сколько я знаю одинаковая.


Ну во-первых таблица есть только на сборках основанных на Ребе, а во-вторых сказал бы сразу чего хочешь)) я б тебе готовое дал)

Выложат на сайте глянем.

На Форуме я тоже Radar!
Я везде Radar!

0
Crystallon
Crystallon

User

Бывалый

Posts: 122

На форуме с: 06/24/2009

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

Рейтинг: 0

· 12/04/2009, 02:35 AM

Radar: Ну во-первых таблица есть только на сборках основанных на Ребе, а во-вторых сказал бы сразу чего хочешь)) я б тебе готовое дал)

Выложат на сайте глянем.

А я думал на всех :D
З.Ы. Походу мою новость не пропустили...
Вот архив: _http://dump.ru/file/3873054
Пароль: www.la2base.ru

0
Руслан
Руслан

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 12/04/2009, 02:40 AM

Скрипт с парсом последних 500 голосов?
Правильно понял?

На Форуме я тоже Radar!
Я везде Radar!

0
V
Vo1N
· 12/04/2009, 08:59 AM

Подредактировал код, так, что если у персонажа есть уже итем, то он прибовляет к их числу, а если итема нет, то чтобы не возникало проблем с object_id присваиваем ему новое.

0
Руслан
Руслан

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 12/04/2009, 10:07 AM

Vo1N: Подредактировал код, так, что если у персонажа есть уже итем, то он прибовляет к их числу, а если итема нет, то чтобы не возникало проблем с object_id присваиваем ему новое.


Мда, ты важное дело сделал...
Ты в курсе что такое таблица items_delayed?
И что интересно знать ты там подредактировал?
Никаких object_id там нет, и через эту таблицу итем попадает к персу в инвентарь не зависимо от того есть такое в его инвентаре или нет, а так же пофигу онлайн перс или оффлайн!

На Форуме я тоже Radar!
Я везде Radar!

0
V
Vo1N
· 12/04/2009, 11:57 AM

Не везде есть таблица "items_delayed".
У меня выдает через обычную таблицу итемов, поэтому там и нужно использовать object_id.
В моем случае итем тоже попадет к чару независимо в игре он или нет.

0
Руслан
Руслан

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 12/04/2009, 12:02 PM

Я не про это, я про то что ты из скрипта выложенного выше сделал обычный скрипт коих на форуме как котят не резаных.
И таким образом это говорит лишь о том что пытаешься заработать "спасибо".
И за одно расскажи как он попадет чару если он в игре?

На Форуме я тоже Radar!
Я везде Radar!

0
V
Vo1N
· 12/04/2009, 02:59 PM

Во-первых, автору скрипта огромное спасибо.
Во-вторых, то, что ты говоришь, что я якобы "сделал обычный скрипт коих на форуме как котят не резаных" это канечно гон, я все эти скрипты ставил и все они не работали так как нужно...
В-третьих, благодаря скрипту предложенным Crystallon, я добавил пару строк из другого скрипта в итоге получил, то, что я так давно искал.
В-четвертых, уж незнаю какую привилегию дают эти спасибки, но мне они как-то не очень нужны, просто хочется, чтобы хоть так сказали спасибо.
В-пятых, насчет того, как итемы попадут в рюкзак даже если игрок в игре. Если игрок релогнится, то в его рюкзаке появятся эти итемы, вот и всего-то.

0
Станислав
Станислав

User

Бывалый

Posts: 367

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

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

Рейтинг: 0

· 12/04/2009, 04:14 PM

я уже запутался, дайте авто-голосовалку:)

0
Станислав
Станислав

User

Бывалый

Posts: 367

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

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

Рейтинг: 0

· 12/04/2009, 08:42 PM

я немного не прошарил с cron файлом, где он находится?

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