San Andreas Multiplayer

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
San Andreas Multiplayer
Samp logo.jpg
Тип модифікація
Розробник The SA-MP team
Перший випуск 0.1 (9 травня 2006; 4157 днів тому)
Стабільний випуск 0.3.7 (1 травня 2015; 878 днів тому[1] )
Платформа багатоплатформність
Операційна система Windows
Linux (тільки ігровий сервер)
Написано на Delphi
Розмір 70 МБ
Доступні мови англійська
Українська ні
Стан розробки активний
Ліцензія вільна[2]
sa-mp.com

San Andreas Multiplayer (скорочено SAMP) — безкоштовна багатокористувацька модифікація для відеогри Grand Theft Auto: San Andreas у версії для Windows з закритим вихідним кодом. Розробляється командою The SA-MP team та компанією Rockstar на добровільній основі, провідними програмістами проекту є три особи з нікнеймами Kye, Kalcor, і spookie.

Історія[ред.ред. код]

За основу модифікації було використано аналогічну модифікацію попередньої гри серії, Grand Theft Auto: Vice City під назвою Vice City Multiplayer, випущену у квітні 2005 року. Команда творців складалася з кількох осіб, відомих у спільноті модифікаторів Grand Theft Auto, на чолі з kyeman (наразі відомий як Kye) — значущою особою у спільноті модобудівничих GTA. Надаючи знімки екрана та відео, які демонстрували плин розробки (що відбувалася достатньо швидко), модифікація набула загального визнання серед GTA-спільноти та з невеликим форумом залучила близько 120 користувачів перед переїздом на новий хостинг.

Після ряду публічних бета-тестів, які набули величезної популярності (багатьом навіть доводилося чекати звільнення місць на бета-серверах), Vice City Multiplayer було нарешті випущено і майже відразу оновлено до версії 0.1d, до кінця вже маючи відкритий початковий код. Цей код було використано іншою командою розробників[4] для продовження розвитку VC-MP (цей проект досі розвивається і наразі має версію 0.4[5]), а команда kyeman'а розпочала розробку SA-MP. Крім того, теперішні розробники VC-MP роблять багатокористувацьку гру як для оригінальної гри Grand Theft Auto: Vice City, так і для модифікації, що переносить місто Ліберті-Сіті на рушій гри.

Розробка SA-MP привернула великий інтерес шанувальників ігор серії GTA. У квітні 2006 року розділу на форумі GTAForums.com стало недостатньо, і розробники вирішили відкрити власний форум. У кінці березня розробка вже була повноцінним мультиплеєром і, після деяких закритих бета-тестів, у квітні-травні було проведено три публічних бета-тести. За кілька годин після третього бета-тесту, 9 травня 2006 року kyeman заявив, що проект повністю готовий до випуску. Однак у релізі виявилося досить багато багів, і за кілька днів було випущено оновлення до версії 0.1b. Після цього користувачі продовжили вивчати мову програмування Pawn і створювати різноманітні ігрові режими, а самі розробники зникли на деякий час. Лише наприкінці червня в повідомленні на своєму блозі вони заявили, що розробка все ще триває, хоча в них дуже мало часу. Розробники продемонстрували кілька скріншотів можливості додавання об'єктів на карту. Ходили чутки, що незабаром вийде версія 0.1c, але до вересня нової інформації від розробників не надходило. Лише наприкінці вересня невелике оновлення блогу свідчило, що розробка триває, і було представлено невеликий список нововведень.

2 жовтня 2006 року з'явилася інформація про те, що готується нова версія 0.2. Інформацію було підкріплено великим списком нововведень і відеороликом, що показує безліч нових можливостей. Це викликало хвилю інтересу серед шанувальників SA-MP, яких тоді налічувалося вже кілька тисяч по всьому світу. Однак після цього нової інформації не було кілька місяців. Розробка дуже затягнулася і, після декількох невеликих оновлень, 9 березня 2007 року розробники представили на своєму блозі прев'ю версії 0.2 з великим списком змін і двома відеороликами, знятими на закритих бета-тестах. Також було оголошено, що незабаром буде проведено кілька публічних бета-тестів. До початку першого публічного бета-тесту пройшов іще місяць. До того часу ажіотаж з приводу нової версії досяг неймовірно великого рівня, і розробники вирішили не оголошувати про бета-тестування на своєму блозі. Натомість напередодні Великодня, 8 квітня, на сайті розробників з'явилася пасхалка у вигляді посилання, яке через кілька перенаправлень виводило користувача на IRC-канал бета-тестування, що розпочалося ввечері того ж дня. Спочатку було відкрито один сервер на 100 місць, але незабаром було запущено ще декілька серверів. Це бета-тестування тривало до 11 квітня. Наступний бета-тест пройшов лише за місяць і тривав кілька годин. Метою його було протестувати можливість сервера витримувати навантаження до 200 гравців. Після цього на блозі kyeman оголосив, що буде проведено ще щонайменше два бета-тести. Наприкінці травня пройшов перший з них, після чого у блозі було оголошено деякі нововведення. 3 червня 2007 року розробники випустили RC-версію клієнта і сервери 0.2 на чотири місця, тим самим дозволивши користувачам розпочати розробку й оновлення режимів для нової версії. Протягом наступних двох тижнів було випущено ще два реліз-кандидати, і після четвертого бета-тестування, що перейшло у п'яте, 20 червня 2007 року SA-MP 0.2 була офіційно випущена. Але розробка не завершилася, і за кілька днів уже було випущено версію 0.2.1 з деякими оновленнями та виправленнями.

24 червня 2007 несподівано для користувачів команда SA-MP оголосила на своєму сайті, що припиняє роботу над модом і будь-яку його підтримку, бо не мають більше сил і можливостей боротися з людьми, які, не боячись нічого, розробляють чіти та експлойти для SA-MP. Миттєво в Інтернеті була організована петиція з вимогою до розробників повернутися до роботи над модом. За кілька годин під петицією підписалося кілька тисяч чоловік. Це спрацювало, і менше ніж за добу роботу всіх серверів SA-MP було відновлено. Наступного дня було випущено оновлення для сервера, що закриває експлойт, попереджує падіння серверу і містить вбудований античіт SAC (англ. SA-MP Anti-Cheat), що не дозволяє гравцям заходити у гру з чітерськими трейнерами або плаґінами для SA-MP. За місяць, 29 серпня 2007 року, після двох відкритих бета-тестів було випущено версію 0.2.2 і було оголошено про початок роботи над версією 0.3. А наступного дня, 30 серпня, було випущено клієнт SA-MP версії 0.2.2 R2, що усуває кілька помилок, знайдених у версії 0.2.2 відразу ж після релізу.

13 травня 2008 року, несподівано для всіх, команда SA-MP закрила сайт і оголосила про кінець розробки SA-MP. За кілька днів сайт був відновлено, і на ньому з'явилася новина про закінчення розробки SA-MP. Вночі 23 травня було відновлено форум. 21 червня 2008 року для вирішення проблем з безпекою було випущено версію 0.2.2 R3. Також в оновленні були виправлені деякі баги і збільшено обмеження кількості моделей машин. Оновлення стосувалося лише клієнта.

20 листопада 2008 року було випущено версію SA-MP 0.2x. Більшість змін не були значними для звичайного гравця, за винятком поліпшення синхронізації та усунення проблем з вильотом клієнта. У вкладці «Internet» сервери версії 0.2.2 більше не з'являються. Більшість серверів переведено на версію SA-MP 0.2x. Також було оголошено про розробку версії SA-MP 0.3. Раніше обіцяну версію SA-MP 0.2.5 випущено не буде.

14 серпня 2009 року розпочалися публічні бета-тестування SA-MP 0.3. 15 серпня відбулося друге бета-тестування, в якому взяло участь понад 400 гравців. 19 жовтня було випущено фінальну версію 0.3a. Згодом було випущено кілька незначних оновлень в лінійці даної версії. 11 серпня 2010 року розпочалося тестування версії 0.3b, а її випуск відбувся 21 серпня 2010 року. 28 листопада 2010 року до мережі потрапили клієнт і сервер (Windows і Linux) RC2-версії 0.3c.

На початку 2012 року вийшла версія SA:MP 0.3d. У травні 2012 року вийшов SA:MP 0.3e. На початку 2013 року вийшов клієнт SA:MP 0.3x. 13 лютого 2014 року офіційно вийшли клієнт і сервер 0.3z. 18 січня 2015 року вийшла перша бета-версія SA:MP 0.3.7 RC-1. Розробники урізноманітнили гілку 0.3. До даної версії було внесено значні зміни. 1 травня 2015 року вийшов SA:MP 0.3.7. 13 липня 2015 року вийшло оновлення для сервера SA:MP 0.3.7 R2.

Історія версій SA: MP[6][7]
Версія Підверсія Реліз Дата релізу Список значних змін
0.1 0.1 9 травня 2006 Перший публічний реліз
0.1b 0.1b 21 травня 2006
  • Виправлено падіння клієнту та серверу
  • Виправлення багів переглядача серверів
0.1b R2 17 лютого 2007 Тільки для сервера:
  • Виправлено кілька падінь серверу
  • Запис IP-адрес гравців при підключенні
0.2 0.2 20 червня 2007
  • Додано велику кількість функцій, методів і колбеків, а також покращено чи доповнено існуючі
  • До консолі віддаленого адміністрування додано блокування за IP-адресою
  • Адміністратори тепер мають змогу телепортуватися за допомогою міток на карті
  • Виправлено розкриття парашутів у транспорті
  • Додано пробиття покришок
  • Виправлено помилку, коли вбивства з автомобіля на ходу (англ. drive-by) не синхронізувалися
  • Додано контрольні точки у стилі перегонів
  • В інтер'єрах тепер можна стріляти
  • Трейлери
  • Зміна погоди
  • Зброя тепер працює після викидання і подальшого підбирання
  • Кік і блокування гравців тепер коректно розривають з'єднання з ними
  • Додано можливість динамічно створювати автомобілі
  • Синхронізовано танкові гармати
  • Покращено міжскриптову взаємодію та введення тексту
  • Додано поїзди
  • Після смерті гравців їхня зброя лишається на землі
  • Виправлено помилку, коли двоє гравців могли сісти у транспорт на водійське місце
  • Збереження положення транспорту на сервері
  • Тепер перезавантаження чи зміна ігрового режиму не скидає таймери фільтрувальних скриптів (англ. filterscript)
  • Виправлено падіння серверу, якщо файл samp.ban містив порожні рядки
  • Маркери підбирання (англ. pickup) тепер створюються заново після зміни ігрового режиму
  • Тепер консоль віддаленого адміністрування має доступ до команд Pawn
  • Виправлено команди особистих повідомлень /pm і /msg
  • Нова команд віддаленого адміністрування players для виведення імені й IP-адреси гравця
  • Виправлено падіння у випадку входу до машини всередині салону їх тюнінгу в режимі налагодження
  • Файл server_log.txt доповнюється, а не створюється заново; також усі записи у нього виконуються без затримок
  • Виправлення помилок, пов'язаних зі зброєю:
    • Синхронізація перезаряджання
    • Instagib — різновид режиму Deathmatch зі зброєю з великою шкодою й повільним перезаряджанням
    • Дружній вогонь
  • Виправлено білий колір смуги очок здоров'я на відеокартах Radeon
  • Погода, об'єкти, паралельні світи, анімації пішоходів та індивідуальний відлік часу для кожного гравця
  • Підтримка до 200 гравців онлайн, до 700 автомобілів та до 70 різних їх типів
  • Території впливу банд та війни за них
  • Додано екранний текст і меню
  • Рівень поліцейського розшуку
  • Розсинхронізація зброї
  • Чат на обмеженій відстані та функції Pawn для чату
  • Радіокерований транспорт
  • Підтримка віконного режиму гри — згортання та розгортання вікна відбувається за допомогою комбінації клавіш Alt+ Enter
