SA-MP Forums

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

Reply
 
Thread Tools Display Modes
Old 04/01/2018, 08:18 PM   #101
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

FCNPC 1.8.0

О версии
- #106: Добавлена возможность отключения крэш-лога FCNPC
- #82: Добавлена функция FCNPC_GetValidArray
- #107: Добавлены функции FCNPC_SetSpeed и FCNPC_GetSpeed
- #96: Исправлен вектор стрельбы по цели для игроков на линии огня
- #98: Исправлено значение пинга и IP для NPC
- Исправлено обновление синхронизации для атак ближнего боя с большой задержкой
- Сбрасывание клавиш перемещения в функции GoTo
- MapAndreas теперь работает только в интерьере 0
- Переписан скрипт FCNPC.pwn
- Исправлены ошибки ID путей движения и их точек (MovePath)
- #121: Исправлен краш при создании NPC с пустым именем

Новые функции
PHP Code:
native FCNPC_SetSpeed(npcidFloat:speed);
native Float:FCNPC_GetSpeed(npcid);
native FCNPC_GetValidArray(npcs[], const size sizeof(npcs));
native FCNPC_ToggleCrashLogCreation(bool:toggle);
native FCNPC_GetCrashLogCreation(); 
Скачать
- https://github.com/ziggi/FCNPC/releases
ZiGGi is offline   Reply With Quote
Old 05/01/2018, 11:06 AM   #102
MrStead
Little Clucker
 
MrStead's Avatar
 
Join Date: Jul 2014
Location: Russia
Posts: 32
Reputation: 4
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Спасибо за скорый выход обновления! Но... добавился теперь другой баг, который вообще крашит сервер.


Суть в следующем:
У меня достаточно сложная система ботов, пытаюсь сделать какой-никакой ИИ. Бот находит кратчайший путь до игрока и бежит к нему. При этому путь просчитывается каждые N секунд, так как игрок подвижен. Проблема в том, что когда мы в первый раз назначили боту траекторию движения посредством FCNPC_GoByMovePath - всё нормально. Но когда второй раз назначаем ему уже другой путь(при этом первый путь он еще не прошел), то сервер крашит. Я пытался его остановить перед этим командой FCNPC_Stop(bot); - но ситуация не меняется.

Проверьте следующий код снизу. Циклом я сделал подобие таймера каждые N секунд. Неважно, что 2 секунды(таймер) пройдет или 2 наносекунды(в случае цикла) перед след. вызовом FCNPC_GoByMovePath для данного бота.
PHP Code:
new bot FCNPC_Create("bot"),
        
newPath = -1;
    
