Урок streamer plugin v2

Streamer Plugin v2.6.1

Цей плагін потоків об'єктів, пікапів, контрольно-пропускні пункти, раси контрольно-пропускних пунктів, карти значки і 3D текстові мітки на призначених для користувача кліщів сервера. Основні зони виявлення також включені. Тому що він повністю написаний на C + +, велика частина накладних витрат від пішаки уникнути. Цей стример, як результат, зовсім небагато швидше, ніж будь-яка інша реалізація наявних в даний час в заставі. змін v2.6.1:

Додано AttachCameraToDynamicObject
Додано AttachDynamicObjectToVehicle
Додано EditDynamicObject
Додано OnPlayerEditDynamicObject
Додано OnPlayerSelectDynamicObject
Запис GetDynamicObjectMaterial і SetDynamicObjectMaterial
Додано GetDynamicObjectMaterialText і SetDynamicObjectMaterialText
Виправлена. IsPlayerInDynamicRaceCP
Вилучений IsPlayerNPC чеки від включення файл
Додано Streamer_ToggleItemUpdate

Фіксація повідомлень журналу для нових змін можна знайти тут. Зверніться до changes.txt в серверний пакет для повної змін. визначення

Гонка контрольно-пропускні пункти:

Створіть директорію з ім'ям "plugins" всередині сервера каталогу, якщо він ще не існує. Помістіть файл плагіна (streamer.dll або streamer.so) всередині цього каталогу. Додайте наступний рядок в server.cfg так що плагін буде завантажений в наступний раз, сервер починає: Windows:
Віндус

У Windows streamer.inc додати в папку Pawno # 092; Include. Додати цей файл в будь-якому із сценаріїв роботи сервера:

Перекомпілюйте сценарії з будь-яким тубільців і зворотні наданих файлів включають. Запустіть сервер. загальні зауваження


За замовчуванням тик швидкості: 50
За замовчуванням максимальний елементи: немає (безстрокового)
За замовчуванням видимих ​​елементів: 500 (об'єктів); 4096 (пікапи), 1024 (3D текстові мітки)
Якщо -1 визначено для будь-якого з додаткових параметрів (worldid, interiorid, і гравцеві), пункти транслюватиметься для всіх віртуальних світів, інтер'єри, і / або гравців.
Тік швидкості не представляє ніяких конкретних вимірів часу і варіюється в залежності від обчислювальної потужності сервера. Якщо елементи потоку занадто повільно опустіть Рейт, якщо завантаження процесора стає занадто високою, підвищити швидкість тика.
Якщо якісь пункти не відображаються, може бути занадто багато в одній області. Опустіть потокового відстані за рахунок зменшення "streamdistance" параметрів на кожному рідний.
Не всі типи елементів повинні бути потоком. Якщо плагін використовується тільки для потоків об'єктів, наприклад, то будь-який інший рідний може бути проігноровано.
Будьте обережні при використанні потокових елементів з не-потокові елементи. Конфлікти можуть іноді виникати.
Тому що немає на-плеєр пікапів, пікап, який потоковому для одного гравця буде видно для всіх інших гравців, а також, за умови, що ці гравці все в тому ж віртуальному світі.
Максимум 500 гравців ID (0-499) може бути призначений кожному пункту.
Максимальна кількість видимих ​​об'єктів може бути збільшена до 999 станом на SA-MP 0.3d, хоча це і не рекомендується для всіх цих об'єктів, щоб бути в одній області через обмеження движка гри. За замовчуванням, кількість видимих ​​об'єктів встановлений в 500, щоб уникнути конфліктів.
Переконайтеся, що всі сценарії компілюються з останніми файлів включають.
рідні Примітки
Використовуйте Streamer_UpdateEx для попереднього завантаження елементів перед установкою позиції гравця або потік елементів у OnPlayerRequestClass.
Ось приклад використання даних маніпуляцій тубільців (зверніть увагу на використання визначає і перерахування вище):

Ось ще один приклад для даних, що зберігаються у вигляді масивів (віртуальні світи, інтер'єри, і гравців):

Для регулювання нічия відстань об'єкта (додано в SA-MP 0.3b), використовуйте Streamer_SetFloatData з E_STREAMER_DRAW_DISTANCE. Також можна використовувати CreateDynamicObjectEx. Максимальна відстань нічиєї для не-LOD об'єктів 300,0, а за замовчуванням нічиєї кожного об'єкта відстань 0,0.
Щоб змінити стиль карта ікони (додано в SA-MP 0.3c), використовуйте Streamer_SetIntData з E_STREAMER_STYLE. Також можна використовувати CreateDynamicMapIconEx. Дійсно стилі варіюються від 0 до 3, і кожен стиль за замовчуванням значок карти дорівнює 0.
Тільки кола і сфери можуть бути використані з тубільцями докласти області.
Для CreateDynamicPolygon і CreateDynamicPolygonEx, точки повинні бути визначені як послідовність упорядкованих пар (х 1. у 1. х 2. у 2. х п. У п). Кількість елементів в масиві має бути ділиться на два з цієї причини. Перша точка повинна бути рівною останній точці, утворюючи замкнутий контур.
Число налаштовується в Streamer_CellDistance використовується для визначення чи є елемент повинен бути поміщений в камеру для просторового метою індексації. За умовчанням встановлено значення 600,0. Якщо потокового відстань елемента (або, в разі областей, розмір елемента) перевищує клітини відстані, буде транслюватися з будь-якої точки на карті. Наприклад, якщо потоковий відстань значок карти має значення 100.0, він буде видно, тільки якщо гравець знаходиться в тій же камері, як значок карти або в сусідній клітці (якщо відстань за замовчуванням осередку 600,0 не був змінений). Однак, якщо потоковий відстань значок карти має значення 1000,0, він буде видно незалежно від того, де гравець.
Число налаштовується в Streamer_CellSize використовується для визначення розміру кожного осередку в сітці. За умовчанням встановлено значення 300,0.
Зверніть увагу, що Streamer_CellDistance і Streamer_CellSize відновити сітку кожен раз вони називаються, тому використовуйте їх тільки при необхідності. Значення за замовчуванням, також вважаються оптимальними, тому в більшості випадків, рекомендується просто залишити цих тубільців в спокої, якщо особливої ​​необхідності не виникає.
Елементи можуть бути згруповані разом, використовуючи y_groups (частина YSI бібліотеки).

продуктивність Примітки
Не рекомендується використовувати високі потокового відстань для кожного елемента. Це може істотно вплинути на продуктивність, тому що це призводить до більш елементів перевіряється при кожному оновленні. Якщо потокового відстань елемента перевищує клітини відстань (600,0 за замовчуванням), він також не приносить користі від просторової індексації, яка може привести до ще гірше продуктивність. Тільки встановити високі потокового відстані для елементів, які повинні бути видні здалеку (глобальні іконки карти, наприклад).
Додавання занадто великої кількості віртуальних світів і інтер'єр пунктів може привести до збільшення використання пам'яті і зниження працездатності. Вказівка ​​-1 (всі віртуальні світи і інтер'єрів) фактично забезпечує найкращу продуктивність, тому що вона позбавляє від необхідності здійснювати пошук, якщо цей пункт перевіряється на кожному оновленні. Зауважимо, що це не відноситься до гравців, так як тільки кінцеве кількість може бути доданий.