0.2.1 0.2.1 24 червня 2007 Кілька виправлень релізу 0.2
0.2.1 R2 25 липня 2007 Тільки для сервера:
  • Додано захист від бот-атак
  • Реалізовано SAC (англ. SA-MP Anti-Cheat)
0.2.2 0.2.2 29 серпня 2007
  • Вікно чату тепер можна прокручувати за допомогою клавіш Page Up і Page Down на п'ять сторінок, що еквівалентно 50 рядкам тексту
  • Чат тепер як слід обгортає багаторядковий текст як слід
  • Чат тепер має обмеження максимальної довжини тексту до 128 символів, а також його виділення, копіювання Ctrl+C і вставки Ctrl+V
  • Оптимізація рендерингу тексту, тепер він не впливає на частоту зміни кадрів
  • Ніки гравців тепер не видно крізь стіни та інші об'єкти
  • Виправлені падіння у салонах автотюнінгу
  • Максимальну кількість маркерів підбирання (англ. pickup) підвищено до 400
  • Сервер тепер може вимикати вхід і вихід з інтер'єрів
  • СКБД MySQL замінено більш легким аналогом — SQLite
  • Відстань рендерингу ніків тепер може бути задано сервером
  • Повідомлення про отримані бонуси за трюки на автомобілі тепер може бути вимкнено на сервері
  • Різні оновлення безпеки мережного коду
  • Інтегровано наступну версію античіту SAC
  • Синхронізація повороту голів гравців; тепер персонажі дивитимуться у напрямку камери
  • Реалізовано візуалізацію телефонних розмов, у тому числі модель телефону в руці
  • Нові скіни: Тенпенні, Пуласкі, Хернандез, Райдер, Смоук, Світ, і Бос мафії
  • Виправлено помилку з використання гравцями кольорів із кодами 100, 101 і 102
  • Підвищено тайм-аути для запобігання розривам з'єднань
  • Зменшено процесорний час на обробку транспорту на клієнті
  • Вирішено проблему анімації вогнегасника й аерозольного балончика
  • Виправлено помилкові відображення ніків без гравців
  • Вирішено проблему, коли клієнт не відображав повідомлення «Вас заблоковано» (англ. You are banned) та «Сервер переповнений» (англ. Server is full)
0.2.2 R2 30 серпня 2007 Тільки для клієнта:
  • Виправлено падіння, пов'язані з моделями та маркерами підбору предметів (англ. pickup)
  • Вирішено проблеми обробки колізій, через які гравці чи об'єкти провалювалися крізь землю
  • Вікно чату обгортає повідомлення від сервера
  • Рендеринг текстур, якщо відеокарта використовує власну бібліотеку d3dx9_25.dll
0.2.2 R3 20 червня 2008 Тільки для клієнта:
  • Видалено весь код античіту SAC через проблеми безпеки
  • Вирішено проблему, коли текст у буфер обміну не копіювався зовні
  • Виправлено блимання часу, туману та блискавок при зупинці часу
  • Вирішено деякі проблеми зі звуком у транспорті
  • Вирішено проблему текстурних лагів та потокових спливних вікон після завантаження великої кількості моделей
  • Виправлено деякі падіння у салонах автотюнінгу
  • Синхронізовано альтернативну сирену поліцейського транспорту
  • Переписано з нуля функцію TextDraw. Тепер вона працює в інтер'єрах і вимикається з таблицею рейтингу
  • Виправлено падіння, спричинені скриптом DestroyVehicle
  • Імпортовано частину коду утримання на транспорті з версії 0.2.5
  • Додано команду /fpslimit для калібрування обмежувача швидкості зміни кадрів. Допустимими значеннями є 20-100
0.2x 20 листопада 2008
  • Виправлено небезпечну обробку особистих повідомлень
  • Вирішено проблему MTU, що полягає у фрагментації пакетів
  • Різні оновлення безпеки для мережного коду й логіки з'єднань
  • Оновлення безпеки клієнтських двійкових файлів
  • Видалено стиснення векторів наведення з метою підвищення точності
  • Додано секунди до журнальних записів на сервері, як і сирі дані UDP-з'єднань
  • Колбеки OnVehicleMod, OnVehiclePaintjob і OnVehicleRespray тепер містять ідентифікатор гравця
  • Додано колбек OnPlayerUpdate, що спрацьовує при кожному мережному оновленні гравця. Це має допомогти серверному античітові
  • Обмежено максимальну кількість фільтрувальних скриптів (англ. filterscript) до 16
  • Номер розроблюваної версії змінено з 0.2.5 на 0.3 з метою уникнення плутанини
0.3 0.3a 17 жовтня 2009
  • Збільшено максимальні кількості гравців до 500 і транспортних засобів до 2000 на сервер
  • Нові, керовані мишею, вікно рейтингу, чату й решта елементів інтерфейсу
  • Видимість пошкоджень і ремонту транспортних засобів
  • NPC можуть керувати поїздами, літаками та іншим транспортом
  • Повністю керований сервером ігровий процес
  • Покращено синхронізацію, в тому числі утримання на транспорті
  • Додано декілька функцій, таких як п'яна камера, сигара і пляшка вина в руках
  • З'явилася можливість створювати написи в просторі
  • Додано новий функціонал у скриптах
  • У вікні клієнта вкладку «Official» замінено на «Hosted»
  • Виправлено велику кількість помилок і падінь; таким чином, версія 0.3a є найстабільнішою станом на момент її випуску
0.3b 0.3b 21 серпня 2010
  • У браузері серверів додано функцію пошуку імені хоста для обраних серверів посилань виду samp://
  • Виправлено безліч помилок
Клієнт Сервер
  • Важливі оновлення безпеки
  • Оновлення та виправлення переглядача серверів, включно з пошуком улюбленого сервера за його ім'ям і обробку протоколу samp://
  • Додано команду /headmove для локального ввімкнення та вимкнення повороту голів
  • Від'ємний рейтинг гравців у браузері серверів позначається як 0
  • Гравців позбавлено можливості красти техніку з інтер'єрів подібно до підмісії грабіжника в оригінальній грі
  • Виправлено помилку з векторами наведення зброї крізь різні роздільні здатності екрану
  • Виправлено помилку, коли 3D-текст не показувався після перезавантаження режиму гри
  • Виправлено падіння у випадку виходу з гри під час спостерігання за гравцем
  • Виправлено помилку у браузері серверів, пов'язану з п'ятицифровими портами у протоколі samp://
  • Виправлено рендеринг ніків гравців на радіокерованих транспортних засобах
  • Вирішено проблему з виникненням маркерів підбирання (англ. pickup) після смерті гравців
  • Реалізовано повороти голів всередині автомобілів
  • Журналювання чату
  • Покращено синхронізацію гравців, анімацій і транспорту
  • Файли, в тому числі скріншоти, тепер зберігаються в папку GTA San Andreas User Files
  • Знято обмеження роздільної здатності екрану
  • Тепер зберігаються зміни обмеження частоти зміни кадрів
  • Додано команду /timestamp, що вмикає та вимикає відмітки дати й часу для повідомлень чату
  • Опція forcesync (0-2) для ApplyAnimation
  • Оновлено SQLite до версії 3.7.0.1
  • Додано можливість скидання пароля доступу до сервера за допомогою команди password 0
  • Покращено функції GetPlayerWeaponData і GetPlayerAmmo
  • Нові функції швидкості та повороту транспорту
  • Можливість відслідковувати всі анімації за допомогою GetPlayerAnimationIndex
  • Гравці можуть за наказом скрипта носити об'єкти
  • Бета-версія багатопотокового HTTP-клієнту для Pawn
  • Максимальну кількість об'єктів підвищено до 400
  • Можливість зміни відстані рендерингу об'єктів до 300
  • NPC тепер можуть записувати довільний набір анімацій
  • Прискорено пошук PVar
0.3b R2 22 серпня 2010
Клієнт Сервер
  • Виправлено падіння клієнта після використання нової команди чату /timestamp
  • Виправлено короткострокові польоти (англ. floating) інших гравців
  • Виправлено некоректне завантаження метаданих серверу до списку серверів на клієнті
  • Виправлено падіння серверу після виклику функції Kick() у колбеку OnPlayerUpdate
0.3b R3 11 вересня 2010 Тільки для клієнта:
0.3c 0.3c 29 грудня 2010
  • Система частинок для більш ефектного вогню
  • Нові й перероблені моделі капелюхів і окулярів, які можна носити
  • Покращено тримання об'єктів на транспорті
  • Гравці тепер мають змогу скоювати вбивство з автомобіля на ходу (англ. drive-by) за допомогою майже будь-якої зброї
  • Налаштування кольорів у чатах і діалогових вікнах
Клієнт Сервер
  • Додано нові об'єкти для стантрайдингу
  • Підтримка виведення різнокольорових повідомлень в одному рядку
  • Оновлено номерні знаки, тепер вони підтримують колір
  • Можливість керування частинами автомобіля: фарами, двигуном, капотом, багажником, дверима та вікнами
  • Кілька покращень і виправлень для скриптингу
0.3c R2 24 березня 2010 Тільки для сервера:
  • Виправлено вразливість до DoS-атак, під час яких нападник міг спричинити лаги та, врешті-решт, падіння
  • Реалізовано захист від атак типу «переповнення серверу» (англ. server full)
  • Повідомлення «Вхідне з'єднання» (англ. Incoming connection) тепер показується і при початкових з'єднаннях. Це дозволить відслідковувати всі з'єднання
  • На прохання власників деяких серверів реалізовано можливість додавання повних дати та часу до журналу серверу. Для налаштування формату, заснованого на форматі функції C / C++ під назвою strftime, було введено параметр файлу server.cfg під назвою logtimeformat
  • Виправлено проблему зі списком змінних команди /rcon
0.3c R3 24 квітня 2010 Тільки для клієнта:
  • Скасовано зміни у заставці, зроблені у версії 0.3c, які могли спричиняти зависання на деяких системах, змушуючи гравця натискати клавішу Escape для завантаження гри.
  • Покращено рендеринг чату, тепер воно не має помітного впливу на частоту кадрів у грі.
0.3c R3-1 25 липня 2010 Тільки для сервера:
  • Виправлено вразливість до DoS-атаки, коли нападник, надіславши сформований особливим чином пакет, міг спричинити відмову налагоджувального припущення (англ. Debug assertion failed) на мережевому рівні SA-MP, що призводило до завершення роботи останнього
  • Додано кілька функцій та колбек, що спрацьовує тоді, коли гравець оновлює координати транспорту, не перебуваючи за його кермом
0.3c R4 27 липня 2010 Тільки для сервера:
  • Виправлено чергову вразливість до DoS-атак
  • Додано кілька нових функцій та виправлено кілька проблем, серед яких некоректний результат функції GetPlayerSurfingObjectID()
0.3c R5 28 липня 2010 Остаточно виправлено падіння, описані у примітках до версій R3 та R4 (тільки для сервера на базі Linux)
0.3d 0.3d 1 грудня 2011
Клієнт Сервер
  • Підтримка аудіомовлення (Інтернет-радіостанцій)
  • Покращення продуктивності для більш плавної гри
  • Покращення синхронізації, у тому числі пасажирів і мотоциклів
  • Нові моделі, такі як магазин, повітряна куля і каска пожежника
  • Гравці можуть триматися на об'єктах, прикріплених до рухомих об'єктів, у тому числі до транспорту
  • Можливість вилучення статичних будівель із карти
  • Більш плавний поворот об'єктів
  • Велика кількість нових функцій і колбеків
0.3d R2 9 грудня 2011
Клієнт Сервер
Виправлено падіння, пов'язане зі зростанням обмеження максимальної кількості об'єктів
  • Під час примусового викидання гравця з серверу його місце могло не достатньо правильно звільнитися і, як наслідок, наступні гравці не могли його зайняти
  • Підтримка до 800 місць на сервері
0.3e 0.3e 7 травня 2012
  • Велика кількість дрібних виправлень включно з оновленнями безпеки, серед яких:
    • Проблема безпеки, що дозволяла здійснити атаку на сервер за допомогою спеціальних утиліт
    • Помилка, що з'явилася у версії 0.3d і дозволяла гравцеві уникнути смерті, увімкнувши будь-яку анімацію
  • Нові об'єкти, в тому числі стіни та будинки
  • Сервер тепер може змінювати текстури та кольори об'єктів
  • Нові можливості скриптингу для кращого управління ігровою камерою
  • Нові інструменти для легшого редагування прикріплених об'єктів
  • Нова анімація та модель для закування у наручники й арешту
  • Текстові функції для створення довільних позначок
  • Сервер має можливість вмикати та вимикати курсор миші серед гри, так що гравець може натиснути на будь-якому тексті чи зображенні
0.3e R2 13 липня 2012 Тільки для сервера:
  • Оновлення безпеки з'єднань
  • Додано параметр файлу server.cfg під назвою chatlogging для управління журналюванням чату
0.3x 0.3x 31 січня 2013
  • Нова система попереднього перегляду моделей дозволяє серверу демонструвати гравцеві ескізи скінів, транспорту та об'єктів, включно зі зброєю, на екрані
  • Відстань рендерингу об'єктів тепер може бути цілком довільною при визначенні під час створення об'єкту
  • Покращено синхронізацію анімацій гравців, які переносять об'єкти
  • Система дружнього вогню по транспорту для серверів, що підтримують команди гравців
  • Нові об'єкти капелюхів та зачісок
  • Багато важливих змін у мережевій підсистемі SA-MP, які зменшують навантаження на мережу та покращують безпеку
  • Іконка пісочного годинника віднині з'являтиметься поряд з ніками гравців, які стали на паузу (може бути увімкнений або вимкнений за допомогою команди /nametagstatus)
  • Автомобільні кольори з кодами 128—255 замінено більш екзотичними варіантами. Попри те, що деякі з цих кольорів використовувалися, більшість із них не синхронізувалися. Всю вищезазначену множину кольорів було перевизначено
0.3x R1-2 4 лютого 2013
Клієнт Сервер
Виправлено кілька помилок:
  • надмірне використання процесора під час завантаження списку серверів
  • падіння під час згортання гри за допомогою комбінації клавіш Alt+Tab у випадку недоступності іконки пісочного годинника
  • вимикання підсвічування об'єктів після їх матеріальних змін за умови, що колір не змінився
Клієнти не бачили зауваження «Неприйнятний нік» (англ. Unacceptable NickName)
0.3x R2 13 вересня 2013 Тільки для сервера:
  • Виправлено падіння внаслідок атаки на мережевий рівень за допомогою побудованої особливим чином утиліти
  • Неправильні дані камери одного з гравців могли спричинити падіння клієнтів інших
0.3x R2 Patch 1 6 січня 2014 Вжито деякі заходи з унеможливлення DDoS-атак, серед яких виправлення на нижньому шарі мережевого рівня (тільки для сервера)
0.3z 0.3z 13 лютого 2014
Клієнт Сервер і скриптинг
  • Введено необов'язкову компенсацію лагів) для пострілів; це дозволяє наводити зброю безпосередньо на скін гравця замість вогню на випередження
  • Вимкнено автоматичне наведення для користувачів, які грають за допомогою джойстика
  • Вирішено проблему, коли дальні постріли помилково могли бути визнані промахами
  • Ніки гравців більше не видно крізь об'єкти, створені сервером
  • Виправлено помилку, коли гравці не могли стріляти, тримаючись на транспорті
  • Додано нові функції і колбеки, а також покращено існуючі
  • Додано налаштування мережевого рівня messageholelimit до файлу server.cfg; це має дати раду DoS-атакам
  • Оновлено вбудований ігровий режим Rivershell до версії 2
  • Додано традиційний (англ. legacy) режим наведення (налаштування shotcompmode = 2 у файлі server.cfg), що дозволяє наведення лише за допомогою камери і вмикає наведення у випадку використання джойстика
  • Додано розширену інформацію про камеру гравця, таку як співвідношення сторін і рівень масштабування
  • Розширено функції мережевого рівня так, що скрипт може отримати інформацію з нижчого рівня без необхідності парсингу рядка-результату функції GetPlayerNetworkStats
0.3z R1-2 16 лютого 2014 Ідентифікатор поточної зброї гравця некоректно повідомлявся скриптам мови Pawn, коли гравець їхав у транспорті на пасажирському місці (тільки для сервера)
0.3z R2-1 12 квітня 2014 Побудовані особливим чином утиліти могли атакувати нижні шари мережевого рівня, змушуючи сервер викидати гравців (тільки для сервера)
0.3z R2-2 18 квітня 2014 Тільки для сервера:
  • Додано функції блокування та розблокування за IP-адресою
  • Додано функції SendDeathMessageToPlayer і CreateExplosionForPlayer та колбек OnIncomingConnection
  • Обмеження максимальної частоти вхідних пакетів (ackslimit) за замовчуванням підвищено з 1000 до 3000 через помилкові викидання гравців із серверу
  • Вимкнено журналювання кількості модифікованих пакетів на сервері
  • Вимкнено журналювання повідомлень вигляду [death] [kill] [nick] за умови вимкнення журналювання чату
0.3z R3 5 липня 2014 Тільки для сервера:
  • Виправлено падіння серверу у функціях мережевої статистики
  • Неправильний ідентифікатор пакету, надісланий від підробленого клієнта, міг спричинити витік пам'яті
  • Додано змінну сервера minconnectiontime (значення у мілісекундах), яка задає тайм-аут прийняття сервером з'єднань. Використання цієї змінної не рекомендовано у випадку, коли сервер перебуває під атакою типу «флуд з'єднаннями»
0.3z R4 12 серпня 2014 Тільки для сервера:
  • Додаткові перевірки справності причепів на сервері
  • Додано колбек для оновлення причепів гравців
  • До колбеку оновлення вільного транспорту додано параметр його швидкості
  • Вилучено налагоджувальні HTTP-повідомлення
0.3z R2 2 листопада 2014 Тільки для клієнта:
0.3.7 0.3.7 1 травня 2015
  • Додано понад 500 нових об'єктів, включно з наземними й об'єктами для стантрайдингу
  • Зміна розміру шрифту інтерфейсу
  • Додано деякі варіації стандартних поліцейських скінів
  • Сервер може керувати дверцятами й вікнами автомобілів
  • Можливість приєднання поліцейської сирени до довільної машини
  • Спрощена система статистів для більш легкого створення NPC-продавців
  • Численні виправлення помилок і нові можливості для скриптингу
0.3.7 R2-1 11 липня 2015 Тільки для сервера:
  • Додано захист від хакерів, що розсилають спам у вигляді повідомлень OnPlayerConnect
  • Перевірка нефільтрованих у OnPlayerWeaponShot ідентифікаторів зброї
  • Статисти тепер за замовчуванням є невразливими. Це може знадобитися для подальшого виправлення ротацій груп допомоги
  • Додано консольні змінні: conncookies для управління системою куків з'єднань і cookielogging для управлінням журналювання куків
  • Додано хеш-функцію для користувацьких паролів, засновану на алгоритмі SHA-256
  • Кілька покращень у функціях SQLite
  • Додано кілька функцій для отримання значень змінних із файлу server.cfg різного типу

Популярні проекти[ред.ред. код]

Аудиторія мультиплеєра[ред.ред. код]

Регіон Аудиторія
СНД СНД 89.3 %
Flag of the United States.svg США 6.5 %
Бразилія Бразилія 2 %
Польща Польща 1.1 %
Туреччина Туреччина 0.8 %
Німеччина Німеччина 0.3 %

Titan DeathMatch[ред.ред. код]

Titan-DM — один з популярних серверів багатокористувацької гри SA-MP, представник сегменту СНД. Він має режим гри банда проти банди. Запущений 2017 року, він набуває популярності з кожним днем.

Diamond Role Play[ред.ред. код]

Diamond-RP — найпопулярніший 2016 року сервер мультиплеєра, представник сегменту СНД. Він має режим рольової гри. Перший сервер було запущено 26 липня 2013 року о 20:00 з 400 місцями, яких бракувало для всіх охочих. З часом сервер набрав обертів і зараз є найпопулярнішим у мультиплеєрі.

Загалом існують вісім серверів, що мають спільну назву та режим Diamond RP:

  • Diamond-RP Emerald
  • Diamond-RP Radiant
  • Diamond-RP Trilliant
  • Diamond-RP Crystal
  • Diamond-RP Sapphire
  • Diamond-RP Onyx
  • Diamond-RP Amber
  • Diamond-RP Quartz

Advance Role Play[ред.ред. код]

Advance-RP — один з популярніших серверів мультиплеєра, представник сегменту СНД. Він має режим рольової гри. Запущено 2011 року. Набував популярності з 2012 року, а пік припав на 2014.

Загалом існують девять серверів, що мають спільну назву та режим Advance RP:

  • Advance-RP Green
  • Advance-RP Yellow
  • Advance-RP Orange
  • Advance-RP Blue
  • Advance-RP White
  • Advance-RP Silver
  • Advance-RP Purple
  • Advance-RP Chocolate
Ще б якомога енциклопедичніше описати купу серверів з однаковим модом «Samp-Rp». Ну й решту популярних серверів, або тих, які так чи інакше суттєво відрізняються від інших: Define, ZONA, Trinity і т.д.

Атака сервера SA-MP[ред.ред. код]

Флуд багаторазовим перез'єднанням[ред.ред. код]

За допомогою спеціальної програми, яка емулює клієнт, відбувається підключення бота до сервера, після чого починається багаторазове перез'єднання (до 10 разів на секунду). Це викликає дуже часте виконання колбеку OnPlayerConnect на сервері, через що сервер починає підвисати. Прикрити цю атаку дуже просто, бо під час цього флуду не виконується OnPlayerDisconnect. Нижче наведено приклад:

new PlayerConnected[MAX_PLAYERS char];
public OnPlayerConnect(playerid)
{
    if(!PlayerConnected{playerid}) PlayerConnected{playerid} = 1;
    else BanEx(playerid, "OnPlayerConnect Flood");
}

public OnPlayerDisconnect(playerid)
{
    PlayerConnected{playerid} = 0;
}

Параметри San Andreas Multiplayer[ред.ред. код]

Налаштування модифікації для мережевої гри у Grand Theft Auto: San Andreas під назвою San Andreas Multiplayer (скорочено SA-MP) можливе як на стороні серверу, так і на стороні клієнта. Перший спосіб налаштувань впливає на всіх гравців даного сервера, тоді як другий — лише на того гравця, який зробив свої налаштування. Відповідно, серверні параметри зберігаються у файлі server.cfg, а клієнтські — у файлі sa-mp.cfg. Формат обох файлів подібний до INI-файлів, але дещо спрощений, наприклад, не використовується розподіл параметрів за секціями.

Значення параметрів файлу server.cfg[8]
Назва параметру Значення за замовчуванням Тільки для читання Зміст параметру
echo Executing Server Config… Так Рядок, який виводить головний процес сервера sampserver.exe під час читання та застосування параметрів. Зазвичай у зміні цього параметра немає потреби, оскільки адміністратор сервера — єдиний, хто бачить його консоль
lanmode 0 Ні Застарілий параметр. Імовірно, призначався для створення серверів у локальній мережі
maxplayers 50 Так Максимальна кількість гравців, які можуть грати одночасно на сервері. Допустимі значення від 1 до 1000
announce 0 Ні Ознака публікації сервера в основному списку клієнтів. Логічне значення
query 1 Ні Ознака отримання клієнтами загальної інформації про сервер. Логічне значення. Не впливає на можливість входу гравців
port 7777 Так Порт, на якому спілкуватиметься сервер. Для запуску сервера бажано скористатися переспрямуванням портів[en]
hostname SA-MP <version> Server Ні Ім'я, що показується у переглядачі серверів для інших користувачів
gamemode (n) (N) (t) gamemode0
grandlarc 1
Ні Можливо, задає розклад ігрових режимів на сервері. Значення параметрів наступне: номер режиму, назва та кількість повторень режиму до перемикання на наступний
weburl www.sa-mp.com Ні Веб-сайт із детальною інформацією про сервер. Не обов'язковий
rcon_password changeme Ні Пароль консолі віддаленого адміністрування. Сервер потенційно небезпечно запускати з паролем за замовчуванням
filterscripts (N) Так Фільтрувальними (англ. filterscript) називаються фонові скрипти ігрового режиму. Їх призначення полягає в забезпеченні додаткового функціоналу до сервера без необхідності редагування ігрового режиму. Вони особливо корисні у випадках, коли необхідно додати один і той самий функціонал кільком ігровим режимам. Для використання необхідно покласти .amx-файл у папку filterscripts. Параметр (N) означає ім'я скрипту, що збігається з іменем файлу без розширення. Для завантаження кількох скриптів необхідно перерахувати їх в один рядок через пробіл
plugins (N) Так Дозволяє підключати плаґіни, що розширюють ігрові режими та фільтрувальні скрипти (англ. filterscript). Параметр (N) означає ім'я плаґіну. Для завантаження кількох плаґінів необхідно перерахувати їх в один рядок через пробіл. У випадку запуску сервера на ОС Linux до імен плаґінів необхідно додавати розширення .so
password (p) <Порожньо> Ні Пароль входу до даного сервера
mapname (m) San Andreas Ні Ім'я карти для переглядача серверів у клієнтах
language English Ні Мова сервера. Зазначається для того, щоб гравцям було зручніше обрати сервер із тією мовою, якою вони бажають грати. З'явився у версії 0.3.7
bind Так Примушує сервер використовувати вказану IP-адресу, яка має відповідати одній зі вказаних на мережевій платі сервера. Застосовується для запуску кількох серверів на одному порті й машині
rcon 1 Ні Ознака вимкнення консолі віддаленого адміністрування. Логічне значення
maxnpc 0 Ні Максимальна кількість NPC, які можуть увійти на сервер
  • onfoot_rate
  • incar_rate
  • weapon_rate
40 Так Тайм-аут оновлення даних на клієнті під час ходьби та бігу, їзди та стрільби відповідно, у мілісекундах. Зменшення кожного значення підвищує продуктивність та смугу пропускання
stream_distance 300.0 Ні Відстань на площині (X, Y), в межах якої об'єкти сервера створюватимуться для кожного з гравців. Збільшення значення розширює область рендерингу об'єктів на клієнтах, збільшує смугу пропускання, але спричинює більше навантаження на клієнтів
stream_rate 1000 Ні Тайм-аут оновлення об'єктів сервера для кожного з гравців, у мілісекундах. Зменшення значення збільшує інтенсивність роботи процесора, оскільки вимагає частішої перевірки потокових умов
timestamp 1 Ні Ознака вимкнення міток дати й часу. Логічне значення
logqueries 0 Ні Ознака логування запитів від гравців. Дуже корисно під час DDoS-атак. Логічне значення
logtimeformat [%H:%M:%S] Так Формат міток дати й часу. Синтаксис подібний до такого[9] у мовах C / C++
output 0 Ознака дублювання журнальних записів у консоль сервера, а не лише до файлу журналу. Логічне значення. Працює тільки в ОС Linux
gamemodetext Unknown Ні Текст ігрового режиму
chatlogging 1 Ні Ознака логування чату гравців. Вимкнення є корисним у випадках переповнення журналу або за наявності інших, скриптових рішень логування чату. Логічне значення. З'явився у версії 0.3e R2
messageholelimit 3000 Ні Граничну кількість порожніх пакетів, надісланих серверу кожним клієнтом. У разі перевищення цієї кількості сервер припускає, що даний клієнт намагається вивести його з ладу, і розриває з'єднання з ним[10]
lagcompmode 1 Так Режим компенсації лагів:
0
повністю вимкнено
1
увімкнено
2
в режимі позиційної компенсації, тобто за винятком поворотів гравців
ackslimit 3000 Ні Гранична кількість пакетів, що надсилаються від клієнтів до сервера. У разі її перевищення сервер розриває з'єднання
playertimeout 10000 Ні Час, протягом якого гравець не має надсилати повідомлень на сервер, для того, щоб вважати гравця таким, що став на паузу; у мілісекундах
minconnectiontime 0 Ні Час очікування сервера до приймання вхідного з'єднання, у мілісекундах
connseedtime 300000 Ні Частота оновлень заповнювального значення куків з'єднань. З'явився у версії 0.3.7
sleep 5 Ні Тайм-аут основного мережного потоку SA-MP і RakNet між циклами синхронізації, у мілісекундах. Збільшення значення зменшить інтенсивність використання процесора, але суттєво зменшить якість синхронізації. Використання ж меншого значення споживатиме більше ресурсів процесора, але й покращить продуктивність синхронізації. Небажано змінювати це значення, якщо тільки на сервері дуже багато гравців, через проблеми стабільності швидкості зміни кадрів
conncookies 1 Ні Ознака вимкнення системи куків для з'єднань. Логічне значення. З'явився у версії 0.3.7 R2
cookielogging 1 Ні Дозволяє вимкнути журналювання куків для з'єднань, які запитуються новими гравцями. Логічне значення. З'явився у версії 0.3.7 R2
db_logging 1 Ні Запис помилок функцій SQLite db_* до головного серверного логу. Логічне значення. З'явився у версії 0.3.7 R2
db_log_queries 1 Ні Запис всіх запитів SQLite db_query() включно із самим запитом. Логічне значення. З'явився у версії 0.3.7 R2
Значення параметрів файлу sa-mp.cfg[11]
Версія клієнту Назва параметру Значення за замовчуванням Аналогічна команда чату Призначення параметру
0.3a pagesize 10 /pagesize Дозволяє гравцям вказати висоту вікна чату у рядках. Допустимі значення від 10 до 20
fpslimit 50 /fpslimit Дозволяє гравцям калібрувати обмежувач швидкості зміни кадрів у разі ввімкненої опції у меню оригінальної гри. Допустимі значення від 20 до 90
disableheadmove 0 /headmove Управляє поворотами голів персонажів у напрямку камер гравців. Логічне значення
timestamp 0 /timestamp Дозволяє гравцям управляти відображенням міток дати й часу коло повідомлень у чаті. Логічне значення
ime 0 Управляє підтримкою вікном чату IME[ru] та перемикання мови. Логічне значення
0.3d multicore 1 Визначає використання клієнтом SA-MP кількох ядер процесора. Рекомендується вимкнути у разі виникнення проблем з мишею. Логічне значення
directmode 0 Дозволяє гравцям у разі виникнення проблем із рендеринг тексту чату використовувати більш повільний прямий (англ. direct-to-screen) метод. Логічне значення
audiomsgoff 0 /audiomsg Вимикає повідомлення у чаті виду Audio Stream: [URL], коли сервер починає програвати той чи інший аудіопотік. Логічне значення
audioproxyoff 0 У випадку ввімкненого проксі-сервера в налаштування Інтернет-з'єднання ОС Windows дозволяє вимкнути проксі для програвання аудіопотоків у SA-MP. Логічне значення
0.3x nonametagstatus 0 /nametagstatus Дозволяє вимкнути іконку пісочного годинника поряд з ніками гравців, які стоять на паузі. Логічне значення
0.3.7 fontface Дозволяє змінити шрифт вікон чату, діалогів і рейтингу, наприклад fontface="MS Comic Sans". Офіційно не підтримується і може спричиняти проблеми
fontweight 0 Визначає вигляд шрифту у вікні чату: напівжирний чи ні. Логічне значення

Див. також[ред.ред. код]

Примітки[ред.ред. код]

  1. SA-MP 0.3.7 is released! (англійською). 
  2. SA-MP Client and Server Software License Agreement (англійською). The SA-MP Team. Процитовано 15 січня 2017. 
  3. RakNet — Multiplayer game network engine [RakNet — мережевий рушій багатокористувацьких ігор] (англійською). Jenkins Software. Процитовано 15 січня 2017. 
  4. Vice City: Multiplayer (англійською). Процитовано 19 лютого 2017. 
  5. Vice City: Multiplayer mod (англійською). Mod DB. Процитовано 3 лютого 2017. 
  6. Changelog — SA-MP Wiki (англійською). 
  7. News and Updates — SA-MP Forums (англійською). 
  8. Server.cfg — SA-MP Wiki (англійською). 
  9. strftime. C++ Reference (англійською). Процитовано 19 лютого 2017. 
  10. Kalcor (17 січня 2014). Clarification on messageholelimit. Форум SA-MP (англійською). 
  11. Sa-mp.cfg — SA-MP Wiki (англійською). 

Посилання[ред.ред. код]