Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/L2Top и системы поощрения/L2top Auto не пашет
Поиск

L2top Auto не пашет

23 ответов243 просмотровСейчас просматривают: 1
F
Fix009
· 28.02.2010, 03:30

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

0
F
Fred Perry
· 28.02.2010, 03:31

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

0
F
Fix009
· 28.02.2010, 03:44

конечно

вот скрипт

Раскрывающийся текст
<?
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
· 28.02.2010, 05:03

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

0
Саня
Саня

Пользователь

Новичок

Постов: 16

На форуме с: 24.03.2009

Рейтинг: 0

· 28.02.2010, 05:15

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

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

0
K
Kpu3uc_Bo3pacTa
· 28.02.2010, 11:52

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

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

0
F
Fix009
· 28.02.2010, 12:59

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

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

Модератор

Ветеран

Постов: 1201

На форуме с: 14.12.2007

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

Рейтинг: 0

· 28.02.2010, 13:03

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

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

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

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

0
F
Fix009
· 28.02.2010, 13:58

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

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

Модератор

Ветеран

Постов: 1201

На форуме с: 14.12.2007

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

Рейтинг: 0

· 28.02.2010, 14:07

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

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

0
F
Fix009
· 28.02.2010, 14:09

так charId

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

Модератор

Ветеран

Постов: 1201

На форуме с: 14.12.2007

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

Рейтинг: 0

· 28.02.2010, 14:25

Тогда проверяй полностью таблицу 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
· 28.02.2010, 14:29

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

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

Модератор

Ветеран

Постов: 1201

На форуме с: 14.12.2007

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

Рейтинг: 0

· 28.02.2010, 14:39

Да, значит еще и 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
· 28.02.2010, 14:51

Раскрывающийся текст
$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

Пользователь

Ветеран

Постов: 1514

На форуме с: 10.12.2007

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

Рейтинг: 0

· 28.02.2010, 14:51

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

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

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

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

Модератор

Ветеран

Постов: 1201

На форуме с: 14.12.2007

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

Рейтинг: 0

· 28.02.2010, 14:55

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

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

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

0
F
Fix009
· 28.02.2010, 14:59

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

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

Модератор

Ветеран

Постов: 1201

На форуме с: 14.12.2007

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

Рейтинг: 0

· 28.02.2010, 15:04

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

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

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

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

0
F
Fix009
· 28.02.2010, 15:08

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

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