[Plugin] FCNPC - Fully Controllable NPC (Russian Thread)
#81

См. вложение.
Reply
#82

Quote:
Originally Posted by ZiGGi
View Post
Ещё попытка пересобрать.
Запустилось, внезапно, сейчас пощупаю.
Reply
#83

Quote:
Originally Posted by eakwarp
View Post
Запустилось, внезапно, сейчас пощупаю.
Попробуй дебаг версию тоже, пожалуйста.
Reply
#84

Quote:
Originally Posted by ZiGGi
View Post
Попробуй дебаг версию тоже, пожалуйста.
Тот же самый рантайм.
Reply
#85

Quote:
Originally Posted by eakwarp
View Post
Тот же самый рантайм.
В смысле оно тоже работает?
Reply
#86

Quote:
Originally Posted by ZiGGi
View Post
В смысле оно тоже работает?
Нет, в смысле сервер не падает, равно как и с обычной версией. Но выдает ошибку в дебаге, и не коннектится не одного непися.
Reply
#87

Вот, особо не тестировал, но боты бегают и ездят. Также с версией под Linux.
Reply
#88

Работает, спасибо.
Reply
#89

Добрый день!

Те вопросы, с которыми я к вам обращался, уже решены. Везде моя вина) ошибки нашел - исправил.

Теперь насчет FCNPC_GoByMovePath с машиной(https://github.com/ziggi/FCNPC/issues/88). Я решил сделать собственную реализацию поездки, и на удивление, вышло всё очень хорошо. Во-первых, машина на больших скоростях едет плавно и не телепортируется из точки в точку. Во-вторых, езда по горке не идеальная, но более менее терпимая: телепорты есть, но не такие(чем больше угол, тем ярче они выражены). А также, независимо от mapandreas,coladnreas машина принимает угол наклона горки.

Видео:
https://www.youtube.com/watch?v=sTRe...ature=*********

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

Вот мой код, который я буду использовать вместо FCNPC_GoByMovePath. Использовал углы, а не кватернионы, так как пока их не знаю(GetRotationQuaternion - это нужно добавить отдельно).
PHP Code:
Public:BotMoveInVehicle(botidpathpointFloat:velocity) {
    new 
FloatxFloatyFloatz,
        
FloatfxFloatfyFloatfz;
    
FCNPC_GetPosition(botidxyz);
    
FCNPC_GetMovePoint(pathpointfxfyfz);
    
    new 
Floatdist floatsqroot(kv(fx) + kv(fy) + kv(fz)),
        
time floatround(dist velocity 1000.0);
    if ( 
dist <= 1.5 ) {
        if ( 
point != FCNPC_GetNumberMovePoint(path) - ) {
            
BotMoveInVehicle(botidpathpoint 1velocity);
        } else {
            
FCNPC_SetVelocity(botid0.00.00.0);
        }
        return 
1;
    }
    
    new 
Floatalpha atan2(fy yfx x),
        
FloatsinBeta = (fz - (1.0)) / dist,
        
Floatbeta atan2(sinBetafloatsqroot(1.0 sinBeta sinBeta));
    
FCNPC_SetVelocity(botidvelocity floatcos(alphadegrees) * 0.02515velocity floatsin(alphadegrees) * 0.02515velocity floatsin(betadegrees) * 0.02515true);
    
    new 
Floatw;
    
GetRotationQuaternion(beta0.0alpha 90.0wxyz);
    
FCNPC_SetQuaternion(botidwxyz);
    
    
    
SetTimerEx("BotMoveInVehicle", ((30 time 150) ? time time), false"iiif"botidpathpointvelocity);
    return 
1;
}
BotMoveInVehicle(npcidpathid0Float:velocity//использование 
Reply
#90

И еще проблемка....
Нашел серьезный баг. Я так понимаю, он связан с тем багом, про который я говорил в предыдущем своем сообщении тогда, когда у меня крашило сервер. Нужно срочно исправить. А то из-за этого возникает целая цепочка других багов и краш

Когда удаляешь путь 1, удаляется каким-то образом путь 2. Вот в моих логах примерно следующее. Стоит все в таймере.
PHP Code:
point 0(path=2exist 1)
remove path 1
point 
0(path=2exist 0
Однако, в этом случае все нормально. Удаляем 2 - удаляется 2
PHP Code:
point 0(path=1exist 1)
remove path 2
point 
0(path=1exist 1
Можете проверить.
PHP Code:
FCNPC_CreateMovePath();
    new 
path2 FCNPC_CreateMovePath(),
        
path FCNPC_CreateMovePath();
    
printf("path = %i, exist = %b"pathFCNPC_IsValidMovePath(path));
    
FCNPC_DestroyMovePath(path2);//удаляем только path2
    
printf("destroy path = %i, %b"path2FCNPC_IsValidMovePath(path2));
    
printf("path = %i, exist = %b"pathFCNPC_IsValidMovePath(path)); 
Reply
#91

Я вижу, FCNPC_IsValidMovePath исправлен, значит и проблем с FCNPC_DestroyMovePath тоже нет?
Reply
#92

Хм.. Есть одно но. Колбек не учитывает взрывной урон, то есть , если танк стреляет в машину/бота, то урон не учитывается. Также прошу сделайте, угол поворота камеры бота, то есть, если например бот ведет машину с пушкой(Пожарная машина/водомет/танк) , то чтобы бот мог поворачивать пушку

Это бы хорошо расширило возможности ботов
Reply
#93

Quote:
Originally Posted by Anomis
View Post
Хм.. Есть одно но. Колбек не учитывает взрывной урон, то есть , если танк стреляет в машину/бота, то урон не учитывается. Также прошу сделайте, угол поворота камеры бота, то есть, если например бот ведет машину с пушкой(Пожарная машина/водомет/танк) , то чтобы бот мог поворачивать пушку

Это бы хорошо расширило возможности ботов
Определение взрыва будет довольно не точным, и будет возможным только с использованием colandreas.
Стрельбу с пассажирского сидения я пытался сделать, но у меня не вышло.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)