GRIN4 24 Опубликовано 7 марта, 2014 (изменено) Алоха всем форумчанам. Сегодня напишу вам, как же все таки отделить оффтрейдовых и онлайновых пользователей. Делается под 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 (хоть и накрученного) то будет минусовой онлайн. поэтому при нуле будет писать реальный онлайн оффтрейда. Вот и готово. Всем спасибо за уделенное, этому моему бреду, время. У кого есть альтернативные решения, то выкладывайте. Готовый server.php (Показать контент) <?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'] ); } } } ?> Изменено 10 апреля, 2014 пользователем GRIN4 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Preature 1 Опубликовано 28 марта, 2014 что-то у меня этот способ вышибает стресс Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GRIN4 24 Опубликовано 29 марта, 2014 Поконкретнее? Я не ВАНГА Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Preature 1 Опубликовано 30 марта, 2014 просто белый экран, как буд-то сайта и вовсе нет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GRIN4 24 Опубликовано 31 марта, 2014 это косяки у твоего хостинга. Я помню у меня на промке такая лажа была. сейчас более менее. И смотри, заменяй код правильно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Preature 1 Опубликовано 31 марта, 2014 Заменял код согласно написанному, ну манипулируя с этим же кодом, хостинг проблем не выдавал, и как только вписываю твой почему то "белеет" хотя очень хорошая и идея и реализация, но вот как-то не хочет переваривать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GRIN4 24 Опубликовано 1 апреля, 2014 Исходный код глянь там должно быть пустая голова и тело. Если так. ТО я уже и не помню что делал в таких случаях) но проблема у хостера Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Preature 1 Опубликовано 2 апреля, 2014 (изменено) Да походу хостинг, вообще как буд-то страницы нет $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) ); } удалил эту часть кода, все заработало Изменено 2 апреля, 2014 пользователем Preature Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GRIN4 24 Опубликовано 2 апреля, 2014 тогда у тебя будет вывод онлайна(оффтрейд+живые) и еще плюс ненакрученный оффтрейд Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Preature 1 Опубликовано 2 апреля, 2014 я понимаю, но с той частью кода, сайт перестает работать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
shadowcat 10 Опубликовано 3 апреля, 2014 Проверь все знаки есть ли на месте. У меня работать перестал сначала потом заметил что "}" не хватало. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GRIN4 24 Опубликовано 4 апреля, 2014 ой косячек Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Preature 1 Опубликовано 4 апреля, 2014 походу слеп, не вижу где не хватает Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Preature 1 Опубликовано 8 апреля, 2014 up Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GRIN4 24 Опубликовано 8 апреля, 2014 Все делай как я написал. Только ..... $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) ); } вот это удали))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Preature 1 Опубликовано 9 апреля, 2014 хм походу я рак , вообще не выводи теперь цифры, можешь готовый код прислать?)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GRIN4 24 Опубликовано 10 апреля, 2014 <?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 настраивай 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SvK 3 Опубликовано 10 ноября, 2014 Апну тему....!!! Помоги кто знает как вывести общую статистику онлайна в месте с офф-торгошами в одно ?? А то на сайте показывает тока тех кто в игре , а кто сидит на оффе нет. Пробовал поковырять вручную не дало результатов. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ncsSpawN 45 Опубликовано 10 ноября, 2014 В 10.11.2014 в 20:28, SvK сказал: Апну тему....!!! Помоги кто знает как вывести общую статистику онлайна в месте с офф-торгошами в одно ?? А то на сайте показывает тока тех кто в игре , а кто сидит на оффе нет. Пробовал поковырять вручную не дало результатов. Нужно развиваться и учить пхп. если нужно то за отдельную плату реализую все что нужно. в плоть до вывода клан знаков как на птс обвязках. icq 455578898 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты