SA-MP 0.3e
Комментариев (0)
Просмотров: 1448
- Исправлены проблемы безопасности предыдущих версий, из-за которых сервера могли атаковать с помощью специальных утилит. Исправления требуют обновления как сервера, так и клиента.
- Исправлен баг, появившийся в 0.3d, когда игрок мог избежать смерти, если у него проигрывалась какая-то анимация.
- Решена проблема с установкой цвета игрокам, имеющим ID выше 500.
- Исправлена проблема с киком игрока при использовании в моде SpawnPlayer().
- Исправлена проблема с сервером, из-за которой мог происходить крэш клиента (браузера серверов) в случае, когда сервер возвращал неверные данные.
Кроме обновлений безопасности, SA-MP 0.3e имеет несколько новых возможностей:
- Добавлены несколько новых моделей за авторством cessil, включающих в себя цилиндр, трость, несколько различных стен.
- Диалоги теперь имеют панель управления в виде кнопок.
- Сервер может получать версию клиента, используемую игроком через новую функцию GetPlayerVersion().
Code
native GetPlayerVersion(playerid, const version[], len); // Возвращает версию клиента SA-MP
- Новый параметр, добавленный в колбэк SetPlayerCameraLookAt() являет собой указание по перемещению камеры: она либо плавно двигается в заданную позицию, либо мгновенно "телепортируется".
Code
#define CAMERA_CUT 2
#define CAMERA_MOVE 1
native SetPlayerCameraLookAt(playerid, Float:x, Float:y, Float:z, cut = CAMERA_CUT);
#define CAMERA_MOVE 1
native SetPlayerCameraLookAt(playerid, Float:x, Float:y, Float:z, cut = CAMERA_CUT);
- Добавлена новая утилита, позволяющая легко находить и подбирать позицию объектов, прикреплённых к игроку. Новая утилита также может быть использована и для других объектов (получаем полноценный in-game редактор карт).
Возможности 0.3e RC2
- Исправлен баг, когда игрок телепортировался на координаты 0, 0, 0, когда автомобиль, на котором он стоял респавнился или удалялся.
- Новые функции:
Code
native AttachPlayerObjectToVehicle(playerid, objectid, vehicleid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:RotZ); // прицепляет объект игрока к транспорту
native InterpolateCameraPos(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);
native InterpolateCameraLookAt(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);
native AttachCameraToObject(playerid, objectid); // присоединяет камеру к объекту
native AttachCameraToPlayerObject(playerid, playerobjectid); // присоединяет камеру к объекту игрока
native InterpolateCameraPos(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);
native InterpolateCameraLookAt(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);
native AttachCameraToObject(playerid, objectid); // присоединяет камеру к объекту
native AttachCameraToPlayerObject(playerid, playerobjectid); // присоединяет камеру к объекту игрока
Возможности 0.3e RC3
- Исправлена проблема с аттачем объектов (уточните).
- Приаттаченные объекты теперь удаляются после респавна или в момент перевыбора класса, а не когда игрок умирает (с анимацией смерти).
- Добавлены новые объекты от cessil: ~40 новых стен с проёмами для дверей и окон, наручники, полицейские мигалки, лежачие полицейские и ещё несколько разноцветных наушников.
Возможности 0.3e RC4
- Должна быть исправлена ситуация, когда сбивался ID при удалении из игры взорванного транспорта.
- Количество слотов игроков увеличено до 500.
- Исправлен фильтр текстур на новых моделях.
- Добавлен режим полёта камеры, проходящий через стены (пример в ФС).
- Новые модели от cessil: более 40 стен, дорожные заграждения, вёдра, шарфы...
- Теперь сервер может позволить игроку кликать курсором мыши на текстдраве:
Code
native TextDrawSetSelectable(Text:text, set); // по-умолчанию 0 (невыбраемый)
native SelectTextDraw(playerid, hovercolor); // позволяет игроку выбирать текстрав кликом курсора
native CancelSelectTextDraw(playerid); // завершает процесс выбора позиции курсора на текстдраве
forward OnPlayerClickTextDraw(playerid, Text:clickedid); // игрок кликает на текстдрав
native SelectTextDraw(playerid, hovercolor); // позволяет игроку выбирать текстрав кликом курсора
native CancelSelectTextDraw(playerid); // завершает процесс выбора позиции курсора на текстдраве
forward OnPlayerClickTextDraw(playerid, Text:clickedid); // игрок кликает на текстдрав
Интересное о SelectTextDraw():
- Все кликабельные текстдравы должны иметь атрибут TextDrawTextSize для определения размеров кликабельного поля. Можно создавать текстдравы и без этой функции (видимо, кликабельными они не будут).
- Вы должны (скорее, мы советуем) включить рамку ("бокс") текстдрава, чтобы Вы видели размеры кликабельного поля, когда создаёте слой (новый текстдрав). Вы можете отключить "бокс" после создания.
Возможности 0.3e RC5
- Исправлен баг, появившийся в версии 0.3e RC4, когда утонувший транспорт мог быть удалён у игрока клиентом. (на сервере авто оставалось, но в клиенте не синхронизировалось, мне кажется, это было ещё в 0.3d RC2)
- Исправлена ситуация, когда текстдрав не менял цвет (который появился после наведения) после отключения режима кликабельности.
- Обновлена безопасность в колбэке OnDialogResponse.
- Исправлена проблема двусторонних текстур с моделью ведра.
- Добавлена система текстдравов для игроков с лимитом в 256 штук. Теперь существует глобальный лимит (лимит для сервера) и лимит для игроков. Все основные функции текстдравов имеют вариант "для игрока":
Code
native PlayerText:CreatePlayerTextDraw(playerid, Float:x, Float:y, text[]); // создаёт текстдрав для игрока
native PlayerTextDrawShow(playerid, PlayerText:text); // показывает персональный текстдрав игроку
native PlayerTextDrawHide(playerid, PlayerText:text); // скрывает персональный текстдрав у игрока
native PlayerTextDrawSetString(playerid, PlayerText:text, string[]); // меняет значение персонального текстдрава для игрока
native PlayerTextDrawShow(playerid, PlayerText:text); // показывает персональный текстдрав игроку
native PlayerTextDrawHide(playerid, PlayerText:text); // скрывает персональный текстдрав у игрока
native PlayerTextDrawSetString(playerid, PlayerText:text, string[]); // меняет значение персонального текстдрава для игрока
Возможности 0.3e RC6
- Исправлен баг, приводивший к крешу в ситуации, когда удалялось авто в то время, когда водитель использовал режим камеры "смотреть назад".
- Удалены иконки Pay'n'Spray.
- Добавлена функция GetVehicleModelInfo() для получения некоторых параметров (например, размеры и т.д.).
- Движения головы игрока теперь автоматически прекращаются, когда игрок входит в режим редактирования приаттаченных объектов.
- Добавлены функции SetObjectMaterial() и SetPlayerObjectMaterial() с помощью которых Вы можете менять текстуры на моделях на другие, присутствующие в игре.
- Новые объекты от cessil: таблички о продаже, противогаз, трава и стол для Покера.
- Исправлен баг, когда замороженный игрок мог проигрывать анимацию на экранах других игроков (т.е. на его экране он стоит, хоть и жмёт клавишу "прыжок", а у других игроков - он прыгает на месте).
Файлы SA-MP 0.3e:
Пояснение: дистрибутив сервера для Linux будет доступен с более поздних RC-версий.
SA-MP 0.3e RC1 Client
SA-MP 0.3e RC1 Windows Server
SA-MP 0.3e RC2 Client
SA-MP 0.3e RC2 Windows Server
SA-MP 0.3e RC3 Client
SA-MP 0.3e RC3 Windows Server
SA-MP 0.3e RC4 Client
SA-MP 0.3e RC4 Windows Server
SA-MP 0.3e RC4 Linux Server
SA-MP 0.3e RC5 Client
SA-MP 0.3e RC5 Windows Server
SA-MP 0.3e RC5 Linux Server
SA-MP 0.3e RC6 Client
SA-MP 0.3e RC6 Windows Server
SA-MP 0.3e RC6 Linux Server
Теги: