Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7

Тема: SA:MP 0.3z R2

  1. #1
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,152
    Репутация:
    2533 ±

    SA:MP 0.3z R2


    Итак, спустя год после предыдущей версии, вышла новая версия SA:MP, 0.3z.

    Что нового:
    • R1:
      • Опциональный режим компенсации пинга увеличивает точность стрельбы.
      • Новые колбэки Pawn для большего контроля над оружием игроков и транспортом.
      • Функции статистики сетевого протокола упрощают администрирование серверов.
      • Множество мелких обновлений безопасности для клиента и сервера.

      Подробно:
        Открыть/закрыть

      SA:MP 0.3z RC5-2
      • Исправлено: Игрок с самым большим ID не отсылал информацию об обновлении незанятого транспорта.


      SA:MP 0.3z RC5
      • В браузере серверов исправлена ошибка выхода за пределы диапазона при добавлении сервера с неправильным портом.
      • Добавлены некоторые внутренние оптимизации в клиенте, которые должны увеличить производительность.
      • Исправлена проблема с недоступностью PVar'ов в OnPlayerDisconnect во время рестарта сервера.
      • Добавлена функция GetServerTickRate(), возвращающая количество серверных тиков в секунду (наподобие FPS).
      • Исправлена проблема с видимостью 3D-текстов и никаов игроков сквозь серверные объекты.

      • Изменения в поведении и параметрах колбэка OnUnoccupiedVehicleUpdate:
        В предыдущих версиях клиенты могли посылать данные об обновлении транспорта, который не был занят другими игроками, при этом у сервера не было возможности отменить эти обновления.
        Теперь скрипт будет оповещаться о подобных обновлениях до того, как транспорт будет обновлён на сервере. GetVehiclePos будет возвращать текущие координаты вместо новых.
        В новых параметрах будут передаваться координаты транспорта, сообщённые игроком. Теперь скрипт может вернуть 0, чтобы отменить обновление транспорта, и 1, чтобы позволить обновление.

        Все скрипты, использующие колбэк OnUnoccupiedVehicleUpdate должны быть обновлены и перекомпилированы для работы в 0.3z.
        PHP код:
        forward OnUnoccupiedVehicleUpdate(vehicleidplayeridpassenger_seatFloat:new_xFloat:new_yFloat:new_z); 
      • В server.cfg добавлена опция 'lagcompmode'.
        Опция 'shotcompmode' была заменена на 'lagcompmode', чтобы использоваться для настройки компенсации пинга в будущих версиях SA:MP.
        Код:
        lagcompmode 0 ; выкл. компенсацию пинга
        lagcompmode 1 ; (по умолчанию) вкл. компенсацию пинга
        lagcompmode 2 ; вкл. компенсацию пинга только для обновления позиций.
      • Теперь браузер серверов будет показывать режим 'lagcomp' в свойствах сервера.
      • Если компенсация пинга выключена, будет действовать старый режим стрельбы по пингу (без вызовов OnPlayerWeaponShot и т.п.).


      SA:MP 0.3z RC4
      • Исправлена проблема с промахами при выстрелах на большом расстоянии.
      • Проверки тега LoS теперь применяются и к серверным объектам.
      • OnPlayerGiveDamage теперь вызывается и у NPC-ботов.
      • Добавлена функция GetPlayerLastShotVectors для получения расширенной информации о выстрелах.
        PHP код:
        native GetPlayerLastShotVectors(playerid, &Float:fOriginX, &Float:fOriginY, &Float:fOriginZ, &Float:fHitPosX, &Float:fHitPosY, &Float:fHitPosZ); 
      • Добавлена настройка режима стрельбы (shotcompmode 2 в server.cfg), позволяющая использовать камеру для наведения и авто-прицеливание с помощью геймпада.
      • Исправлено: По игрокам нельзя было попасть из оружия, когда они ехали на крыше машины.
      • Добавлена расширенная информация о камере игрока, такая как соотношение сторон экрана и уровень увеличения (для снайперской винтовки).
        PHP код:
        native Float:GetPlayerCameraAspectRatio(playerid);
        native Float:GetPlayerCameraZoom(playerid); 
      • Добавлены функции для получения расширенной информации о сетевом протоколе. Теперь в Pawn можно будет получить эту информацию без парсинга строки из GetPlayerNetworkStats
        PHP код:
        native NetStats_GetConnectedTime(playerid);
        native NetStats_MessagesReceived(playerid);
        native NetStats_BytesReceived(playerid);
        native NetStats_MessagesSent(playerid);
        native NetStats_BytesSent(playerid);
        native NetStats_MessagesRecvPerSecond(playerid);
        native Float:NetStats_PacketLossPercent(playerid);
        native NetStats_ConnectionStatus(playerid);
        native NetStats_GetIpPort(playeridip_port[], ip_port_len); 


      SA-MP 0.3z RC3
      • Исправлено: Включение автоприцеливания при нажатии Q и E.
      • Исправлено: Снаряды от снайперской винтовки не работали за пределами карты.
      • Доп. данные на стороне сервера для обнаружения модифицированных данных о выстреле.
      • Добавлена функция VectorSize.


      SA-MP 0.3z RC2
      • Удалена возможность автоприцеливания с помощью Joypad
      • Добавлена константа BULLET_HIT_PLAYER_OBJECT (4)
      • Исправлена проблема с эффектами дыма и отлетающих гильз от оружия.


      SA-MP 0.3z RC1
      • Обновлена синхронизация пуль для огнестрельного оружия

        Выстрелы игроков теперь рассчитываются с учётом пинга, поэтому вы можете стрелять прямо по скину вместо прицеливания по пингу.
        Сервер может получить полную информацию о пулях. Теперь можно узнать, попала ли пуля по игроку, машине или объекту.

        PHP код:
        #define BULLET_HIT_TYPE_NONE            0
        #define BULLET_HIT_TYPE_PLAYER          1
        #define BULLET_HIT_TYPE_VEHICLE         2
        #define BULLET_HIT_TYPE_OBJECT          3
        #define BULLET_HIT_PLAYER_OBJECT        4 
        Добавлена новая функция OnPlayerWeaponShot, вызываемая сервером при каждом выстреле:
        PHP код:
        forward OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ); 
        Автовызываемые функции OnPlayerGiveDamage и OnPlayerTakeDamage теперь получают ID части тела, по которой произведено попадание.
        Если в вашем скрипте используются эти функции, вам понадобится обновить их.
      • В файл server.cfg добавлен параметр 'messageholelimit' для предотвращения DoS-атак.
         Описание

        Это переменная для протокола RakNet (уязвимости в котором были использованы для недавних атак).

        Когда клиент/игрок отсылает на сервер поддельные пакеты, сервер думает, что во время доставки было потеряно много пакетов/сообщений.

        Протокол попытается восстановить потерянные пакеты: зарезервирует под них место в памяти и будет ждать, пока клиент не пришлёт эти пакеты заново.
        На весь этот процесс уходит много ресурсов и при большом количестве потерь может привести к лагам и крашу сервера.

        На сервере нет чётких ограничений в количестве потерянных сообщений от игрока. Каждый потерянный блок пакетов можно было считать уязвимостью. Были попытки исправить это в 0.3x R2, был поставлен лимит в 1000 и иногда, если у игроков были проблемы с интернетом и терялось много пакетов, сервер по ошибке принимал это за попытку DoS-атаки.

        Теперь можно вручную указать максимальное кол-во потерянных пакетов. Чаще всего значения по умолчанию уже достаточно и владельцам серверов не стоит беспокоиться об этом.

      • Мод rivershell обновлён до 2-й версии.




    • R1-2:
      • Исправлено обновление оружия у игроков, находящихся в транспорте.


    • R2-1:
      • Исправлена уязвимость в сетевом протоколе, позволявшая с помощью специальных утилит вызывать зависание сервера и потерю соединения с игроками.
      • В server.cfg добавлены переменные "messageslimit", "ackslimit" и "playertimeout". Каждая из них представляет собой ограничение, после превышения которых сервер разрывает соединение с игроком.
        messageslimit (по умолч.: 500) - макс. количество сообщений в секунду, посылаемых от сервера к игроку.
        ackslimit (по умолч.: 1000) - макс. количество сообщений в секунду, посылаемых от игрока к серверу.
        playertimeout (по умолч.: 10000) - макс. время тайм-аута (в миллисекундах), во время которого клиент может не посылать серверу ни одного пакета.
        При разрыве соединения в результате превышения лимитов messageslimit и ackslimit выводятся следующие сообщения:
        Код:
        Warning: client exceeded 'messageslimit' (1) <IP>:<порт> (<кол-во>) Limit: 500/sec
        Warning: client exceeded 'ackslimit' <IP>:<порт> (<кол-во>) Limit: 1000/sec
        При частых ложных срабатываниях рекомендуется увеличить в server.cfg значения указанных в сообщениях лимитов.


    • R2-2:
      • Значение ackslimit в server.cfg по умолчанию увеличено с 1000 до 3000.
      • Добавлен колбэк OnIncomingConnection, в которую передаются IP-адрес и порт подключившегося игрока.
        PHP код:
        forward OnIncomingConnection(playeridip_address[], port); 
      • Добавлены новые функции:
        PHP код:
        // блокирует подключения с указанного IP-адреса, допускается указание подсети
        native BlockIpAddress(ip_address[], timems);

        // удаляет IP из списка блокировки
        native UnBlockIpAddress(ip_address[]);

        // отсылает указанному игроку сообщение об убийстве
        // (полезно, если нужно, чтобы не все игроки видели убийства в киллчате)
        native SendDeathMessageToPlayer(playeridkillerkilleeweapon);

        // создаёт взрыв, который виден только указанному игроку
        native CreateExplosionForPlayer(playeridFloat:XFloat:YFloat:ZtypeFloat:Radius); 
      • В логи сервера больше не выводятся строки "Packet Modified".
      • Также в логи больше не выводятся строки "[death]", "[kill]" и "[nick]", если значение параметра "chatlogging" в server.cfg равно 0.


    Скачать:

    Источник: http://forum.sa-mp.com/showthread.php?t=494414
    Перевод: Daniel_Cortez
    Специально для Pro-Pawn.ru
    Копирование данной статьи на других ресурсах без разрешения авторов запрещено!
    Последний раз редактировалось Daniel_Cortez; 18.04.2014 в 20:16. Причина: updated description to 0.3z R2-2
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  2. 8 пользователя(ей) сказали cпасибо:
    Blood (13.02.2014) Johny (13.02.2014) L0ndl3m (13.02.2014) Mr.DeViLsS (17.04.2014) Osetin (13.02.2014) Salvacore (13.02.2014) semen7907 (13.02.2014) ^_^ (13.02.2014)
  3. #2
    Аватар для ^_^
    Übermensch

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    157
    Репутация:
    244 ±
    Наконец-то...
    Надеюсь, кроме спрятанных функции для защиты сервера, последний пункт включает в себя и что-то полезное...

  4. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,476
    Репутация:
    1934 ±
    Цитата Сообщение от ^_^ Посмотреть сообщение
    Наконец-то...
    Надеюсь, кроме спрятанных функции для защиты сервера, последний пункт включает в себя и что-то полезное...
    Или же ещё десяток дыр, с помощью которых будут класть сервера :D
    Но возможность отследить выстрелы радует. Развязывает руки. Может даже вернусь в скриптинг и доделаю TDM мод, который начал писать где-то год назад :D
    Связаться со мной в VK можно через личные сообщения этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #4
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Жду R2.
    Последний раз редактировалось Salvacore; 13.02.2014 в 21:18.

  6. #5
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1092 ±
    Наконец-то вышла...уже заметил что уже начали сервера переходить на 0.3z,Advance уже перешли!

  7. Пользователь сказал cпасибо:
    Sam_Coder (15.02.2014)
  8. #6
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,152
    Репутация:
    2533 ±
    Описание обновлено до 0.3z R2-2.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  9. 2 пользователя(ей) сказали cпасибо:
    DeimoS (19.04.2014) L0ndl3m (18.04.2014)
  10. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,476
    Репутация:
    1934 ±
    Обновления хоть и не большие, но приятные. Уверен, что эти функции не были сделаны за день и это всё наработки для 0.4a, которые пришлось выпустить из-за крашеров (хотя, скорее, надеюсь, а не уверен). Если они и дальше поведут разработку в этом направлении, 0.4а обещает отрыть нам большие возможности по индивидуальной настройке и контролю за игроком
    Связаться со мной в VK можно через личные сообщения этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •