Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info
  • Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.

Include ColAndreas - Collision Detection

Richie56

Компетентный

ColAndreas - Collision Detection

Это инструмент для работы с объектами, как стандартными так и созданными через CreateObject\CreateDynamicObject\CreateDynamicObjectEx.

Демонстрация возможностей:
Установка (c 0:47 по 02:37):



Известные проблемы:
  • Нет поддержки виртуального мира/интерьера (никогда не будет).
Загрузка ColAndreas:

PHP:
public OnGameModeInit()
{
    // Удаление объектов (это работает только до инициализации)
    CA_RemoveBuilding();

    // Инициализация мира (это создает всю карту, исключая удаленные объекты)
    CA_Init();
    return 1;
}
Функции:

PHP:
CA_ContactTest(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
CA_EulerToQuat(Float:rx, Float:ry, Float:rz, &Float:x, &Float:y, &Float:z, &Float:w)
CA_FindZ_For2DCoord(Float:x, Float:y, &Float:z)
CA_GetModelBoundingBox(modelid, &Float:minx, &Float:miny, &Float:minz, &Float:maxx, &Float:maxy, &Float:maxz)
CA_GetModelBoundingSphere(modelid, &Float:offx, &Float:offy, &Float:offz, &Float:radius)
CA_GetObjectExtraID(index, type)
CA_Init()
CA_IsPlayerBlocked(playerid, Float:dist=1.5, Float:height=0.5)
CA_IsPlayerInWater(playerid, &Float:depth, &Float:playerdepth)
CA_IsPlayerNearWater(playerid, Float:dist=3.0, Float:height=3.0)
CA_IsPlayerOnSurface(playerid, Float:tolerance=1.5)
CA_QuatToEuler(Float:x, Float:y, Float:z, Float:w, &Float:rx, &Float:ry, &Float:rz)
CA_RayCastLine(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z)
CA_RayCastLineAngle(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z, &Float:rx, &Float:ry, &Float:rz)
CA_RayCastLineAngleEx(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z, &Float:rx, &Float:ry, &Float:rz, &Float:ocx, &Float:ocy, &Float:ocz, &Float:orx, &Float:ory, &Float:orz)
CA_RayCastLineExtraID(type, Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z)
CA_RayCastLineEx(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z, &Float:rx, &Float:ry, &Float:rz, &Float:rw, &Float:cx, &Float:cy, &Float:cz)
CA_RayCastLineID(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z)
CA_RayCastLineNormal(Float:startx, Float:starty, Float:startz, Float:endx, Float:endy, Float:endz, &Float:x, &Float:y, &Float:z, &Float:nx, &Float:ny, &Float:nz)
CA_RayCastMultiLine(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, Float:retx[], Float:rety[], Float:retz[], Float:retdist[], ModelIDs[], size = sizeof(retx))
CA_RayCastReflectionVector(Float:startx, Float:starty, Float:startz, Float:endx, Float:endy, Float:endz, &Float:x, &Float:y, &Float:z, &Float:nx, &Float:ny, &Float:nz)
CA_RemoveBarriers()
CA_RemoveBreakableBuildings()
CA_RemoveBuilding(modelid, Float:x, Float:y, Float:z, Float:radius)
CA_SetObjectExtraID(index, type, data)
Float:CA_GetRoomHeight(Float:x, Float:y, Float:z)



Разработчики: Slice, Chris420, Pottus, uint32, Crayder, Codectile

10 Nob 2019 - ColAndreas 1.5.0

PHP:
/**--------------------------------------------------------------------------**\
<summary>
    CA_RestoreBuilding
</summary>
<param name="modelid">The removed model to be restored</param>
<param name="Float:x, Float:y, Float:z">The coordinates in which the objects will be restored</param>
<param name="Float:radius">The radius around the specified point to restore from</param>
<returns>
    0 when the map is not initialized
    1 when successfully restored
</returns>
<remarks>
    You must use this function after using `CA_Init`
</remarks>
\**--------------------------------------------------------------------------**/
native CA_RestoreBuilding(modelid, Float:x, Float:y, Float:z, Float:radius);
13 Sep 2019 - ColAndreas 1.4.1 draft

With added support for custom DL models.
PHP:
/**--------------------------------------------------------------------------**\
<summary>
    CA_LoadFromDff
</summary>
<param name="newid">Custom model id to be added to col. pool</param>
<param name="dffFileName">Dff file path you want to load its collision</param>
<returns>
    -1 if plugin couldn't find/open file (relatd to permissions or wrong path)
    0 if dff file had no collision or corrupted data
    1 if loading dff file and reading collision data was successful
</returns>
<remarks>
    Loads collision from given dff file to support SA-MP 0.3DL custom models.
</remarks>
\**--------------------------------------------------------------------------**/
native CA_LoadFromDff(newid, const dffFileName[]);
26 Apr 2016 - ColAndreas 1.4.0

Adds 4 new natives:
PHP:
CA_RayCastLineID(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z);
CA_RayCastLineExtraID(type, Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:x, &Float:y, &Float:z);
CA_SetObjectExtraID(index, type, data);
CA_GetObjectExtraID(index, type);
CA_RayCastLineID
  • Instead of returning the model ID of the collided object, this will return the ColAndreas index.
CA_RayCastLineExtraID
  • Instead of returning the model ID of the collided object, this will return the extra data stored at the type parameter. The 'type's are set by CA_SetObjectExtraID.
  • Returns '-1' when an invalid type was specified (something outside of 0 through 9).
CA_SetObjectExtraID
  • This sets the extra data stored at type of the specified ColAndreas object.
CA_GetObjectExtraID
  • This returns the extra data stored at type of the specified ColAndreas object.
Along with these also comes a set of new definitions labeled CA_EXTRA_1 through CA_EXTRA_10. These are just example definitions and can easily be defined by the user in there script. They are just numbers from 0 to 9, which are the valid 'type's of extra data. For example, if a user needed to know the streamer ID of a collided object they could do this:
PHP:
// Before anything
#define CA_STREAMER_ID 0
new testObj;

// Creating the object
testObj = CA_CreateDynamicObject_DC(3095, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0);
CA_SetObjectExtraID(testObj, CA_STREAMER_ID, CA_ObjectList[testObj][ObjectID]);

// Later, with a ray cast
new streamerID = CA_RayCastLineExtraID(CA_STREAMER_ID, 0.0, 0.0, 20.0, 0.0, 0.0, 0.0, sX, sY, sZ);
08 Aug 2015 - ColAndreas 1.3.0

IMPORTANT NOTES:
  • You need to recreate your ColAndreas.cadb file using the new WizardApp, the plugin will refuse to load older versions.
  • Use ColAndreas_static.so if you get the following error: Failed (libBulletCollision.so.2.82: cannot open shared object file: No such file or directory)
  • Please redownload if you're having trouble using the plugin on Windows XP (see #9)

WizardApp:
  • Fixed problems with SA-MP objects.
  • Uses static runtime libraries (Avoids MSVCP120D.DLL not found error)
  • New user interface using the Qt5 libraries.
  • Speed improvements.

Plugin:
  • Server will show an error message instead of crashing if CA_CreateObject is called without collision data loaded.
  • Updated the database reader to match with the changes made to the WizardApp.
  • Plugin version will be displayed when it gets loaded.
  • Added statically-linked Linux version (ColAndreas_static.so)

Other changes:
  • Removed Visual Studio solution files, CMake is now used for the plugin and wizard.
  • CMakeLists.txt moved to the root directory.
  • Updated README.md

20 May 2015 - ColAndreas 1.2

ColAndreas update, gitignore, precompiled

17 May 2015 - ColAndreas 1.1

ColAndreas update

17 May 2015 - ColAndreas 1.0

ColAndreas first release
 
Последнее редактирование:
Сверху Снизу