Streamer Plugin v2.7.1

Описание: Плагины
Модератор: SJplayer

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 24 октября 2014, 23:08

Стример для объектов, пикапов, чекпоинтов, гоночных чекпоинтов, иконок на карте и 3D текста

Обновления:
Обновления в версии 2.7.1:
- Исправлены некоторые незначительные ошибки
- Обновлена версия sampgdk

Дефайны:

Код: Выделить всё

#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)
#define STREAMER_AREA_TYPE_CIRCLE (0)
#define STREAMER_AREA_TYPE_RECTANGLE (1)
#define STREAMER_AREA_TYPE_SPHERE (2)
#define STREAMER_AREA_TYPE_CUBE (3)
#define STREAMER_AREA_TYPE_POLYGON (4)
#define STREAMER_OBJECT_TYPE_GLOBAL (0)
#define STREAMER_OBJECT_TYPE_PLAYER (1)
#define STREAMER_OBJECT_TYPE_DYNAMIC (2)   


Enum

Код: Выделить всё

enum 

    
E_STREAMER_ATTACHED_OBJECT
    
E_STREAMER_ATTACHED_PLAYER
    
E_STREAMER_ATTACHED_VEHICLE
    
E_STREAMER_ATTACH_OFFSET_X
    
E_STREAMER_ATTACH_OFFSET_Y
    
E_STREAMER_ATTACH_OFFSET_Z
    
E_STREAMER_ATTACH_R_X
    
E_STREAMER_ATTACH_R_Y
    
E_STREAMER_ATTACH_R_Z
    
E_STREAMER_ATTACH_X
    
E_STREAMER_ATTACH_Y
    
E_STREAMER_ATTACH_Z
    
E_STREAMER_COLOR
    
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_R_X
    
E_STREAMER_MOVE_R_Y
    
E_STREAMER_MOVE_R_Z
    
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_STREAM_DISTANCE
    
E_STREAMER_STYLE
    
E_STREAMER_TEST_LOS
    
E_STREAMER_TYPE
    
E_STREAMER_WORLD_ID
    
E_STREAMER_X
    
E_STREAMER_Y
    
E_STREAMER_Z


Функции:
Настройки:

Код: Выделить всё

native Streamer_GetTickRate();
native Streamer_SetTickRate(rate);
native Streamer_GetMaxItems(type);
native Streamer_SetMaxItems(typeitems);
native Streamer_GetVisibleItems(type);
native Streamer_SetVisibleItems(typeitems);
native Streamer_GetCellDistance(&Float:distance);
native Streamer_SetCellDistance(Float:distance);
native Streamer_GetCellSize(&Float:size);
native Streamer_SetCellSize(Float:size);   


Обновления:

Код: Выделить всё

native Streamer_ProcessActiveItems();
native Streamer_ToggleIdleUpdate(playeridtoggle);
native Streamer_ToggleItemUpdate(playeridtypetoggle);
native Streamer_Update(playerid);
native Streamer_UpdateEx(playeridFloat:xFloat:yFloat:zworldid = -1interiorid = -1);   


Манипуляции с данными:

Код: Выделить всё

native Streamer_GetFloatData(type, {Text3D,_}:iddata, &Float:result);
native Streamer_SetFloatData(type, {Text3D,_}:iddataFloat:value);
native Streamer_GetIntData(type, {Text3D,_}:iddata);
native Streamer_SetIntData(type, {Text3D,_}:iddatavalue);
native Streamer_GetArrayData(type, {Text3D,_}:iddatadest[], maxlength sizeof dest);
native Streamer_SetArrayData(type, {Text3D,_}:iddata, const src[], maxlength sizeof src);
native Streamer_IsInArrayData(type, {Text3D,_}:iddatavalue);
native Streamer_AppendArrayData(type, {Text3D,_}:iddatavalue);
native Streamer_RemoveArrayData(type, {Text3D,_}:iddatavalue);
native Streamer_GetUpperBound(type);   


Разное:

Код: Выделить всё

native Streamer_GetDistanceToItem(Float:xFloat:yFloat:ztype, {Text3D,_}:id, &Float:distancedimensions 3);
native Streamer_GetItemInternalID(playeridtype, {Text3D,_}:streamerid);
native Streamer_GetItemStreamerID(playeridtype, {Text3D,_}:internalid);
native Streamer_IsItemVisible(playeridtype, {Text3D,_}:id);
native Streamer_DestroyAllVisibleItems(playeridtypeserverwide 1);
native Streamer_CountVisibleItems(playeridtypeserverwide 1);
native Streamer_DestroyAllItems(typeserverwide 1);
native Streamer_CountItems(typeserverwide 1);   


Объекты:

Код: Выделить всё

native CreateDynamicObject(modelidFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rzworldid = -1interiorid = -1playerid = -1Float:streamdistance 200.0Float:drawdistance 0.0);
native DestroyDynamicObject(objectid);
native IsValidDynamicObject(objectid);
native SetDynamicObjectPos(objectidFloat:xFloat:yFloat:z);
native GetDynamicObjectPos(objectid, &Float:x, &Float:y, &Float:z);
native SetDynamicObjectRot(objectidFloat:rxFloat:ryFloat:rz);
native GetDynamicObjectRot(objectid, &Float:rx, &Float:ry, &Float:rz);
native MoveDynamicObject(objectidFloat:xFloat:yFloat:zFloat:speedFloat:rx = -1000.0Float:ry = -1000.0Float:rz = -1000.0);
native StopDynamicObject(objectid);
native IsDynamicObjectMoving(objectid);
native AttachCameraToDynamicObject(playeridobjectid);
native AttachDynamicObjectToVehicle(objectidvehicleidFloat:offsetxFloat:offsetyFloat:offsetzFloat:rxFloat:ryFloat:rz);
native EditDynamicObject(playeridobjectid);
native GetDynamicObjectMaterial(objectidmaterialindex, &modelidtxdname[], texturename[], &materialcolormaxtxdname sizeof txdnamemaxtexturename sizeof texturename);
native SetDynamicObjectMaterial(objectidmaterialindexmodelid, const txdname[], const texturename[], materialcolor 0);
native GetDynamicObjectMaterialText(objectidmaterialindextext[], &materialsizefontface[], &fontsize, &bold, &fontcolor, &backcolor, &textalignmentmaxtext sizeof textmaxfontface sizeof fontface);
native SetDynamicObjectMaterialText(objectidmaterialindex, const text[], materialsize OBJECT_MATERIAL_SIZE_256x128, const fontface[] = "Arial"fontsize 24bold 1fontcolor 0xFFFFFFFFbackcolor 0textalignment 0);   


Пикапы:

Код: Выделить всё

native CreateDynamicPickup(modelidtypeFloat:xFloat:yFloat:zworldid = -1interiorid = -1playerid = -1Float:streamdistance 100.0);
native DestroyDynamicPickup(pickupid);
native IsValidDynamicPickup(pickupid);   


Чекпоинты:

Код: Выделить всё

native CreateDynamicCP(Float:xFloat:yFloat:zFloat:sizeworldid = -1interiorid = -1playerid = -1Float:streamdistance 100.0);
native DestroyDynamicCP(checkpointid);
native IsValidDynamicCP(checkpointid);
native TogglePlayerDynamicCP(playeridcheckpointidtoggle);
native TogglePlayerAllDynamicCPs(playeridtoggle);
native IsPlayerInDynamicCP(playeridcheckpointid);
native GetPlayerVisibleDynamicCP(playerid);   


Гоночные чекпоинты:

Код: Выделить всё

native CreateDynamicRaceCP(typeFloat:xFloat:yFloat:zFloat:nextxFloat:nextyFloat:nextzFloat:sizeworldid = -1interiorid = -1playerid = -1Float:streamdistance 100.0);
native DestroyDynamicRaceCP(checkpointid);
native IsValidDynamicRaceCP(checkpointid);
native TogglePlayerDynamicRaceCP(playeridcheckpointidtoggle);
native TogglePlayerAllDynamicRaceCPs(playeridtoggle);
native IsPlayerInDynamicRaceCP(playeridcheckpointid);
native GetPlayerVisibleDynamicRaceCP(playerid);   


Иконки на карте:

Код: Выделить всё

native CreateDynamicMapIcon(Float:xFloat:yFloat:ztypecolorworldid = -1interiorid = -1playerid = -1Float:streamdistance 100.0style MAPICON_LOCAL);
native DestroyDynamicMapIcon(iconid);
native IsValidDynamicMapIcon(iconid);   


3D Тексты:

Код: Выделить всё

native Text3D:CreateDynamic3DTextLabel(const text[], colorFloat:xFloat:yFloat:zFloat:drawdistanceattachedplayer INVALID_PLAYER_IDattachedvehicle INVALID_VEHICLE_IDtestlos 0worldid = -1interiorid = -1playerid = -1Float:streamdistance 100.0);
native DestroyDynamic3DTextLabel(Text3D:id);
native IsValidDynamic3DTextLabel(Text3D:id);
native GetDynamic3DTextLabelText(Text3D:idtext[], maxlength sizeof text);
native UpdateDynamic3DTextLabelText(Text3D:idcolor, const text[]);   


Зоны:

Код: Выделить всё

