Здраствуйте! Рад представить свою beta-разработку - PW OOG Framework. Делать её я начал давно, но быстро забросил. Теперь же я снова вспомнил про неё и решил довести до конца. И снова забросил Я, конечно, знаю, что у некоторых людей есть библиотеки лучше, но они приватные.
Хотел бы упомянуть людей, без которых библиотеки вообще бы не было:
*FreePvp)) - Всё началось с его статьи про протокол с прикреплённым файлом пакетов
*TBX1n - Без его сниффера тоже ничего бы не было.
Моя библиотека - объединение всего, что есть на форуме, объединение работы этих людей, ничего своего в ней нет.
Платформа - Net FrameWork(старая 4.0, новая - 4.5)
Исходники старой: [Ссылки могут видеть только зарегистрированные пользователи. ]
Старая (если она кому-то нужна) PW OOG FrameWork.zip
Новая (исходники ядра, которые вам надо перетащить в проект и скомпилировать) PWOOGFW.zip
Последний раз редактировалось Ilyialat; 29.08.2014 в 12:47.
Всё продумано, возле каждого Wait есть параметр time = 10s, скачали бы сначала. Я написал, что есть эвенты LoginCompleted, Есть свойства IsloginCompleted. Кому-то удобно работать синхронно, кому-то - асинхронно. Насчёт Wait, там каждые 100мс проверяется значение параметра
Код:
public bool WaitLoginResult(int time = 10)
{
if (IsLoginCompleted)
return true;
for (int i = 0; i < time * 10; i++)
{
System.Threading.Thread.Sleep(100);
if (IsLoginCompleted)
return true;
}
return false;
}
Думаю, что вас это устроит.
Геодата - гео дата - геологическая информация. Файл с описанием точек граней, я точно не знаю, как оно реализовано.
System.Threading.Thread.Sleep(9999...);
Есть вас это не устраивает, то напишите
private PWClient pw;
private void button1_Click(...)
{
pw = new PWClient(.....);
}
Думаю, что теперь вы поняли.
Последний раз редактировалось Ilyialat; 25.09.2013 в 16:41.
Извините, я торопился, бегло прочитал и не так понял то, что вам надо.
Так и быть, я напишу ещё раз... Нет, не напишу, скопирую комментарий к функции:
/// <summary>
/// Ожидает результата авторизации
/// </summary>
/// <param name="time">Время ожидания в секундах</param>
/// <returns>Получен ли результат</returns>
Вам не нравится синхронный стиль программирования? Пожалуйста!
/// <summary>
/// Событие, вызызаемое при получении ответа о результате авторизации
/// </summary>
public event Action<bool> LoginCompleted;
Или вам нужен пример работы с ивентами?
Хорошо,
LoginCompleted += (bool result) => MessageBox.Show(string.Format("Логин {0} удался", (result ? "" : "не")));
Пожалуйста, пишите по существу. Сначала скачайте библиотеку, убедитесь, что там нету того-то, а потом пишите про это.
Я перечитал ваш предыдущий комментарий, и только разочаровался.
while (!inv.WaitObtaining()); //Пока мы её не получим (период ожидания - 10с)
Каждый раз поток вешается в паузу, и в конце вообще уходит в страшный сон.
Вы не знаете конструкции do - while? Или вы просто не умеете читать комментарии?
Поясняю, зачем это надо. Иногда сервер не возвращает информации о персонаже (inv.GetInventory()), поэтому нужно ещё раз отправить запрос. Или возвращает, но слишком поздно, поэтому ещё раз послать запрос не помешает. Если сервер мнгновенно пришлёт информацию - клиент прервёт inv.WaitObtaining().
Я так понял, что вы ещё и не знаете о сборщике мусора в .Net, прочтите, пожалуйста:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось Ilyialat; 25.09.2013 в 19:52.
Иногда сервер не возвращает информации о персонаже (inv.GetInventory()), поэтому нужно ещё раз отправить запрос. Или возвращает, но слишком поздно, поэтому ещё раз послать запрос не помешает.
Вот оно: современное извращение!
Цитата:
Сообщение от Ilyialat
Я так понял, что вы ещё и не знаете о сборщике мусора в .Net, прочтите, пожалуйста:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Откуда же вы познали сие, что я не знаю этого? Желательно процитируйте. Любой другой ответ помимо цитаты будет выражен полным игнором ко всем вашим постам.
UPD: Какой злой чувак — сразу побежал минусить пост...
Последний раз редактировалось Desmond Hume; 26.09.2013 в 22:19.
Я сам попрошу вас, игнорьте, пожалуйста, мои посты, и не пишите для них своих комментариев. Я писал свою библиотеку для людей другого типа. Вы под него не подходите.
Последний раз редактировалось Ilyialat; 25.09.2013 в 20:37.
Иногда сервер не возвращает информации о персонаже (inv.GetInventory()), поэтому нужно ещё раз отправить запрос. Или возвращает, но слишком поздно, поэтому ещё раз послать запрос не помешает.
Вот оно: современное извращение!
+1 . Если судить такой логики, вы должны все пакеты так отправлять/получать. Почему именно инвентарь вам так понравился? Обычный пакет, и приходит причём с первого запроса.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Не всегда. Мне тоже пришлось извращаться, когда ты просишь инвентарь - а он не приходит.
Всегда. По такой логике я боюсь представить реализацию пакетов движения.
А то это похоже на нашлепку на рваной шмотке, которая в любой момент может оторваться, оголив всему взору неопрятный зад.
Последний раз редактировалось Desmond Hume; 10.07.2014 в 17:36.
Ребят, а вот бы кто-нибудь смог выложить вариант примера использования библиотеки на Delphi, прям цены бы ему не было. (1С весь мозг сожрал, а так хочется фичу одну себе на делфях накатать)
Ребят, а вот бы кто-нибудь смог выложить вариант примера использования библиотеки на Delphi, прям цены бы ему не было. (1С весь мозг сожрал, а так хочется фичу одну себе на делфях накатать)
Это невозможно, эта и другая библиотека предназначена для dotNet. Библиотеки OOG для PW на Delphi пишутся авторами и бережно хранятся у них самих.
В паблик OOG библиотеках функционала, как такового, нету.