Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Статус шарда, примеры скриптов
_kaa_
сообщение Sep 20 2005, 15:03
Сообщение #1


Level 9
Иконки Групп

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [PW]



В свое время Kristin@ переделала проверку статуса шарда с C# на php.
Как оказалось народ до сих пор ищет подобные скрипты, поэтому кину сюда вариант.

status.php
CODE

<?php
$address='udp://viking.r86.net';   #Адрес шарда
$port=5121;                        #и порт.
$refresh=120;                      # время обновления в секундах

###################################################
###################################################

$status = fsockopen($address,$port);
socket_set_timeout($status, 000010);
fwrite($status,"\x42\x4E\x58\x49\x00\x14");
$_data = fread($status, 5000);
if($_data)
{
  $_data = explode(ord("|"),substr($_data,10,2));
  $_data = unpack("C*", $_data[0]);
  $result['players']     = $_data[1];
  $result['players_max'] = $_data[2];
  $result['color']    = '#078F07';
}
else
{
  $result['players']     = 0;
  $result['players_max'] = 0;
  $result['color']    = '#FF2020';
}
fclose($status);

###################################################
echo "<meta http-equiv='REFRESH' content='$refresh'>";
echo '<body style="background: '.$result['color'].';margin: 0 0 0 0; padding 0 0 0 0;font-family: Arial;font-size: 12px;color:yellow">';
echo $address.":".$port."[";
echo $result['players'].'/'.$result['players_max']."]";

?>



Удобно расположить на рабочем столе, с помощью ActiveDesktop.

Пример работы тут

Сообщение отредактировал _kaa_ - Sep 22 2005, 10:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
baskan
сообщение Sep 20 2005, 15:10
Сообщение #2


Level 7
**

Класс: Бард
Характер: Lawful Good
Раса: Фея



:yes: За пример наш адресс взяли, хотя мы и искали :yes:
Вот вопросик у меня тут появился, как это мне впихнуть в блок PHPNuke :vava: , ибо там ведь html код нужен.

Сообщение отредактировал baskan - Sep 20 2005, 15:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
_kaa_
сообщение Sep 20 2005, 15:19
Сообщение #3


Level 9
Иконки Групп

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [PW]



QUOTE (baskan @ Sep 20 2005, 15:10)
:yes: За пример наш адресс взяли, хотя мы и искали :yes:
Вот вопросик у меня тут появился, как это мне впихнуть в блок PHPNuke :vava: , ибо там ведь html код нужен.

если оно называется _php_nuke, то php наверняка держит. бери скрипт и ищи куда прикрутить.

ps. учите матчасть. phpnuke поставили - имейте совесть, хотя бы книжку по php почитайте.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
helvene
сообщение Sep 20 2005, 16:17
Сообщение #4


Mystery
Иконки Групп

Класс: Маг
Характер: Lawful Evil
Раса: Тварь
NWN: Контент
Амен



Что я вижу:
QUOTE
udp://viking.r86.net:5121[0/0]


Все правильно?
Если да, то есть ли решения, наподобие этого, не требующие php?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
_kaa_
сообщение Sep 20 2005, 16:44
Сообщение #5


Level 9
Иконки Групп

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [PW]



В скрипте все описанно, если хотите можете реализовать подобное фактически на любом языке, который позволяет организовать tcpip подключение.
По сути это простое подсоединение по udp протоколу к нужному серверу, запись нескольких байт и чтение ответа. В ответе и содержится количество игроков.
Сам скрипт возращает ответ в визуальной форме, т.е. цветом бакграунда. Зеленый - работает, красный - висит. Цифры - так, заодно, раз уж прочитали их все равно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Sep 20 2005, 17:27
Сообщение #6


Level 9
Иконки Групп

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



*цензура покусала*

Такие вещи даже в слух говорить нельзя! :)

Сообщение отредактировал _kaa_ - Sep 20 2005, 19:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
RiPPeR
сообщение Sep 21 2005, 12:35
Сообщение #7


Level 5
Иконки Групп

Класс: Страж Тьмы
Характер: Chaotic Neutral
Раса: Дракон
NWN: Скриптинг [PW]



/Offtop
Халявный хостинг с доступом во внешний инет не найдете? А то на моем халявном такие вещи думаю не будут работать, а попробовать хочется.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
baskan
сообщение Sep 21 2005, 15:15
Сообщение #8


Level 7
**

Класс: Бард
Характер: Lawful Good
Раса: Фея



holm.ru
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
RiPPeR
сообщение Sep 21 2005, 18:17
Сообщение #9


Level 5
Иконки Групп

Класс: Страж Тьмы
Характер: Chaotic Neutral
Раса: Дракон
NWN: Скриптинг [PW]



Там нету вшених коннектов, уже нашел другой :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Sep 23 2005, 10:48
Сообщение #10


Level 6
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



http://nwvault.ign.com/View.php?view=other.Detail&id=322

тут вроде чо та похожее
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
alMuk
сообщение Dec 28 2005, 01:30
Сообщение #11


Level 2
*

Класс: Клерик
Характер: Lawful Evil
Раса: Человек



CODE
#include <iostream>
#include "winsock2.h"

