Подскажи, с чего начать разработку OOG программы для PW
В общем так, знаю относительно хорошо Deliphi и С++, недавно разобрался с потоками, теперь решил познакомиться с азами работы с сетью. Пишу в билдере ХЕ2. Так вот, я не совсем понимаю, с чего конкретно начать. Пересмотрел все темы жука и пвлабы, самых самых азов так и не нашел. С чего начать изучение работы с сокетами(что это и с чем едят?), желательно на понятном языке без воды и сложных терминов, с примерами кода. Также не понятно, по какому протоколу происходит связь клиента pw с сервером(вроде tcp, но не уверен), что такое оффсеты(суть ясна, что адресы каких-то значений), как замутить авторизацию OOG(желательно пример кода на C++ Builder, с указанием нужных библиотек и т.д.). Буду очень благодарен всем, кто поможет.
P.S. Нужны самые азы работы с сетью в С++ и как связать это с PW(отправка запросов на сервер, офф сеты, пакеты, какие библиотеки юзать и прочее).
Re: Подскажи, с чего начать разработку OOG программы для PW
Goooooogle, зайти на персонажа - самая главная часть оог разработки
Я не думаю, что с этого можно начать
________________ Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115
[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот [Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
Последний раз редактировалось FreePVP))); 27.09.2012 в 16:48.
Re: Подскажи, с чего начать разработку OOG программы для PW
Для работы с серверами PW в билдере советую использовать компонент TClientSocket. Стандартно он не включён.
Чтобы его включить нужно выбрать меню Install Packages...
Затем клавишу Add и выбери файл %INSTALLDIR%\Embarcadero\RAD Studio\9.0\bin\dclsockets.bpl
ОК. После этого на палитре компонентов во вкладке Internet появятся 2 компонента: TClientSocket, TServerSocket.
Нам для связи нужен TClientSocket. Кидаем его на форму и дальше ничего сложного.
Приведу пример связи с сервером в событии onCreate (компонент уже кинут на форму):
C++:
Код:
//Процедура вызывается когда мы соединились с сервером.
void __fastcall TTestForm::ClientSocket1Connect(TObject *Sender, TCustomWinSocket *Socket)
{
MessageBox(0,L"Соединились",0,0);
}
//Процедура вызывается когда сервер отправил нам пакет.
void __fastcall TTestForm::ClientSocket1SocketRead(TObject *Sender, TCustomWinSocket *Socket)
{
int l = Socket->ReceiveLength(); //получаем длину пришедших данных
Byte *Buffer = new Byte[l];
Socket->ReceiveBuf(Buffer,l); //Заполняем наш буфер пришедшими данными
//Обрабатываем пришедшие данные
//
//
delete [] Buffer;
}
void __fastcall TTestForm::FormCreate(TObject *Sender)
{
ClientSocket1->Host = "link1.pwonline.ru"; (Сервер Орион)
ClientSocket1->Port = 29000;
ClientSocket1->Open();
}
Delphi:
Код:
procedure TTestForm.ClientSocket1Connect(Sender: TObject, Socket: TCustomWinSocket)
begin
MessageBox(0,"Соединились",0,0);
end;
procedure TTestForm.ClientSocket1SocketRead(Sender: TObject, Socket: TCustomWinSocket)
var
len: Integer;
Bytes: TBytes;
begin
l:= Socket.ReceiveLength; //получаем длину пришедших данных
SetLength(Bytes,l);
Socket.ReceiveBuf(Buffer,l); //Заполняем наш буфер пришедшими данными
//Обрабатываем пришедшие данные
//
SetLength(Bytes,0);
end;
procedure TTestForm.FormCreate(Sender: TObject)
begin
ClientSocket1.Host:= 'link1.pwonline.ru'; (Сервер Орион)
ClientSocket1.Port:= 29000;
ClientSocket1.Open;
end;
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось nitrotek; 27.09.2012 в 10:30.