В этой статье я хочу посоветовать Pawn скриптерам то, как нужно устраивать внутреннюю часть вашего SA-MP проекта. Далеко не секрет, что большая часть скриптеров хранят свои режимы всего в одном .pwn файле. Эта мода пошла от режимов Pen и The Godfather. В действительности, это решение является довольно непрактичным, ибо при увеличении количества кода, его сложность значительно увеличивается.
Чтобы избежать усложнения проекта при его расширении, вам достаточно правильно спроектировать архитектуру вашего проекта до его реализации, или провести рефакторинг уже существующего проекта.
Подготовка
У нас есть каталог projects/, в котором будут храниться все наши Pawn проекты. Конечно, вам потребуется компилятор, лучше всего компилятор не хранить в каждом проекте, а вынести в отдельный каталог compiler/. Проекты будут храниться в каталогах projects/project_1, projects/project_2, где project_1 и project_2 — названия ваших проектов.
В итоге, площадка для разработки должна выглядеть следующим образом:
compiler includes a_actor.inc a_http.inc a_npc.inc a_objects.inc a_players.inc a_sampdb.inc a_samp.inc a_vehicles.inc core.inc datagram.inc file.inc float.inc string.inc time.inc libpawnc.so pawncc pawncc.exe pawncc.pdb pawnc.dll pawnc.pdb project_1 project_2
Я рекомендую использовать версию Pawn компилятора от Zeex. Эта версия отличается исправлением некоторых ошибок, введением небольшого количества новых возможностей и версией для Linux.