FCNPC_Spawn(bot15.00.00.0);

    for ( new 
i5++ ) {
        if ( 
newPath != -FCNPC_DestroyMovePath(newPath); //что есть, что нету - один фиг
        
newPath FCNPC_CreateMovePath();
        
FCNPC_AddPointToPath(newPath0.0,0.0,0.0);//заставляем бота идти в эти координаты
        
FCNPC_AddPointToPath(newPath0.0,2.0,0.0);//потом в какие-нибудь эти
        
printf("created path is %i"newPath); 
        
        
FCNPC_Stop(bot); //останавливаем бота перед назначением ему нового пути(хотя, опять же, можно этого и не делать - разницы 0 в работе)
        
FCNPC_GoByMovePath(botnewPathFCNPC_MOVE_TYPE_RUN); //назначаем ему новый путь
    

PHP Code:
=========================== FCNPC Exception Handler ============================
Address0x76e1cbb2

Registers
:
EAX0x19fa50 EBX0x19fb00 ECX0x3 EDX0x0
ESI
0xf0514a4 EDI0xfed37a4 EBP0x19faac ESP0x19fa50

Stack
:
0x00xe06d7363 0x40x1 0x80x0 0xC0x76e1cbb2 0x100x3 0x140x19930520
0x18
0x19fb00 0x1C0xfed37a4 0x200x19fa94

Information
:
  
SystemWindows
  SA
-MP0.3.7 R2
  FCNPC
1.8.0

Functions
:
  
FUNC_CPlayerPool__DeletePlayer0x466570
  FUNC_CPlayer__Kill
0x484620
  FUNC_CPlayer__EnterVehicle
0x484c70
  FUNC_CPlayer__ExitVehicle
0x484f50
  FUNC_CPlayer__SpawnForWorld
0x486d30
  FUNC_GetVehicleModelInfo
0x488240
  FUNC_CConsole__GetIntVariable
0x48b5b0
  FUNC_ClientJoin_RPC
0x4918f0

Pointers
:
  
VAR_ServerAuthentication0x4f5fe8
  VAR_NetVersion
0xfd9

Offsets
:
  
OFFSET_RemoteSystemManager0x33c
  OFFSET_RemoteSystemSize
0xcb8
  OFFSET_RemoteSystem__ConnectMode
0xcb0
  OFFSET_RemoteSystem__Unknown
0xcb5
=========================== FCNPC Exception Handler ============================ 
Что-нибудь, может быть, делаю неверно? Благодарю за помощь.
MrStead is offline   Reply With Quote
Old 05/01/2018, 02:28 PM   #103
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Да, мой косяк, поправлено в 1.8.1.
ZiGGi is offline   Reply With Quote
Old 21/01/2018, 11:52 AM   #104
MrStead
Little Clucker
 
MrStead's Avatar
 
Join Date: Jul 2014
Location: Russia
Posts: 32
Reputation: 4
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Ну вот снова и я) уже делаю bot police update
Значит, есть вопрос. Как сделать так, чтобы боты, которые находятся в полицейских машинах, могли включать сирену. Пробовал FCNPC_SetKeys - не получилось. быть может, делаю что-то не то.

Так же есть еще другой вопрос по поводу бага, но непонятно, либо он в моем скрипте, либо в плагине все-таки. проверю потом
MrStead is offline   Reply With Quote
Old 22/01/2018, 06:07 AM   #105
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
Ну вот снова и я) уже делаю bot police update
Значит, есть вопрос. Как сделать так, чтобы боты, которые находятся в полицейских машинах, могли включать сирену. Пробовал FCNPC_SetKeys - не получилось. быть может, делаю что-то не то.

Так же есть еще другой вопрос по поводу бага, но непонятно, либо он в моем скрипте, либо в плагине все-таки. проверю потом
FCNPC_SetVehicleSiren
ZiGGi is offline   Reply With Quote
Old 25/01/2018, 03:46 PM   #106
MrStead
Little Clucker
 
MrStead's Avatar
 
Join Date: Jul 2014
Location: Russia
Posts: 32
Reputation: 4
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Еще вопросики)
1) Может ли бот одновременно целиться AimAt, стрелять FCNPC_SetKey и идти к цели GoByMovePath? А то походка начинается и тут же прерывается.

2) Можно ли как то определить состояние бота, когда его ударяют и он на время от удара перестает стрелять? GetAnim к сожалению не подходит - всегда пишет 0. Просто когда начинаешь его бить, пули все-равно от него летят FCNPC_TriggerWeaponShot через таймер у меня. Кроме варианта решить это через public damage(когда ударили бота кулаком, на время прекратить стрельбу) нет больше никаких?

3) Анимации почему-то срабатывают не всегда. Всяко пробовал - почему то через раз.

4) Краш, когда мы пытаемся удалить путь FCNPC_DestroyMovePath перед след. вызовом FCNPC_GoByMovePath. Если после FCNPC_GoByMovePath удаляем путь, по которому только что шел бот - все хорошо, краша нет. И это несмотря на то, что я даже останавливаю бота FCNPC_Stop. Возможно, при FCNPC_Stop где-то что-то не обнуляется, при этом когда переназначаем путь через FCNPC_GoByMovePath - все становится хорошо и старый путь можно удалять.
PHP Code:
FCNPC_Stop(botid);
FCNPC_DestroyMovePath(curPath);
FCNPC_GoByMovePath(botidnewPath, ...); 
MrStead is offline   Reply With Quote
Old 25/01/2018, 04:46 PM   #107
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
Еще вопросики)
1) Может ли бот одновременно целиться AimAt, стрелять FCNPC_SetKey и идти к цели GoByMovePath? А то походка начинается и тут же прерывается.

2) Можно ли как то определить состояние бота, когда его ударяют и он на время от удара перестает стрелять? GetAnim к сожалению не подходит - всегда пишет 0. Просто когда начинаешь его бить, пули все-равно от него летят FCNPC_TriggerWeaponShot через таймер у меня. Кроме варианта решить это через public damage(когда ударили бота кулаком, на время прекратить стрельбу) нет больше никаких?

3) Анимации почему-то срабатывают не всегда. Всяко пробовал - почему то через раз.

4) Краш, когда мы пытаемся удалить путь FCNPC_DestroyMovePath перед след. вызовом FCNPC_GoByMovePath. Если после FCNPC_GoByMovePath удаляем путь, по которому только что шел бот - все хорошо, краша нет. И это несмотря на то, что я даже останавливаю бота FCNPC_Stop. Возможно, при FCNPC_Stop где-то что-то не обнуляется, при этом когда переназначаем путь через FCNPC_GoByMovePath - все становится хорошо и старый путь можно удалять.
PHP Code:
FCNPC_Stop(botid);
FCNPC_DestroyMovePath(curPath);
FCNPC_GoByMovePath(botidnewPath, ...); 

Quote:
Originally Posted by MrStead View Post
1) Может ли бот одновременно целиться AimAt, стрелять FCNPC_SetKey и идти к цели GoByMovePath? А то походка начинается и тут же прерывается.
Ты, скорее всего, неправильно вызываешь FCNPC_SetKey, сбивая кнопки ходьбы. Для стрельбы нужно установить true в параметр shoot функции AimAt.

Quote:
Originally Posted by MrStead View Post
2) Можно ли как то определить состояние бота, когда его ударяют и он на время от удара перестает стрелять? GetAnim к сожалению не подходит - всегда пишет 0. Просто когда начинаешь его бить, пули все-равно от него летят FCNPC_TriggerWeaponShot через таймер у меня. Кроме варианта решить это через public damage(когда ударили бота кулаком, на время прекратить стрельбу) нет больше никаких?
Нет, это не определить.

Quote:
Originally Posted by MrStead View Post
3) Анимации почему-то срабатывают не всегда. Всяко пробовал - почему то через раз.
Покажи код.

Quote:
Originally Posted by MrStead View Post
4) Краш, когда мы пытаемся удалить путь FCNPC_DestroyMovePath перед след. вызовом FCNPC_GoByMovePath. Если после FCNPC_GoByMovePath удаляем путь, по которому только что шел бот - все хорошо, краша нет. И это несмотря на то, что я даже останавливаю бота FCNPC_Stop. Возможно, при FCNPC_Stop где-то что-то не обнуляется, при этом когда переназначаем путь через FCNPC_GoByMovePath - все становится хорошо и старый путь можно удалять.
PHP Code:
FCNPC_Stop(botid);
FCNPC_DestroyMovePath(curPath);
FCNPC_GoByMovePath(botidnewPath, ...); 
Гляну, как будет время.
ZiGGi is offline   Reply With Quote
Old 27/01/2018, 02:38 PM   #108
eakwarp
High-roller
 
Join Date: Feb 2007
Posts: 1,906
Reputation: 131
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Очень жду обновления под dl.
__________________
More than 10 years of development, more than 40 mb(sic! 1 kk lines+) of source code, more than a two hundred units and more than 35k revisions(upd. aug 2017). Valakas Roleplay - choose your role.

Как правило, то, что делаю я, лишь через годы начинают делать другие, но потом, обязательно мне ставят в укор, "ой, да это уже у всех есть"...



[Gamemode] Valakas Trucker Roleplay (Russian).
eakwarp is offline   Reply With Quote
Old 27/01/2018, 10:05 PM   #109
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 eakwarp View Post
Очень жду обновления под dl.
Пока нет времени, очень много работы.
ZiGGi is offline   Reply With Quote
Old 29/01/2018, 10:01 AM   #110
Jasno
Little Clucker
 
Join Date: Nov 2017
Posts: 31
Reputation: 0
Default Re: FCNPC - Fully Controllable NPC (Russian Thread)

Каким либо образом возможно предотвратить кик NPC после наполнения слотов? Например 100\100 игроков, заходит 101, кикает бота.
Jasno 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 10:00 AM
[Include] [INC] Russian GameText + Russian Language for GTA-SA [Saint] Релизы/Releases 20 10/02/2015 12:24 PM
[Plugin] FCNPC - Fully Controllable NPC sa-mp 0.3x R2 [LCK]Chris Plugin Development 82 16/05/2014 03:16 PM
[?]New SZR fully controllable NOS system Qeux Help Archive 3 17/03/2011 03:24 AM


All times are GMT. The time now is 11:27 AM.


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