SaineD
Компетентный
Этот плагин потоки объектов, пикапов, контрольно-пропускные пункты, расы контрольно-пропускных пунктов, карта значки, этикетки и 3D текст в определяемых пользователем клещей сервера. Основные области обнаружения также включен. Потому что он полностью написан на C + +, большая часть накладных расходов из пешки избежать. Это ленты, как результат, достаточно немного быстрее, чем любой другой реализации имеющихся в настоящее время в залоге.
Изменений
v2.5.2:
- Исправлены некоторые незначительные ошибки
- Добавлена поддержка стилей значок карты в 0.3c
См. readme.txt в серверный пакет для полного изменений.
Настройки:
Обновления:
Манипуляция данных:
Разное:
Объекты:
Пикапы:
Контрольно-пропускные пункты(Checkpoints):
Race Checkpoints:
карты и иконки:
3D Text Labels:
Области:
Отзывы:
Definitions
Enumerator
Инструкции
Во-первых, создайте папку, названную плагинами в Вашем справочнике сервера, если он уже не существует. Место streamer.dll в этом, если Вы используете Windows, или streamer.so, если Вы используете Linux.
Добавьте следующую линию к server.cfg так, чтобы плагин загрузил в следующий раз запуски сервера:
Windows:
Linux:
Затем, поместите это в любой filterscript или gamemode (это могла бы быть хорошая идея поместить это в Ваш gamemode так или иначе, так как filterscripts может иногда находиться в противоречии друг с другом):
Это - это. Теперь просто добавьте уроженцев плагина и отзывы к Вашему подлиннику. Будьте очень осторожны и смотрите на список выше, чтобы гарантировать, что Вы используете их правильно — просто не переименовывают все в Вашем подлиннике!
Общие сведения
- Неплатеж tickrate: 50
- Пункты максимума по умолчанию: ни одно (неограниченное)
- Неплатеж видимые пункты: 399 (объекты); 2048 (пикапы); 1024 (трехмерные текстовые лейблы)
- Если-1 будет определен для какого-либо из дополнительных параметров (worldid, interiorid, и playerid), то пункты будут течься для всех виртуальных миров, интерьеров, и/или игроков.
- tickrate не представляет определенного измерения времени и изменяется в зависимости от вычислительной мощности сервера. Если поток изделия слишком медленно, понизьте tickrate; если использование центрального процессора становится слишком высоким, поднимите tickrate.
- Если некоторые пункты не появляются, в одной области могут быть слишком многие. Ограничьте текущее расстояние, редактируя последний параметр на каждом уроженце.
- Не все типы пунктов должны течься. Если плагин только привык к объектам потока, например, то любой уроженец может быть благополучно проигнорирован.
- Будьте осторожны, когда использование текло пункты с нетекшими пунктами. Конфликты могут иногда возникать.
- Убедитесь, что все подлинники собраны с последним, включают файл. Если продукции сервера "Ошибка во время выполнения 19: 'Файл или функция не найдены'," тогда gamemode наиболее вероятно собран с включать версией файла, которая не соответствует вставной версии.
- Поскольку нет никаких пикапов за игрока, погрузка, которая течется для одного игрока, будет видима для всех других игроков также, при условии, что те игроки - все в том же самом виртуальном мире. Дополнительно, из-за параметра виртуального мира на неплатеже уроженец CreatePickup, только возможно назначить один виртуальный мир за текшую погрузку.
- Максимум 500 удостоверений личности (0-19) интерьера удостоверений личности (0-499) и 20 игрока может быть назначен за пункт.
Native Notes
- Используйте Streamer_UpdateEx, чтобы предварительно загрузить пункты прежде, чем установить положение игрока или в пункты потока под OnPlayerRequestClass.
- Используйте уроженцев манипуляции данных как это (отметьте использование определения и enum выше):
- Чтобы приспособить расстояние ничьей объекта (добавленный в МАИСОВОЙ КРУПЕ 0.3b), используйте Streamer_SetFloatData с E_STREAMER_DRAW_DISTANCE. Максимальное расстояние ничьей для объектов НЕЛОДА 300.0, и неплатеж каждого объекта тянет расстояние, 0.0.
- Чтобы приспособить стиль символа карты (добавленный в МАИСОВОЙ КРУПЕ 0.3c), используйте Streamer_SetIntData с E_STREAMER_STYLE. Действительный диапазон стилей от 0 до 3, и каждый стиль символа карты по умолчанию 0.
- Используйте Streamer_AppendArrayData и Streamer_RemoveArrayData, чтобы добавить и удалить виртуальные миры, интерьеры, и игроков к и от пунктов. Вот пример:
- Только круги и сферы могут использоваться с AttachDynamicAreaToPlayer и AttachDynamicAreaToVehicle.
Grid Notes
- Используйте Streamer_CellDistance, чтобы приспособить область, вокруг которой плагин проверяет на соседние клетки. Используйте Streamer_CellSize, чтобы приспособить размер каждой клетки (эти уроженцы восстанавливают сетку, так что используйте их только когда необходимо).
- Оптимальное расстояние клетки автоматически вычислено всякий раз, когда Streamer_CellSize используется. Формула для расстояния клетки - просто 1.5 раза размер клетки. Если Вы хотите определить свое собственное расстояние клетки, используйте Streamer_CellDistance немедленно позже.
- Размер клетки по умолчанию 300.0, и расстояние клетки по умолчанию 450.0. (Отметьте, что расстояние клетки вычислено, используя ту же самую формулу выше.)
- Есть глобальная клетка, которая содержит все пункты с текущими расстояниями, больше чем текущее расстояние клетки. Это должно гарантировать, что пункты, которые должны быть видимыми от любого пункта на карте (символы карты, например) не связаны ни с какой клеткой, которая является слишком далеко от игрока. Рекомендуется, однако, ограничить число пунктов в глобальной клетке, потому что они не извлекают выгоду из пространственной индексации. Чем больше пунктов в этой клетке, тем менее эффективный процесс вытекания станет, так только помещенные пункты здесь, которые должны быть видимыми от очень далеко. (Например, контрольно-пропускной пункт с текущим расстоянием 1000.0, в то время как текущее расстояние клетки 450.0, будет помещен в глобальную клетку.)
Скачать можно с офф сайта
автор:Incognito
переводил статью: Jonny_Elfron
тему закрываю...от флуда
Изменений
v2.5.2:
- Исправлены некоторые незначительные ошибки
- Добавлена поддержка стилей значок карты в 0.3c
См. readme.txt в серверный пакет для полного изменений.
Настройки:
PHP:
native Streamer_TickRate(rate);
native Streamer_MaxItems(type, items);
native Streamer_VisibleItems(type, items);
native Streamer_CellDistance(Float:distance);
native Streamer_CellSize(Float:size);
PHP:
native Streamer_Update(playerid);
native Streamer_UpdateEx(playerid, Float:x, Float:y, Float:z);
PHP:
native Streamer_GetFloatData(type, {Text3D,_}:id, data, &Float:result);
native Streamer_SetFloatData(type, {Text3D,_}:id, data, Float:value);
native Streamer_GetIntData(type, {Text3D,_}:id, data);
native Streamer_SetIntData(type, {Text3D,_}:id, data, value);
native Streamer_IsInArrayData(type, {Text3D,_}:id, data, value);
native Streamer_AppendArrayData(type, {Text3D,_}:id, data, value);
native Streamer_RemoveArrayData(type, {Text3D,_}:id, data, value);
native Streamer_GetUpperBound(type);
PHP:
native Streamer_IsItemVisible(playerid, type, {Text3D,_}:id);
native Streamer_DestroyAllVisibleItems(playerid, type);
native Streamer_CountVisibleItems(playerid, type);
PHP:
native CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 200.0);
native DestroyDynamicObject(objectid);
native IsValidDynamicObject(objectid);
native SetDynamicObjectPos(objectid, Float:x, Float:y, Float:z);
native GetDynamicObjectPos(objectid, &Float:x, &Float:y, &Float:z);
native SetDynamicObjectRot(objectid, Float:rx, Float:ry, Float:rz);
native GetDynamicObjectRot(objectid, &Float:rx, &Float:ry, &Float:rz);
native MoveDynamicObject(objectid, Float:x, Float:y, Float:z, Float:speed);
native StopDynamicObject(objectid);
native DestroyAllDynamicObjects();
native CountDynamicObjects();
PHP:
native CreateDynamicPickup(modelid, type, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
native DestroyDynamicPickup(pickupid);
native IsValidDynamicPickup(pickupid);
native DestroyAllDynamicPickups();
native CountDynamicPickups();
PHP:
native CreateDynamicCP(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
native DestroyDynamicCP(checkpointid);
native IsValidDynamicCP(checkpointid);
native TogglePlayerDynamicCP(playerid, checkpointid, toggle);
native TogglePlayerAllDynamicCPs(playerid, toggle);
native IsPlayerInDynamicCP(playerid, checkpointid);
native DestroyAllDynamicCPs();
native CountDynamicCPs();
PHP:
native CreateDynamicRaceCP(type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
native DestroyDynamicRaceCP(checkpointid);
native IsValidDynamicRaceCP(checkpointid);
native TogglePlayerDynamicRaceCP(playerid, checkpointid, toggle);
native TogglePlayerAllDynamicRaceCPs(playerid, toggle);
native IsPlayerInDynamicRaceCP(playerid, checkpointid);
native DestroyAllDynamicRaceCPs();
native CountDynamicRaceCPs();
PHP:
native CreateDynamicMapIcon(Float:x, Float:y, Float:z, type, color, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
native DestroyDynamicMapIcon(iconid);
native IsValidDynamicMapIcon(iconid);
native DestroyAllDynamicMapIcons();
native CountDynamicMapIcons();
PHP:
native Text3D:CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
native DestroyDynamic3DTextLabel(Text3D:id);
native IsValidDynamic3DTextLabel(Text3D:id);
native UpdateDynamic3DTextLabelText(Text3D:id, color, const text[]);
native DestroyAllDynamic3DTextLabels();
native CountDynamic3DTextLabels();
PHP:
native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicSphere(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicCube(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worldid = -1, interiorid = -1, playerid = -1);
native DestroyDynamicArea(areaid);
native IsValidDynamicArea(areaid);
native TogglePlayerDynamicArea(playerid, areaid, toggle);
native TogglePlayerAllDynamicAreas(playerid, toggle);
native IsPlayerInDynamicArea(playerid, areaid);
native AttachDynamicAreaToPlayer(areaid, playerid);
native AttachDynamicAreaToVehicle(areaid, vehicleid);
native DestroyAllDynamicAreas();
native CountDynamicAreas();
PHP:
forward OnDynamicObjectMoved(objectid);
forward OnPlayerPickUpDynamicPickup(playerid, pickupid);
forward OnPlayerEnterDynamicCP(playerid, checkpointid);
forward OnPlayerLeaveDynamicCP(playerid, checkpointid);
forward OnPlayerEnterDynamicRaceCP(playerid, checkpointid);
forward OnPlayerLeaveDynamicRaceCP(playerid, checkpointid);
forward OnPlayerEnterDynamicArea(playerid, areaid);
forward OnPlayerLeaveDynamicArea(playerid, areaid);
PHP:
#define STREAMER_TYPE_OBJECT (0)
#define STREAMER_TYPE_PICKUP (1)
#define STREAMER_TYPE_CP (2)
#define STREAMER_TYPE_RACE_CP (3)
#define STREAMER_TYPE_MAP_ICON (4)
#define STREAMER_TYPE_3D_TEXT_LABEL (5)
#define STREAMER_TYPE_AREA (6)
PHP:
enum
{
E_STREAMER_ATTACHED_PLAYER,
E_STREAMER_ATTACHED_VEHICLE,
E_STREAMER_COLOR,
E_STREAMER_DISTANCE,
E_STREAMER_DRAW_DISTANCE,
E_STREAMER_EXTRA_ID,
E_STREAMER_INTERIOR_ID,
E_STREAMER_MAX_X,
E_STREAMER_MAX_Y,
E_STREAMER_MAX_Z,
E_STREAMER_MIN_X,
E_STREAMER_MIN_Y,
E_STREAMER_MIN_Z,
E_STREAMER_MODEL_ID,
E_STREAMER_MOVE_SPEED,
E_STREAMER_MOVE_X,
E_STREAMER_MOVE_Y,
E_STREAMER_MOVE_Z,
E_STREAMER_NEXT_X,
E_STREAMER_NEXT_Y,
E_STREAMER_NEXT_Z,
E_STREAMER_PLAYER_ID,
E_STREAMER_R_X,
E_STREAMER_R_Y,
E_STREAMER_R_Z,
E_STREAMER_SIZE,
E_STREAMER_STYLE,
E_STREAMER_TEST_LOS,
E_STREAMER_TYPE,
E_STREAMER_WORLD_ID,
E_STREAMER_X,
E_STREAMER_Y,
E_STREAMER_Z
}
Во-первых, создайте папку, названную плагинами в Вашем справочнике сервера, если он уже не существует. Место streamer.dll в этом, если Вы используете Windows, или streamer.so, если Вы используете Linux.
Добавьте следующую линию к server.cfg так, чтобы плагин загрузил в следующий раз запуски сервера:
Windows:
PHP:
plugins streamer
PHP:
plugins streamer.so
PHP:
#include <streamer>
Общие сведения
- Неплатеж tickrate: 50
- Пункты максимума по умолчанию: ни одно (неограниченное)
- Неплатеж видимые пункты: 399 (объекты); 2048 (пикапы); 1024 (трехмерные текстовые лейблы)
- Если-1 будет определен для какого-либо из дополнительных параметров (worldid, interiorid, и playerid), то пункты будут течься для всех виртуальных миров, интерьеров, и/или игроков.
- tickrate не представляет определенного измерения времени и изменяется в зависимости от вычислительной мощности сервера. Если поток изделия слишком медленно, понизьте tickrate; если использование центрального процессора становится слишком высоким, поднимите tickrate.
- Если некоторые пункты не появляются, в одной области могут быть слишком многие. Ограничьте текущее расстояние, редактируя последний параметр на каждом уроженце.
- Не все типы пунктов должны течься. Если плагин только привык к объектам потока, например, то любой уроженец может быть благополучно проигнорирован.
- Будьте осторожны, когда использование текло пункты с нетекшими пунктами. Конфликты могут иногда возникать.
- Убедитесь, что все подлинники собраны с последним, включают файл. Если продукции сервера "Ошибка во время выполнения 19: 'Файл или функция не найдены'," тогда gamemode наиболее вероятно собран с включать версией файла, которая не соответствует вставной версии.
- Поскольку нет никаких пикапов за игрока, погрузка, которая течется для одного игрока, будет видима для всех других игроков также, при условии, что те игроки - все в том же самом виртуальном мире. Дополнительно, из-за параметра виртуального мира на неплатеже уроженец CreatePickup, только возможно назначить один виртуальный мир за текшую погрузку.
- Максимум 500 удостоверений личности (0-19) интерьера удостоверений личности (0-499) и 20 игрока может быть назначен за пункт.
Native Notes
- Используйте Streamer_UpdateEx, чтобы предварительно загрузить пункты прежде, чем установить положение игрока или в пункты потока под OnPlayerRequestClass.
- Используйте уроженцев манипуляции данных как это (отметьте использование определения и enum выше):
PHP:
Streamer_SetIntData(STREAMER_TYPE_OBJECT, gObject, E_STREAMER_MODEL_ID, 1225);
- Чтобы приспособить стиль символа карты (добавленный в МАИСОВОЙ КРУПЕ 0.3c), используйте Streamer_SetIntData с E_STREAMER_STYLE. Действительный диапазон стилей от 0 до 3, и каждый стиль символа карты по умолчанию 0.
- Используйте Streamer_AppendArrayData и Streamer_RemoveArrayData, чтобы добавить и удалить виртуальные миры, интерьеры, и игроков к и от пунктов. Вот пример:
PHP:
Streamer_AppendArrayData(STREAMER_TYPE_OBJECT, gObject, E_STREAMER_PLAYER_ID, playerid);
Grid Notes
- Используйте Streamer_CellDistance, чтобы приспособить область, вокруг которой плагин проверяет на соседние клетки. Используйте Streamer_CellSize, чтобы приспособить размер каждой клетки (эти уроженцы восстанавливают сетку, так что используйте их только когда необходимо).
- Оптимальное расстояние клетки автоматически вычислено всякий раз, когда Streamer_CellSize используется. Формула для расстояния клетки - просто 1.5 раза размер клетки. Если Вы хотите определить свое собственное расстояние клетки, используйте Streamer_CellDistance немедленно позже.
- Размер клетки по умолчанию 300.0, и расстояние клетки по умолчанию 450.0. (Отметьте, что расстояние клетки вычислено, используя ту же самую формулу выше.)
- Есть глобальная клетка, которая содержит все пункты с текущими расстояниями, больше чем текущее расстояние клетки. Это должно гарантировать, что пункты, которые должны быть видимыми от любого пункта на карте (символы карты, например) не связаны ни с какой клеткой, которая является слишком далеко от игрока. Рекомендуется, однако, ограничить число пунктов в глобальной клетке, потому что они не извлекают выгоду из пространственной индексации. Чем больше пунктов в этой клетке, тем менее эффективный процесс вытекания станет, так только помещенные пункты здесь, которые должны быть видимыми от очень далеко. (Например, контрольно-пропускной пункт с текущим расстоянием 1000.0, в то время как текущее расстояние клетки 450.0, будет помещен в глобальную клетку.)
Скачать можно с офф сайта
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
(Windows and Linux)
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
(Cross-Compatible)автор:Incognito
переводил статью: Jonny_Elfron
тему закрываю...от флуда
Последнее редактирование модератором:
