Перейти к содержанию
Авторизация  
GRIN4

Stress Web V13 Вывод Онлайна

Рекомендуемые сообщения

Алоха всем форумчанам. Сегодня напишу вам, как же все таки отделить оффтрейдовых и онлайновых пользователей.

Делается под SW13. Несмотрел как phpка выглядит в старых версиях, незнаю так там или нет, а под другую CMS думаю сами сделаете.

Некоторые пользователи спросят - "А зачем ты мудак это написал, кому это нужно?". Я отвечу!

 

Мне раньше нужно было, отделяя обычный пользователей от оффтрейдоров, выводить онлайн.

Т.е. накрученный онлайн + обычный оффтрейд.

 

Кому нужно будет, что бы вывод был чистого онлайна, то можете некоторые буквы делитнуть и все.

 

Начнем, тут все просто...

 

Идем в "/module/server.php".Ищем строку (~30 строка)

 

$db->gdb( $_S );

 

и ниже заменяем

$Online = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `characters` WHERE `online`>'0'"), 0 );
				    if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
						    $Online = intval( $Online * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) );
				    }

 

на вот это

 

$Offline = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `character_variables` WHERE `name`='offline'"), 0 );
if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
		 $Offline = intval( $Offline * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) );
	 }

$Offline2 = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `character_variables` WHERE `name`='offline'"), 0 );
if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
		 $Offline2 = intval( $Offline2 );
	 }

	 $Online = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `characters` WHERE `online`>'0'"), 0 );

	 if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
		 $Online = intval( $Online * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) - $Offline + $Offline2 );
	 }
if ($Online < 0) $Online = $Offline2;

 

Теперь разъясню разные переменные.

 

$Offline - переменная с оффтрейд с накруткой через CMS

$Offline2 - переменная вывода чистого оффтрейда. Без всякой хероты.

$Online - ну это вывод уже нашего готового онлайна.

 

получается так.

$Online = intval( $Online * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) - $Offline - вот до сюда это вывод чистого накрученного онлайна

а если приписать + $Offline2 то получается вывод накрученного онлайна с реальным кол-вом оффтрейда.

 

if ($Online < 0) $Online = $Offline2; - не забываем про это условие. А то если онлайн 0 (хоть и накрученного) то будет минусовой онлайн. поэтому при нуле будет писать реальный онлайн оффтрейда.

 

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

 

