Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Серверная часть (https://forum.zone-game.info/forumdisplay.php?f=148)
-   -   Модуль онлайн для DLE (https://forum.zone-game.info/showthread.php?t=5363)

warman4ik 19.11.2009 21:19

Модуль онлайн для DLE
 
Онлайн серверов:

В index.php ищем строку:

PHP код:

$tpl->set '{speedbar}'$tpl->result['speedbar'] ); 

Ниже вставляем:

PHP код:

$tpl->set ('{loginonline}'$loginonline);
$tpl->set ('{gameonline}'$gameonline); 

Создаем config.php и пишем в него:

PHP код:

<?php
//настройка статуса сервера
$ipgame="xxx.xxx.xxx.xxx"//ип игрового сервера
$iplogin="xxx.xxx.xxx.xxx"//ип логин сервера
$portgame="7777";//порт игрового сервера
$portlogin="2106";//порт логин сервера
?>

Создаем online.php пишем в него:

PHP код:

<?php include('engine/modules/config.php');

$fp = @fsockopen($iplogin$portlogin$errno$errstr1);
if(
$fp >= 1){
$loginonline '<font color="green">Включен</font>';}
else{ 
$loginonline '<font color="red">Выключе</font>'; }
$fp = @fsockopen($ipgame$portgame$errno$errstr1);
if(
$fp >= 1){
$gameonline '<font color="green">Включен</font>';}
else{ 
$gameonline '<font color="red">Выключен</font>'; }
?>

Копируем config.php и online.php в engine/modules/

В main.tpl вашего шаблона (где вам угодно) вставляем:
PHP код:

{loginonline}
{
gameonline

Удачи!

Модуль by warman4ik
------------------------------------------------------------

Cоздаем модуль aion_online.php в /engine/modules/ с кодом:

PHP код:

<?php

// защита от прямого запуска
if (!defined('DATALIFEENGINE')) die ("Hacking attempt!");

// подключаемся к mysql
mysql_connect('localhost''root''newpass') or die (mysql_error());
// выбираем базу данных
mysql_select_db('aion');

// выполняем запрос на получение игроков в онлайне
// можно использовать count(*), и mysql_result
$sql mysql_query('SELECT * FROM players WHERE online=1');
// узнаем количество строк соответствующих нашему запросу
$sql mysql_num_rows($sql);

// вот и все, $sql содержит количество геймеров
// выводим их
echo 'Сейчас в игре: '.$sql;

?>

В main.tpl вашего шаблона (где вам угодно) вставляем:

PHP код:

{include file="/engine/modules/aion_online.php"

Модуль by PROGRAMMATOR.

HuKoJIaC 19.11.2009 21:40

Re: Модуль онлайн для DLE
 
СпС но вот подключение модуля забыл написать?
А именно вот это?
PHP код:

require_once ENGINE_DIR '/modules/online.php'


PROGRAMMATOR 19.11.2009 22:39

Re: Модуль онлайн для DLE
 
Цитата:

Сообщение от acronass
{loginonline}
{gameonline}-

Незачем использовать два тега, для вывода одного блока. ;) Так же не удобно иметь файл конфигурации для одного модуля, тут проще в самом модуле объявить нужные переменные.

PHP код:

<?php

// защита от прямого запуска 
if (!defined('DATALIFEENGINE')) die ("Hacking attempt!"); 

// переменные используемые в модуле
// настройка подключения к серверу авторизации
define ('LOGIN_DNS''www.zone-game.info');
define ('LOGIN_PORT'80);
// настройка подключения к игровому серверу
define ('GAME_DNS''www.zone-game.net');
define ('GAME_PORT'80);
// таймаут соединения, если за это время не ответил сервер
// считаем его "отключеным" (значение в секундах)
define ('TIME_OUT'2);

// по умолчанию все сервера отключены ;)
$login '<font color="red">отключен</font>';
$game '<font color="red">отключен</font>';

// устанавливаем соединение с серверов авторизации
$fp = @fsockopen(LOGIN_DNSLOGIN_PORT$errno$errstrTIME_OUT);

// проверяем, если true то назначаем переменной новое значение
if ($fp) {
    
$login '<font color="green">работает</font>';
    
fclose($fp);
}

// устанавливаем соединение с игровым сервером
$fp = @fsockopen(GAME_DNSGAME_PORT$errno$errstrTIME_OUT);

// проверяем, если true то назначаем переменной $game новое значение
if ($fp) {
    
$game '<font color="green">работает</font>';
    
fclose($fp);
}

$server_online "Сервер авторизации: $login\n<br />
        Игровой сервер: 
$game";

?>

Подключать модуль так же как и остальные. Для DLE < 8.2 выполняем установку таким макаром.

Да и вообще, его можно было совместить с aion_online и вывести все вместе.

warman4ik 20.11.2009 00:13

Re: Модуль онлайн для DLE
 
Цитата:

Сообщение от HuKoJIaC (Сообщение 45888)
СпС но вот подключение модуля забыл написать?
А именно вот это?
PHP код:

require_once ENGINE_DIR '/modules/online.php'


Да и не только

PHP код:

require_once ENGINE_DIR '/modules/online.php'

но и

PHP код:

require_once ENGINE_DIR '/modules/config.php'


PROGRAMMATOR 20.11.2009 00:56

Re: Модуль онлайн для DLE
 
Для чего? Он же уже у тебя инклудится в модуле:

PHP код:

<?php include('engine/modules/config.php');


warman4ik 20.11.2009 01:05

Re: Модуль онлайн для DLE
 
Я лично сделал так, для перестраховки:) Тем более пару строк мне места не займут) и работы это сильно не добавило)

PROGRAMMATOR 20.11.2009 01:29

Re: Модуль онлайн для DLE
 
:) Чем чище код - тем лучше.

warman4ik 20.11.2009 01:30

Re: Модуль онлайн для DLE
 
Я согласен, но тем не менее я начал так делать и заработало, не решил экспериментировать :)

DioNiR 20.11.2009 04:59

Re: Модуль онлайн для DLE
 
Цитата:

Сообщение от PROGRAMMATOR
Незачем использовать два тега, для вывода одного блока.

Ты не прав, надо давать свободу дизайнеру :)
Как говорит дизайнер у нас на работе: "Не хочешь проблем от дизайнера, дай ему свободу"

Тобиш, создал теги, и уже не надо переживать по поводу редактирования кода в движке, т.к дизайнер сам разместит это где нужно.

warman4ik 20.11.2009 05:06

Re: Модуль онлайн для DLE
 
Это мой второй пост с полезной, уникальной информацией. Буду стараться дальше! :)


Текущее время: 08:48. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot