16.03.2016, 12:17
(
Last edited by ZiGGi; 14/06/2017 at 02:08 PM.
)
FCNPC - Fully Controllable NPC
by OrMisicL
and ZiGGi
Что это?by OrMisicL
and ZiGGi
Этот плагин даёт полный контроль над серверными NPC, он выглядит как старый CNPC плагин, но довольно сильно отличается от него. OrMisicL получил добро на выпуск этого плагина от команды SA-MP.
Возможности
- Более 140 функций для контроля NPC
- Определение урона NPC
- Синхронизация передвижения (бег, шаг, спринт) NPC
- Синхронизация входа и выхода в транспорт (не идеальная, но довольно хорошая)
- Проигрывание NODE записей
- Проигрывание npcmodes записей
- Поддержка MapAndreas
- и многое другое...
Полный список всех функций, автовызываемых функций и констант доступен в README
Установка
- Скопируйте "FCNPC.dll" или "FCNPC.so" в вашу директорию "plugins"
- Скопируйте "FCNPC.inc" в вашу директорию "pawno/includes"
- Добавьте "FCNPC" в список плагинов файла "server.cfg"
- Требуется SA-MP сервер версии 0.3.7 или 0.3.7 R2
- Новая версия (от ZiGGi)
- Старая версия (Beta 15)
- Бинарник
- Исходный код
- Сопутствующие файлы: зависимости, примеры
- Бинарник
- Этот плагин может послужить причиной различных багов и крэшей. Пожалуйста, сообщайте об обнаруженых вами проблемах.
- OrMisicL получил добро на релиз этого плагина от команды SA-MP, не спрашивайте об этом.
- Этот плагин вмешивается в память сервера, а это значит, что его придётся обновлять с каждым обновлением сервера.
- Этот плагин отличается от старого CNPC плагина и не имеет с ним ничего общего (разве что идея?).
- Не просите предоставить зеркала на скачку, все доступные ссылки расположены в секции "Скачать"
- v1.7.3
- О версии
- #73: В GoTo функции добавлен параметр stopdelay
- #73: В GoTo функции добавлен параметр stopdelay
- Исправления
- #81: Исправлен крэш с нодами
- Исправлена кодировка и окончания строк в скиптах-примерах
- Исправлено подключение FCNPC в скиптах-примерах
- Отключено убийство мёртвых NPC
- GetNumberMovePoint возвращает 0 если путь не валидный
- Добавлен обработчик исключений в CreateMovePath, теперь эта функция возвращает INVALID_MOVEPATH_ID при ошибке
- #81: Исправлен крэш с нодами
- Изменённые функции
PHP Code: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, stopdelay = 250);
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, stopdelay = 250);
- О версии
- v1.7.2
- Исправления
- Исправление SetWeaponClipSize
- Исправление SetWeaponInfo
- Исправление SetWeaponState
- Исправление SetWeaponSkill
- Обнуление патронов в обойме после SetWeapon
- Исправлен бесконечный цикл и мгновенное пополнение патронов при начале стрельбы (#75)
- Исправлен бесконечные патроны и бесконечный цикл
- Исправлена перезарядка для оружия с одним патроном (#77)
- Исправлено время перезарядки двойного оружия
- Исправлена StopAim при перезарядке
- Исправлена GetWeaponActualReloadTime для двойного оружия
- Исправлен массив информации оружия
- Исправление SetWeaponClipSize
- Исправления
- v1.7.1
- О версии
- Переименована функция GetWeaponClipSize в GetWeaponActualClipSize, добавлена функция GetWeaponClipSize
- Добавлены функции контроля патронов в обойме
- Добавлена функция FCNPC_GetWeaponActualReloadTime
- Переименована функция GetWeaponClipSize в GetWeaponActualClipSize, добавлена функция GetWeaponClipSize
- Исправления
- Исправлены шотганы #65 (#66)
- Исправлены перехватываемые автовызываемые функции (#67, #68)
- Добавлена обойма для оружий (#65, #70, #71)
- Исправлены состояния оружия
- Исправлена перезарядка
- Исправлена перезарядка при бесконечных патронах
- Команда NPC по умолчанию теперь NO_TEAM (#69)
- Исправлено время перезарядки шотгана
- Исправлено время перезарядки для двоного WEAPON_SAWEDOFF
- Исправлены шотганы #65 (#66)
- Новые и изменённые функции
PHP Code:native FCNPC_SetAmmoInClip(npcid, ammo);
native FCNPC_GiveAmmoInClip(npcid, ammo);
native FCNPC_GetAmmoInClip(npcid);
native FCNPC_GetWeaponActualReloadTime(npcid, weaponid);
native FCNPC_GetWeaponActualClipSize(npcid, weaponid);
- О версии
- v1.7.0
- О версии
- Отключен поиск Z координаты через MapAndreas для позиций ниже 0.0
- #36: Добавлена FCNPC_ToggleMapAndreasUsage и FCNPC_IsMapAndreasUsed
- #39: Добавлена функция FCNPC_GetDestinationPoint
- Добавлена функция FCNPC_AddPointsToPath2
- #35: Добавлен параметр Float:dist_offset в функции GoTo[Player]
- #56: Добавлена автовызываемая функция FCNPC_OnChangeHeightPos (отключена по умолчанию, для включения используйте FCNPC_SetMinHeightPosCall)
- samples/bg: NPC теперь имеют бесконечные патроны
- Отключен поиск Z координаты через MapAndreas для позиций ниже 0.0
- Исправления
- Исправлены аргументы npcid и damagedid в автовызываемой функции FCNPC_OnGiveDamage
- #40: Исправлена оружие причины смерти при drive by
- Исправлена система сообщения об ошибках инициализации
- #45: Исправлены перехваченные функции stream
- Исправлена настройка типа движения
- #59: Установка угла после респавна
- #48: Исправлена конечная позиция после передвижения
- samples/missions: вызов FreeCamera после EndMission
- samples/bg: Исправлено кручение NPC при следовании
- samples/bg: Прекращение следования при посадке в транспорт
- Исправлены аргументы npcid и damagedid в автовызываемой функции FCNPC_OnGiveDamage
- Новые и изменённые функции
PHP Code: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);
- Новые и изменённые автовызываемые функции
PHP Code: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
- О версии
- v1.6.1
- О версии
- #33: Добавлены параметры смещения для функций прицеливания
- #31: Добавлена функция FCNPC_IsPlayingNodePaused
- Добавлена функция FCNPC_IsPlayingNode
- #33: Добавлены параметры смещения для функций прицеливания
- Исправления
- Нет учёта регистра для GetIndexByName
- #32: Исправлены аргументы FCNPC_SetAnimationByName
- #30: Пауза проигрывания нодов теперь не прекращает их обновления
- Добавлены проверки на деление на ноль в функциях GoTo
- Исправлена пауза для нодов
- Исправлены примеры скриптов
- Нет учёта регистра для GetIndexByName
- Новые и изменённые функции
PHP Code: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);
- О версии
- v1.6.0
- О версии
- Добавлена функция FCNPC_GetAimingPlayer
- Добавлены функции FCNPC_PausePlayingNode и FCNPC_ResumePlayingNode
- Добавлена автовызываемая функция FCNPC_OnWeaponStateChange
- #28: Добавлено смещение для FCNPC_AimAtPlayer
- Удалены макросы с типами нодов
- Дополнительные параметры для FCNPC_PlayNode (как в функции FCNPC_GoTo)
- Обновлён скрипт citiziens
- Добавлена функция FCNPC_GetAimingPlayer
- Исправления
- Исправления в коде
- Исправлена высота (Z) для нодов
- Исправлена последняя перезарядка у NPC
- Исправлена FCNPC_GetNodeType
- Исправления в коде
- Новые и изменённые функции
PHP Code: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);
- Новые автовызываемые функции
PHP Code:forward FCNPC_OnWeaponStateChange(npcid, weapon_state);
- О версии
- v1.5.0
- О версии
- Поддержка CR-MP 0.3.7
- Удалены ограничения на максимальное количество здоровья и брони
- Поддержка CR-MP 0.3.7
- Исправления
- Исправлен pathid в OnFinishMovePath
- Исправлены скрипты-примеры
- Исправления для компиляции из-под VS 2015
- Исправлен pathid в OnFinishMovePath
- Новые функции
PHP Code:native FCNPC_TriggerWeaponShot(npcid, weaponid, hittype, hitid, Float:x, Float:y, Float:z, bool:ishit = true);
- Новые автовызываемые функции
PHP Code:forward FCNPC_OnWeaponShot(npcid, weaponid, hittype, hitid, Float:x, Float:y, Float:z);
- О версии
- v1.4.2
- Исправления
- Исправлено повреждение памяти в менеджере проигрывания записей
- Исправлена инициализация foreach итератора в Filterscript
- Исправлено повреждение памяти в менеджере проигрывания записей
- Исправления
- v1.4.1
- О версии
- Добавлен foreach итератор FCNPC
- Добавлен foreach итератор FCNPC
- Исправления
- Исправлены функции FCNPC_GetMovePoint и FCNPC_GetNumberMovePoint
- Исправлена автовызываемая функция FCNPC_OnFinishMovePath
- Исправлены функции FCNPC_GetMovePoint и FCNPC_GetNumberMovePoint
- Новые автовызываемые функции
PHP Code:forward FCNPC_OnDestroy(npcid);
- О версии
- v1.4.0
- О версии
- Добавлен опциональный параметр bool:update_pos = false в функции ускорения (FCNPC_Set/GiveVelocity)
- return 0 в FCNPC_OnUpdate работает так же, как return 0 в OnPlayerUpdate
- Оптимизация циклов обработки
- #6: Реализована система путей движения
- #9: Улучшена система проигрывания записей
- #12: Оповещение о выходе новой версии
- Добавлен опциональный параметр bool:update_pos = false в функции ускорения (FCNPC_Set/GiveVelocity)
- Новые функции
PHP Code: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);
- Обновлённые функции
PHP Code: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);
- Новые автовызываемые функции
PHP Code:forward FCNPC_OnFinishMovePath(npcid, pathid);
forward FCNPC_OnFinishMovePathPoint(npcid, pathid, pointid);
- Новые константы
PHP Code:#define INVALID_MOVEPATH_ID (-1)
#define INVALID_RECORD_ID (-1)
- О версии
- v1.3.1
- Исправления
- Исправлена точка начала стрельбы для NPC
- Исправлен урон в скрипте-примере bodyguard
- Исправлена корректность работы без объявленных необходимых автовызываемых функций (но их объявление по-прежнему необходимо для работы всех функций)
- Исправлена точка начала стрельбы для NPC
- Исправления
- v1.3.0
- О версии
- Точность стрельбы (#23)
- Автовызываемая функция FCNPC_OnUpdate
- Точность стрельбы (#23)
- Исправления
- Больше проверок на подключение игрока (меньше крашей)
- Исправление FCNPC_GetWeaponInfo
- Больше проверок на подключение игрока (меньше крашей)
- Новые функции
PHP Code:native FCNPC_SetWeaponAccuracy(npcid, weaponid, Float:accuracy);
native Float:FCNPC_GetWeaponAccuracy(npcid, weaponid);
- Обновлённые функции
PHP Code: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);
- Новые автовызываемые функции
PHP Code:forward FCNPC_OnUpdate(npcid);
- О версии
- v1.2.0
- О версии
- Улучшены параметры оружия по умолчанию (deagle, m4, ak47)
- Добавлено много FCNPC_Give* функций
- Чистка кода
- Улучшены параметры оружия по умолчанию (deagle, m4, ak47)
- Исправления
- Исправлена работа параметра delay в функции FCNPC_AimAt
- Исправлено проигрывание node файлов
- Исправлена работа параметра delay в функции FCNPC_AimAt
- Новые функции
PHP Code: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);
- О версии
- v1.1.3
- О версии
- Переписан скрипт-пример Bodyguard
- Оптимизация
- Переписан скрипт-пример Bodyguard
- Исправления
- Исправление FCNPC_IsStreamedForAnyone
- Теперь FCNPC_PutInVehicle работает для NPC находящихся в транспорте
- Исправлена работа изменения времени стрельбы и задержки
- Исправлено много предупреждений при компиляции
- Добавлено много проверок на валидность (меньше крэшей)
- Исправление FCNPC_IsStreamedForAnyone
- Новые автовызываемые функции
PHP Code:forward FCNPC_OnGiveDamage(npcid, issuerid, weaponid, bodypart, Float:health_loss);
- О версии
- v1.1.2
- Изменения
- Исправлена работа на Linux
- Исправлена работа на Linux
- Изменения
- v1.1.1
- О версии
- Сёрфинг теперь поддерживает прикреплённые объекты
- Оптимизация
- Добавлены константы скорости в инклуд файл
- Обновлено загрузочное сообщение
- Сёрфинг теперь поддерживает прикреплённые объекты
- Исправления
- Исправлена валидация объектов и транспорта (меньше крэшей)
- Исправлена проверка версии инклуд файла (спасибо плагину Streamer от Incognito за пример)
- Исправлен радиус движения для функции FCNPC_GoToPlayer
- Исправлены типы переменных и их конвертация
- Исправлена работа скорости и типа в функции GoTo
- Исправлена ошибка со сбросом скорости поезда
- Исправлена синхронизация двигателей тяги в Hydra и скорости поезда при проигрывании записи
- Исправлены некоторые крэши при удалении транспорта NPC
- Исправлена валидация объектов и транспорта (меньше крэшей)
- Новые директивы
PHP Code:#define MOVE_SPEED_AUTO (-1.0)
#define MOVE_SPEED_WALK (0.1552086)
#define MOVE_SPEED_RUN (0.56444)
#define MOVE_SPEED_SPRINT (0.926784)
- О версии
- v1.1.0
- О версии
- Улучшено определение цели в функции FCNPC_AimAt
- Теперь NPC могут наносить урон другому игроку (для предотвращения этого вы можете возвратить 0 в FCNPC_OnTakeDamage)
- Добавлена проверка версии инклуд файла
- Теперь функция FCNPC_GoToPlayer обновляет точку назначения NPC пока игрок двигается
- Добавлены функции для контроля тяги в Hydra
- Добавлены функции для контроля шасси
- shoot_delay по умолчанию изменён на -1 (не важно)
- Оптимизация процесса прицеливания
- Небольшой рефакторинг исходного кода
- Улучшено определение цели в функции FCNPC_AimAt
- Исправления
- Исправлен крэш для недействительного транспорта во время проигрывания записи
- Исправлена синхронизация позиции NPC при сёрфинге (прицеплении к транспорту)
- Исправлена стрельба при сёрфинге
- Исправлена работа аргумента speed в функциях FCNPC_GoTo[Player] (теперь он работает для пеших NPC тоже)
- Исправлено направление прицеливания по оси Z
- Сброс клавиш NPC после смерти (исправляет некоторые ошибки с анимациями)
- Исправлена проверка на параметры в функциях информации об оружии
- Исправлен крэш для недействительного транспорта во время проигрывания записи
- Новые функции
PHP Code: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);
- О версии
- v1.0.7
- Изменения
- Исправлены кнопки передвижения (были некоторые проблемы с анимацией передвижения)
- Исправлено исчезновение тела (#15)
- Добавлена проверка на передаваемый адрес MapAndreas (больше не будет крашить, если адрес недействителен)
- Добавлены некоторые проверки на вводимые параметры
- Удалён сброс данных прицеливания из MeleeAttack (теперь вы можете использовать FCNPC_AimAtPlayer совместно с FCNPC_MeleeAttack)
- FCNPC_AimAt(Player) останавливает прицеливание перед началом нового
- Исправлен и оптимизирован перехват автовызываемых функций (теперь это отлично работает с filterscript)
- Исправлено действие по возвращаемому значению из автовызываемой функции (теперь это работает)
- Оптимизация (совсем чуть-чуть)
- Исправлены кнопки передвижения (были некоторые проблемы с анимацией передвижения)
- Изменения
- v1.0.6
- О версии
- Добавлены аналоговые UD и LR в FCNPC_SetKeys
- Добавлены аналоговые UD и LR в FCNPC_SetKeys
- Исправления
- Исправлено получение урона в скрипте Bodyguard
- Исправлено воскрешение NPC после рестрима
- Установлены корректные клавиши при передвижении игрока
- Исправлен крэш после отключения NPC
- Исправлена причина и killerid при убийстве NPC
- Исправлено получение урона в скрипте Bodyguard
- Изменённые функции
PHP Code:native FCNPC_SetKeys(npcid, ud_analog, lr_analog, keys);
- О версии
- v1.0.5
- О версии
- Нижний регистр для папки с путями (node) (сейчас путь выглядит так: **scriptfiles/FCNPC/nodes/NODES%d.DAT**);
- Файлы путей (node) добавлены в репозиторий и windows архив с плагином.
- Нижний регистр для папки с путями (node) (сейчас путь выглядит так: **scriptfiles/FCNPC/nodes/NODES%d.DAT**);
- Исправления
- Исправлены и оптимизированы некоторые скрипты примеры (citizens, missions);
- Исправлена система playback (теперь она работает).
- Исправлены и оптимизированы некоторые скрипты примеры (citizens, missions);
- Новые функции
PHP Code:native FCNPC_IsStreamedForAnyone(npcid);
- О версии
- v1.0.4
- О версии
- Небольшое обновление, исправляющее ошибки.
- Небольшое обновление, исправляющее ошибки.
- Исправления
- Крэш после вызова KillPlayer.
- Крэш после вызова KillPlayer.
- О версии
- v1.0.3
- О версии
- Новый параметр для FCNPC_AimAt[Player] - setangle.
- Внутренняя оптимизация циклов.
- Удалены функции и параметры для работы с уроном NPC.
- Удалена автовызываемая функция FCNPC_OnGiveDamage.
- Удалены функции DriveBy (удалены, потому что не работали нормально).
- Новый параметр для FCNPC_AimAt[Player] - setangle.
- Исправления
- Исправлено состояние оружия у NPC.
- Очистка памяти для некоторых указателей.
- Исправлено состояние оружия у NPC.
- О версии
- v1.0.2
- О версии
- FCNPC_EnterVehicle теперь работает практически идеально;
- FCNPC_SetWeaponDamage теперь работает, не идеально, но работает;
- FCNPC_SetSkin теперь работает идеально (без рестрама NPC);
- Больше информации в крэшлог (+backtrace для Linux версии плагина).
- FCNPC_EnterVehicle теперь работает практически идеально;
- Исправления
- FCNPC_ExitVehicle;
- FCNPC_SetWeaponDamage;
- Установка угла транспорта при посадке в него;
- Подключение NPC на сервер с одним слотом;
- Крэш для оружия с размером обоймы равное нулю;
- Стандартные значения урона оружия.
- FCNPC_ExitVehicle;
- Новые автовызываемые функции
PHP Code:forward FCNPC_OnGiveDamage(npcid, damagedid, weaponid, bodypart, Float:health_loss);
- О версии
- v1.0.1
- О версии
- Теперь есть два метода установки анимации для NPC:
- FCNPC_SetAnimation[ByName], FCNPC_ResetAnimation: работает с данными синхронизации. Анимация переигрывается после рестрима. Необходимо использовать FCNPC_ResetAnimation (с небольшой задержкой) перед переигровкой этой анимации.
- FCNPC_ApplyAnimation, FCNPC_ClearAnimations: отправляет RPC пакеты игрокам в зоне стрима, работает как ApplyAnimation.
- Теперь есть два метода установки анимации для NPC:
- Исправления
- Крэш OnPlayerGiveDamage
- Валидация MAX_PLAYER
- Некоторые типы переменных
- Крэш OnPlayerGiveDamage
- Новые функции
PHP Code:native FCNPC_SetAnimationByName(npcid, name[], Float:fDelta = 4.1, loop = 0, lockx = 1, locky = 1, freeze = 0, time = 1);
native FCNPC_ResetAnimation(npcid);
native FCNPC_ApplyAnimation(npcid, animlib[], animname[], Float:fDelta = 4.1, loop = 0, lockx = 1, locky = 1, freeze = 0, time = 1);
native FCNPC_ClearAnimations(npcid);
- О версии
- v1.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 атакуют после спавна.
- NPC не стреляют после первой перезарядки.
- Валидация скинов из SA-MP 0.3.7.
- NPC не наносят урона при стрельбе.
- Внутренние изменения
- Поддержка Windows и Linux SA-MP серверов версии 0.3.7 и 0.3.7 R2-1.
- Добавлена корректная валидация пассажирского места при посадке в транспорт.
- Заместо ZMap встроен MapAndreas 1.2.1 (http://forum.sa-mp.com/showpost.php?...&postcount=153).
- Множество изменений в коде (замена Detours на subhook, переход на CMake, внедрение YSF Structs.h, замена небезопасных функций, оптимизация и другое).
- Поддержка Windows и Linux SA-MP серверов версии 0.3.7 и 0.3.7 R2-1.
- О версии
- Beta 15
- Исправлен вход и выход из транспорта.
- Исправлена стрельба (перезарядка, конечность патронов...), на первый взгляд остался лишь один небольшой баг.
- Успешное создание патронов, NPC теперь могут стрелять (Спасибо kurta999 за его YSF плагин).
- Добавлены функции FCNPC_ToggleReloading и FCNPC_ToggleInfiniteAmmo.
- Переименованы все функции проигрывания записей в "playing" вместо "recording" (FCNPC_StartPlayingPlayback вместо FCNPC_StartRecordingPlayback).
- Исправлен вход и выход из транспорта.
- Beta 14 R3
- Исправлен случайный крэш linux версии (из-за неправильного перехвата).
- Исправлен случайный крэш linux версии (из-за неправильного перехвата).
- Beta 14 R2
- Исправлен крэш при спавне NPC.
- Исправлен крэш при спавне NPC.
- Beta 14
- Добавлена linux версия.
- Исправлена работа FCNPC_AimAt.
- Добавлена linux версия.
- Beta 13
- Плагин теперь автоматически ищет необходимые адреса и смещения в памяти (теперь не нужно обновлять плагин с каждым обновлением сервера)
- Урон NPC теперь обрабатывается внутри плагина.
- Исправлен баг с прицеливанием вверх, когда NPC промахивался (спасибо abagail).
- Добавлен обработчик исключений, который создаёт лог файл при падении сервера.
- Плагин теперь автоматически ищет необходимые адреса и смещения в памяти (теперь не нужно обновлять плагин с каждым обновлением сервера)
- Beta 12 R2
- Добавлена поддержка SAMP сервера версии 0.3z R2-2
- Возможно исправлена система урона в Linux версии
- Добавлена поддержка SAMP сервера версии 0.3z R2-2
- Beta 12
- Добавлена поддержка SAMP сервера версий 0.3z and 0.3z R1-2 (обе используют одинаковые адреса в памяти)
- Добавлена полностью рабочая linux версия (теперь система урона включена)
- NPC теперь на стороне клиента выглядят как NPC
- Добавлено определение части тела в систему урона (спасибо Kalcor за внедрение этого в 0.3z)
- Добавлена поддержка SAMP сервера версий 0.3z and 0.3z R1-2 (обе используют одинаковые адреса в памяти)
- Beta 11
- Добавлена поддержка SAMP сервера версии 0.3x R2 (теперь FCNPC поддерживает 0.3x R1-2 и R2 версии)
- Исправлена linux версия (по прежнему нет системы урона NPC, но, в основном, работает стабильно)
- Исправлен повышенный пинг у NPC в TAB-меню
- Исправлены параметры автовызываемых функций
- Добавлена поддержка SAMP сервера версии 0.3x R2 (теперь FCNPC поддерживает 0.3x R1-2 и R2 версии)
- Beta 10 RC 1
- Исправлены проблемы с входом в транспорт (больше никакого переворачивания и других проблем)
- Исправлено направление взгляда игрока (больше никакого вглядывания в землю)
- Исправлена неточность GoTo
- Добавлен параметр "Floatpeed" в функцию GoTo для контроля ускорения транспорта
- Добавлена функция FCNPC_GetZGround для получения высоты местонсти (Z) по координатам X, Y
- Исправлены проблемы с входом в транспорт (больше никакого переворачивания и других проблем)
- Beta 10
- Исправлен краш при стрельбе в другого игрока
- Добавлено значение "health_loss" в "FCNPC_OnTakeDamage"
- Добавлен тип движения в "FCNPC_EnterVehicle"
- Исправлена стрельба NPC (очень точная, теперь они могут стрелять в вас даже если вы находитесь на другой высоте)
- Добавлены скрипт missions для демонстрации правильного использования этого плагина
- Исправлены пути движения (node)
- Исправлен краш при стрельбе в другого игрока
- Beta 9
- Исправлено определение урона (очень точный, основанный на перехвате автовызываемой функции "OnPlayerGiveDamage")
- Исправлен переворот транспорта при входе в него NPC
- NPC теперь могут посдке в транспорт выбросить игрока из него
- Исправлена задержка атаки ближнего боя
- Исправлено определение урона (очень точный, основанный на перехвате автовызываемой функции "OnPlayerGiveDamage")
- Beta 8 R2
- Исправлен метод создания (более чистый и эффективный метод, заменены грязные хуки и патчи)
- Исправлены крэши на linux (надеюсь)
- Исправлены значения урона оружия
- Добавлены проверки значений maxplayers и maxnpc
- Исправлен метод создания (более чистый и эффективный метод, заменены грязные хуки и патчи)
- Beta 8
- Исправлено определение урона (точное определение урона с частью тела и уроном от оружия)
- Добавлена linux версия (может быть найдена в загружаемом архиве)
- Добавлена поддержка атаки ближнего боя (FCNPC_MeleeAttack и FCNPC_StopAttack)
- Исправлены другие небольшие баги
- Исправлено определение урона (точное определение урона с частью тела и уроном от оружия)
- Beta 7
- Добавлена полная поддержка путей GTA SA (nodes) (смотри citiziens.pwn для большей информации)
- Исправлено передвижение игрока
- Исправлена езда (теперь работает очень плавно)
- Исправлена установка или получение состояния транспорта игрока (позиция, ускорение и другие)
- Добавлена полная поддержка путей GTA SA (nodes) (смотри citiziens.pwn для большей информации)
- Beta 6
- NPC теперь используют нормальные ID (playerid), никаких больше самодельных ID
- Добавлен MOVE_TYPE_DRIVE, теперь NPC могут водить транспорт
- Исправлено возгорание транспорта при посадке NPC в качестве водителя
- Исправлен небольшой баг при создании NPC и добавлены некоторые дополнительные проверки
- Исправлен неправильный ID транспорта при посадке в него
- NPC теперь используют нормальные ID (playerid), никаких больше самодельных ID
- Beta 5 R3
- Исправлен метод создания (исправлены связанные с этим крэши)
- Исправлен метод создания (исправлены связанные с этим крэши)
- Beta 5 R2
- Исправлен краш при создании NPC
- Исправлено повышеное потребление CPU
- Исправлен краш при создании NPC
- Beta 5
- Исправлен метод создания NPC (больше не используется samp-npc.exe) все падения и ошибки, связанные с созданием исправлены
- Добавлено временное решение для определения урона (только игроки могут стрелять в NPC)
- Исправлен угол прицеливания Z (теперь NPC могут попадать в цель при стрельбе)
- Добавлена функция FCNPC_GetNPCID для определения ID NPC из ID игрока
- Улучшен вход в транспорт (теперь анимация применяется должным образом)
- Исправлен метод создания NPC (больше не используется samp-npc.exe) все падения и ошибки, связанные с созданием исправлены
- Beta 4
- Исправлен ID у NPC начинающийся с maxplayers в config.cfg вместо 500
- Исправлено падение при большом количестве NPC (теперь вы можете создавть столько, сколько хотите без крашей)
- Добавлена функция FCNPC_GetPlayerID (возвращает реальный ID игрока)
- Добавлена возможность отключить использование карты высот (ZMap) при передвижении
- Исправлен ID у NPC начинающийся с maxplayers в config.cfg вместо 500
- Beta 3
- Исправлено или ограничено использование пропускной способности для каждого NPC (может быть настроено с помощью FCNPC_SetUpdateRate)
- Исправлены анимации входа и выхода в транспорт (довольно идеальны теперь)
- Добавлена функция FCNPC_SetPlayerWeaponSkill
- Исправлена скорость передвижения NPC при спринте и достижения пункта назначения
- Добавлена карта высот (ZMap) для передвижений NPC (никакого больше полёта при передвижении)
- Исправлено или ограничено использование пропускной способности для каждого NPC (может быть настроено с помощью FCNPC_SetUpdateRate)
- Beta 2
- Исправлен краш при создании NPC
- NPC больше не лезут в слот 500
- Исправлен поджог транспорта при посадке в него NPC
- Исправлены неправильные параметры, передаваемые в автовызываемые функции, такие как FCNPC_Spawn, FCNPC_Create и другие (вызывало много проблем)
- Исправлен id транспорта в FCNPC_EnterVehicle
- Исправлен краш при создании NPC
- Beta 1 R2
- Исправлена проблема с портом
- Исправлена проблема с портом
- http://www.youtube.com/watch?v=VlqtKWgRO10
Записал и загрузил: Admigo - https://www.youtube.com/watch?v=pi14...HuyoTc&index=5
Записал и загрузил: Freaksken
- SA-MP Team: SA-MP
- OrMisicL: Разработка
- ZiGGi: Обновление
- Zeex: Библиотека Subhook
- kurta999: YSF плагин
- Admigo: Тестирование
- iJumbo: Тестирование Linux версии
- Lorenc_, kurta999, therainycat: Помощь