<?php
/**
* STRESS WEB
* @author S.T.R.E.S.S.
* @copyright 2008 - 2012 STRESS WEB
* @version 13
* @web [url="http://stressweb.ru"]http://stressweb.ru[/url]
*/
if ( !defined("STRESSWEB") )
die( "Access denied..." );
if ( !$l2cfg["server"]["enable"] ) {
$tpl->SetResult( 'server', "Статус серверов временно не доступен" );
} else {
$mod_server = $controller->GetCache( 'mod_server' );
if ( $mod_server )
$tpl->SetResult( 'server', $mod_server );
else {
$LS = array();
$Total = 0;
foreach ( $lsList as $_L ) {
$LS[$_L] = $controller->GetStatus( $l2cfg["ls"][$_L]["host"], $l2cfg["ls"][$_L]["port"] );
}
foreach ( $gsList as $_S ) {
$tpl->LoadView( "server" );
$tpl->Block( 'main', false );
$tpl->Block( 'item' );
$GS = $controller->GetStatus( $l2cfg["gs"][$_S]["host"], $l2cfg["gs"][$_S]["port"] );
$db->gdb( $_S );
$Offline = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `character_variables` WHERE `name`='offline'"), 0 );
if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
$Offline = intval( $Offline * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) );
}
$Offline2 = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `character_variables` WHERE `name`='offline'"), 0 );
if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
$Offline2 = intval( $Offline2 );
}
$Online = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `characters` WHERE `online`>'0'"), 0 );
if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
$Online = intval( $Online * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) - $Offline + $Offline2 );
}
if ($Online < 0) $Online = $Offline2;
$slink = ( $l2cfg["mod_rewrite"] ) ? "/stat/s{$_S}":"/index.php?f=stat&sid={$_S}";
$tpl->Set( "nameLink", "<a href='".HTTP_HOME_URL."{$slink}'>{$l2cfg["gs"][$_S]["title"]}</a>" );
$tpl->Set( "name", "{$l2cfg["gs"][$_S]["title"]}" );
$tpl->Set( "online", $Online );
$tpl->Set( "login", $LS[$l2cfg["gs"][$_S]["ls"]] );
$tpl->Set( "game", $GS );
$tpl->Set( "chronicle", $l2cfg["gs"][$_S]["chronicle"] );
$tpl->Build( "server_item" );
$Total += $Online;
if ( $l2cfg["txt"]["enable"] and $l2cfg["txt"]["gs"] == $_S ) {
$fopen = fopen( ROOT_DIR.'online.txt', "w" );
if ( $fopen ) {
fwrite( $fopen, $Online );
fclose( $fopen );
}
}
}
$tpl->LoadView( "server" );
$tpl->Block( 'main' );
$tpl->Block( 'item', false );
if ( isset($LS[0]) )
$tpl->Set( "login", $LS[0] );
$tpl->Set( 'item', $tpl->GetResult("server_item", true) );
if ( count($gsList) > 1 ) {
$tpl->Block( 'total' );
$tpl->Set( "total", $Total );
} else
$tpl->Block( 'total', false );
$tpl->Build( "server" );
if ( $l2cfg["cache"]["enable"] and $l2cfg['cache']['sList'] ) {
$controller->SetCache( "mod_server", $tpl->GetResult("server"), $l2cfg['cache']['sList'] );
}
}
}
?>

 

 

Изменено пользователем GRIN4
  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что-то у меня этот способ вышибает стресс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поконкретнее? Я не ВАНГА

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

просто белый экран, как буд-то сайта и вовсе нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это косяки у твоего хостинга. Я помню у меня на промке такая лажа была. сейчас более менее.

И смотри, заменяй код правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заменял код согласно написанному, ну манипулируя с этим же кодом, хостинг проблем не выдавал, и как только вписываю твой почему то "белеет" хотя очень хорошая и идея и реализация, но вот как-то не хочет переваривать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исходный код глянь

там должно быть пустая голова и тело. Если так. ТО я уже и не помню что делал в таких случаях) но проблема у хостера

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да походу хостинг, вообще как буд-то страницы нет

 

$Offline = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `character_variables` WHERE `name`='offline'"), 0 );
if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
$Offline = intval( $Offline * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) );
}

 

удалил эту часть кода, все заработало

Изменено пользователем Preature

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда у тебя будет вывод онлайна(оффтрейд+живые) и еще плюс ненакрученный оффтрейд

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я понимаю, но с той частью кода, сайт перестает работать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверь все знаки есть ли на месте. У меня работать перестал сначала потом заметил что "}" не хватало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

походу слеп, не вижу где не хватает :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все делай как я написал. Только .....

$Online = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `characters` WHERE `online`>'0'"), 0 );
           if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
               $Online = intval( $Online * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) );
           }

 

вот это удали)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хм походу я рак :sorry: , вообще не выводи теперь цифры, можешь готовый код прислать?))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<?php
/**
* STRESS WEB
* @author S.T.R.E.S.S.
* @copyright 2008 - 2012 STRESS WEB
* @version 13
* @web http://stressweb.ru
*/
if ( !defined("STRESSWEB") )
   die( "Access denied..." );