native CreateDynamicCircle(Float:xFloat:yFloat:sizeworldid = -1interiorid = -1playerid = -1);
native CreateDynamicRectangle(Float:minxFloat:minyFloat:maxxFloat:maxyworldid = -1interiorid = -1playerid = -1);
native CreateDynamicSphere(Float:xFloat:yFloat:zFloat:sizeworldid = -1interiorid = -1playerid = -1);
native CreateDynamicCube(Float:minxFloat:minyFloat:minzFloat:maxxFloat:maxyFloat:maxzworldid = -1interiorid = -1playerid = -1);
native CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITYFloat:maxz FLOAT_INFINITYmaxpoints sizeof pointsworldid = -1interiorid = -1playerid = -1);
native DestroyDynamicArea(areaid);
native IsValidDynamicArea(areaid);
native GetDynamicPolygonPoints(areaidFloat:points[], maxlength sizeof points);
native GetDynamicPolygonNumberPoints(areaid);
native TogglePlayerDynamicArea(playeridareaidtoggle);
native TogglePlayerAllDynamicAreas(playeridtoggle);
native IsPlayerInDynamicArea(playeridareaidrecheck 0);
native IsPlayerInAnyDynamicArea(playeridrecheck 0);
native IsAnyPlayerInDynamicArea(areaidrecheck 0);
native IsAnyPlayerInAnyDynamicArea(recheck 0);
native GetPlayerDynamicAreas(playeridareas[], maxlength sizeof areas);
native GetPlayerNumberDynamicAreas(playerid);
native IsPointInDynamicArea(areaidFloat:xFloat:yFloat:z);
native IsPointInAnyDynamicArea(Float:xFloat:yFloat:z);
native AttachDynamicAreaToObject(areaidobjectidtype STREAMER_OBJECT_TYPE_DYNAMICplayerid INVALID_PLAYER_ID);
native AttachDynamicAreaToPlayer(areaidplayerid);
native AttachDynamicAreaToVehicle(areaidvehicleid);   


Расширенное:

Код: Выделить всё

native CreateDynamicObjectEx(modelidFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rzFloat:drawdistance 0.0Float:streamdistance 200.0worlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native CreateDynamicPickupEx(modelidtypeFloat:xFloat:yFloat:zFloat:streamdistance 100.0worlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native CreateDynamicCPEx(Float:xFloat:yFloat:zFloat:sizeFloat:streamdistance 100.0worlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native CreateDynamicRaceCPEx(typeFloat:xFloat:yFloat:zFloat:nextxFloat:nextyFloat:nextzFloat:sizeFloat:streamdistance 100.0worlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native CreateDynamicMapIconEx(Float:xFloat:yFloat:ztypecolorstyle MAPICON_LOCALFloat:streamdistance 100.0worlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native Text3D:CreateDynamic3DTextLabelEx(const text[], colorFloat:xFloat:yFloat:zFloat:drawdistanceattachedplayer INVALID_PLAYER_IDattachedvehicle INVALID_VEHICLE_IDtestlos 0Float:streamdistance 100.0worlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native CreateDynamicCircleEx(Float:xFloat:yFloat:sizeworlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native CreateDynamicRectangleEx(Float:minxFloat:minyFloat:maxxFloat:maxyworlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native CreateDynamicSphereEx(Float:xFloat:yFloat:zFloat:sizeworlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native CreateDynamicCubeEx(Float:minxFloat:minyFloat:minzFloat:maxxFloat:maxyFloat:maxzworlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);
native CreateDynamicPolygonEx(Float:points[], Float:minz = -FLOAT_INFINITYFloat:maxz FLOAT_INFINITYmaxpoints sizeof pointsworlds[] = { -}, interiors[] = { -}, players[] = { -}, maxworlds sizeof worldsmaxinteriors sizeof interiorsmaxplayers sizeof players);   


Автовызываймые функции:

Код: Выделить всё

forward OnDynamicObjectMoved(objectid);
forward OnPlayerEditDynamicObject(playeridobjectidresponseFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rz);
forward OnPlayerSelectDynamicObject(playeridobjectidmodelidFloat:xFloat:yFloat:z);
forward OnPlayerShootDynamicObject(playeridweaponidobjectidFloat:xFloat:yFloat:z);
forward OnPlayerPickUpDynamicPickup(playeridpickupid);
forward OnPlayerEnterDynamicCP(playeridcheckpointid);
forward OnPlayerLeaveDynamicCP(playeridcheckpointid);
forward OnPlayerEnterDynamicRaceCP(playeridcheckpointid);
forward OnPlayerLeaveDynamicRaceCP(playeridcheckpointid);
forward OnPlayerEnterDynamicArea(playeridareaid);
forward OnPlayerLeaveDynamicArea(playeridareaid);   


Установка:
Создайте директорию с именем "plugins" в корневой папке сервера, если ещё не существует. Закиньте плагин (streamer.dll или streamer.so) в папку plugins.
Добавьте строку в server.cfg, чтобы модуль загрузился при следующем запуске сервера:


Windows:

Код: Выделить всё

plugins streamer.dll


Linux

Код: Выделить всё

plugins streamer.so


В мод:

Код: Выделить всё

#include <streamer>   


Автор:Incognito
Источник: sa-mp.com
[center]i love you [s]mxIni[/s] Mysql[/center]


Вернуться в «Plugins»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя