LiOn4uK | Дата: Воскресенье, 20.02.2011, 13:32 | Сообщение # 1 |
.::Offline::.
Гангстер
Сообщений: 210
[ 94 ]
Награды: 19
Статус
отсутствует
| Streamer Plugin v2.5.1 Этот плагин потоки объектов, пикапов, контрольно-пропускные пункты, расы контрольно-пропускных пунктов, карта значки, этикетки и 3D текст в определяемых пользователем клещей сервера. Основные области обнаружения также включен. Потому что он полностью написан на C + +, большая часть накладных расходов из пешки избежать. Это ленты, как результат, достаточно немного быстрее, чем любой другой реализации имеющихся в настоящее время в залоге. Изменений v2.5.1: - Сделано границы ячейки смежные - Улучшена скорость пространственных запросов - Исправлена видимость элементов с большими расстояниями потокового - Добавлена туземцев для крепления области для игроков и транспортных средств - Реализован механизм для добавления и удаления нескольких виртуальных миров, интерьеры, и игроков в и из пунктов - Обновление: Исправлена ошибка с проверкой границ массива и сделал прилагается областях и 3D текстовых меток потока, когда их позиции не могут быть восстановлены См. readme.txt в серверный пакет для полного изменений. Настройки: Code native Streamer_TickRate(rate); native Streamer_MaxItems(type, items); native Streamer_VisibleItems(type, items); native Streamer_CellDistance(Float:distance); native Streamer_CellSize(Float:size); Обновления: Code native Streamer_Update(playerid); native Streamer_UpdateEx(playerid, Float:x, Float:y, Float:z); Манипулирование данными: Code 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); Разное: Code native Streamer_IsItemVisible(playerid, type, {Text3D,_}:id); native Streamer_DestroyAllVisibleItems(playerid, type); native Streamer_CountVisibleItems(playerid, type); Объекты: Code 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(); Пикапы: Code 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(); Чекпоинты: Code 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(); Гоночные чекпоинты: Code 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(); Иконки на карте: Code 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(); 3D тексты: Code 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(); Области: Code 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(); Обратные вызовы Code 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); Определения Code #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) Счетчик Code enum { E_STREAMER_ATTACHED_PLAYER, E_STREAMER_ATTACHED_VEHICLE, E_STREAMER_COLOR, E _STR EAME R_DI STAN CE, E _STRE AMER_DRAW_DISTANCE, E_STREAMER_EXTRA_ID, E_STREAMER_INTERIOR_ID, E_STREAMER_MAX_X, E _STR EAME R_MA X_Y, E _ST REAME R_MAX_Z, E_STREAMER_MIN_X, E_STREAMER_MIN_Y, E_STREAMER_MIN_Z, E_STREAMER_MODEL_ID, E _STRE AMER_MOVE_ SPEED , E _STREAMER_MOVE_X, E_STREAMER_MOVE_Y, E_STREAMER_MOVE_Z, E_STREAMER_NEXT_X, E_STREAME R_NE XT_Y , E _STRE AMER_ NEXT_ Z, E_STREAMER_PLAYER_ID, E_STREAMER_R_X, E_STREAMER_R_Y, E_STREAMER_R_Z, E _ STREA MER_S IZE, E _ STREAM ER_TES T_LOS, E_STREAMER_TYPE, E_STREAMER_WORLD_ID, E_STREAMER_X, E_STREAMER_Y, E _ STREA MER_Z } Инструкция Во-первых, создать папку с именем плагинов на сервере каталог, если он еще не существует. Место streamer.dll в ней, если вы используете Windows, или streamer.so если вы используете Linux. Добавьте следующую строку в server.cfg так что плагин будет загружать следующем запуске сервера: Windows: Linux: Далее, сделать это в любой фильтрскрипт или режима игры (это может быть хорошей идеей, чтобы положить его в режим игры любом случае, поскольку filterscripts иногда противоречат друг другу): Вот и все. Теперь просто добавить плагина туземцев и обратные вызовы к вашему сценарию. Будьте очень осторожны, и посмотреть на список выше, чтобы убедиться, что вы используете их правильно-не просто переименовать все в сценарии! Общие замечания - По умолчанию частота тиков: 50 - Предметы по умолчанию максимальное: нет (без ограничений) - По умолчанию видимых элементов: 399 (объектов); 2048 (пикапы); 1024 (3D наклейки текст) - Если -1 указан для любого из дополнительных параметров (worldid, interiorid, и PlayerID), пунктов будет транслироваться для всех виртуальных миров, интерьеры, и / или игроков. - Частоты тиков не представляют каких-либо конкретных измерений времени и изменяется в зависимости от вычислительной мощности сервера. Если элементы потока слишком медленно, снижение частоты тиков, если загрузка процессора становится слишком высокой, повышение частоты тиков. - Если некоторые элементы не отображаются, может быть слишком много в одной области. Предельные расстояния потокового редактирования последнего параметра на каждом родной. - Не все типы элементов должны быть потоковым. Если плагин используется только для потока объекты, например, то любой другой родной может быть проигнорировано. - Будьте осторожны при использовании потоковых элементов с не-потоковые элементы. Конфликты могут иногда возникать. - Убедитесь, что все сценарии компилируются с последними включать файл. Если сервер выводит "Ошибка выполнения 19:" Файл или функция не найдена "," затем режим игры, скорее всего, скомпилированные с включают версию файла, который не совпадает с версией плагина. - Потому что Есть не за-плеер пикапов, пикап, который потоковом для одного игрока будет виден для всех остальных игроков, а также при условии, что те игроки, все в том же виртуальном мире. Кроме того, из-за виртуального параметра мире по умолчанию CreatePickup родной, это только возможно, чтобы присвоить один виртуальный мир в потоковом пикап. - Максимум 500 игроков идентификаторы (0-499) и 20 интерьера идентификаторы (0-19) могут быть назначены за единицу. Родные заметки - Использование Streamer_UpdateEx для предварительной загрузки элементов перед установкой позицию игрока или поток пунктов под OnPlayerRequestClass. - Использование данных манипуляций туземцев, как это (обратите внимание на использование определяет и перечисление выше): Code Streamer_SetIntData(STREAMER_TYPE_OBJECT, gObject, E_STREAMER_MODEL_ID, 1225); - Для настройки обратить объекта расстояние (добавлено в SA-MP 0.3b), использование Streamer_SetFloatData с E_STREAMER_DRAW_DISTANCE. Максимальное расстояние ничья 300,0. умолчанию привлечь каждого объекта расстояние 0,0. - Использование Streamer_AppendArrayData и Streamer_RemoveArrayData добавлять и удалять виртуальные миры, интерьеры, и игроков в и из пунктов. Вот пример: Code Streamer_AppendArrayData(STREAMER_TYPE_OBJECT, gObject, E_STREAMER_PLAYER_ID, playerid); - Только кругов и сферы могут быть использованы с AttachDynamicAreaToPlayer и AttachDynamicAreaToVehicle. - Использование Streamer_CellDistance настроить область вокруг которого плагин проверяет близлежащие клетки. Используйте Streamer_CellSize регулировать размер каждой ячейки (эти туземцы восстановить сетки, так что используйте их только при необходимости). - Оптимальное расстояние ячейки автоматически рассчитывается всякий раз, когда Streamer_CellSize используется. Формула для ячейки расстояние просто в 1,5 раза размера ячейки. Если вы хотите задать свой собственный расстояние ячейки, использовать Streamer_CellDistance сразу же после этого. - По умолчанию размер ячейки 300,0, и расстояние по умолчанию ячейки 450,0. (Обратите внимание, что ячейки расстояние рассчитывается по той же формуле выше.) - Существует глобальная ячейку, которая содержит все элементы с потоковыми расстояния больше, чем текущее расстояние ячейки. Это делается для того, чтобы пункты, которые должны быть видимы из любой точки на карте (карта значки, например) не привязаны к любой ячейке, что находится слишком далеко от игрока. Рекомендуется, однако, чтобы ограничить количество элементов в глобальной ячейки, потому что они не пользуются пространственной индексации. Больше деталей в этой ячейке, менее эффективные потокового процесса станет, так что только положить пунктов здесь, которые должны быть видны очень далеко. (Например, контрольно-пропускной пункт с потоковым расстоянии 1000,0 в то время как текущее расстояние ячейки 450,0 будет введен в глобальную ячейку.) Скачать Server Plugin(Windows and Linux)(Mirror) Server Code(Cross-Compatible)(Mirror) Перевёл : Dima_Tkach Автор : Incognito Источник : ТыК
|
|
| |