|
Как Сделаь На Сайте Статус, сайт.... |
|
|
Volonter |
25.6.2007, 21:16
|

   
Группа: Пользователи Наличность: 0 Из: Ставрополя
Пользователь №: 8.096
Возраст: 19

|
Цитата(Soteric @ 25.6.2007, 21:15)  WebStatus.cs тупо создает файл с расширением html и набирает в нем текст. Если ты не знаком с html хотя бы на детском уровне, то вряд ли удастся получить нужный результат. Ну и вопрос этот уже скорее относится не к Ранке, а к сайтостроению. Сервер дал тебе нужную информацию в html файле, обработка и способы ее представления на сайте уже не относятся к этому разделу, да и наверное форуму в целом. Если кто-то здесь поможет с этим вопросом, будет хорошим дополнением к FAQ (IMG: style_emoticons/default/smile.gif) ну нескажи...мой сервер статус показывает многое,а именно(колво гильдий,колво аков,колво мобайлов,колво плееров всего,статус сервера,время его работы в целом,топ пк,топ ветеранов(хотя многое еще находится в разработке))......и все сделано именно в файле WebStatus.cs...
--------------------
Nord-Kavkaz лучший мир,лучшим игрокам
|
|
|
|
Barracoon |
26.6.2007, 18:21
|

      
Adept
Сообщений: 1.169
Регистрация: 21.1.2006 Группа: Пользователи Наличность: 0 Из: Vladivostok
Пользователь №: 4.839

|
Цитата(Soteric @ 26.6.2007, 5:32)  Я не спорю с тем, что WebStatus может многое показывать. Чего задашь, то и покажет. Объясни лучше человеку что почем, а то говорить как все клево и как отлично работает может любой. Хм... Всмысле как оно работает? (IMG: style_emoticons/default/smile.gif) Если брать в рассчет именно WebStatus, то сушествует своиство Server.Network.NetState.Instances, возврашаюшее список текуших NetState'ов(по простому - обьектов, каждый из которых обрабатывает запросы подключеных клиентов, и содержит большую часть информации о них). У каждого NetState'а есть своиство Mobile, указываюше на персонажа которым человек в данный момент играет, и содержашего всю информацию о нем(о персонаже). Так вот, зная все это, достаточно просто-напросто перебрать все подключеные NetState, собрать с них нужную информацию, попутно выводя её куда либо. В WebStatus'е этим "куда либо" является StreamWriter пишуший все в html-файл, однако "выводить" можно куда-угодно - в файл(оставляя его "как есть", либо например "закидывая" его через FTP на удаленный хостинг), в базу данных(локальную, или находяшуюся "где-то там, на просторах интернета"), или даже напрямую выдавая клиенту(например через специальную самописную программку позволяюшую игроку сразу-же узнать статус сервера). Все зависит только от фантазии разработчика... Например если есть отдельно хостинг(с поддержкой какой-либо серверной технологии, позволяюшей динамически формировать содержимое, например с PHP) и сервер, и надо сделать статус указываюший различные параметры игроков, плюс статус самого сервера(онлайн/офлайн), то часто делается так: на сервере создается "обработчик запросов на получение статуса", ну а на хостинге уже если прошло n-минут с предыдушего запроса, то запрашивается свежий статус(например используя сокеты в PHP), и если удачно(должно быть оптимальное время на таймаут, и если оно прошло - делаем вывод что сервер "умер") - кешируем информацию и выдаем клиенту, если же время не прошло - выдаем клиенту кешированый статус(все эти манипуляции с кешем необходимы чтобы неособо грузить сервер/хостинг, и практически моментально выдавать информацию клиенту)
|
|
|
|
Cold |
12.7.2007, 10:56
|

  
Novice
Сообщений: 88
Регистрация: 21.3.2006 Группа: Пользователи Наличность: 0
Пользователь №: 5.508

|
По поводу WebStatus.cs. В нем есть строка ~ 36-я. Код using ( StreamWriter op = new StreamWriter( "E:/Cold_Site/localhost/www/Ultima/status.html" ) )
Так вот, она указывает путь к сохранению файла со статусом сервера. Пишу потому, что, допустим, Apache не видит страницы за пределами корня. Так во всяком случае у меня. Т.е. если у вас Апач в E://Apache/, а статус в E://RunUO2.0/Web, то вы не сможете пройти по ссылке на него. Следовательно, лучше просто скинуть статус в папку с апачем.
--------------------
Take me to the Breathe and BE...
|
|
|
|
Cold |
13.2.2008, 23:35
|

  
Novice
Сообщений: 88
Регистрация: 21.3.2006 Группа: Пользователи Наличность: 0
Пользователь №: 5.508

|
А можно вообще как-нибудь просмотреть содержимое Mobile ? А то я пробую вывести значение уровня и опыта, а мне выдаются ошибки. Если писать m_Level и m_Exp, то ошибка вот такая: Код Scripts: Compiling C# scripts...failed (1 errors, 0 warnings) Errors: + Misc/WebStatus.cs: CS0103: Line 103: The name 'm_Exp' does not exist in the current context CS0103: Line 105: The name 'm_Level' does not exist in the current context а если писать m.Level и m.Exp, то вот что: Код Errors: + Misc/WebStatus.cs: CS0117: Line 104: 'Server.Mobile' does not contain a definition for 'Exp' CS0117: Line 106: 'Server.Mobile' does not contain a definition for 'Level' Попробовал сделать аналогию на гильдию: Код op.Write( m.Map ); op.Write( ")</strong></font></td><td><font color=\"#B00000\"><strong>" ); if ( m != null ) { Exp ex = m.Exp as Exp; op.Write( m.Exp ); } else { op.Write ( "" ); } op.Write( "</strong></font></td><td><font color=\"#B00000\"><strong>" ); if ( m != null ) { Level l = m.Level as Level; op.Write( l.Level ); } else { op.Write( "" ); } op.Write( "</strong></font></td><td><font color=\"#B00000\"><strong>" );
Ну, и соответсвенно, ошибка: Код Errors: + Misc/WebStatus.cs: CS0246: Line 105: The type or namespace name 'Exp' could not be found (are y ou missing a using directive or an assembly reference?) CS0117: Line 105: 'Server.Mobile' does not contain a definition for 'Exp' CS0246: Line 105: The type or namespace name 'Exp' could not be found (are y ou missing a using directive or an assembly reference?) CS0117: Line 106: 'Server.Mobile' does not contain a definition for 'Exp' CS0246: Line 115: The type or namespace name 'Level' could not be found (are you missing a using directive or an assembly reference?) CS0117: Line 115: 'Server.Mobile' does not contain a definition for 'Level' CS0246: Line 115: The type or namespace name 'Level' could not be found (are you missing a using directive or an assembly reference?) Может кто объяснит почему такие ошибки и что я делаю не так ? Вдруг, я близок к истине.
--------------------
Take me to the Breathe and BE...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|