void main()
{
using namespace std;

WSADATA wsaData;
SOCKET SendSocket;
sockaddr_in Addr;
int Port = 5122;
char Buff[1024] = {0x42, 0x4E, 0x58, 0x49, 0x00, 0x14};
int BufLen = 1024;
int AddrSize = sizeof(Addr);

WSAStartup(MAKEWORD(2,2), &wsaData);

SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

Addr.sin_family = AF_INET;
Addr.sin_port = htons(Port);
Addr.sin_addr.s_addr = inet_addr("81.176.64.171");

sendto(SendSocket,
 Buff,
 BufLen,
 0,
 (SOCKADDR *) &Addr,
 sizeof(Addr));

recvfrom(SendSocket,
 Buff,
 BufLen,
 0,
 (SOCKADDR *)&Addr,
 &AddrSize);

cout << "Server Address: " << "81.176.64.171:" << Port << endl;

cout << "Players: " << (short)Buff[10]<< endl;
cout << "Players Max: " << (short)Buff[11] << endl;
   
closesocket(SendSocket);

WSACleanup();
return;
}

Вот аналогичный код на с++ (by me :crazy: ), может кому-то будет интерестно, правда за пример взят другой шард :drag:

Сообщение отредактировал alMuk - Dec 28 2005, 01:43
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Jan 4 2006, 13:44
Сообщение #12


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



Вобщем усовершенстовал код Каа.
Пример тут: http://nwn-yugra.r86.net/
И тут у меня возник вопрос. Можно ли с помощью аналогичных запросов ввести отображение персонажей на сервере? Я понимаю что классы\рассы\и тд это надо MySQL, а вот вывод типа акк | имя чара я считаю вполне реальным. Поправте меня если я неправ.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Balgarat
сообщение Jan 4 2006, 14:25
Сообщение #13


Level 6
**

Класс: Обыватель
Характер: True Neutral
Раса: Человек



возможно т.к. такое было на экзисе...

Сообщение отредактировал Balgarat - Jan 4 2006, 14:33
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Jan 4 2006, 14:27
Сообщение #14


Level 6
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



помойму(!) пакет о акках к клиенту не приходит(или я не заметил), а приходит только о чарах...но мне сделать не удалось(вернее влом было :crazy: и потом подумал, что идея бредовая)
http://nwcustom.jino-net.ru/nwn_servers.php
больше помойму и не надо (основываясь на буржуйском скрипте) ...
Balgarat где ты это там увидел без БД о.О

З.Ы. я выше давал ссылку, там ф-ция реализована ParsePlayerList, только помойму не пашет

Сообщение отредактировал [MoF]Darth_Nick - Jan 4 2006, 14:55
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Jan 4 2006, 14:59
Сообщение #15


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



Да убогий этот буржуйский скрипт. Слишком много лажи. Я конечно не говорю что у меня супер пупер скрипт, но тем не менее статус и кол-во игроков отображено. А большего в принципе и не надо пока что.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Feb 24 2006, 03:46
Сообщение #16


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Тоже пример отображения статуса сервера. Шард Амен.

Кстати, в чем убогость того скрипта, информацию, какую нужно для быстрого ознакомления, он отображает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Feb 24 2006, 06:06
Сообщение #17


Level 6
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



много лишнего..
у тебя, по ссылке, первая строка - Array..массив в виде строки

mysql дает намного больше возможности..( ну думаю, это вы и без меня знаете (IMG:style_emoticons/kolobok_light/smile.gif) )

Сообщение отредактировал [MoF]Darth_Nick - Feb 24 2006, 06:07
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Feb 24 2006, 13:24
Сообщение #18


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



[MoF]Darth_Nick, может и лишнее, только ведь это не напрягает (IMG:style_emoticons/kolobok_light/smile.gif) Про массив знаю, все забываю убрать.

Кстати, если уж использовать программу мониторинг, то для этого дела очень хорошо подходит программа Hlsw. Конечно, она не отображает имена и тип пользователя на сервере, ибо эту опцию отключили, но всю остальную информацию выводит отлично.

Сообщение отредактировал Zirrex - Feb 24 2006, 14:08
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение Apr 1 2006, 21:20
Сообщение #19


Level 8
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Дракон
NWN: Скриптинг [PW]



Касаемо списка игроков, я видел вариант через базу данных.
А вообще, там надо просто пакеты отсылать аля клиент. Вон 2_advanced думаю вполне может описать процедуру логинья на сервере и запроса списка игроков (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Apr 1 2006, 21:28
Сообщение #20


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



2_адвансед блестни)
То что каким то макаром шауты НД видны на Кормире меня уже немного настораживает)))
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Apr 2 2006, 05:05
Сообщение #21


Level 9
Иконки Групп

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



списки все - через самопальный ЕЛК (проверялку чаров/акков)
через неделю покажу рабочий сабж

зы. а легче вобще сделать скриптами + NWNX и всю инфу пихать в БД
в 1.67 даже есть функция для получения портрета
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Apr 2 2006, 09:02
Сообщение #22


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



Ну это все конечно хорошо. Только вот я несмог настроить на рабочий лад nwnx на FreeBSD. Может кто помочь с этим?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Apr 2 2006, 11:22
Сообщение #23


Level 6
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



в 1.66 можно плюгин юзать, чтобы портрет получить... готовый где-то видел

Сообщение отредактировал [MoF]Darth_Nick - Apr 2 2006, 12:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Apr 2 2006, 16:34
Сообщение #24


Level 9
Иконки Групп

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



у меня бетка 1.67.. под нее уже все переделал
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16th April 2024 - 20:59