Skip to content
La2Base
Home
DownloadsWikiForumFAQ
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 Auto не пашет
Search

L2top Auto не пашет

23 replies241 viewsCurrently viewing: 1
F
Fix009
· 02/28/2010, 03:30 AM

сборка open-team rev.684
движок сайта stress web 8.0+
проблема заключается в том что приз не выдает
зделал всё как надо залилв БД в конфиге пропсал всё как надо лог пас от БД путь к списку проголосовавшых в крон добавил фаил , а он не выдает приз , скажите в чём проблема?

0
F
Fred Perry
· 02/28/2010, 03:31 AM

А голос защитует?

0
F
Fix009
· 02/28/2010, 03:44 AM

конечно

вот скрипт

Раскрывающийся текст
<?
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($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 = substr($char_matches[2],0,30);
} else {
$server = "0";
$nick = substr($matches[2][$i],0,30);
}

if ($nick != "") {
$char_id_arr=mysql_fetch_assoc(mysql_query("SELECT `charId` FROM `characters` WHERE `char_name` = '$nick';"));
$char_id_sql=mysql_escape_string($char_id_arr['charId']);
$time_sql=mysql_escape_string($time);
$array=mysql_fetch_assoc(mysql_query("SELECT * FROM `character_vote` 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_vote` (`char_name`, `date`) VALUES ('$nick', '$time');");
}
}
}
}
?>

вот тут есть вроде как название таблицы я выделил красным , мб такая таблица должна еще и в БД быть ?

0
F
Fix009
· 02/28/2010, 05:03 AM

кто-то может подсказать в чём проблема?

0
Саня
Саня

User

Новичок

Posts: 16

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

Рейтинг: 0

· 02/28/2010, 05:15 AM

Fix009: движок сайта stress web 8.0+

Лицензия или Null ?!

0
K
Kpu3uc_Bo3pacTa
· 02/28/2010, 11:52 AM

скрипт проверяет наличие имени в списке и записывает выдачу в таблицу - выделенную красным.
как он потом доставляет приз игроку - не понятно.

по идеи надо делать проверку, онлайн ли чар или нет.
если онлайн - то записывать на выдачу во временную таблицу - если не онлайн - то выдавать сразу чару.

0
F
Fix009
· 02/28/2010, 12:59 PM

стрес нулевая, так я понимаю надо создать таблицу "items_delayed"?

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

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 02/28/2010, 01:03 PM

Надо покупать лицензию и обращаться в ТехПоддержку!

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

Если у тебя такой таблицы нет - переписывай скрипт под обычную items таблицу.

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

0
F
Fix009
· 02/28/2010, 01:58 PM

дописал там всё норм в бд показывает что перс получил приз , но есть одно но вот в БД я так понимаю что-то пропустил в скрипте пишет в таблице итемс выдал бонус но ИД чара 0 и ИД вещи object_id который тоже 0 , скажите как это исправить ?

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

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 02/28/2010, 02:07 PM

Проверь как в таблице characters озаглавлен столбец с ИД перса:
так charId или так obj_Id

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

0
F
Fix009
· 02/28/2010, 02:09 PM

так charId

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

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 02/28/2010, 02:25 PM

Тогда проверяй полностью таблицу items и соотноси все данные запроса

SQL
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')

с запросом под items

Примерно так:
SQL
$SQL=mysql_query("INSERT INTO `items` (`owner_id`, `item_id`, `count`, `enchant_level`, `loc`)
values ('$char_id_sql', '$bonus_id_sql', '$numberous_sql', 0, 'INVENTORY')");


Только учти что теперь скрипт стал полной ерундой, так как действие производится без проверки на наличие итема в инвентаре, так что надо будет еще дописать проверку на наличие, Если такой итем есть то UPDATE запрос выполняем, если нет то INSERT

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

0
F
Fix009
· 02/28/2010, 02:29 PM

зделал так и в таблице items в стобике овнер и обжект не пишет ни ИД чара ни ИД вещи там по 0

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

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 02/28/2010, 02:39 PM

Да, значит еще и object_id надо высчитать примерно так:

SQL
$ress=mysql_query('SELECT max(object_id) from items');
$maxobjid=mysql_result($ress,0,'max(object_id)');


А потом его в итемс вписать так
SQL
$SQL=mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`)
values ('$char_id_sql', '($maxobjid+1)', '$bonus_id_sql', '$numberous_sql', 0, 'INVENTORY')");


Готовых решений уже более чем достаточно!
Поиск, да и далеко искать не надо - весь раздел усыпан такими скриптами!

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

0
F
Fix009
· 02/28/2010, 02:51 PM

Раскрывающийся текст
$ress=mysql_query('SELECT max(object_id) from items');
$maxobjid=mysql_result($ress,0,'max(object_id)');

этот скрипт надо дописать ниже ?
вот щас скрипт такой
Раскрывающийся текст
<?
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($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 = substr($char_matches[2],0,30);
} else {
$server = "0";
$nick = substr($matches[2][$i],0,30);
}

if ($nick != "") {
$char_id_arr=mysql_fetch_assoc(mysql_query("SELECT `charId` FROM `characters` WHERE `char_name` = '$nick';"));
$char_id_sql=mysql_escape_string($char_id_arr['object_id']);
$time_sql=mysql_escape_string($time);
$array=mysql_fetch_assoc(mysql_query("SELECT * FROM `character_vote` WHERE `char_name` = '$nick' AND `date` = '$time_sql';"));
if ($array == array())
{
$SQL=mysql_query("INSERT INTO `items` (`owner_id`, `item_id`, `count`, `enchant_level`, `loc`)
values ('$char_id_sql', '$bonus_id_sql', '$numberous_sql', 0, 'INVENTORY')");
}
if ($SQL)
{
mysql_query("INSERT INTO `character_vote` (`char_name`, `date`) VALUES ('$nick', '$time');");
}
}
}
}
?>

0
AbsT
AbsT

User

Ветеран

Posts: 1514

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

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

Рейтинг: 0

· 02/28/2010, 02:51 PM

Цитата
object_id надо высчитать примерно так

Ага, а потом получать в консоле предупреждения о дубликатах, и выслушивать крики игроков о пропавших вещах итд.
Кто придумал такой способ - понятия не имею. И как его можно использовать на серьезных проектах - тоже. crazy.gif
Медленное и преднамеренное убийство проекта так сказать...

— &#197;lderdom - ingen gl&#228;dje..

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

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 02/28/2010, 02:55 PM

AbsT: Медленное и преднамеренное убийство проекта так сказать...

Так же как и использование такого скрипта, когда есть куча доработанных аналогов.

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

0
F
Fix009
· 02/28/2010, 02:59 PM

я облазил уже тут весь форум и искал еще в гугля но что-то не помогает нечего и толкового не увидел, если есть так можеш тыкнуть пальцем ?

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

Moderator

Ветеран

Posts: 1201

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

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

Рейтинг: 0

· 02/28/2010, 03:04 PM

Издеваешься что ли?
Весь раздел посвящен системе поощрений за голоса в Л2Топ и ты ничего не нашел?

/ru/forum/l2top-i-sistemy-pooshchreniya/4497
/ru/forum/l2top-i-sistemy-pooshchreniya/17627

Этого уже более чем достаточно.

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

0
F
Fix009
· 02/28/2010, 03:08 PM

релиз л2 топ это ведь не авто поощерение , или я ошибаюсь?

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