PDA

Просмотр полной версии : [Вопрос] ColAndreas



Витёк
24.01.2017, 07:42
Добрый день
Решил юзать colAndreas
но дело в том что при использовании 1 функции она возвращает одни и тежи корды и получается что бот просто крутится

CA_RayCastLine(указываю начальные корды, куда бежать боту, pX, pY, pZ);
colandreas.cadb файл загружаю

Osetin
24.01.2017, 09:34
http://pro-pawn.ru/showthread.php?14748
http://pro-pawn.ru/showthread.php?14739

Витёк
24.01.2017, 09:55
http://pro-pawn.ru/showthread.php?14748
http://pro-pawn.ru/showthread.php?14739

прогрузил я карту но он под землю падает :sorry:
https://pp.vk.me/c626529/v626529605/48e46/I81jdNXtO8A.jpg

static Float:X,Float:Y,Float:Z,
Float:fX,Float:fY,Float:fZ,
Float:pX,Float:pY,Float:pZ;
FCNPC_GetPosition(MyFirstBot,fX, fY, fZ);
CA_FindZ_For2DCoord(fX, fY, fZ);
CA_RayCastLine(fX, fY, fZ, X,Y,Z, pX, pY, pZ);
FCNPC_GoTo(MyFirstBot, pX, pY, pZ, MOVE_TYPE_RUN, MOVE_SPEED_RUN, true);

Витёк
24.01.2017, 10:50
изменил +1 к оси Z
токо остался 1 баг он токо крутится а идти не идёт

qwezert
24.01.2017, 11:54
изменил +1 к оси Z
токо остался 1 баг он токо крутится а идти не идёт

Задебагай координаты которые ты передаешь в рейкаст и координаты которые получаешь - увидишь что работает не так.

Витёк
24.01.2017, 12:16
Задебагай координаты которые ты передаешь в рейкаст и координаты которые получаешь - увидишь что работает не так.

можно пример ато я не понял или ты так имееш в веду

GetPlayerPos(playerid,X,Y,Z);
printf("%f,%f,%f", X,Y,Z);
FCNPC_GetPosition(MyFirstBot,fX, fY, fZ);
printf("%f,%f,%f",fX, fY, fZ);
CA_FindZ_For2DCoord(fX, fY,fZ);
printf("%f",fZ);
CA_RayCastLine(fX, fY, fZ+1, X,Y,Z, pX, pY, pZ);
printf("%f,%f,%f",pX, pY, pZ);
Если так то CA_RayCastLine выдаёт 0.0 0.0 0.0

qwezert
24.01.2017, 12:22
можно пример ато я не понял или ты так имееш в веду

GetPlayerPos(playerid,X,Y,Z);
printf("%f,%f,%f", X,Y,Z);
FCNPC_GetPosition(MyFirstBot,fX, fY, fZ);
printf("%f,%f,%f",fX, fY, fZ);
CA_FindZ_For2DCoord(fX, fY,fZ);
printf("%f",fZ);
CA_RayCastLine(fX, fY, fZ+1, X,Y,Z, pX, pY, pZ);
printf("%f,%f,%f",pX, pY, pZ);

Да именно так, только подпиши - какие координаты к чему относятся и задебагай в рейкасте все 3 группы координат

CA_RayCastLine(fX, fY, fZ+1, X,Y,Z, pX, pY, pZ);
printf("RAYCAST COORDS: %f,%f,%f",pX, pY, pZ);
printf("NPC COORDS: %f,%f,%f",fX, fY, fZ);
printf("PLAYER COORDS: %f,%f,%f",X, Y, Z);

Витёк
24.01.2017, 12:33
Да именно так, только подпиши - какие координаты к чему относятся и задебагай в рейкасте все 3 группы координат

CA_RayCastLine(fX, fY, fZ+1, X,Y,Z, pX, pY, pZ);
printf("RAYCAST COORDS: %f,%f,%f",pX, pY, pZ);
printf("NPC COORDS: %f,%f,%f",fX, fY, fZ);
printf("PLAYER COORDS: %f,%f,%f",X, Y, Z);

https://pp.vk.me/c626529/v626529605/48f15/hlCVsl9NnYU.jpg

qwezert
24.01.2017, 13:03
https://pp.vk.me/c626529/v626529605/48f15/hlCVsl9NnYU.jpg
Ну вот тебе и ошибка - рейкаст выдает 0 координаты, карта не загрузилась или ты не инициализировал CA

Витёк
24.01.2017, 13:51
Ну вот тебе и ошибка - рейкаст выдает 0 координаты, карта не загрузилась или ты не инициализировал CA

са я инициализировал

public OnFilterScriptInit()
{
CA_Init();
MyFirstBot = FCNPC_Create("Bot_Name");
FCNPC_Spawn(MyFirstBot, 70, -199.3511,248.3464,12.0772);
return 1;
}
а как можно загрузить карту я хз
Говорят что-то с CA_FindZ_For2DCoord надо делать

qwezert
24.01.2017, 13:55
са я инициализировал

public OnFilterScriptInit()
{
CA_Init();
MyFirstBot = FCNPC_Create("Bot_Name");
FCNPC_Spawn(MyFirstBot, 70, -199.3511,248.3464,12.0772);
return 1;
}
а как можно загрузить карту я хз
Говорят что-то с CA_FindZ_For2DCoord надо делать

Загрузить карту - это значит cadb файл положить в scriptfiles/colandreas и посмотреть в консоли - действительно ли карта была загружена.

Витёк
24.01.2017, 14:03
Загрузить карту - это значит cadb файл положить в scriptfiles/colandreas и посмотреть в консоли - действительно ли карта была загружена.

он её загружает
server_log:

[18:34:25] Loading...
[18:34:25] Loaded.
[18:34:25] Loading plugin: ColAndreas
[18:34:25] *********************
[18:34:25] ** Created By: **
[18:34:25] ** [uL]Chris42O **
[18:34:25] ** [uL]Slice **
[18:34:25] ** [uL]Pottus **
[18:34:25] *********************
[18:34:29] Loaded collision data.
[18:34:29] *********************
[18:34:30] ColAndreas Loaded
[18:34:30] v1.4.0
[18:34:30] *********************
[18:34:30] Loaded.
[18:34:30] Loaded 3 plugins.

[18:34:30]
[18:34:30] Filterscripts
[18:34:30] ---------------
[18:34:30] Loading filterscript 'FCNPC_Test.amx'...
[18:34:30] Loading Map.
[18:34:30] Loaded Map.

qwezert
24.01.2017, 14:35
он её загружает
server_log:

[18:34:25] Loading...
[18:34:25] Loaded.
[18:34:25] Loading plugin: ColAndreas
[18:34:25] *********************
[18:34:25] ** Created By: **
[18:34:25] ** [uL]Chris42O **
[18:34:25] ** [uL]Slice **
[18:34:25] ** [uL]Pottus **
[18:34:25] *********************
[18:34:29] Loaded collision data.
[18:34:29] *********************
[18:34:30] ColAndreas Loaded
[18:34:30] v1.4.0
[18:34:30] *********************
[18:34:30] Loaded.
[18:34:30] Loaded 3 plugins.

[18:34:30]
[18:34:30] Filterscripts
[18:34:30] ---------------
[18:34:30] Loading filterscript 'FCNPC_Test.amx'...
[18:34:30] Loading Map.
[18:34:30] Loaded Map.
Как то слишком быстро он ее загружает и нет информации прогресса загрузки - ты cadb файл где взял?

Витёк
24.01.2017, 14:41
Как то слишком быстро он ее загружает и нет информации прогресса загрузки - ты cadb файл где взял?

почему при включении сервера он грузит этот плагин (сек 5-10)
https://pp.vk.me/c626529/v626529605/48f66/WIcuTjB5vdI.jpg
cadb (через программу котороя шла с плагином)

qwezert
24.01.2017, 14:58
почему при включении сервера он грузит этот плагин (сек 5-10)
https://pp.vk.me/c626529/v626529605/48f66/WIcuTjB5vdI.jpg
cadb (через программу котороя шла с плагином)

Так погоди, а рейкаст разве не возвращает 0 если на пути луча не было препятствий? Ты после того как рейкастом кидаешь луч отправляешь бота ведь по координатам которые вернула фукнция, попробуй поставить бота за препятствием от себя и проверить - если рейкаст вернет координаты а не 0 - значит он возвращает 0 если препятствий нет, а координаты - если встречает препятствие.

Витёк
24.01.2017, 15:18
Так погоди, а рейкаст разве не возвращает 0 если на пути луча не было препятствий? Ты после того как рейкастом кидаешь луч отправляешь бота ведь по координатам которые вернула фукнция, попробуй поставить бота за препятствием от себя и проверить - если рейкаст вернет координаты а не 0 - значит он возвращает 0 если препятствий нет, а координаты - если встречает препятствие.
да будет возвращать 0 если небыло найдено припятствий
спс за помощь :ok:
Тему не закрывайте вдруг щас опять будут вопросы у меня :rofl: