В SA-MP из коробки используется Pawn версии 3.2.*, которая является очень устаревшей: в ней не только нет нового функционала, но и нет необходимых исправлений, некоторые из которых могут крашнуть сервер (valstr или работа с запакованными строками, к примеру). Данный плагин обновляет Pawn до последней версии из официального репозитория CompuPhase (последнее изменение 21 час назад на момент создания темы). Совместим со всеми версиями SA-MP (с CR-MP тоже).
Известные баги:
- Возможно использовать только мод, скрипты (filterscripts) использовать нельзя. Это сделано для поддержки всех версий SA-MP, а также для сохранения производительности
- Возможна некорректная работа с некоторыми плагинами
Небольшой обзор некоторых новых возможностей:
И многое другое, некоторые изменения есть здесь: http://www.compuphase.com/pawn/pawnhistory.htm, также рекомендую посмотреть стандартные примеры https://github.com/g3o0or/npawn-samp.../pawn/examples и поковыряться в обновленных инклудах.
Изменения в API, не связанные напрямую с обновлением Pawn:
1. Все строки в аргументах кэллбеков запакованы
2. Запакованные строки можно использовать со всеми функциями SA-MP
3. Для функций вроде GetPlayerName (т. е. для тех, которые записывают строку в аргумент) добавлен последний аргумент bool:ispacked. По умолчанию он равен true.
4. В SA-MP использовалась функция format, взятая из AMXMODX. Она заменена функцией strformat, вся разница в том, что она работает с запакованными строками и добавлен третий аргумент ispacked.
5. Добавлен инклуд a_vec.inc (по умолчанию включен в a_samp.inc), который включает в себя некоторые (будут добавляться) функции, использующие одну переменную Vector3, а не три float, у них добавлен суффикс Vec. Vector3 является структурой с полями Float:x, Float:y и Float:z. Пример:
Примеры использования новых фич:PHP код:
new pos[Vector3];
GetPlayerPosVec(playerid, pos);
pos.z += 20.0;
SetPlayerPosVec(playerid, pos);
Автор: g3o0or
Исходный код: https://github.com/g3o0or/npawn-samp
Бинарники: https://github.com/g3o0or/npawn-samp/releases
Инклуды, которые необходимо заменить: https://github.com/g3o0or/npawn-samp...ources/include