Урок %count% Причини да не скриптирате SA MP Archives - Pro Pawn - PAWN Scripting Portal

Предговор: В един известен училищен форум модераторът ужасно изгоря от тази тема и я изтри. Надявам се хората тук да са по-адекватни.

Името %count% показва набор, който може да бъде променен в зависимост от издадените корекции на грешки в самия SA-MP клиент.

Всъщност в тази тема ще сравним няколко мултиплейъра:

San Andreas Multi Player: http://sa-mp.com/ Multi Theft Auto: http://mtasa.com/ Just Cause 2 Multi Player: http://jc-mp.com/ Mafia 2 Multi Player: http://m2-multiplayer.com/ IV-Network: https://github.com/IV-Network/IV-Network

Всеки от горните мултиплейъри има свои собствени уникални характеристики, но ние ще се занимаваме с мултиплейър SA-MP.

Както знаете, SA-MP има много проблеми както на ниво самия клиент, така и на ниво скриптове.

Проблем номер 1: Що се отнася до мен, основният проблем е наличието на Anti-Cheat. В SA-MP няма анти-чийт на ниво мултиплейър. Когато Mult Theft Auto има свой собствен собствен анти-чийт, а JC2MP използва VAC. Този проблем присъства и в останалите мултиплейъри от нашия списък.

Проблем номер 2: Пълната липса на клиентска страна в SA-MP. В SA-MP няма клиентска част, така че цялата графична работа минава през сървъра и не се изтегля на клиента. Във всички други мултиплейъри клиентската част присъства. Следователно в SAMP е почти невъзможно да се качи изображение на клиента или да се улесни работата на сървъра.

Проблем #3: Проблемът с достъпа до изходния код. Може би SA-MP би бил по-малък проблем, ако екипът на SAMP отвори някои модули с изходен код за общността, за да помогне за отстраняването на грешки. Но само два мултиплейъра MTA SA (с изключение на net-module) и IV-Network (напълно) имат отворен код.

Проблем #4:преден край. В SAMP за целия дизайн, който ще бъде видим за играча, има само няколко диалогови прозореца и функции за рисуване на TextDraw. Всички други диалогови мултиплейъри имат CEGUI библиотека. Да, както и поддръжка за някои dx графични функции (в MTA, например, има поддръжка за шейдъри).

Проблеми със скриптове

Проблем №1: Език за програмиране на скриптове. SAMP използва езика на подозрителната пешка (Source/Gold Source използва SourcePawn, който е малко по-различен). Даденият език е стегнат и не е гъвкав плюс към всичко в него няма поддръжка на класове и структури. И целта на езика Pawn беше съвсем различна. Други мултиплейъри използват по-специализирани езици за програмиране. Като Lua или Squirrel.

Проблем №2: Модулност. SAMP сървърът има лоша модулност. Не можете да разделите 1 режим на игра на няколко ресурса, за да е по-удобно да работите в голям екип. И видимостта на променливите във филтърните скриптове е куца.

Проблем номер 3: Малък брой библиотеки. Например, би било по-удобно да се използват вектори в координати, rgba цветове, позиции на камерата, а не отделни числа, подходът към векторите се използва в JC2MP.

Проблем #4: Както повторих по-горе, липсата на класове и структури. Процедурното програмиране не винаги води до нещо полезно, тук ще използвам цитат от известен програмист: „Ако не отидете отвъд „обектно-ориентираните“ методи, за да останете в рамките на „доброто програмиране и дизайн“, тогава резултатът непременно ще бъде нещо, което в по-голямата си част няма смисъл. OOP се използва в MTA, JC2MP, IV-Network.

В заключение искам да кажа, че изброих само най-глобалните проблеми, незначителни изтичания на памет, странно консервативна общност иНе включих нищо друго в този списък.