МОД Шахмат (chessmod 0.0.1)
-
- phpBB 1.4.4
- Сообщения: 171
- Стаж: 18 лет 2 месяца
сделал обещанную кнопку "ничья", а по инерции - еще одно информационное дополнение. теперь не нужно будет заходить в топик игры, чтобы узнать, продолжается ли игра, или она уже закончилась чьей-то победой, а также можно сразу увидеть кто играет и каким цветом.
темы с шахматами будут отображаться по типу:
[шахматы] Название топика [Игрок1]-[Игрок2],
причем на первом месте игрок белыми фигурами. Если партия закончилась матом либо нажатием кнопки "сдаюсь", то имя проигравшего будет перечеркнуто. если партия закончится кнопкой "ничья", то оба имени будут перечеркнуты.
в прикрепленном архиве - сам chess mod и мои дополнения с инструкцией по установке и описанием
темы с шахматами будут отображаться по типу:
[шахматы] Название топика [Игрок1]-[Игрок2],
причем на первом месте игрок белыми фигурами. Если партия закончилась матом либо нажатием кнопки "сдаюсь", то имя проигравшего будет перечеркнуто. если партия закончится кнопкой "ничья", то оба имени будут перечеркнуты.
в прикрепленном архиве - сам chess mod и мои дополнения с инструкцией по установке и описанием
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Zlodey12 29.05.2007 20:42, всего редактировалось 4 раза.
-
- phpBB 2.0.2
- Сообщения: 333
- Стаж: 18 лет 11 месяцев
- Откуда: msk.reg.ru
-
- phpBB 1.4.4
- Сообщения: 171
- Стаж: 18 лет 2 месяца
если нет кнопок, значит что-то не так сделал с файлом chess_viewtopic_body.tpl
как вариант можно еще попробовать скопировать его в root\templates\subSilver
кстати, кнопки должны появляются только во время твоего хода.
еще кто-нибудь проверил? работает-неработает?
Добавлено спустя 8 минут 1 секунду:
блин, блин, блин...
для функции "ничья" в таблицу phpbb_chess добавляется поле nich, а я забыл отметить это в описании
вот как бывает, когда спешить.
короче вечером обновлю архив
как вариант можно еще попробовать скопировать его в root\templates\subSilver
кстати, кнопки должны появляются только во время твоего хода.
еще кто-нибудь проверил? работает-неработает?
Добавлено спустя 8 минут 1 секунду:
блин, блин, блин...
для функции "ничья" в таблицу phpbb_chess добавляется поле nich, а я забыл отметить это в описании

вот как бывает, когда спешить.
короче вечером обновлю архив
-
- phpBB 2.0.2
- Сообщения: 333
- Стаж: 18 лет 11 месяцев
- Откуда: msk.reg.ru
Zlodey12
Мод давно установлен и работает. Обрати внимание по этой теме, я первый заметил что короля можно съесть
Твои добавки к моду это Большой плюс! Необходимость помещать chess_viewtopic_body.tpl в root\templates\subSilver, не понимаю...
Создавал партию, делал несколько ходов, искал кнопки везде (и под стол заглядывал) нету их=) Надеюсь что что то упущенно в твоем архивчике...
PM также по базе искал, ничего не обнаружил, хотя по ADR, PM гуляют во всю
Мод давно установлен и работает. Обрати внимание по этой теме, я первый заметил что короля можно съесть

Твои добавки к моду это Большой плюс! Необходимость помещать chess_viewtopic_body.tpl в root\templates\subSilver, не понимаю...
Создавал партию, делал несколько ходов, искал кнопки везде (и под стол заглядывал) нету их=) Надеюсь что что то упущенно в твоем архивчике...
PM также по базе искал, ничего не обнаружил, хотя по ADR, PM гуляют во всю

-
- phpBB 1.4.4
- Сообщения: 171
- Стаж: 18 лет 2 месяца
обновил архив, добавил sql-запрос, без которого кнопка "ничья" не работала. у кого нет phpMyAdmin, могут сделать запрос, загрузив файл phpbb_db_backup.sql из архива через "админ-панель, восстановление БД". у кого префикс таблиц отличен от "phpbb_" - замените на свой.
fskon, никак не пойму, почему у тебя это всё не работает.
давай подождем, может кто еще выскажется, чтобы знать, я неправильные файлы выложил, или ты что-то не так сделал
Добавлено спустя 6 минут 19 секунд:
и за их появление отвечают две строчки в tpl-файле:
это чистый html, и даже если кроме этих строчек ничего не редактировать, то они всё-равно должны появиться, вот только работать не будут 
fskon, никак не пойму, почему у тебя это всё не работает.
давай подождем, может кто еще выскажется, чтобы знать, я неправильные файлы выложил, или ты что-то не так сделал

Добавлено спустя 6 минут 19 секунд:
)))))))) их нечего искать, они находятся ниже и левее поля ввода ходов,fskon писал(а):искал кнопки везде
и за их появление отвечают две строчки в tpl-файле:
Код: Выделить всё
<input type=button name='pipez' onclick="location.replace ('{S_PIPEZ_ACTION}')" value='Сдаюсь!'>
<input type=button name='nich' onclick="location.replace ('{S_NICH_ACTION}')" value='Ничья'>

-
- phpBB 2.0.2
- Сообщения: 333
- Стаж: 18 лет 11 месяцев
- Откуда: msk.reg.ru
Zlodey12
При создании парти, когда еще нет оппонета при заходе в топик
Что-то не так
Если оппонента прописывем то все нормализуется
А кнопки Ход и Отмена присутсвуют...
При создании парти, когда еще нет оппонета при заходе в топик
Что-то не так
Код: Выделить всё
DEBUG MODE
SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
SELECT username FROM phpbb_users WHERE user_id =
Line : 61
File : chess_viewforum.php
Понятное дело, однако их нет =)это чистый html, и даже если кроме этих строчек ничего не редактировать, то они всё-равно должны появиться, вот только работать не будут
А кнопки Ход и Отмена присутсвуют...
-
- phpBB 1.4.4
- Сообщения: 171
- Стаж: 18 лет 2 месяца
угу, я это тоже заметил. когда оппонента нет, то его user_id = 0, а "нулевого" пользователя на форуме не существует.fskon писал(а):При создании парти, когда еще нет оппонета при заходе в топик
Что-то не так
надо будет добавить условие проверки оппонента

Добавлено спустя 8 минут 47 секунд:
а попробуй-ка вышеприведенные две строчки вывода кнопок поставить где-нибудь в другое место tpl-файла, если конечно ты разбираешься в htmlfskon писал(а):Понятное дело, однако их нет =)
А кнопки Ход и Отмена присутсвуют...
-
- phpBB 2.0.2
- Сообщения: 333
- Стаж: 18 лет 11 месяцев
- Откуда: msk.reg.ru
-
- phpBB 1.4.4
- Сообщения: 171
- Стаж: 18 лет 2 месяца
исправил ошибку, появляющуюся при отображении шахматных тем в начале партии до того, как к ней присоединится противник.
архив выше обновил.
изменения в файле chess_viewforum.php:
меняем на:
продолжаем искать баги 
архив выше обновил.
изменения в файле chess_viewforum.php:
Код: Выделить всё
//
// *** added by Zlodey (for chess) ***
$user_id = $userdata['user_id'];
$sql = "SELECT chess_turn, chess_p1_id, chess_p2_id, chess_list_move FROM " . CHESS_TABLE . " WHERE topic_id = $topic_id AND chess_p2_id != 0 LIMIT 1";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Непонятный облом", '', __LINE__, __FILE__, $sql);
}
$blablabla = $db->sql_fetchrow($result);
$chess_turn = $blablabla['chess_turn'];
$name01 = $blablabla['chess_p1_id'];
$name02 = $blablabla['chess_p2_id'];
$c_l_m = $blablabla['chess_list_move'];
if ( $chess_turn == $user_id )
{
$sql = "SELECT topic_status FROM " . TOPICS_TABLE . " WHERE topic_id = $topic_id LIMIT 1";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Непонятный облом", '', __LINE__, __FILE__, $sql);
}
$blablabla2 = $db->sql_fetchrow($result);
$chess_closed = $blablabla2['topic_status'];
if ( $chess_closed == 0 )
{
// $topic_type .= $lang['Topic_Chess'] . ' [ Мой ход ] ';
$topic_type .= ' [ Мой ход ] ';
}
}
$sql = "SELECT username FROM " . USERS_TABLE . " WHERE user_id = $name01";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Непонятный облом", '', __LINE__, __FILE__, $sql);
}
$nnn = $db->sql_fetchrow($result);
$name1 = $nnn['username'];
$sql = "SELECT username FROM " . USERS_TABLE . " WHERE user_id = $name02";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Непонятный облом", '', __LINE__, __FILE__, $sql);
}
$nnn = $db->sql_fetchrow($result);
$name2 = $nnn['username'];
$s_c0 = substr_count($c_l_m,"ничья");
if ($s_c0 == 2)
{
$name1 = "<s> " . $name1 . " </s>";
$name2 = "<s> " . $name2 . " </s>";
}
else
{
$c_l_m = explode( '|', $c_l_m );
$s_c1 = substr_count($c_l_m[1],"#");
$s_c2 = substr_count($c_l_m[0],"сдался");
if ($s_c1 OR $s_c2)
{
$name1 = "<s> " . $name1 . " </s>";
}
$s_c1 = substr_count($c_l_m[0],"#");
$s_c2 = substr_count($c_l_m[1],"сдался");
if ($s_c1 OR $s_c2)
{
$name2 = "<s> " . $name2 . " </s>";
}
}
// *** added by Zlodey (for chess) ***
//
Код: Выделить всё
//
// *** added by Zlodey (for chess) ***
$user_id = $userdata['user_id'];
$sql = "SELECT chess_turn, chess_p1_id, chess_p2_id, chess_list_move FROM " . CHESS_TABLE . " WHERE topic_id = $topic_id AND chess_p2_id != 0 LIMIT 1";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Непонятный облом", '', __LINE__, __FILE__, $sql);
}
$blablabla = $db->sql_fetchrow($result);
$chess_turn = $blablabla['chess_turn'];
$name01 = $blablabla['chess_p1_id'];
$name02 = $blablabla['chess_p2_id'];
$c_l_m = $blablabla['chess_list_move'];
if ($name01 AND $name02)
{
if ( $chess_turn == $user_id )
{
$sql = "SELECT topic_status FROM " . TOPICS_TABLE . " WHERE topic_id = $topic_id LIMIT 1";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Непонятный облом", '', __LINE__, __FILE__, $sql);
}
$blablabla2 = $db->sql_fetchrow($result);
$chess_closed = $blablabla2['topic_status'];
if ( $chess_closed == 0 )
{
// $topic_type .= $lang['Topic_Chess'] . ' [ Мой ход ] ';
$topic_type .= ' [ Мой ход ] ';
}
}
$sql = "SELECT username FROM " . USERS_TABLE . " WHERE user_id = $name01";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Непонятный облом", '', __LINE__, __FILE__, $sql);
}
$nnn = $db->sql_fetchrow($result);
$name1 = $nnn['username'];
$sql = "SELECT username FROM " . USERS_TABLE . " WHERE user_id = $name02";
if (!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Непонятный облом", '', __LINE__, __FILE__, $sql);
}
$nnn = $db->sql_fetchrow($result);
$name2 = $nnn['username'];
$s_c0 = substr_count($c_l_m,"ничья");
if ($s_c0 == 2)
{
$name1 = "<s> " . $name1 . " </s>";
$name2 = "<s> " . $name2 . " </s>";
}
else
{
$c_l_m = explode( '|', $c_l_m );
$s_c1 = substr_count($c_l_m[1],"#");
$s_c2 = substr_count($c_l_m[0],"сдался");
if ($s_c1 OR $s_c2)
{
$name1 = "<s> " . $name1 . " </s>";
}
$s_c1 = substr_count($c_l_m[0],"#");
$s_c2 = substr_count($c_l_m[1],"сдался");
if ($s_c1 OR $s_c2)
{
$name2 = "<s> " . $name2 . " </s>";
}
}
}
// *** added by Zlodey (for chess) ***
//

У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- phpBB 2.0.2
- Сообщения: 333
- Стаж: 18 лет 11 месяцев
- Откуда: msk.reg.ru
-
- phpBB 1.4.4
- Сообщения: 111
- Стаж: 18 лет 3 месяца
- Забанен: Бессрочно
-
- phpBB 1.4.4
- Сообщения: 171
- Стаж: 18 лет 2 месяца
а как бы ты хотел, чтобы это выглядело?arhi писал(а):пользователь не может его отключить или включить по желанию?
может быть и сделаю
если работает не только у меня, но еще как минимум и у arhi, то проблема где-то у тебяfskon писал(а):Ни кнопок не появилось, ни сообщение не приходит.
Пробовал и вручную и с подменой твоими файлами.
И с использованием PM от ADR и без

ну и почему же у тебя не показывались кнопки?fskon писал(а):Каюсь, все работает =)
-
- phpBB 2.0.2
- Сообщения: 333
- Стаж: 18 лет 11 месяцев
- Откуда: msk.reg.ru
-
- phpBB 1.4.4
- Сообщения: 171
- Стаж: 18 лет 2 месяца
действительно странно. у меня в начале партии, до присоединения оппонента тема отображается так:fskon писал(а):Только убрал [игрок1] [игрок2], странно ведет себя...
После создания новой партии, еще никто не отозвался, а в названии появляется предыдущий оппонент
[шахматы] Название топика [ ]-[ ],
да и как там может появиться предыдущий оппонент, если идет запрос в базу о текущей теме, а не о предыдущей.
хотя... если если у тебя партии происходят всегда в одной и той же теме... ты просто в конце партии удаляешь игру, затем в этой же теме создаешь новую.. то всё должно быть так, как ты и говорил... но для такого извращенного способа игры я даже не знаю, что сделать :-D ...
У меня всё проще - есть специальная ветка форумов "Шахматы" и там все игры в отдельных темах, можно любую просмотреть, а если понадобится - и создать статистику игр и выигрышей)
-
- phpBB 1.4.4
- Сообщения: 111
- Стаж: 18 лет 3 месяца
- Забанен: Бессрочно