SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian > Релизы/Releases

Reply
 
Thread Tools Display Modes
Old 25/10/2017, 09:15 AM   #91
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Quote:
Originally Posted by Bombo View Post
Не срабатывает функция MeleeAttack() :
PHP Code:
    //далее функция рассчитана на плагин FCNPC
    
for(0MAX_PLAYERS; ++i)
    {
        
//если это игрок - пропускаем
        
if(IsPlayerNPC(i) && FCNPC_IsSpawned(i) && !FCNPC_IsDead(i))
        {
            
//ищем ближайшего игрока
            
for(0MAX_PLAYERS; ++j)
            {
                if(
miss_player[j])
                    continue;
                
dx floatsub(fPlayersCoords[i][f_X],fPlayersCoords[j][f_X]);
                
dy floatsub(fPlayersCoords[i][f_Y],fPlayersCoords[j][f_Y]);
                
dz floatsub(fPlayersCoords[i][f_Z],fPlayersCoords[j][f_Z]);
                
len VectorSize(dx,dy,dz);
                
//если игрок в зоне досягаемости зомби - атака
                
if(len 1.2)
                {
                    
//наводимся
                    
FCNPC_AimAt(ifPlayersCoords[j][f_X], fPlayersCoords[j][f_Y], fPlayersCoords[j][f_Z], false);
                    
//атакуем
                    
FCNPC_MeleeAttack(i100true);
                    break;
                }
                
//если игрок в поле зрения зомби - преследование
                
if(len 99.0)
                {
                    
//если за игроком уже бегжит 5 или более зомби - ищем другого игрока поблизости
                    
if(>= MAX_ZOMBIES_ON_PLAYER)
                        continue;
                    
//если зомби поворачивается в сторону игрока - отбой
                    
if(FCNPC_IsAiming(i))
                    {
                        
FCNPC_StopAttack(i);
                        
FCNPC_StopAim(i);
                    }
                    
//преследуем
                    
FCNPC_GoTo(ifloatadd(fPlayersCoords[j][f_X],floatdiv(floatmul(0.5,dx),len)), floatadd(fPlayersCoords[j][f_Y],floatdiv(floatmul(0.5,dy),len)), fPlayersCoords[j][f_Z], MOVE_TYPE_RUN0.8true);
                    break;
                }
            }
            
//если в поле зрения зомби никого нету - останавливаем его
            
if(FCNPC_IsAiming(i))
            {
                
FCNPC_StopAttack(i);
                
FCNPC_StopAim(i);
            }
        }
    } 
Если же в обоих местах закомментировать FCNPC_StopAttack(i), то MeleeAttack() срабатывает, но при этом анимация бега иногда заменяется анимацией атаки.
Ну, естественно оно не срабатывает - ты сразу же, после прицеливания, останавливаешь атаку, анимация просто не успевает сработать. А замена анимации бега на анимацию атаки - это тоже нормально, потому что движком н игры не предусмотрен бег и атака с помощью боевого стиля.
ZiGGi is offline   Reply With Quote
Old 25/10/2017, 02:56 PM   #92
Bombo
Huge Clucker
 
Bombo's Avatar
 
Join Date: Jun 2012
Posts: 267
Reputation: 76
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Quote:
Originally Posted by ZiGGi View Post
Ну, естественно оно не срабатывает - ты сразу же, после прицеливания, останавливаешь атаку, анимация просто не успевает сработать. А замена анимации бега на анимацию атаки - это тоже нормально, потому что движком н игры не предусмотрен бег и атака с помощью боевого стиля.
Да, точно, атака останавливается у всех ботов. Пропустил проверку после цикла. Теперь всё работает: и атака, и анимация бега.

PHP Code:
    //далее функция рассчитана на плагин FCNPC
    
for(0MAX_PLAYERS; ++i)
    {
        
//если это игрок - пропускаем
        
if(IsPlayerNPC(i) && FCNPC_IsSpawned(i) && !FCNPC_IsDead(i))
        {
            
//ищем ближайшего игрока
            
for(0MAX_PLAYERS; ++j)
            {
                if(
miss_player[j])
                    continue;
                
dx floatsub(fPlayersCoords[i][f_X],fPlayersCoords[j][f_X]);
                
dy floatsub(fPlayersCoords[i][f_Y],fPlayersCoords[j][f_Y]);
                
dz floatsub(fPlayersCoords[i][f_Z],fPlayersCoords[j][f_Z]);
                
len VectorSize(dx,dy,dz);
                
//если игрок в зоне досягаемости зомби - атака
                
if(len 1.2)
                {
                    
//наводимся
                    
FCNPC_AimAt(ifPlayersCoords[j][f_X], fPlayersCoords[j][f_Y], fPlayersCoords[j][f_Z], false);
                    
//атакуем
                    
FCNPC_MeleeAttack(i100true);
                    break;
                }
                
//если игрок в поле зрения зомби - преследование
                
if(len 99.0)
                {
                    
//если за игроком уже бегжит 5 или более зомби - ищем другого игрока поблизости
                    
if(>= MAX_ZOMBIES_ON_PLAYER)
                        continue;
                    
//если зомби поворачивается в сторону игрока - отбой
                    
if(FCNPC_IsAiming(i))
                        
FCNPC_StopAim(i);
                    if(
FCNPC_IsAttacking(i))
                        
FCNPC_StopAttack(i);
                    
//преследуем
                    
FCNPC_GoTo(ifloatadd(fPlayersCoords[j][f_X],floatdiv(floatmul(0.5,dx),len)), floatadd(fPlayersCoords[j][f_Y],floatdiv(floatmul(0.5,dy),len)), fPlayersCoords[j][f_Z], MOVE_TYPE_RUN0.8true);
                    break;
                }
            }
            if(
== MAX_PLAYERS)
            {
                
//если в поле зрения зомби никого нету - останавливаем его
                
if(FCNPC_IsAiming(i))
                    
FCNPC_StopAim(i);
                if(
FCNPC_IsAttacking(i))
                    
FCNPC_StopAttack(i);
            }
        }
    } 
Спасибо за свежий взгляд на код!
__________________
[Tool/Web/Other] SA:MP multiloader
[Plugin] Automatic chat translator
[GameMode] DayZ+ [0.3z]
[Plugin] imessage - fast multilanguage strings
[Tool/Web/Other] player search service
Bombo is offline   Reply With Quote
Old 19/11/2017, 06:08 PM   #93
Romz
Banned
 
Join Date: Jun 2013
Location: Ukraine
Posts: 1,044
Reputation: 64
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Привет, почему перестал писать список изменений в этой теме?
Romz is offline   Reply With Quote
Old 20/11/2017, 01:50 PM   #94
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Quote:
Originally Posted by Romz View Post
Привет, почему перестал писать список изменений в этой теме?
Лень переводить, да и популярностью это здесь (в русской теме) не пользуется.
ZiGGi is offline   Reply With Quote
Old 20/11/2017, 02:29 PM   #95
OKStyle
High-roller
 
OKStyle's Avatar
 
Join Date: May 2008
Location: Russia, Orenburg Money: GTA$ 999,999,999
Posts: 3,125
Reputation: 140
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Отнюдь. Просто не все ещё плотничком добрались до него)
__________________
O.K.Style™ Laboratory
Kalcor: "... it's makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."
OKStyle is offline   Reply With Quote
Old 21/11/2017, 12:09 AM   #96
Romz
Banned
 
Join Date: Jun 2013
Location: Ukraine
Posts: 1,044
Reputation: 64
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

После релиза 0.3.8, планируете перенос плагина на неё?
Romz is offline   Reply With Quote
Old 21/11/2017, 02:27 AM   #97
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Quote:
Originally Posted by Romz View Post
После релиза 0.3.8, планируете перенос плагина на неё?
Да, планирую.
ZiGGi is offline   Reply With Quote
Old 31/12/2017, 01:33 PM   #98
MrStead
Little Clucker
 
MrStead's Avatar
 
Join Date: Jul 2014
Location: Russia
Posts: 32
Reputation: 4
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

При увеличении скорости автомобиля FCNPC_GoByMovePath(бот, путь, FCNPC_MOVE_TYPE_DRIVE, тут скорость); с 2.0 до какого-нибудь большего числа(например 3.0, 5.0, любое вообщем) машина начинает не ехать плавно, а телепортироваться из точки в точку. Это также случается и при подъёме/спуске машины(езда по наклонной плоскости), причем в данном случае это от скорости не зависит(даже при 1.0). Как увеличивать скорость авто(до больших чисел), чтобы плавно она ехала? и что делать, чтобы она плавно ехала по горке(хотя бы при маленьких скоростях)? Использовал кватернионы для наклона, но от них плавность езды никак не зависит.

Я так понимаю, в этом случае никакого решения через pawn нет. У меня вопрос тогда такой: будет ли исправлено в след. версиях плагина это? у меня тут системка с такси - всё хорошо, но когда горка на пути или разгон по прямой сильной - начинается неприятное ощущение от видения этого слайд-шоу поездки. Очень хочу исправления. Спасибо!
MrStead is offline   Reply With Quote
Old 01/01/2018, 07:01 AM   #99
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Quote:
Originally Posted by MrStead View Post
При увеличении скорости автомобиля FCNPC_GoByMovePath(бот, путь, FCNPC_MOVE_TYPE_DRIVE, тут скорость); с 2.0 до какого-нибудь большего числа(например 3.0, 5.0, любое вообщем) машина начинает не ехать плавно, а телепортироваться из точки в точку. Это также случается и при подъёме/спуске машины(езда по наклонной плоскости), причем в данном случае это от скорости не зависит(даже при 1.0). Как увеличивать скорость авто(до больших чисел), чтобы плавно она ехала? и что делать, чтобы она плавно ехала по горке(хотя бы при маленьких скоростях)? Использовал кватернионы для наклона, но от них плавность езды никак не зависит.

Я так понимаю, в этом случае никакого решения через pawn нет. У меня вопрос тогда такой: будет ли исправлено в след. версиях плагина это? у меня тут системка с такси - всё хорошо, но когда горка на пути или разгон по прямой сильной - начинается неприятное ощущение от видения этого слайд-шоу поездки. Очень хочу исправления. Спасибо!
Что-то подобное обсуждалось здесь: https://github.com/ziggi/FCNPC/issues/88
Не знаю как исправить.
ZiGGi is offline   Reply With Quote
Old 04/01/2018, 03:48 PM   #100
MrStead
Little Clucker
 
MrStead's Avatar
 
Join Date: Jul 2014
Location: Russia
Posts: 32
Reputation: 4
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Нашел серьезный баг.

FCNPC_CreateMovePath возвращает неверный id в след. случае: как только мы удаляем старые пути(абсолютно любые), то при следующем вызове FCNPC_CreateMovePath он возвращает id последнего созданного пути. То есть ссылается на уже созданный путь и как итог - не работа моего скрипта должным образом. Эту проблему срочно нужно исправить. Должно быть так, как при создании CreateObject. Для проверки я создал 2 скрипта:

PHP Code:
new newPath FCNPC_CreateMovePath();
    
FCNPC_AddPointToPath(newPath0.0,0.0,0.0);
    
printf("created %i"newPath);
    
newPath FCNPC_CreateMovePath();
    
FCNPC_AddPointToPath(newPath0.0,0.0,0.0);
    
printf("created %i"newPath);
    
newPath FCNPC_CreateMovePath();
    
FCNPC_AddPointToPath(newPath0.0,0.0,0.0);
    
printf("created %i"newPath);

    
printf("remove %i"newPath 2);//удаляем старый путь
    
FCNPC_DestroyMovePath(newPath 2);

    
newPath FCNPC_CreateMovePath();
    
FCNPC_AddPointToPath(newPath0.0,0.0,0.0);
    
printf("created %i"newPath);
    



//то же самое но с объектами
    
print("Then objects:");
    
newPath CreateObject(1858,0.0,0.0,0.0,0.0,0.0,0.0);
    
printf("created %i"newPath);
    
newPath CreateObject(1858,0.0,0.0,0.0,0.0,0.0,0.0);
    
printf("created %i"newPath);
    
newPath CreateObject(1858,0.0,0.0,0.0,0.0,0.0,0.0);
    
printf("created %i"newPath);

    
printf("remove %i"newPath 2);//а тут объект удаляем старый
    
DestroyObject(newPath 2);

    
newPath CreateObject(1858,0.0,0.0,0.0,0.0,0.0,0.0);
    
printf("created %i"newPath); 
Вывод в консоль:
PHP Code:
[21:39:09created 0
[21:39:09created 1
[21:39:09created 2
[21:39:09remove 0
[21:39:09created 2  << а здесь должно быть 0ведь последний удаленный путь 0. Ну или накрайняк 3но лучше не советуючтобы было такКак никакесть риск выхода за число 0xFFFFFFFF 2

[21:39:09Then objects:
[
21:39:09created 1
[21:39:09created 2
[21:39:09created 3
[21:39:09remove 1
[21:39:09created 1 << тут нормульудалил 1следобъект 
MrStead is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Include] (AdvancedChat.inc) - Fully Controllable Chat illuminati2 Includes 5 23/02/2016 09:00 AM
[Include] [INC] Russian GameText + Russian Language for GTA-SA [Saint] Релизы/Releases 20 10/02/2015 11:24 AM
[Plugin] FCNPC - Fully Controllable NPC sa-mp 0.3x R2 [LCK]Chris Plugin Development 82 16/05/2014 02:16 PM
[?]New SZR fully controllable NOS system Qeux Help Archive 3 17/03/2011 02:24 AM


All times are GMT. The time now is 07:57 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.