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 (хоть и накрученного) то будет минусовой онлайн. поэтому при нуле будет писать реальный онлайн оффтрейда. Вот и готово. Всем спасибо за уделенное, этому моему бреду, время. У кого есть альтернативные решения, то выкладывайте. <?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 Апну тему....!!! Помоги кто знает как вывести общую статистику онлайна в месте с офф-торгошами в одно ?? А то на сайте показывает тока тех кто в игре , а кто сидит на оффе нет. Пробовал поковырять вручную не дало результатов. Нужно развиваться и учить пхп. если нужно то за отдельную плату реализую все что нужно. в плоть до вывода клан знаков как на птс обвязках. icq 455578898 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты