SA:MP 0.3.7
Скачать:
Клиент: http://files.sa-mp.com/sa-mp-0.3.7-R3-1-install.exe
Сервер (Linux x86): http://files.sa-mp.com/samp037svr_R2-2-1.tar.gz
Сервер (Windows): http://files.sa-mp.com/samp037_svr_R2-2-1_win32.zip
Нововведения:
- Добавлено более 500 новых объектов, включая приспособления для трюков и объекты земли, предоставленных пользователем Matite с сервера GamerX.
- Добавлены скрипты с маппингом, демонстрирующие использование новых объектов: stunt_island.pwn, modular_island.pwn, ls_beachside.pwn и пр.
- 12 новых скинов - 11 для полицейских (вариации без оружия, без шляпы, в гражданской одежде и женские скины) и 1 женский скин для медиков.
Новые скины можно увидеть в конце списка на SA:MP wiki.
- Добавлена возможность устанавливать спецсигналы на любые машины.
Теперь для этого есть новый необязательный параметр в функциях CreateVehicle и AddStaticVehicleEx.
Также добавлена функция OnVehicleSirenStateChange, вызываемая сервером при включении/выключении спецсигнала.
Внимание: Не забудьте перекомпилировать свои скрипты с инклудами из SA:MP 0.3.7, иначе функции CreateVehicle и AddStaticVehicleEx не будут правильно работать на новой версии SA:MP (из-за нового доп. параметра).PHP код:
native CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawndelay, addsiren=0);
native AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2, respawn_delay, addsiren=0);
native GetVehicleParamsSirenState(vehicleid);
forward OnVehicleSirenStateChange(playerid, vehicleid, newstate);
- Добавлены функции для открытия/закрытия дверей и поднимания/опускания стёкол в машинах:
Примечание (DC): передние двери и стёкла обрабатываются в GTA:SA по-другому, поэтому их состояние нельзя изменить.PHP код:
native SetVehicleParamsCarDoors(vehicleid, driver, passenger, backleft, backright);
native GetVehicleParamsCarDoors(vehicleid, &driver, &passenger, &backleft, &backright);
native SetVehicleParamsCarWindows(vehicleid, driver, passenger, backleft, backright);
native GetVehicleParamsCarWindows(vehicleid, &driver, &passenger, &backleft, &backright);
- Новая функция DisableRemoteVehicleCollisions(), с помощью которой можно отключить коллизии у машин, контролируемых другими игроками.
При отключении машины будут проходить друг сквозь друга, не сталкиваясь, что может быть полезно для гонок.
- Релизована система статических актёров. Основное применение: боты в магазинах/казино.
Статические актёры проще в использовании, чем обычные NPC, и не занимают слотов на сервере.
Новые функции для работы с актёрами можно найти в инклуде a_actor.inc.
- Добавлена система куки-файлов при подключении, чтобы предотвратить флуд коннектами.
Также можно установить срок действия куки-файла в server.cfg (строка "connseedtime").
- В server.cfg можно указать язык или страну, в которой располагается сервер.
Для этого в server.cfg нужно добавить строку "language <название>".
Кроме того, столбец "Map" в браузере серверов заменён столбцом "Language".
Переменная mapname оставлена для совместимости (но теперь не имеет никакого практического применения).
- Возможность изменить шрифт интерфейса (на стороне клиента).
Для этого в sa-mp.cfg можно добавить (или изменить) строки "fontface" и "fontweight" с названием и толщиной шрифта соответственно.
Пример:
Доступны 2 режима толщины шрифта: 0 - жирный (по умолчанию) и 1 - обычный.Код:fontface="Comic Sans MS"
fontweight=1
Также можно изменить размер шрифта, но только из игры (чтобы у игрока была возможность настроить его в зависимости от разрешения экрана, установленного в настройках GTA:SA), с помощью команды /fontsize <размер>.
- Новые функции: GetObjectModel(), GetPlayerObjectModel().
- Новая функция: EnablePlayerCameraTarget(playerid, true/false) - позволяет отключить передачу данных о цели камеры игроков, чтобы уменьшить кол-во сетевого трафика на сервере.
По умолчанию передача данных выключена.
- Новые функции: GetPlayerCameraTargetObject(playerid), GetPlayerCameraTargetVehicle(playerid) и GetPlayerCameraTargetPlayer(playerid), с помощью которых можно узнать ID объекта/машины/игрока, на которые смотрит игрок.
Возаращают INVALID_OBJECT_ID/INVALID_VEHICLE_ID/INVALID_PLAYER_ID, если передача данных о камере игрока выключена (см. выше).
- Добавлена клиентская команда /ctd для вывода на экран координат цели камеры.
- Новые функции: SetObjectNoCameraCol(true/false) и SetPlayerObjectNoCameraCol(true/false) - позволяют выключить коллизию камеры на объектах.
Также с помощью функции SetObjectsDefaultCameraCol(true/false) можно указать значение по умолчанию для всех объектов SA:MP.
На данный момент функции работают только на объектах, находящихся за пределами обычной карты.
- Новые функции: GetPlayerPoolSize() и GetVehiclePoolSize() - возвращают самый большой ID игрока/транспорта.
Примечание (DC): всё равно для перебора всех игроков лучше использовать foreach.
Для перебора транспорта также есть эффективное решение.
- Начиная с этой версии, сервер будет поставляться только в варианте 1000p, т.к. теперь не должно быть разницы в нагрузке на вариантах 500p и 1000p.
- Новые стили диалогов DIALOG_STYLE_TABLIST и DIALOG_STYLE_TABLIST_HEADERS, которые являются расширенными версиями DIALOG_STYLE_LIST с поддержкой столбцов.
Пример использования этих стилей показан в test_cmds.pwn (см. команды /testtablist и /testtablistheaders).
В новых стилях поддерживается добавление до 4 столбцов. В каждом столбце может быть до 128 символов (но не более 256 символов на всю строку).
Исправления/улучшения:
- Исправлена утечка памяти в SetObjectMaterialText, SetPlayerObjectMaterialText, SetObjectMaterial и SetPlayerObjectMaterial.
- Исправлена проблема с анимацией в SPECIAL_ACTION_CUFFED - у некоторых скинов руки проходили сквозь спину.
Возможно, вам придётся обновить в своём моде координаты наручников на этих скинах.
Также добавлена новая модель наручников (ID 11749).
- Добавлены проверки для выявления некорректных значений/векторов в направлении двухколёсного транспорта, скорости поезда, направлении камеры игрока и пуль.
- Исправлено отсутствие коллизии камеры с объектами, находящимися за пределами карты.
- Птицы больше не будут летать сквозь объекты SA:MP.
- Здание возле пляжа LS заменено на новую версию из SA:MP.
Это сделано потому, что новая модель лучше работает с уже существующими LOD'ами и имеет меньше проблем с коллизиями камеры.
- Исправлена проблема в RakNet, из-за которой нельзя было использовать функции NetStats_*, если игрок ещё не полностью подключился к серверу.
- Более плавная синхронизация поворотов транспорта.
- Синхронизирован ID оружия в информации о выстрелах - теперь не будет рассинхронизаций оружия в OnPlayerWeaponShot.
- Курсор мыши будет отключен при выборе окна GTA:SA (например, при возврате через Alt+Tab).
- Устранён баг с заморозкой игрока при вызове SelectObject() из диалога.
- Исправлена проблема в браузере серверов, при которой один сервер мог подделать ответ от другого сервера.
Недокументированные изменения:
- Со скинов 165 и 166 удалены солнцезащитные очки.
- Функция GetWeaponName вместо пустой строки возвращает правильные названия для оружий 18, 44 и 45 ("Molotov Cocktail", "Night Vision", "Thermal Goggles") (отдельное спасибо ziggi за обнаружение исправления).
- Если в RemoveBuildingForPlayer передать вместо ID модели число -1, будут удалены все объекты в указанном радиусе.
Обновление 0.3.7 R2
- Добавлена защита от хакеров, спамящих сообщениями о подключении (раньше это могло приводить к повторным вызовам OnPlayerConnect без парных вызовов OnPlayerDisconnect).
- Добавлена проверка ID оружия в случае, если оружие не было проверено скриптом в OnPlayerWeaponShot.
Раньше читеры могли отсылать фейковые данные о выстрелах с неправильным ID оружия, вызывая зависания и краши клиентов у других игроков.
- Теперь актёры по умолчанию неуязвимы (это может понадобиться позже, чтобы исправить баг с неправильным углом поворота актёров в клиенте).
- В server.cfg добавлена переменная conncookies (число) для отключения системы куки-файлов при подключении, добавленной в 0.3.7.
- Также добавлена переменная cookielogging, с помощью которой можно отключить логирование выдачи куки-файлов, запрошенных только что подключившимися игроками.
- Добавлена функция SHA256_PassHash для хеширования паролей в аккаунтах.
- Реализована система серверных переменных (SVar). Новый вид переменных аналогичен PVar'ам (похожие названия функций и констант типов данных), но не закреплены за определёнными игроками и существуют в течение всего периода работы сервера, в т.ч. и после рестарта/смены мода.
Имейте в виду, можно создавать до 2000 SVar'ов. Если вам нужно неограниченное количество переменных - лучше продолжайте пользоваться плагином GVar от Incognito.PHP код:
native SetSVarInt(varname[], int_value);
native GetSVarInt(varname[]);
native SetSVarString(varname[], string_value[]);
native GetSVarString(varname[], string_return[], len);
native SetSVarFloat(varname[], Float:float_value);
native Float:GetSVarFloat(varname[]);
native DeleteSVar(varname[]);
native GetSVarsUpperIndex();
native GetSVarNameAtIndex(index, ret_varname[], ret_len);
native GetSVarType(varname[]);
- Функции db_open и db_query теперь возвращают индексы подключений к БД SQLite вместо хендлов. Это значит, что сервер берёт на себя хранение хендлов, обеспечивая безопасность при указании неправильных индексов. Тем самым исправлены краши из-за неправильных хендлов.
- Добавлено несколько новых функций для работы с SQLite:
PHP код:
native db_get_field_assoc_int(DBResult:result, const field[]);
native Float:db_get_field_assoc_float(DBResult:result, const field[]);
native db_get_mem_handle(DB:db);
native db_get_result_mem_handle(DBResult:result);
native db_debug_openfiles();
native db_debug_openresults();
- Добавлен спецификатор "%q" в функции format. Он предназначен для форматирования строковых значений, как и "%s", но дополнительно пропускает форматируемое значение через экранирующую функцию в SQLite. Нововведение может быть полезно для защиты от SQL-инъекций.
- Добавлена консольная переменная db_logging для логирования ошибок в функциях SQLite.
- Добавлена переменная db_log_queries, предназначенная для логирования всех запросов в функции db_query.
Обновление 0.3.7 R2-1
- Добавлены проверки на нулевые значения в функциях db_get_*. Раньше эти функции крашили из-за неправильных номеров строк и названий полей.
- Исправлен баг в реализации хеширования SHA256 (функция SHA256_PassHash).
- Исправлен баг в функциях GetPVarsUpperIndex и GetSVarsUpperIndex, из-за которого функции возвращали 1 даже после того, как все PVar'ы/SVar'ы на сервере были удалены.
Обновление 0.3.7 R2-2 (сервер, предварительная версия)
- Теперь код контроля за флудом запросами обрабатывает каждый вид запроса отдельно.
- Значение переменной cookielogging по умолчанию изменено на 0.
Обновление 0.3.7 R2-2-1 (сервер, предварительная версия)
- Слишком короткий промежуток времени между пакетами "c" и "r" со стороны клиента означает, что пакеты Rules List неправильно фильтровались от флуда.
(Примечание: Rules List - список правил сервера, таких как название, игровое время, ID погоды, сайт и т.д.)
Обновление 0.3.7 R2-2 (клиент, предварительная версия)
- Устранена уязвимость в браузере, позволявшая отправлять поддельные ответы на запросы от имени других серверов.
- Внесены изменения в работу функции PlayerPlaySound. Теперь ID 0 может использоваться для отключения фонового звука в интерьере 0 (шум ветра), а ID 1 - для остановки текущего звука и/или возвращения фонового звука. Кроме того, теперь работает множество других звуков, чей ID меньше 1000.
Пример использования новых возможностей PlayerPlaySound: http://forum.sa-mp.com/files/testing/psTest1a.mp4
Обновление 0.3.7 R3 (клиент)
- Устранена проблема с масштабированием радара на широкооэкранных разрешениях, теперь радар не должен отрисовываться в форме овала.
Исправление можно отключить с помощью опции nohudscale=1 в sa-mp.cfg или клиентской команды /hudscalefix- Исправлен баг со звуком ID 0 в PlayerPlaySound, появившийся в 0.3.7-R2.
- Теперь актёры снова могут поворачиваться.
- В таких функциях, как InterpolateCameraPos, исправлена проблема, возникавшая из-за переполнения игрового таймера.
- Больше проверок на неправильные данные на стороне клиента (обновление незанятого транспорта, прицеливание персонажа вверх/вниз).
- (Не указано на оф. форуме) Исправлен баг с прозрачностью при использовании TextDrawBoxColor.
Обновление 0.3.7 R3-1 (клиент)
- Исправлен баг с кривым отображением шкалы брони на широкоэкранных разрешениях после использования /hudscalefix.
Источник: forum.sa-mp.com
Перевод и дополнение: Daniel_Cortez
Специально для Pro-Pawn.ruКопирование данной статьи на других ресурсах без разрешения авторов запрещено!