08:07
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
        
[Include] RemoveBuilding (2)
JasonGordon 24.05.2017 23:48
[SA-MP] Hosted Tab (116)
DieSeL 17.05.2017 17:33
Физрук (15)
Lanablogger1 16.05.2017 16:00
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 11
Модератор форума: Dima-kun 
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Пишем свой мультиплеер для игр серии GTA. Часть первая.
Пишем свой мультиплеер для игр серии GTA. Часть первая.
adamixДата: Пятница, 27.05.2011, 08:32 | Сообщение # 1
Постоялец
Группа: Продвинутые
Сообщений: 376
Награды: 14
Город: Ульяновск
Репутация: 866
Замечания: 0%
Статус:
Я долго думал прежде чем начать писать подобное руководство. Начать я решил с азов мультиплееро-строения. В первой статье я расскажу о том как пишут мультиплееры и что для этого нужно.

Что нам понадобится:

  • Знания С++ на уровне выше новичка.
  • Знание ассемблера.
  • Умение работать с декомпилятором.
  • Умение разбирать чужой код.
  • Начальные навыки работы со структурой игр серии GTA.
  • Microsoft Visual Studio 9.0.
  • DXSDK.


Как работают мультиплееры
Мы инжектим в память игры свой процесс. Обычно - это просто DLL с нужным нам кодом.
Для отображения чата мы используем DirectX Hook. Это необходимо для управления рендером.
Так как в GTA 3/VC/SA возможно создать всего одного игрока, для переключения между остальными мы используем Context Switching(его придумал kyeman, кстати).
Для GTA 3/VC/SA мы используем Script Executor. Это несколько небольших функций, которые позволяют использовать опкоды SCM из С++ кода. Это нужно для быстрого создания простеньких функций. В идеале все должно быть написано с мемхаком.
Получать информацию из процесса мы будем мемхаком(а можно как то по другому?).

Как работает синхронизация
Допустим, у нас есть игроки А и Б. Игрок А передвинулся на 2 метра вперед. В то время как он начал движение(зажал кнопку) - мы получаем информацию о нажатых кнопках, текущей позиции и ускорения. Мы передаем их на сервер. Сервер же, рассылает эти данные остальным игрокам. В итоге мы видим что игрок А начал движение у игрока Б. Транспорт: здесь все немного по другому. У транспорта есть так называемый Синхронизатор. Это водитель транспорта. Впрочем, все остальное точно так же как и с обычным игроком. Водитель передает данные на сервер, а сервер рассылает их клиентам.
Синхронизация транспорта без водителей работает так же, только разница лишь в том, что синхронизатором выступает обычно случайный игрок который находится рядом с транспортом.
Когда мы синхронизируем оружие, мы должны получить векторы камеры и передать их остальным игрокам.

Как работает встроенный стример
У RenderWare довольно таки жесткие лимиты. Но в данном случае стример работает точно так же, как и заскриптованные стримеры в павне. Правда не на уровне сервера, а на уровне клиента.

Как у нас будет работать сеть
Я не буду оригинальничать и буду использовать RakNet в данных статьях, так как он дает хороший функционал при этом оставаясь простым.
Для всех функций мы будем использовать RPC4.
Для всех данных(игроки, транспорт, акторы, чекпоинты, прочее) мы будем использовать менеджеры. В коде это может выглядеть так:
Code
g_pVehicleManager->Add(174, CVector3(10.0f, 10.0f, 10.0f));

В итоге в этот менеджер мы добавим новый транспорт с идом модели 174 и нужными координатами спавна.

А будет ли скриптинг?
Пока для меня это сложный вопрос. Изначально я не собирался в данных статьях рассказывать о скриптинге. Но может быть я еще передумаю.

Пока всё. Задавайте свои вопросы, я постараюсь на них ответить.



Тысячи игроков SA-MP, как миллионы мух, конечно же не могут ошибаться.

Законы математики, имеющие какое-либо отношение к реальному миру, ненадежны; а надежные математические законы не имеют отношения к реальному миру. © Альберт Эйнштейн.
InterpolДата: Пятница, 27.05.2011, 08:56 | Сообщение # 2
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 5358
Награды: 77
Город: НеБаку
Репутация: 3795
Замечания: 20%
Статус:
adamix, отлично, может теперь будут мп для модификаций са)


adamixДата: Пятница, 27.05.2011, 09:02 | Сообщение # 3
Постоялец
Группа: Продвинутые
Сообщений: 376
Награды: 14
Город: Ульяновск
Репутация: 866
Замечания: 0%
Статус:
Quote (Interpol)
отлично, может теперь будут мп для модификаций са)

Я уверен, что 95% форума даже не поймут о чем я написал.



Тысячи игроков SA-MP, как миллионы мух, конечно же не могут ошибаться.

Законы математики, имеющие какое-либо отношение к реальному миру, ненадежны; а надежные математические законы не имеют отношения к реальному миру. © Альберт Эйнштейн.
PaNyAДата: Пятница, 27.05.2011, 09:35 | Сообщение # 4
Группа: I'm V.I.P.
Сообщений: 273
Награды: 11
Город: SPB,Волхов
Репутация: 230
Замечания: 100%
Статус:
Отличная статья,спасибо





Valkyrie Roleplay v.3.2 63% readiness.In it of 62.500 lines.Working out is suspended for uncertain time.
P.S. Если помог,не скупись дай + ;)

Мои работы:
[FS] Простой спидометр

uDenXДата: Пятница, 27.05.2011, 10:32 | Сообщение # 5
Группа: Media-ProGroup
Сообщений: 1193
Награды: 23
Город: Салават
Репутация: 1301
Замечания: 0%
Статус:
Очень интересно жду новых статей new_russian


s3apДата: Пятница, 27.05.2011, 11:40 | Сообщение # 6
Местный
Группа: Продвинутые
Сообщений: 570
Награды: 7
Город: Саратов
Репутация: 382
Замечания: 80%
Статус:
Quote (Ghost-X)
У RenderWare довольно таки жесткие лимиты. Но в данном случае стример работает точно так же, как и заскриптованные стримеры в павне. Правда не на уровне сервера, а на уровне клиента.

Они были переделаны с исходников са-мпа же

VantageДата: Суббота, 28.05.2011, 20:02 | Сообщение # 7
Уважаемый человек
Группа: Пользователи
Сообщений: 975
Награды: 8
Город: -=Los Santos The Best=-
Репутация: 467
Замечания: 80%
Статус:
Конечно не все возьмутся писать свои мп да этого и не нужно наверное) но почитать как все это работает интересно, спасибо


..



Мои работы:
[GM]Ls:Rus TDM v1.0 | [GM]Ls:Rus TDM v1.2 | [GM]Ls:Rus TDM v1.3(1%)[blink]|[/blink]
[FS]Rampa

Winner_Дата: Воскресенье, 12.08.2012, 16:23 | Сообщение # 8
Новенький
Группа: Пользователи
Сообщений: 2
Награды: 0
Город: Сергиев Посад
Репутация: 0
Замечания: 0%
Статус:
Вместо RakNet можно спокойно использовать WinSock / WinSock2


Developer
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Пишем свой мультиплеер для игр серии GTA. Часть первая.
Страница 1 из 11
Поиск:





 

http://kinovesti.ru/

 


 
Хостинг от uCoz SAMP-RUS.COM