Как работает бэкэнд SAMP?

Тема в разделе "Другое", создана пользователем monobogdan, 4 янв 2017.

  1. monobogdan

    monobogdan Известный пользователь

    Регистрация:
    26.12.16
    Сообщения:
    66
    Лайки:
    1
    Репутация:
    1
    Давно интересно как же работает бэкэнд сампа как на клиентке так и на сервере.
    Представим машины, тут все вполне логично:
    На сервере есть массив машин примерно такого вида:
    Код (Text):
    struct CVehicle {
      int ID;
      int X;
      int Y;
      int Z;
      int Rot;
      int XVel;
      int YVel;
      int ZVel;
      bool IsOccupied;
      int OccupantID;
    }

    CVehicle vehicles[MAX_VEHICLES];
    На клиенте эти машины расставляются по своим координатам и в них сажаются игроки(если есть).
    С синхронизацией тоже более менее понятно, каждый тик с сервера приходит пакет передающий структуру CVehicle, клиент ставит машину и "разгоняет" её по вектору ускорения.
    А что насчет игроков? Больше всего интересует как работает аим и синхронизация анимаций.
    Неужели состояние каждого кейфрейма анимации передается на сервер а сервер отправляет остальным клиентам пакет с инфой задать тому то педу игрока анимацию с определенным фреймом?
     
    #1
  2. NarutoUA

    NarutoUA Хокаге
    BH Team

    Регистрация:
    26.05.13
    Сообщения:
    542
    Лайки:
    579
    Репутация:
    275
  3. monobogdan

    monobogdan Известный пользователь

    Регистрация:
    26.12.16
    Сообщения:
    66
    Лайки:
    1
    Репутация:
    1
    Да причем тут amx, мне интересен именно бэкэнд, внутренняя реализация, как синхронизируется анимация у всех клиентов.
     
    #3
  4. NarutoUA

    NarutoUA Хокаге
    BH Team

    Регистрация:
    26.05.13
    Сообщения:
    542
    Лайки:
    579
    Репутация:
    275
    Что не ясно? Сервер отправляет всем (в зоне стрима) инфу об игроке
     
    #4
  5. FYP

    FYP админ какой-то

    Регистрация:
    09.03.13
    Сообщения:
    851
    Лайки:
    1.699
    Репутация:
    682
    в сампе с синхронизацией всё достаточно примитивно. можешь найти слитые исходники сампа и поизучать их.
     
    #5
  6. monobogdan

    monobogdan Известный пользователь

    Регистрация:
    26.12.16
    Сообщения:
    66
    Лайки:
    1
    Репутация:
    1
    И ничего с того момента не изменилось?
    Самп ведь заброшен уже(последний релиз 1 мая 2015, почти 2 года назад(эх было времечко!)).
    А что насчет playerped?
    Это получается что у клиента он видится как CJ, т.е игрок, так?
    Но у этого клиента все остальные игроки это обычные педы, верно?
    Я имею ввиду возьмем к примеру тебя, фип, ты видишь "CJ", и управляешь им, а других игроков ты видишь как обычные модельки с анимацией, а они наоборот, верно?
    т.е они к createplayer никак не относятся?
     
    #6