if ( !$l2cfg["server"]["enable"] ) {
   $tpl->SetResult( 'server', "Статус серверов временно не доступен" );
} else {
   $mod_server = $controller->GetCache( 'mod_server' );
   if ( $mod_server )
    $tpl->SetResult( 'server', $mod_server );
   else {
    $LS = array();
    $Total = 0;
    foreach ( $lsList as $_L ) {
	    $LS[$_L] = $controller->GetStatus( $l2cfg["ls"][$_L]["host"], $l2cfg["ls"][$_L]["port"] );
    }
    foreach ( $gsList as $_S ) {
	    $tpl->LoadView( "server" );
	    $tpl->Block( 'main', false );
	    $tpl->Block( 'item' );
	    $GS = $controller->GetStatus( $l2cfg["gs"][$_S]["host"], $l2cfg["gs"][$_S]["port"] );
	    $db->gdb( $_S );
	    $Offline = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `character_variables` WHERE `name`='offline'"), 0 );
if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
					 $Offline = intval( $Offline * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) );
			 }
$Offline2 = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `character_variables` WHERE `name`='offline'"), 0 );
if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
					 $Offline2 = intval( $Offline2 );
			 }
			 $Online = $gdb[$_S]->result( $gdb[$_S]->query("SELECT count(0) FROM `characters` WHERE `online`>'0'"), 0 );
			 if ( $l2cfg["gs"][$_S]["fake"]["enable"] ) {
					 $Online = intval( $Online * (1 + $l2cfg["gs"][$_S]["fake"]["percent"] / 100) - $Offline + $Offline2 );
			 }
if ($Online < 0) $Online = $Offline2;
	    $slink = ( $l2cfg["mod_rewrite"] ) ? "/stat/s{$_S}":"/index.php?f=stat&sid={$_S}";
	    $tpl->Set( "nameLink", "<a href='".HTTP_HOME_URL."{$slink}'>{$l2cfg["gs"][$_S]["title"]}</a>" );
	    $tpl->Set( "name", "{$l2cfg["gs"][$_S]["title"]}" );
	    $tpl->Set( "online", $Online );
	    $tpl->Set( "login", $LS[$l2cfg["gs"][$_S]["ls"]] );
	    $tpl->Set( "game", $GS );
	    $tpl->Set( "chronicle", $l2cfg["gs"][$_S]["chronicle"] );
	    $tpl->Build( "server_item" );
	    $Total += $Online;
	    if ( $l2cfg["txt"]["enable"] and $l2cfg["txt"]["gs"] == $_S ) {
		    $fopen = fopen( ROOT_DIR.'online.txt', "w" );
		    if ( $fopen ) {
			    fwrite( $fopen, $Online );
			    fclose( $fopen );
		    }
	    }
    }
    $tpl->LoadView( "server" );
    $tpl->Block( 'main' );
    $tpl->Block( 'item', false );
    if ( isset($LS[0]) )
	    $tpl->Set( "login", $LS[0] );
    $tpl->Set( 'item', $tpl->GetResult("server_item", true) );
    if ( count($gsList) > 1 ) {
	    $tpl->Block( 'total' );
	    $tpl->Set( "total", $Total );
    } else
	    $tpl->Block( 'total', false );
    $tpl->Build( "server" );
    if ( $l2cfg["cache"]["enable"] and $l2cfg['cache']['sList'] ) {
	    $controller->SetCache( "mod_server", $tpl->GetResult("server"), $l2cfg['cache']['sList'] );
    }
   }
}
?>

 

остальное отображение в server.tpl настраивай

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Апну тему....!!! Помоги кто знает как вывести общую статистику онлайна в месте с офф-торгошами в одно ?? А то на сайте показывает тока тех кто в игре , а кто сидит на оффе нет. Пробовал поковырять вручную не дало результатов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Апну тему....!!! Помоги кто знает как вывести общую статистику онлайна в месте с офф-торгошами в одно ?? А то на сайте показывает тока тех кто в игре , а кто сидит на оффе нет. Пробовал поковырять вручную не дало результатов.

Нужно развиваться и учить пхп.

если нужно то за отдельную плату реализую все что нужно.

в плоть до вывода клан знаков как на птс обвязках.

icq 455578898

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...