Просмотр полной версии : [Plugin] FCNPC - Полностью управляемый NPC
FCNPC - Полностью управляемый NPC
Введение:
Да, этот плагин даёт полный контроль на сервере над NPC ботами, он похож на старый CNPC плагин, но этот намного различается с тем.
Особенности:
50+ функций для управления NPC
Обнаружение повреждения NPC
Синхронизация с движением NPC (ходьба, бег, спринт, ...)
Вход и выход NPC бота из транспорта (Не идеально, но всё же)
Функции:
FCNPC_SetUpdateRate
Параметры:
rate: частота обновления (в мс) для каждого NPC (имеется лимит пропускной способности)
Возвращает: Нет
FCNPC_Create
Параметры:
name: нужное для создания NPC имя
Возвращает: ID созданного NPC бота
FCNPC_Destroy
Параметры:
ID: ID уничтоженного NPC бота
Возвращает: Нет
FCNPC_Spawn
Параметры:
ID: ID заспавненного NPC бота
skinid: ID скина для спавна NPC бота
X: Координат спавна по оси X
Y: Координат спавна по оси Y
Z: Координат спавна по оси Z
Возвращает: 1 если NPC бот успешно заспавнился, 0 если нет
FCNPC_Respawn
Параметры:
ID: ID зареспавниваемого NPC бота
Возвращает: 1 если NPC успешно зареспавнен, 0 если нет
FCNPC_Kill
Параметры:
ID: ID убиваемого NPC бота
Возвращает: Нет
FCNPC_IsDead
Параметры:
ID: ID проверямого бота на смертность
Возвращает: 1 если NPC бот мёртв, 0 если нет
FCNPC_SetPosition
Параметры:
ID: ID NPC бота
X: Устанавливаемая координата по оси X
Y: Устанавливаемая координата по оси Y
Z: Устанавливаемая координата по оси Z
Возвращает: Нет
FCNPC_GetPosition
Параметры:
ID: ID NPC бота
X: Получаемая координата по оси X
Y: Получаемая координата по оси Y
Z: Получаемая координата по оси Z
Возвращает: Нет
FCNPC_SetAngle
Параметры:
ID: ID NPC бота
A: Устанавливаемый угол поворота
Возвращает: Нет
FCNPC_GetAngle
Параметры:
ID: ID NPC бота
Возвращает: Угол поворота NPC бота
FCNPC_SetVelocity
Параметры:
ID: ID NPC бота
X: Устанавливаемая координата по оси X
Y: Устанавливаемая координата по оси Y
Z: Устанавливаемая координата по оси Z
Возвращает: Нет
FCNPC_GetVelocity
Параметры:
ID: ID NPC бота
X: Получаемая координата по оси X
Y: Получаемая координата по оси Y
Z: Получаемая координата по оси Z
Возвращает: Нет
FCNPC_SetQuaternion
Параметры:
ID: ID NPC бота
X: Устанавливаемая координата по оси X
Y: Устанавливаемая координата по оси Y
Z: Устанавливаемая координата по оси Z
A: Устанавливаемый поворот
Возвращает: Нет
FCNPC_GetQuaternion
Параметры:
ID: ID NPC бота
X: Получаемая координата по оси X
Y: Получаемая координата по оси Y
Z: Получаемая координата по оси Z
A: Получаемый поворот
Возвращает: Нет
FCNPC_SetInterior
Параметры:
ID: ID NPC бота
Interior: Устанавливаемый интерьер
Возвращает: Нет
FCNPC_GetInterior
Параметры:
ID: ID NPC бота
Возвращает: ID интьерьера NPC бота
FCNPC_SetHealth
Параметры:
ID: ID NPC бота
health: Устанавливаемое здоровье
Возвращает: Нет
FCNPC_GetHealth
Параметры:
ID: ID NPC бота
Возвращает: Здоровье NPC бота
FCNPC_SetArmour
Параметры:
ID: ID NPC бота
armour: Устанавливаемая броня
Возвращает: Нет
FCNPC_GetArmour
Параметры:
ID: ID NPC бота
Возвращает: Броня NPC бота
FCNPC_SetSkin
Параметры:
ID: ID NPC бота
skinid: Устанавливаемый скин
Возвращает: Нет
Примечание: NPC бот должен будет зареспавниться для того, чтобы изменения вступили в силу
FCNPC_GetSkin
Параметры:
ID: ID NPC бота
Возвращает: ID скина NPC бота
FCNPC_SetSpecialAction
Параметры:
ID: ID NPC бота
actionid: Выполняемый ID действия
Возвращает: Нет
FCNPC_GetSpecialAction
Параметры:
ID: ID NPC бота
Возвращает: ID выполняемого действия NPC бота
FCNPC_SetWeapon
Параметры:
ID: ID NPC бота
weaponid: Выдаваемый ID оружия
Возвращает: Нет
FCNPC_GetWeapon
Параметры:
ID: ID NPC бота
Возвращает: ID оружия NPC бота
FCNPC_SetAmmo
Параметры:
ID: ID NPC бота
ammo: Выдаваемые патроны
Возвращает: Выданное количество патронов
FCNPC_GetAmmo
Параметры:
ID: ID NPC бота
Возвращает: Количество патронов NPC бота
FCNPC_SetKeys
Параметры:
ID: ID NPC бота
keys: Устанавливаемые клавиши NPC боту (Нет аналогов)
Возвращает: Выданное количество патронов
FCNPC_GetKeys
Параметры:
ID: ID NPC бота
UDAnalog: Верхнее / Нижнее значение аналога
LRAnalog: Левое / Правое значение аналога
Возвращает: Нет
FCNPC_GoTo
Параметры:
ID: ID NPC бота
X: Устанавливаемая координата по оси X
Y: Устанавливаемая координата по оси Y
Z: Устанавливаемая координата по оси Z
type: Тип направления
MOVE_TYPE_WALK: ходящий NPC бот
MOVE_TYPE_RUN: Бегущий NPC бот
MOVE_TYPE_SPRINT: NPC бот, бегущий спринтом
MOVE_TYPE_DRIVE: NPC бот, который едет в транспорте
Speed: Скорость вождения (Только тогда, когда NPC бот едет в транспорте)
UseZMap: Флаг для указания использования ZMap
Возвращает: Нет
FCNPC_Stop
Параметры:
ID: ID NPC бота
Возвращает: Нет
FCNPC_IsMoving
Параметры:
ID: ID NPC бота
Возвращает: 1 если перемещается, 0 если нет
FCNPC_SetAimAt
Параметры:
ID: ID NPC бота
X: Устанавливаемая координата прицела по оси X
Y: Устанавливаемая координата прицела по оси Y
Z: Устанавливаемая координата прицела по оси Z
shoot: 1 NPC бот будет стрелять, 0 только прицеливаться
Возвращает: Нет
FCNPC_IsAiming
Параметры:
ID: ID NPC бота
Возвращает: 1 если целится, 0 если нет
FCNPC_IsShooting
Параметры:
ID: ID NPC бота
Возвращает: 1 если стреляет, 0 если нет
FCNPC_IsReloading
Параметры:
ID: ID NPC бота
Возвращает: 1 если перезаряжается, 0 если нет
FCNPC_EnterVehicle
Параметры:
ID: ID NPC бота
vehicleid: ID транспорта
seat: Место в транспорте
Возвращает: 1 если успешно вошёл, 0 если нет
FCNPC_ExitVehicle
Параметры:
ID: ID NPC бота
Возвращает: 1 если успешно вышёл, 0 если нет
FCNPC_PutPlayerInVehicle
Параметры:
ID: ID NPC бота
vehicleid: ID транспорта
seat: Место в транспорте
Возвращает: 1 если успешно посажен, 0 если нет
FCNPC_RemoveFromVehicle
Параметры:
ID: ID NPC бота
Возвращает: 1 если успешно выкинут из транспорта, 0 если нет
FCNPC_GetVehicleID
Параметры:
ID: ID NPC бота
Возвращает: ID транспорта NPC бота, если хотя бы в любом транспорте, либо INVALID_VEHICLE_ID если не в транспорте.
FCNPC_GetVehicleSeat
Параметры:
ID: ID NPC бота
Возвращает: Возвращает ID сиденья в транспорте, либо 128 если не в транспорте.
FCNPC_StartRecordingPlayback
Параметры:
ID: ID NPC бота
File: Имя записываемого файла (Должен распологаться в "npcmodes/recordings/")
Возвращает: Возвращает 1, если успешно записано, 0 если нет
FCNPC_StopRecordingPlayback
Параметры:
ID: ID NPC бота
Возвращает: Возвращает 1, если успешно остановлена запись, 0 если нет
FCNPC_PauseRecordingPlayback
Параметры:
ID: ID NPC бота
Возвращает: Нет
FCNPC_ResumeRecordingPlayback
Параметры:
ID: ID NPC бота
Возвращает: Нет
FCNPC_OpenNode
Параметры:
ID: ID узла
Возвращает: 1 если успешно открылся, 0 если нет
FCNPC_CloseNode
Параметры:
ID: ID узла
Возвращает: Нет
FCNPC_IsNodeOpen
Параметры:
ID: ID узла
Возвращает: 1 если узел открыт, 0 если нет
FCNPC_SetNodePoint
Параметры:
ID: ID узла
point: Устанавливаемая точка узла
Возвращает: Нет
FCNPC_GetNodePointPosition
Параметры:
ID: ID узла
X: Получаемая координата узла по оси X
Y: Получаемая координата узла по оси Y
Z: Получаемая координата узла по оси Z
Возвращает: Нет
FCNPC_GetNodePointCount
Параметры:
ID: ID узла
Возвращает: Количество точек в узле
FCNPC_GetNodeInfo
Параметры:
ID: ID узла
vehnodes: количество транспорта в узле
pednodes: количество пешеходов в узле
navinodes: количество навигационных узлов в узле
Возвращает: Нет
FCNPC_PlayNode
Параметры:
npcid: ID NPC бота
nodeid: ID проигрываемого узла
type: Тип узла
types are:
NODE_TYPE_PED: Пешеходный узел
NODE_TYPE_VEHICLE: Транспортный узел
NODE_TYPE_BOAT: Корабельный узел
Возвращает: Нет
FCNPC_StopPlayingNode
Параметры:
ID: ID NPC бота
Возвращает: Нет
FCNPC_GetZGround
Параметры:
ID: ID NPC бота
X: Координата по оси X
Y: Координата по оси Y
Z: Переменная, в которую будет записано значение точки
Возвращает: Нет
Колбэки:
FCNPC_OnCreate
Описание: Вызывается, когда создаётся NPC бот
Параметры:
npcid: ID NPC бота
Возвращает: Нет
FCNPC_OnSpawn
Описание: Вызывается, когда спавнится NPC бот
Параметры:
npcid: ID заспавненного NPC бота
Возвращает: Нет
FCNPC_OnRespawn
Описание: Вызывается, когда респавнится NPC бот
Параметры:
npcid: ID зареспавненного NPC бота
Возвращает: Нет
FCNPC_OnDeath
Описание: Вызывается, когда погибает NPC бот
Параметры:
npcid: ID NPC бота
killerid: ID игрока, который убил NPC бота (INVALID_PLAYER_ID если NPC бот погиб сам)
weaponid: ID оружия, которым убили NPC бота
Возвращает: Нет
FCNPC_OnReachDestination
Описание: Вызывается, когда NPC бот достигает места назначения (FCNPC_GoTo)
Параметры:
npcid: ID NPC бота
Возвращает: Нет
FCNPC_OnVehicleEntryComplete
Описание: Вызывается, когда NPC бот завершил вход в транспорт (FCNPC_EnterVehicle)
Параметры:
npcid: ID NPC бота
Возвращает: Нет
FCNPC_OnVehicleExitComplete
Описание: Вызывается, когда NPC бот завершил выход из транспорта (FCNPC_ExitVehicle)
Параметры:
npcid: ID NPC бота
Возвращает: Нет
FCNPC_OnTakeDamage
Описание: Вызывается, когда NPC бот получает повреждение
Параметры:
npcid: ID NPC бота
damagerid: ID игрока повредившего NPC бота
weaponid: ID оружия, с которого был нанесён урок NPC боту
Возвращает: Нет
FCNPC_OnFinishPlayback
Описание: Вызывается, когда NPC бот завершает плейбэк запись (.rec файл)
Параметры:
npcid: ID NPC бота
Возвращает: Нет
FCNPC_OnFinishNode
Описание: Вызывается, когда NPC бот завершает запись узла
Параметры:
npcid: ID NPC бота
Возвращает: Нет
FCNPC_OnFinishNodePoint
Описание: Вызывается, когда NPC бот завершает запись точки узла
Параметры:
npcid: ID NPC бота
point: Конечная точка
Возвращает: 1, для записи узла, 0 для остановки
Установка:
Закиньте файл "FCNPC.dll" (для windows) или "FCNPC.so" (для linux) в вашу папку с плагинами (plugins)
Закиньте файл "FCNPC.inc" в вашу папку с инклюдами ("pawno/includes")
Добавьте плагин "FCNPC" ко всем плагинам в файл "server.cfg"
Требования:
Последняя версия SA:MP сервера (0.3z или 0.3z R1-2(-2))
Скачать:
Инклюд (http://www.solidfiles.com/d/096c374a99/FCNPC.inc)
Плагин (http://www.solidfiles.com/d/fd01cc8603/FCNPC.rar)
Исходный код (https://code.google.com/p/fcnpc/)
Последнюю версию всегда можно скачать с GitHub: https://github.com/Open-GTO/FCNPC/releases
Видео:
http://www.youtube.com/watch?feature=player_embedded&v=VlqtKWgRO10
"Разработчики":
Команда SA:MP
OrMisicL: Разработка
Admigo: Тестирование
kurta999: Тестирование на Linux сервере
iJumbo: Тестирование на Linux сервере
Lorenc_: Помощник
Перевод: L0ndl3m (https://pro-pawn.ru/member.php?2057-L0ndl3m)
Оригинал: http://forum.sa-mp.com/showthread.php?t=428066 (http://forum.sa-mp.com/showthread.php?t=428066)
Специально для: Pro-Pawn.Ru (http://pro-pawn.ru)
Копирование данной статьи без разрешения автора запрещено!
Salvacore
03.05.2014, 23:58
Отлично, спасибо.
[21:59:15] [debug] Run time error 19: "File or function is not found"
[21:59:15] [debug] FCNPC_ProcessDamage
[21:59:15] [debug] FCNPC_Create
[21:59:15] [debug] FCNPC_Spawn
[21:59:15] [debug] Run time error 19: "File or function is not found"
[21:59:15] [debug] FCNPC_ProcessDamage
[21:59:15] [debug] FCNPC_Create
[21:59:15] [debug] FCNPC_Spawn
[21:59:15] Script[gamemodes/RP.amx]: Run time error 19: "File or function is not found"
Уот собсна
Если у кого будет:
Windows (http://www.solidfiles.com/d/49a4e4274a/FCNPC.dll)
Linux (http://www.solidfiles.com/d/55418d3439/FCNPC.so)
[21:59:15] [debug] Run time error 19: "File or function is not found"
[21:59:15] [debug] FCNPC_ProcessDamage
[21:59:15] [debug] FCNPC_Create
[21:59:15] [debug] FCNPC_Spawn
[21:59:15] [debug] Run time error 19: "File or function is not found"
[21:59:15] [debug] FCNPC_ProcessDamage
[21:59:15] [debug] FCNPC_Create
[21:59:15] [debug] FCNPC_Spawn
[21:59:15] Script[gamemodes/RP.amx]: Run time error 19: "File or function is not found"
Уот собсна
Плагин последней версии качайте.
Если плагин последней версии, проверьте, положили ли вы плагин в папку plugins, и добавили в файл server.cfg название плагина к строке plugins.
Плагин последней версии качайте.
Если плагин последней версии, проверьте, положили ли вы плагин в папку plugins, и добавили в файл server.cfg название плагина к строке plugins.
Бот подклюается, но не спавнится, в чем может быть проблема?
Бот подклюается, но не спавнится, в чем может быть проблема?
Код показывайте.
Код показывайте.
OnGameModeInit
npcsit = FCNPC_Create("Alexey_Kozenko");
FCNPC_Spawn(npcsit,MaleSkin[random(10)][0],2154.7273,128.1166,1006.7903);
Попробуйте его спавнить допустим, при вводе команды.
Попробуйте его спавнить допустим, при вводе команды.
Нет, все равно.
Сделал debug спавна - он спавнится, но на координатах которые установлены - не появляется!
Нет, все равно.
Сделал debug спавна - он спавнится, но на координатах которые установлены - не появляется!
Попробуйте к нему телепортироватся, если после телепортации вы увидите его на верных координатах значит он помещен в неверный виртуальный мир/интерьер!
2)И не работает FCNPC_SetSpecialAction.
Сделав дебаг, ставиться ему 12 SpecialAction, но он не садится.
3) Как допустим сделать бот дошел до точки( GoTO) и сделать ему обратно чтобы шел?
Готовится новая версия, есть какие-нибудь предложения?
Вышла версия 1.0.0.
Новое
- NPC теперь могут быть убиты в транспорте.
- Транспорт теперь получает урон, если на водительском сидении сидит NPC (чтобы отключить это, возвратите 0 в FCNPC_OnVehicleTakeDamage).
- OnPlayerStreamIn/Out теперь не вызываются для FCNPC (используйте FCNPC_OnStreamIn/Out).
- NPC теперь можно прикрепить к транспорту, объекту или объекту игрока (доступно изменение смещение).
- Контроль сирены транспорта NPC.
- Контроль здоровья транспорта NPC.
- Теперь можно контролировать урон, размер магазина, скорость стрельбы и скорость перезарядки оружия для всех или для каждого NPC.
- Контроль WeaponSkill для оружия (с изменением уроня для двойного оружия).
- Теперь можно контролировать силу броска гранаты, с помощью параметра shoot_delay в FCNPC_AimAt.
- Добавлен параметр UseFightstyle в FCNPC_MeleeAttack, с помощью которого NPC могут бить с использованием Fightstyle.
- Добавлено значение delay по умолчанию в FCNPC_MeleeAttack.
- В функции FCNPC_GoTo теперь можно отключить автоматическую установку угла поворота (полезно для использования совместно с FCNPC_SetQuaternion).
- Функция FCNPC_SetSkin теперь не респавнит, а рестримит NPC.
- Новые функции для контроля угла поворота NPC (FCNPC_SetAngleToPos, FCNPC_SetAngleToPlayer).
- Функции неуязвимости (FCNPC_SetInvulnerable, FCNPC_IsInvulnerable).
- Добавлен MOVE_TYPE_AUTO для FCNPC_GoTo (автоматически проверят NPC на нахождение в транспорте).
- Добавлен параметр radius для FCNPC_GoTo (NPC пойдёт к случайным координатам в пределах этого радиуса от точки назначения).
Исправления
- NPC не наносят урона при стрельбе.
- Угол поворота транспорта меняется при посадке в него NPC.
- NPC атакуют после спавна.
- NPC не стреляют после первой перезарядки.
- Валидация скинов из SA-MP 0.3.7.
Внутренние изменения
- Поддержка Windows и Linux SA-MP серверов версии 0.3.7 и 0.3.7 R2-1.
- Добавлена корректная валидация пассажирского места при посадке в транспорт.
- Заместо ZMap встроен MapAndreas 1.2.1 (http://forum.sa-mp.com/showpost.php?p=3130004&postcount=153).
- Множество изменений в коде (замена Detours на subhook, переход на CMake, внедрение YSF Structs.h, замена небезопасных функций, оптимизация и другое).
Список новых функций
native FCNPC_InitMapAndreas(address);
native FCNPC_IsValid(npcid);
native FCNPC_IsStreamedIn(npcid, forplayerid);
native FCNPC_SetAngleToPos(npcid, Float:X, Float:Y);
native FCNPC_SetAngleToPlayer(npcid, playerid);
native FCNPC_SetInvulnerable(npcid, bool:invulnerable = true);
native FCNPC_IsInvulnerable(npcid);
native FCNPC_SetWeaponSkillLevel(npcid, skill, level);
native FCNPC_GetWeaponSkillLevel(npcid, skill);
native FCNPC_SetWeaponState(npcid, weaponstate);
native FCNPC_GetWeaponState(npcid);
native FCNPC_SetWeaponDamage(npcid, weaponid, Float:damage);
native Float:FCNPC_GetWeaponDamage(npcid, weaponid);
native FCNPC_SetWeaponReloadTime(npcid, weaponid, time);
native FCNPC_GetWeaponReloadTime(npcid, weaponid);
native FCNPC_SetWeaponShootTime(npcid, weaponid, time);
native FCNPC_GetWeaponShootTime(npcid, weaponid);
native FCNPC_SetWeaponClipSize(npcid, weaponid, size);
native FCNPC_GetWeaponClipSize(npcid, weaponid);
native FCNPC_SetWeaponInfo(npcid, weaponid, Float:damage = -1.0, reload_time = -1, shoot_time = -1, clip_size = -1);
native FCNPC_GetWeaponInfo(npcid, weaponid, &Float:damage = -1.0, &reload_time = -1, &shoot_time = -1, &clip_size = -1);
native FCNPC_SetWeaponDefaultInfo(weaponid, Float:damage = -1.0, reload_time = -1, shoot_time = -1, clip_size = -1);
native FCNPC_GetWeaponDefaultInfo(weaponid, &Float:damage = -1.0, &reload_time = -1, &shoot_time = -1, &clip_size = -1);
native FCNPC_SetAnimation(npcid, animationid, Float:fDelta = 4.1, loop = 0, lockx = 1, locky = 1, freeze = 0, time = 1);
native FCNPC_GetAnimation(npcid, &animationid = 0, &Float:fDelta = 4.1, &loop = 0, &lockx = 1, &locky = 1, &freeze = 0, &time = 1);
native FCNPC_SetFightingStyle(npcid, style);
native FCNPC_GetFightingStyle(npcid);
native FCNPC_GoTo(npcid, Float:X, Float:Y, Float:Z, type = MOVE_TYPE_AUTO, Float:speed = 0.5, bool:UseMapAndreas = false, Float:radius = 0.0, bool:getangle = true); // updated
native FCNPC_GoToPlayer(npcid, playerid, type = MOVE_TYPE_AUTO, Float:speed = 0.5, bool:UseMapAndreas = false, Float:radius = 0.0, bool:getangle = true);
native FCNPC_AimAt(npcid, Float:X, Float:Y, Float:Z, bool:shoot = false, shoot_delay = 0); // updated
native FCNPC_AimAtPlayer(npcid, playerid, bool:shoot = false, shoot_delay = 0);
native FCNPC_MeleeAttack(npcid, delay = -1, bool:fightstyle = false); // updated
native FCNPC_EnterVehicle(npcid, vehicleid, seatid, type = MOVE_TYPE_WALK); // updated
native FCNPC_SetVehicleSiren(npcid, bool:status);
native FCNPC_IsVehicleSiren(npcid);
native FCNPC_SetVehicleHealth(npcid, Float:health);
native Float:FCNPC_GetVehicleHealth(npcid);
native FCNPC_SetSurfingOffsets(npcid, Float:fX, Float:fY, Float:fZ);
native FCNPC_GetSurfingOffsets(npcid, &Float:fX, &Float:fY, &Float:fZ);
native FCNPC_SetSurfingVehicle(npcid, vehicleid);
native FCNPC_GetSurfingVehicle(npcid);
native FCNPC_SetSurfingObject(npcid, objectid);
native FCNPC_GetSurfingObject(npcid);
native FCNPC_SetSurfingPlayerObject(npcid, objectid);
native FCNPC_GetSurfingPlayerObject(npcid);
Список новых автовызываемых функций
forward FCNPC_OnVehicleTakeDamage(npcid, damagerid, vehicleid, weaponid, Float:fX, Float:fY, Float:fZ);
forward FCNPC_OnStreamIn(npcid, forplayerid);
forward FCNPC_OnStreamOut(npcid, forplayerid);
Скачать
- Последнюю версию всегда можно скачать с GitHub: https://github.com/Open-GTO/FCNPC/releases
Salik_Davince
22.02.2016, 11:27
А я даже и нечего и не менял, включал и выключал MapAndreas, тоже самое...
SA-MP Dedicated Server
----------------------
v0.3.7, (C)2005-2015 SA-MP Team
[12:25:41] filterscripts = "" (string)
[12:25:41]
[12:25:41] Server Plugins
[12:25:41] --------------
[12:25:41] Loading plugin: FCNPC
[12:25:41]
[12:25:41] -------------------------------------------------
[12:25:41] FCNPC - Fully Controllable NPC v1.0.0
[12:25:41]
[12:25:41] - Author: OrMisicL
[12:25:41] - Contributors: ziggi, Neutralneu
[12:25:41] - Server version: 0.3.7
[12:25:41] - Build: Feb 21 2016 at 20:54:30
[12:25:41] -------------------------------------------------
[12:25:41]
[12:25:41] Loading...
[12:25:41] Loaded.
[12:25:41] Loading plugin: MapAndreas
[12:25:41] Loaded.
[12:25:41] Loaded 2 plugins.
[12:25:41]
[12:25:41] Filterscripts
[12:25:41] ---------------
[12:25:41] Loaded 0 filterscripts.
[12:25:41] Script[gamemodes/bg.amx]: Run time error 20: "Invalid index parameter (bad entry point)"
[12:25:41] Number of vehicle models: 0
----------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3.7, (C)2005-2015 SA-MP Team
[12:25:55] filterscripts = "" (string)
[12:25:55]
[12:25:55] Server Plugins
[12:25:55] --------------
[12:25:55] Loading plugin: FCNPC
[12:25:55]
[12:25:55] -------------------------------------------------
[12:25:55] FCNPC - Fully Controllable NPC v1.0.0
[12:25:55]
[12:25:55] - Author: OrMisicL
[12:25:55] - Contributors: ziggi, Neutralneu
[12:25:55] - Server version: 0.3.7
[12:25:55] - Build: Feb 21 2016 at 20:54:30
[12:25:55] -------------------------------------------------
[12:25:55]
[12:25:55] Loading...
[12:25:55] Loaded.
[12:25:55] Loading plugin: MapAndreas
[12:25:55] Loaded.
[12:25:55] Loaded 2 plugins.
[12:25:55]
[12:25:55] Filterscripts
[12:25:55] ---------------
[12:25:55] Loaded 0 filterscripts.
[12:25:55] Script[gamemodes/FCNPC.amx]: Run time error 20: "Invalid index parameter (bad entry point)"
[12:25:55] Number of vehicle models: 0
Daniel_Cortez
22.02.2016, 11:47
- Заместо ZMap встроен MapAndreas 1.2.1 (http://forum.sa-mp.com/showpost.php?p=3130004&postcount=153).
Разве нельзя было просто сделать взаимодействие с MapAndreas, как с отдельным плагином, или это бы сильно отразилось на производительности?
Теперь же, если хочешь пользоваться и MapAndreas и FCNPC, серверу придётся держать в памяти сразу два экземпляра карты высот.
Выглядит не совсем кошерно, тем более, что хостеры могут ограничивать макс. объём памяти для сервера.
Разве нельзя было просто сделать взаимодействие с MapAndreas, как с отдельным плагином, или это бы сильно отразилось на производительности?
Теперь же, если хочешь пользоваться и MapAndreas и FCNPC, серверу придётся держать в памяти сразу два экземпляра карты высот.
Выглядит не совсем кошерно, тем более, что хостеры могут ограничивать макс. объём памяти для сервера.
Как раз по этой ссылке об этом написано. То есть теперь наоборот, в памяти нужно держать лишь одни экземпляр.
Теперь подключение карты выглядит таким образом:
MapAndreas_Init(MAP_ANDREAS_MODE_FULL);
FCNPC_InitMapAndreas(MapAndreas_GetAddress());
А я даже и нечего и не менял, включал и выключал MapAndreas, тоже самое...
Все примеры скриптов являются Filterscript и запускать их нужно как Filterscript.
Salik_Davince
22.02.2016, 15:14
Упс тупо поступил, температура, голова не соброжает в данные дни, извеняюсь незнаю что сомной такое :boredom:
FCNPC 1.0.6
О версии
- Добавлены аналоговые UD и LR в FCNPC_SetKeys
Исправления
- Исправлено получение урона в скрипте Bodyguard
- Исправлено воскрешение NPC после рестрима
- Установлены корректные клавиши при передвижении игрока
- Исправлен крэш после отключения NPC
- Исправлена причина и killerid при убийстве NPC
Изменённые функции
native FCNPC_SetKeys(npcid, ud_analog, lr_analog, keys);
FCNPC 1.0.7
Изменения
- Исправлены кнопки передвижения (были некоторые проблемы с анимацией передвижения)
- Исправлено исчезновение тела (#15 (https://github.com/Open-GTO/FCNPC/issues/15))
- Добавлена проверка на передаваемый адрес MapAndreas (больше не будет крашить, если адрес недействителен)
- Добавлены некоторые проверки на вводимые параметры
- Удалён сброс данных прицеливания из MeleeAttack (теперь вы можете использовать FCNPC_AimAtPlayer совместно с FCNPC_MeleeAttack)
- FCNPC_AimAt(Player) останавливает прицеливание перед началом нового
- Исправлен и оптимизирован перехват автовызываемых функций (теперь это отлично работает с filterscript)
- Исправлено действие по возвращаемому значению из автовызываемой функции (теперь это работает)
- Оптимизация (совсем чуть-чуть)
Скачать
- Скачать со страницы релизов GitHub: https://github.com/Open-GTO/FCNPC/releases
FCNPC 1.1.0
О версии
- Улучшено определение цели в функции FCNPC_AimAt
- Теперь NPC могут наносить урон другому игроку (для предотвращения этого вы можете возвратить 0 в FCNPC_OnTakeDamage)
- Добавлена проверка версии инклуд файла
- Теперь функция FCNPC_GoToPlayer обновляет точку назначения NPC пока игрок двигается
- Добавлены функции для контроля тяги в Hydra
- Добавлены функции для контроля шасси
- shoot_delay по умолчанию изменён на -1 (не важно)
- Оптимизация процесса прицеливания
- Небольшой рефакторинг исходного кода
Исправления
- Исправлен крэш для недействительного транспорта во время проигрывания записи
- Исправлена синхронизация позиции NPC при сёрфинге (прицеплении к транспорту)
- Исправлена стрельба при сёрфинге
- Исправлена работа аргумента speed в функциях FCNPC_GoTo[Player] (теперь он работает для пеших NPC тоже)
- Исправлено направление прицеливания по оси Z
- Сброс клавиш NPC после смерти (исправляет некоторые ошибки с анимациями)
- Исправлена проверка на параметры в функциях информации об оружии
Новые функции
native FCNPC_StopSurfing(npcid);
native FCNPC_IsAttacking(npcid);
native FCNPC_IsAimingAtPlayer(npcid, playerid);
native FCNPC_IsMovingAtPlayer(npcid, playerid);
native FCNPC_SetVehicleHydraThrusters(npcid, direction);
native FCNPC_GetVehicleHydraThrusters(npcid);
native FCNPC_SetVehicleGearState(npcid, gear_state);
native FCNPC_GetVehicleGearState(npcid);
Скачать
- Скачать с GitHub: https://github.com/Open-GTO/FCNPC/releases
Подключаю плагин (на хостинге), создаётся файл в директории с таким логом:
=========================== FCNPC Exception Handler ============================
Signal 11 (Segmentation fault), address is 0xd49ee080 from 0xf72375ae
Backtrace:
#0 in plugins/FCNPC.so(_ZN17CExceptionHandler24ExceptionHandlerCallbackEiP7siginfoPv+0x164) [0xf69fcbf4]
#1 in linux-gate.so.1(__kernel_rt_sigreturn+0) [0xf7751ce0]
#2 in plugins/mysql.so(_ZN12CMySQLHandleD1Ev+0x19e) [0xf72375ae]
#3 in plugins/mysql.so(_ZN12CMySQLHandle7DestroyEv+0x45) [0xf7237875]
#4 in plugins/mysql.so(_ZN12CMySQLHandle8ClearAllEv+0x53) [0xf72378e3]
#5 in plugins/mysql.so(Unload+0x152) [0xf7251262]
#6 in ./samp03svr() [0x80d210b]
#7 in ./samp03svr() [0x80aa237]
#8 in /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf7) [0xf7393517]
#9 in ./samp03svr() [0x804b4e1]
Information:
System: GNU/Linux
SA-MP: 0.3.7 R2-1
FCNPC: 1.0.3
Functions:
FUNC_CPlayerPool__DeletePlayer: 0x80d0a90
FUNC_CPlayer__Kill: 0x80cb220
FUNC_CPlayer__EnterVehicle: 0x80cc1c0
FUNC_CPlayer__ExitVehicle: 0x80cc340
FUNC_CPlayer__SpawnForWorld: 0x80ccfc0
FUNC_GetVehicleModelInfo: 0x80d5d30
FUNC_CConsole__GetIntVariable: 0x80a0070
FUNC_ClientJoin_RPC: 0x80b0030
Pointers:
VAR_ServerAuthentication: 0x81aa8a8
VAR_NetVersion: 0xfd9
Offsets:
OFFSET_RemoteSystemManager: 0x334
OFFSET_RemoteSystemSize: 0xc69
OFFSET_RemoteSystem__ConnectMode: 0xc62
OFFSET_RemoteSystem__Unknown: 0xc67
=========================== FCNPC Exception Handler ============================
В чём проблема?
В чём проблема?
Как минимум в том, что используется слишком старая версия. Но скорее всего в том, бинарная версия плагина для Linux компилируется в Ubuntu 12.04, работа этого бинарного файла на других дистрибутивах не гарантируется, лучше пересобрать плагин на собственной машине.
FCNPC 1.1.1
О версии
- Сёрфинг теперь поддерживает прикреплённые объекты
- Оптимизация
- Добавлены константы скорости в инклуд файл
- Обновлено загрузочное сообщение
Исправления
- Исправлена валидация объектов и транспорта (меньше крэшей)
- Исправлена проверка версии инклуд файла (спасибо плагину Streamer от Incognito за пример)
- Исправлен радиус движения для функции FCNPC_GoToPlayer
- Исправлены типы переменных и их конвертация
- Исправлена работа скорости и типа в функции GoTo
- Исправлена ошибка со сбросом скорости поезда
- Исправлена синхронизация двигателей тяги в Hydra и скорости поезда при проигрывании записи
- Исправлены некоторые крэши при удалении транспорта NPC
Новые директивы
#define MOVE_SPEED_AUTO (-1.0)
#define MOVE_SPEED_WALK (0.1552086)
#define MOVE_SPEED_RUN (0.56444)
#define MOVE_SPEED_SPRINT (0.926784)
FCNPC 1.1.2
- Исправлена работа на Linux
FCNPC 1.1.3
О версии
- Переписан скрипт-пример Bodyguard
- Оптимизация
Исправления
- Исправление FCNPC_IsStreamedForAnyone
- Теперь FCNPC_PutInVehicle работает для NPC находящихся в транспорте
- Исправлена работа изменения времени стрельбы и задержки
- Исправлено много предупреждений при компиляции
- Добавлено много проверок на валидность (меньше крэшей)
Новые автовызываемые функции
forward FCNPC_OnGiveDamage(npcid, issuerid, weaponid, bodypart, Float:health_loss);
FCNPC 1.2.0
О версии
- Улучшены параметры оружия по умолчанию (deagle, m4, ak47)
- Добавлено много FCNPC_Give* функций
- Чистка кода
Исправления
- Исправлена работа параметра delay в функции FCNPC_AimAt
- Исправлено проигрывание node файлов
Новые функции
native FCNPC_GivePosition(npcid, Float:x, Float:y, Float:z);
native Float:FCNPC_GiveAngle(npcid, Float:angle);
native FCNPC_GiveQuaternion(npcid, Float:w, Float:x, Float:y, Float:z);
native FCNPC_GiveVelocity(npcid, Float:x, Float:y, Float:z);
native Float:FCNPC_GiveHealth(npcid, Float:health);
native Float:FCNPC_GiveArmour(npcid, Float:armour);
native FCNPC_GiveAmmo(npcid, ammo);
native FCNPC_GiveWeaponSkillLevel(npcid, skill, level);
native FCNPC_GiveSurfingOffsets(npcid, Float:x, Float:y, Float:z);
Скачать
- Скачать с GitHub: https://github.com/ziggi/FCNPC/releases
Есть ли мануал по данному плагину? Создание и использование каких-либо функции.
Есть ли мануал по данному плагину? Создание и использование каких-либо функции.
Все расписано на первой странице, в первом посте. Все понятно и доступно для каждого, все функции
Все расписано на первой странице, в первом посте. Все понятно и доступно для каждого, все функции
Более того, есть скрипты - примеры.
FCNPC 1.3.0
О версии
- Точность стрельбы (#23 (https://github.com/ziggi/FCNPC/issues/23))
- Автовызываемая функция FCNPC_OnUpdate
Исправления
- Больше проверок на подключение игрока (меньше крашей)
- Исправление FCNPC_GetWeaponInfo
Новые функции
native FCNPC_SetWeaponAccuracy(npcid, weaponid, Float:accuracy);
native Float:FCNPC_GetWeaponAccuracy(npcid, weaponid);
Обновлённые функции
native FCNPC_SetWeaponInfo(npcid, weaponid, reload_time = -1, shoot_time = -1, clip_size = -1, Float:accuracy = 1.0);
native FCNPC_GetWeaponInfo(npcid, weaponid, &reload_time = -1, &shoot_time = -1, &clip_size = -1, &Float:accuracy = 1.0);
native FCNPC_SetWeaponDefaultInfo(weaponid, reload_time = -1, shoot_time = -1, clip_size = -1, Float:accuracy = 1.0);
native FCNPC_GetWeaponDefaultInfo(weaponid, &reload_time = -1, &shoot_time = -1, &clip_size = -1, &Float:accuracy = 1.0);
Новые автовызываемые функции
forward FCNPC_OnUpdate(npcid);
FCNPC 1.3.1
Исправления
- Исправлена точка начала стрельбы для NPC
- Исправлен урон в скрипте-примере bodyguard
- Исправлена корректность работы без объявленных необходимых автовызываемых функций (но их объявление по-прежнему необходимо для работы всех функций)
FCNPC 1.4.0
О версии
- Добавлен опциональный параметр bool:update_pos = false в функции ускорения (FCNPC_Set/GiveVelocity)
- return 0 в FCNPC_OnUpdate работает так же, как return 0 в OnPlayerUpdate
- Оптимизация циклов обработки
- #6 (https://github.com/ziggi/FCNPC/issues/6): Реализована система путей движения
- #9 (https://github.com/ziggi/FCNPC/issues/9): Улучшена система проигрывания записей
- #12 (https://github.com/ziggi/FCNPC/issues/12): Оповещение о выходе новой версии
Новые функции
native FCNPC_LoadPlayingPlayback(file[]);
native FCNPC_UnloadPlayingPlayback(recordid);
native FCNPC_SetPlayingPlaybackPath(npcid, path[]);
native FCNPC_GetPlayingPlaybackPath(npcid, path[], const size = sizeof(path));
native FCNPC_CreateMovePath();
native FCNPC_DestroyMovePath(pathid);
native FCNPC_IsValidMovePath(pathid);
native FCNPC_AddPointToPath(pathid, Float:x, Float:y, Float:z);
native FCNPC_AddPointsToPath(pathid, Float:points[][3], const size = sizeof(points));
native FCNPC_RemovePointFromPath(pathid, pointid);
native FCNPC_IsValidMovePoint(pathid, pointid);
native FCNPC_GetMovePoint(pathid, pointid, &Float:x, &Float:y, &Float:z);
native FCNPC_GetNumberMovePoint(pathid);
native FCNPC_GoByMovePath(npcid, pathid, type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true);
Обновлённые функции
native FCNPC_SetVelocity(npcid, Float:x, Float:y, Float:z, bool:update_pos = false);
native FCNPC_GiveVelocity(npcid, Float:x, Float:y, Float:z, bool:update_pos = false);
native FCNPC_StartPlayingPlayback(npcid, file[] = "", recordid = INVALID_RECORD_ID, bool:auto_unload = false);
Новые автовызываемые функции
forward FCNPC_OnFinishMovePath(npcid, pathid);
forward FCNPC_OnFinishMovePathPoint(npcid, pathid, pointid);
Новые константы
#define INVALID_MOVEPATH_ID (-1)
#define INVALID_RECORD_ID (-1)
Скачать
- Скачать с GitHub: https://github.com/ziggi/FCNPC/releases
Salik_Davince
02.04.2017, 21:15
Стоило-бы дописать об новых обновлениях плагина.
FCNPC 1.4.1
О версии
- Добавлен foreach итератор FCNPC
Исправления
- Исправлены функции FCNPC_GetMovePoint и FCNPC_GetNumberMovePoint
- Исправлена автовызываемая функция FCNPC_OnFinishMovePath
Новые автовызываемые функции
forward FCNPC_OnDestroy(npcid);
FCNPC 1.4.2
Исправления
- Исправлено повреждение памяти в менеджере проигрывания записей
- Исправлена инициализация foreach итератора в Filterscript
FCNPC 1.5.0
О версии
- Поддержка CR-MP 0.3.7
- Удалены ограничения на максимальное количество здоровья и брони
Исправления
- Исправлен pathid в OnFinishMovePath
- Исправлены скрипты-примеры
- Исправления для компиляции из-под VS 2015
Новые функции
native FCNPC_TriggerWeaponShot(npcid, weaponid, hittype, hitid, Float:x, Float:y, Float:z, bool:ishit = true);
Новые автовызываемые функции
forward FCNPC_OnWeaponShot(npcid, weaponid, hittype, hitid, Float:x, Float:y, Float:z);
FCNPC v1.6.0
О версии
- Добавлена функция FCNPC_GetAimingPlayer
- Добавлены функции FCNPC_PausePlayingNode и FCNPC_ResumePlayingNode
- Добавлена автовызываемая функция FCNPC_OnWeaponStateChange
- #28 (https://github.com/ziggi/FCNPC/issues/28): Добавлено смещение для FCNPC_AimAtPlayer
- Удалены макросы с типами нодов
- Дополнительные параметры для FCNPC_PlayNode (как в функции FCNPC_GoTo)
- Обновлён скрипт citiziens
Исправления
- Исправления в коде
- Исправлена высота (Z) для нодов
- Исправлена последняя перезарядка у NPC
- Исправлена FCNPC_GetNodeType
Новые и изменённые функции
native FCNPC_AimAtPlayer(npcid, playerid, bool:shoot = false, shoot_delay = -1, bool:setangle = true, Float:offset_x = 0.0, Float:offset_y = 0.0, Float:offset_z = 0.0);
native FCNPC_GetAimingPlayer(npcid);
native FCNPC_PlayNode(npcid, nodeid, move_type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true);
native FCNPC_PausePlayingNode(npcid);
native FCNPC_ResumePlayingNode(npcid);
Новые автовызываемые функции
forward FCNPC_OnWeaponStateChange(npcid, weapon_state);
FCNPC v1.6.1
О версии
- #33 (https://github.com/ziggi/FCNPC/issues/33): Добавлены параметры смещения для функций прицеливания
- #31 (https://github.com/ziggi/FCNPC/issues/31): Добавлена функция FCNPC_IsPlayingNodePaused
- Добавлена функция FCNPC_IsPlayingNode
Исправления
- Нет учёта регистра для GetIndexByName
- #32 (https://github.com/ziggi/FCNPC/issues/32): Исправлены аргументы FCNPC_SetAnimationByName
- #30 (https://github.com/ziggi/FCNPC/issues/30): Пауза проигрывания нодов теперь не прекращает их обновления
- Добавлены проверки на деление на ноль в функциях GoTo
- Исправлена пауза для нодов
- Исправлены примеры скриптов
Новые и изменённые функции
native FCNPC_AimAt(npcid, Float:x, Float:y, Float:z, bool:shoot = false, shoot_delay = -1, bool:setangle = true, Float:offset_from_x = 0.0, Float:offset_from_y = 0.0, Float:offset_from_z = 0.0);
native FCNPC_AimAtPlayer(npcid, playerid, bool:shoot = false, shoot_delay = -1, bool:setangle = true, Float:offset_x = 0.0, Float:offset_y = 0.0, Float:offset_z = 0.0, Float:offset_from_x = 0.0, Float:offset_from_y = 0.0, Float:offset_from_z = 0.0);
native FCNPC_TriggerWeaponShot(npcid, weaponid, hittype, hitid, Float:x, Float:y, Float:z, bool:ishit = true, Float:offset_from_x = 0.0, Float:offset_from_y = 0.0, Float:offset_from_z = 0.0);
native FCNPC_IsPlayingNode(npcid);
native FCNPC_IsPlayingNodePaused(npcid);
FCNPC v1.7.0
О версии
- Отключен поиск Z координаты через MapAndreas для позиций ниже 0.0
- #36 (https://github.com/ziggi/FCNPC/issues/36): Добавлена FCNPC_ToggleMapAndreasUsage и FCNPC_IsMapAndreasUsed
- #39 (https://github.com/ziggi/FCNPC/issues/39): Добавлена функция FCNPC_GetDestinationPoint
- Добавлена функция FCNPC_AddPointsToPath2
- #35 (https://github.com/ziggi/FCNPC/issues/35): Добавлен параметр Float:dist_offset в функции GoTo[Player]
- #56 (https://github.com/ziggi/FCNPC/issues/56): Добавлена автовызываемая функция FCNPC_OnChangeHeightPos (отключена по умолчанию, для включения используйте FCNPC_SetMinHeightPosCall)
- samples/bg: NPC теперь имеют бесконечные патроны
Исправления
- Исправлены аргументы npcid и damagedid в автовызываемой функции FCNPC_OnGiveDamage
- #40 (https://github.com/ziggi/FCNPC/issues/40): Исправлена оружие причины смерти при drive by
- Исправлена система сообщения об ошибках инициализации
- #45 (https://github.com/ziggi/FCNPC/issues/45): Исправлены перехваченные функции stream
- Исправлена настройка типа движения
- #59 (https://github.com/ziggi/FCNPC/issues/59): Установка угла после респавна
- #48 (https://github.com/ziggi/FCNPC/issues/48): Исправлена конечная позиция после передвижения
- samples/missions: вызов FreeCamera после EndMission
- samples/bg: Исправлено кручение NPC при следовании
- samples/bg: Прекращение следования при посадке в транспорт
Новые и изменённые функции
native FCNPC_GoTo(npcid, Float:x, Float:y, Float:z, type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0);
native FCNPC_GoToPlayer(npcid, playerid, type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0, Float:dist_check = 1.5);
native FCNPC_GoByMovePath(npcid, pathid, type = MOVE_TYPE_AUTO, Float:speed = MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0);
native FCNPC_GetDestinationPoint(npcid, &Float:x, &Float:y, &Float:z);
native FCNPC_AddPointsToPath2(pathid, Float:points_x[], Float:points_y[], Float:points_z[], const size = sizeof(points_x));
native FCNPC_ToggleMapAndreasUsage(npcid, bool:enabled);
native FCNPC_IsMapAndreasUsed(npcid);
native FCNPC_SetMinHeightPosCall(npcid, Float:height);
native Float:FCNPC_GetMinHeightPosCall(npcid);
Новые и изменённые автовызываемые функции
forward FCNPC_OnGiveDamage(npcid, damagedid, weaponid, bodypart, Float:health_loss);
forward FCNPC_OnChangeHeightPos(npcid, Float:new_z, Float:old_z); // disabled by default, see FCNPC_SetMinHeightPosCall
Скачать
- Скачать с GitHub: https://github.com/ziggi/FCNPC/releases
Salik_Davince
21.05.2017, 15:42
Может обновите? Кстати можно-ли добавить функцию -
//У AbbysMorgan'a уже реализована функция, только не все просто захотят ставить только ради нее YSF.
ShowNPCInTabList(npcid);
HideNPCInTabList(npcid);
Может обновите? Кстати можно-ли добавить функцию -
//У AbbysMorgan'a уже реализована функция, только не все просто захотят ставить только ради нее YSF.
ShowNPCInTabList(npcid);
HideNPCInTabList(npcid);
В прошлый раз, когда adamix сделал это для CNPC, тему с плагином удалили. Просто отображение NPC в TAB и отображение HP с ником реализуется с помощью определения NPC как игрока, а не NPC. Что ведёт не только ко всем этим результатам, но и к заниманию слотов в качестве игрока, что даёт возможность накрутки онлайна.
UPD. Хотя я пересмотрел реализацию, там каждый NPC пересоздаётся только для конкретного игрока, поэтому сервер будет считать их NPC, так что всё нормально, можно реализовать.
Fallen A.
21.05.2017, 23:11
В прошлый раз, когда adamix сделал это для CNPC, тему с плагином удалили. Просто отображение NPC в TAB и отображение HP с ником реализуется с помощью определения NPC как игрока, а не NPC. Что ведёт не только ко всем этим результатам, но и к заниманию слотов в качестве игрока, что даёт возможность накрутки онлайна.
UPD. Хотя я пересмотрел реализацию, там каждый NPC пересоздаётся только для конкретного игрока, поэтому сервер будет считать их NPC, так что всё нормально, можно реализовать.
А что по поводу движения npc за рулет авто рывками?
А что по поводу движения npc за рулет авто рывками?
Не наблюдал подобного, покажи код, с которым я смогу это увидеть.
Fallen A.
21.05.2017, 23:46
Не наблюдал подобного, покажи код, с которым я смогу это увидеть.
Сегодня допишу и завтра скину.
Fallen A.
24.05.2017, 14:55
Заметил, что если использовать функцию:
FCNPC_GoTo(id, x, y, z, MOVE_TYPE_WALK, 0.5, false, 0.0, true);
и NPC идет пешком, то, в данном случае 0.5 помогает ему двигаться просто нереально быстро для шага. Так и должно быть? Ибо насколько я понял, это параметр для движения в автомобиле.
Заметил, что если использовать функцию:
FCNPC_GoTo(id, x, y, z, MOVE_TYPE_WALK, 0.5, false, 0.0, true);
и NPC идет пешком, то, в данном случае 0.5 помогает ему двигаться просто нереально быстро для шага. Так и должно быть? Ибо насколько я понял, это параметр для движения в автомобиле.
Так и должно быть, можешь не указывать скорость, чтобы использовать значение по умолчанию.
Fallen A.
24.05.2017, 15:51
Так и должно быть, можешь не указывать скорость, чтобы использовать значение по умолчанию.
Ах, вот оно что. Благодарю.
Ах, вот оно что. Благодарю.
Просто кому-то не понравились стандартные значения, поэтому пришлось добавить поддержку установки скорости и для пешеходов.
Fallen A.
24.05.2017, 16:34
Просто кому-то не понравились стандартные значения, поэтому пришлось добавить поддержку установки скорости и для пешеходов.
Искав в документации, не нашел, что скорость от авто действует и на пешехода. Не мешало бы указать, если такового не имеется.
Искав в документации, не нашел, что скорость от авто действует и на пешехода. Не мешало бы указать, если такового не имеется.
Документации нет, указывать негде)
Fallen A.
24.05.2017, 20:15
Документации нет, указывать негде)
Ну, я про то, что, хотя бы, есть на форуме.
Ну, я про то, что, хотя бы, есть на форуме.
Дак тема не моя и эта документация давным-давно устарела. Она даже была удалена из темы на офф форуме.
Fallen A.
24.05.2017, 23:41
Дак тема не моя и эта документация давным-давно устарела. Она даже была удалена из темы на офф форуме.
Тогда все не есть гуд.
Fallen A.
30.05.2017, 19:21
Почему не вызывается по окончанию пути
FCNPC_OnReachDestinationпри поиске пути через
PathFinder_FindWay?
Почему не вызывается по окончанию пути
FCNPC_OnReachDestinationпри поиске пути через
PathFinder_FindWay?
Не понял, как это связано. FCNPC_OnReachDestination должен вызываться при окончании перемещения бота.
Fallen A.
30.05.2017, 20:35
Не понял, как это связано. FCNPC_OnReachDestination должен вызываться при окончании перемещения бота.
FCNPC_OnReachDestination вызывается после окончания пути по FCNPC_GoTo, но не вызывается при окончании пути через FCNPC_GoByMovePath.
FCNPC_OnReachDestination вызывается после окончания пути по FCNPC_GoTo, но не вызывается при окончании пути через FCNPC_GoByMovePath.
Для путей есть отдельные события:
forward FCNPC_OnFinishMovePath(npcid, pathid);
forward FCNPC_OnFinishMovePathPoint(npcid, pathid, pointid);
Fallen A.
30.05.2017, 21:03
Для путей есть отдельные события:
forward FCNPC_OnFinishMovePath(npcid, pathid);
forward FCNPC_OnFinishMovePathPoint(npcid, pathid, pointid);
Жаль. Было бы неплохо так, как я написал.
Жаль. Было бы неплохо так, как я написал.
Для нодов, например, тоже собственные каллбеки и для записей, чьим аналогом пути и являются. В любом случае, ты можешь его вызывать скриптово.
Fallen A.
31.05.2017, 00:51
Для нодов, например, тоже собственные каллбеки и для записей, чьим аналогом пути и являются. В любом случае, ты можешь его вызывать скриптово.
Да, спасибо. Я уже проверил инклуд.
semen7907
31.05.2017, 18:13
пытаюсь разобраться с FCNPC.pwn, но что то не получается сделать чтобы бот шел за игроком.. Можете подсказать как сделать чтобы npc бежал за игроком и стрелял в него?
В скрипте-примере bg.pwn (https://github.com/ziggi/FCNPC/blob/master/sampsvr_files/filterscripts/bg.pwn) есть функция следования (https://github.com/ziggi/FCNPC/blob/master/sampsvr_files/filterscripts/bg.pwn#L501). Для стрельбы можно воспользоваться функцией FCNPC_AimAtPlayer.
semen7907
31.05.2017, 22:51
Можешь еще подсказать, как сделать чтобы бот ходил за игроком только если он допустим в радиусе 20 метров ковырялся в BG_SetFollowPosition но что то не получается, он стоит на месте и начинает идти только когда я к нему подойду, и идет без остановки, не зависимо от радиуса..
Можешь еще подсказать, как сделать чтобы бот ходил за игроком только если он допустим в радиусе 20 метров ковырялся в BG_SetFollowPosition но что то не получается, он стоит на месте и начинает идти только когда я к нему подойду, и идет без остановки, не зависимо от радиуса..
http://pro-pawn.ru/showthread.php?14847-AI_BOTS-%D0%98%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%B8%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82
Можешь еще подсказать, как сделать чтобы бот ходил за игроком только если он допустим в радиусе 20 метров ковырялся в BG_SetFollowPosition но что то не получается, он стоит на месте и начинает идти только когда я к нему подойду, и идет без остановки, не зависимо от радиуса..
Установи нужное тебе значение dist_offset (для игроков и для транспорта) в BG_SetFollowPosition, в твоём случае это -20.0
semen7907
02.06.2017, 13:06
Можете еще подсказать, как можно сделать чтобы боты на машинах "не слипались", если допустим за мной едут 2 бота, то они начинают толкать друг друга, т.к. находятся впритык друг к другу..
Fallen A.
02.06.2017, 13:30
Можете еще подсказать, как можно сделать чтобы боты на машинах "не слипались", если допустим за мной едут 2 бота, то они начинают толкать друг друга, т.к. находятся впритык друг к другу..
Вот здесь уже нужно делать своеобразное "зрение" для npc. Не знаю, занимался ли кто-то этим, но лично я - нет.
Документации нет, указывать негде)
Один хороший человек (http://forum.sa-mp.com/showpost.php?p=3886715&postcount=3248) начал делать документацию. Если есть возможность, то помогите, пожалуйста: https://github.com/ziggi/FCNPC/wiki
Fallen A.
04.06.2017, 00:49
Один хороший человек (http://forum.sa-mp.com/showpost.php?p=3886715&postcount=3248) начал делать документацию. Если есть возможность, то помогите, пожалуйста: https://github.com/ziggi/FCNPC/wiki
Я так понимаю, что атака NPC по игроку с военного вертолета пока не реализована?
Я так понимаю, что атака NPC по игроку с военного вертолета пока не реализована?
Не знаю, можно попробовать установить для NPC нужные кнопки.
Fallen A.
04.06.2017, 13:42
Не знаю, можно попробовать установить для NPC нужные кнопки.
Ну, скажу честно, что FCNPC_AimAtPlayer работает частично: один раз устанавливает угол поворота к игроку вертолета NPC и на этом пока все.
Будешь что-то делать в этом направлении?
Ну, скажу честно, что FCNPC_AimAtPlayer работает частично: один раз устанавливает угол поворота к игроку вертолета NPC и на этом пока все.
Будешь что-то делать в этом направлении?
FCNPC_AimAtPlayer и стрельба из вертолёта не связаны. Установи нужные кнопки.
Fallen A.
04.06.2017, 16:17
FCNPC_AimAtPlayer и стрельба из вертолёта не связаны. Установи нужные кнопки.
Как бы был не в курсе про это. Спасибо.
pawnoholic
27.03.2018, 12:20
В CR-MP не будет работать?
В CR-MP не будет работать?
Эта версия работает только с CR-MP 0.3.7, адаптация на CR-MP 0.3e требует дополнительной работы (реверс-инжиниринг всех структур и адресов функций).
Как я могу избавиться от таких уведомлений? Содержимое инклуда не помогло.
https://i.imgur.com/m9wMr6m.png
Как я могу избавиться от таких уведомлений? Содержимое инклуда не помогло.
https://i.imgur.com/m9wMr6m.png
Нужно закомментировать строку #define DEBUG в bodyguards.pwn и скомпилировать его.
Спасип!!! Боже, это ж просто из bg исходило))))):wacko:
danger1979
09.08.2022, 21:58
Ни как не могу понять почему бот, когда едет на тачке (FCNPC_StartPlayingPlayback) по заранее записанному треку дергается, и его скорость меньше чем у такой же машины во время записи.
Думал проблема в записи трека ф-ией StartRecordingPlayerData. Но проверил, обычные самповские боты прекрасно ездят и не дёргаются.
Перекинул данную часть кода в почти пустой мод, чтобы проверить гонки с ботами на облегчённой версии мода, и там тоже самое: бот дёргается.
В чем проблема? Я вижу что большинство используют ботов как пешеходов, но я вообще не сильно много смысла вижу в ботах пешеходах, когда есть актёры.
Nexius_Tailer
10.08.2022, 05:58
На первый вопрос не отвечу, но актёров уместно использовать в основном для статичных ролей без особых передвижений куда-либо и с полноценным ИИ из-за того, что их случайные передвижения между игроками не синхрятся и каждый видит их там, где решит его локальная физика игры. Упади он под карту или преодолей какое-то препятствие, которое при разной успешности преодоления по-разному определит его конечную позицию - и два игрока будут видеть его в разных местах, что вообще не ок. NPC таким не страдают, как известно.
danger1979
10.08.2022, 22:16
В шапке на первой странице есть такие ф-ии
FCNPC_StartRecordingPlayback
FCNPC_StopRecordingPlayback
но их нет в инклюде, и не помню что в ранних версиях они вообще были.
для запуска и остановки ботов по треку есть
FCNPC_StartPlayingPlayback
FCNPC_StopPlayingPlayback
а для записи трека используются обычные
StartRecordingPlayerData
StopRecordingPlayerData
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot