Интеграция Counter-Strike и Dle

Интеграция Counter-Strike и Dle


Статья о том как интегрировать игру,dle и psychostats в прикольный аддон

Суть:
Человек хочет играть на вашем сервере,он должен зайти к вам на сайт и зарегистрироваться. После регистрации он должен играть под ником и паролем который указал на сайте. Пока он не набрал 100 фрагов,он не имеет флагов и является гостем. Как только он набрал 100 фрагов,ему присваивается флаг z (пользователь),как только он набрал 500 фрагов ему присваевается флаг а иммунитет (нельзя кикнуть/забанить/убить/стукнуть и прочее),как только он набрал 1000 фрагов ему присваиваются флаги ac ну и т.д.

плюсы данной системы:
1) например у вас на сервере правило: гость должен соблюдать соотношение фрагов и смертей 1/1 (как на многих серверах в инете) то ему проще зарегистрироваться и играть всегда под своим логином.
когда человек всегда под 1 логином его проще контролировать.
2) если человек долго играл под своим логином и набрал достаточное количество фрагов,ему будет страшно читирить т.к. в правилах нужно указать Если спалили с читом,то статистика обнуляется. И установить hltv с хранением демок на веб ресурсе,для всеобщего суда читера.
3) посещаемость на сайте
4) легкий контроль
5) интерес пользователей играть именно у вас т.к. каждый может получить права (злоупотребление правами карается обнулением)

Приступим :)
Нам потребуется
1)Установленный движок портала DataLife Engine скачать
2)Статистика PsychoStats 3.1 скачать
3)AMXMODX

Нужно установить dle и pstats в одну базу!!
итак мы имее установленную dle, pstats и сервер с amxmodx

по пунктам:
1) Добавить поля в таблицу dle_users

auth тип varchar(32)
access тип varchar(32)
flags тип varchar(32)
plrid тип int(10)
kills тип int(10)



Для этого открываем таблице Dle_users,тыкаем структура,внизу выбираем добавить

Интеграция Counter-Strike и Dle


И по очереди создаем таблицы

Интеграция Counter-Strike и Dle


2) Добавить проверку данных с pstats и автоматическую раздачу прав

а)открыть файл engine/modules/cron.php
б)найти строчку(41 строка для ленивых)
@unlink( ENGINE_DIR . '/cache/system/banned.php' );


и ниже добавить:
//присваеваем id юзера с pstats к юзеру dle //
$db->query("UPDATE dle_users, ps_plr SET dle_users.plrid=ps_plr.plrid WHERE dle_users.name = ps_plr.uniqueid");
//проверяем сколько убийств у юзера и записываем в профиль юзера dle //
$db->query("UPDATE dle_users, ps_c_plr_data SET dle_users.kills=ps_c_plr_data.kills WHERE dle_users.plrid = ps_c_plr_data.plrid");
//настраиваем привелегии//
$db->query("UPDATE dle_users SET dle_users.access='' WHERE dle_users.kills query("UPDATE dle_users SET dle_users.access='z' WHERE dle_users.kills > '100'"); //если больше 100 убийств выдается флаг z//
$db->query("UPDATE dle_users SET dle_users.access='a' WHERE dle_users.kills > '500'"); //если больше 500 убийств выдается флаг a//
$db->query("UPDATE dle_users SET dle_users.access='ac' WHERE dle_users.kills > '800'"); //если больше 800 убийств выдается флаг ac//
$db->query("UPDATE dle_users SET dle_users.access='acij' WHERE dle_users.kills > '1200'"); //если больше 1200 убийств выдается флаг acij//
$db->query("UPDATE dle_users SET dle_users.access='acijdu' WHERE dle_users.kills > '2000'"); //если больше 2000 убийств выдается флаг acijdu//
$db->query("UPDATE dle_users SET dle_users.access='abcdefghijklmnopqrstu' WHERE dle_users.user_id = '1'"); //главному админу dle т.е. вам флаги abcdefghijklmnopqrstu//


Интеграция Counter-Strike и Dle


Количество убийств и флаги можете сами менять на свои!
3) Добавить заполнение полей при регистрации пользователя на сайте.

В данном файле заполняем поле auth которое рано полю name. поле auth нужно для авторизации на сервере cs. Какой ник зарегистрирует юзер на сайте,с тем ему и придется играть на сервере.

а)отрыть файл engine/modules/register.php
найти строчку(395 для ленивых)
$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );



Заменить на:

$db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, auth, access, flags, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$name', '', 'name', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );



4) Добавляем возможность вывод информации на сайте о игроке, его правах и сколько ему осталось до следующего статуса.

а)открыть файл engine/modules/profile.php
б)найти строчку(324 строка для ленивых)
$tpl->set( '{lastdate}', langdate( "j F Y H:i", $row['lastdate'] ) );



ниже добавить:

$tpl->set( '{flags}', stripslashes( $row['flags'] ) );
$tpl->set( '{access}', stripslashes( $row['access'] ) );

if( $row['kills'] set( '{kills}', "Гость [ Фрагов - " .$row['kills']." до Пользователь осталось: $sum ]" );

} elseif( $row['kills'] > 100 ) {
$sum = 500 - $row['kills'];
$tpl->set( '{kills}', "Пользователь [ Фрагов - " .$row['kills']." до Постоялец осталось: $sum ]" );

} elseif( $row['kills'] > 500 ) {
$sum = 800 - $row['kills'];
$tpl->set( '{kills}', "Постоялец [ Фрагов - " .$row['kills']." до Постоялец с правами осталось: $sum ]" );

} elseif( $row['kills'] > 800 ) {
$sum = 1200 - $row['kills'];
$tpl->set( '{kills}', "Постоялец с правами [ Фрагов - " .$row['kills']." до Эксперт осталось: $sum ]" );

} elseif( $row['kills'] > 1200 ) {
$sum = 2000 - $row['kills'];
$tpl->set( '{kills}', "Эксперт [ Фрагов - " .$row['kills']." до Админ осталось: $sum ]" );

} elseif( $row['kills'] > 2000 ) {

$tpl->set( '{kills}', "Админ [ Фрагов - " .$row['kills']." ]" );

}



ВНИМАНИЕ!!! если вы поменяли значения на свои в файле cron.php то тут вам тоже нужно изменить на те что вписали в cron.php


5)Добавляем сам вывод информации игрока в шаблон сайта.

а)Открыть файл templates/Шаблон/userinfo.tpl
б)Найти строчку
E-Mail адрес: [ {email} ] [ {pm} ] {edituser}



ниже добавить:

Информация игрока на сервере CS 1.6


Ник в игре: {usertitle}

Статус: {kills}

Права: {access}



6) Меняем стандартный режим cron.php на обновление 1 раз в 30 минут
а)Открыть файл engine/init.php
б)найти строчку:(48 для ленивых)
if (date ( "Y-m-d", $cron_time ) query("UPDATE dle_users, ps_c_plr_data SET dle_users.kills=ps_c_plr_data.kills WHERE dle_users.plrid = ps_c_plr_data.plrid");
//настраиваем привелегии//
$db->query("UPDATE dle_users SET dle_users.access='' WHERE dle_users.kills query("UPDATE dle_users SET dle_users.access='z' WHERE dle_users.kills > '100'"); //если больше 100 убийств выдается флаг z//
$db->query("UPDATE dle_users SET dle_users.access='a' WHERE dle_users.kills > '500'"); //если больше 500 убийств выдается флаг a//
$db->query("UPDATE dle_users SET dle_users.access='ac' WHERE dle_users.kills > '800'"); //если больше 800 убийств выдается флаг ac//
$db->query("UPDATE dle_users SET dle_users.access='acij' WHERE dle_users.kills > '1200'"); //если больше 1200 убийств выдается флаг acij//
$db->query("UPDATE dle_users SET dle_users.access='acijdu' WHERE dle_users.kills > '2000'"); //если больше 2000 убийств выдается флаг acijdu//
$db->query("UPDATE dle_users SET dle_users.access='abcdefghijklmnopqrstu' WHERE dle_users.user_id = '1'"); //главному админу dle т.е. вам флаги abcdefghijklmnopqrstu//



на:

$db->query("UPDATE dle_users SET dle_users.access='', dle_users.zvanie='Гость' WHERE dle_users.kills query("UPDATE dle_users SET dle_users.access='z', dle_users.zvanie='Пользователь' WHERE dle_users.kills > '100'");
$db->query("UPDATE dle_users SET dle_users.access='a', dle_users.zvanie='Постоялец' WHERE dle_users.kills > '500'");
$db->query("UPDATE dle_users SET dle_users.access='ac', dle_users.zvanie='Постоялец с правами' WHERE dle_users.kills > '800'");
$db->query("UPDATE dle_users SET dle_users.access='acij', dle_users.zvanie='Эксперт' WHERE dle_users.kills > '1200'");
$db->query("UPDATE dle_users SET dle_users.access='acijdu', dle_users.zvanie='Админ' WHERE dle_users.kills > '2000'");
$db->query("UPDATE dle_users SET dle_users.access='abcdefghijklmnopqrstu', dle_users.zvanie='Главный' WHERE dle_users.user_id = '1'");



в)Открываем файл engine/modules/profile.php
находим строку:
$tpl->set( '{lastdate}', langdate( "j F Y H:i", $row['lastdate'] ) );



после добавим:

$tpl->set( '{zvanie}', stripslashes( $row['zvanie'] ) );



г) Открыть файл templates/Шаблон/userinfo.tpl
находим строку:

Статус: {kills}


ниже добавить:

Звание: {zvanie}


Готово....

Вот что у нас получается в вообщем

Интеграция Counter-Strike и Dle

Ключевые теги:


Похожие публикации: