L2top Auto не пашет
сборка open-team rev.684
движок сайта stress web 8.0+
проблема заключается в том что приз не выдает
зделал всё как надо залилв БД в конфиге пропсал всё как надо лог пас от БД путь к списку проголосовавшых в крон добавил фаил , а он не выдает приз , скажите в чём проблема?
А голос защитует?
конечно
вот скрипт
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');");
}
}
}
}
?>
вот тут есть вроде как название таблицы я выделил красным , мб такая таблица должна еще и в БД быть ?
кто-то может подсказать в чём проблема?
скрипт проверяет наличие имени в списке и записывает выдачу в таблицу - выделенную красным.
как он потом доставляет приз игроку - не понятно.
по идеи надо делать проверку, онлайн ли чар или нет.
если онлайн - то записывать на выдачу во временную таблицу - если не онлайн - то выдавать сразу чару.
стрес нулевая, так я понимаю надо создать таблицу "items_delayed"?
Надо покупать лицензию и обращаться в ТехПоддержку!
Таблица items_delayed используется в сборках на основе Ребеллиона, для оперативной внутриигровой выдачи итемов персонажам.
Если у тебя такой таблицы нет - переписывай скрипт под обычную items таблицу.
На Форуме я тоже Radar!
Я везде Radar!
дописал там всё норм в бд показывает что перс получил приз , но есть одно но вот в БД я так понимаю что-то пропустил в скрипте пишет в таблице итемс выдал бонус но ИД чара 0 и ИД вещи object_id который тоже 0 , скажите как это исправить ?
Проверь как в таблице characters озаглавлен столбец с ИД перса:
так charId или так obj_Id
На Форуме я тоже Radar!
Я везде Radar!
так charId
Тогда проверяй полностью таблицу items и соотноси все данные запроса
VALUES('$char_id_sql', '$bonus_id_sql', '$numberous_sql', '0', '0', '0', 'L2Top')
с запросом под items
Примерно так:
values ('$char_id_sql', '$bonus_id_sql', '$numberous_sql', 0, 'INVENTORY')");
Только учти что теперь скрипт стал полной ерундой, так как действие производится без проверки на наличие итема в инвентаре, так что надо будет еще дописать проверку на наличие, Если такой итем есть то UPDATE запрос выполняем, если нет то INSERT
На Форуме я тоже Radar!
Я везде Radar!
зделал так и в таблице items в стобике овнер и обжект не пишет ни ИД чара ни ИД вещи там по 0
Да, значит еще и object_id надо высчитать примерно так:
$maxobjid=mysql_result($ress,0,'max(object_id)');
А потом его в итемс вписать так
values ('$char_id_sql', '($maxobjid+1)', '$bonus_id_sql', '$numberous_sql', 0, 'INVENTORY')");
Готовых решений уже более чем достаточно!
Поиск, да и далеко искать не надо - весь раздел усыпан такими скриптами!
На Форуме я тоже Radar!
Я везде Radar!
$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');");
}
}
}
}
?>
Ага, а потом получать в консоле предупреждения о дубликатах, и выслушивать крики игроков о пропавших вещах итд.
Кто придумал такой способ - понятия не имею. И как его можно использовать на серьезных проектах - тоже.
Медленное и преднамеренное убийство проекта так сказать...
— Ålderdom - ingen glädje..
AbsT: Медленное и преднамеренное убийство проекта так сказать...
Так же как и использование такого скрипта, когда есть куча доработанных аналогов.
На Форуме я тоже Radar!
Я везде Radar!
я облазил уже тут весь форум и искал еще в гугля но что-то не помогает нечего и толкового не увидел, если есть так можеш тыкнуть пальцем ?
Издеваешься что ли?
Весь раздел посвящен системе поощрений за голоса в Л2Топ и ты ничего не нашел?
http://la2base.ru/forum/index.php?showtopic=32941
http://la2base.ru/forum/index.php?showtopic=61940
Этого уже более чем достаточно.
На Форуме я тоже Radar!
Я везде Radar!
релиз л2 топ это ведь не авто поощерение , или я ошибаюсь?



