SA-MP Forums

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

Reply
 
Thread Tools Display Modes
Old 16/03/2016, 01:17 PM   #1
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,447
Reputation: 356
Default ***** - Fully Controllable NPC (Russian Thread)


***** - Fully Controllable NPC
by OrMisicL
and *****

Что это?

Этот плагин даёт полный контроль над серверными NPC, он выглядит как старый CNPC плагин, но довольно сильно отличается от него. OrMisicL получил добро на выпуск этого плагина от команды SA-MP.

Возможности
  • Более 140 функций для контроля NPC
  • Определение урона NPC
  • Синхронизация передвижения (бег, шаг, спринт) NPC
  • Синхронизация входа и выхода в транспорт (не идеальная, но довольно хорошая)
  • Проигрывание NODE записей
  • Проигрывание npcmodes записей
  • Поддержка MapAndreas
  • и многое другое...

Функции

Полный список всех функций, автовызываемых функций и констант доступен в README

Установка
  • Скопируйте "*****.dll" или "*****.so" в вашу директорию "plugins"
  • Скопируйте "*****.inc" в вашу директорию "pawno/includes"
  • Добавьте "*****" в список плагинов файла "server.cfg"

Требования
  • Требуется SA-MP сервер версии 0.3.7 или 0.3.7 R2

Скачать
Примечания
  • Этот плагин может послужить причиной различных багов и крэшей. Пожалуйста, сообщайте об обнаруженых вами проблемах.
  • OrMisicL получил добро на релиз этого плагина от команды SA-MP, не спрашивайте об этом.
  • Этот плагин вмешивается в память сервера, а это значит, что его придётся обновлять с каждым обновлением сервера.
  • Этот плагин отличается от старого CNPC плагина и не имеет с ним ничего общего (разве что идея?).
  • Не просите предоставить зеркала на скачку, все доступные ссылки расположены в секции "Скачать"

Список изменений
  • v1.7.3
    • О версии
      • #73: В GoTo функции добавлен параметр stopdelay

    • Исправления
      • #81: Исправлен крэш с нодами
      • Исправлена кодировка и окончания строк в скиптах-примерах
      • Исправлено подключение ***** в скиптах-примерах
      • Отключено убийство мёртвых NPC
      • GetNumberMovePoint возвращает 0 если путь не валидный
      • Добавлен обработчик исключений в CreateMovePath, теперь эта функция возвращает INVALID_MOVEPATH_ID при ошибке

    • Изменённые функции
      PHP Code:
      native *****_GoTo(npcidFloat:xFloat:yFloat:ztype MOVE_TYPE_AUTOFloat:speed MOVE_SPEED_AUTObool:UseMapAndreas falseFloat:radius 0.0bool:setangle trueFloat:dist_offset 0.0stopdelay 250);
      native *****_GoToPlayer(npcidplayeridtype MOVE_TYPE_AUTOFloat:speed MOVE_SPEED_AUTObool:UseMapAndreas falseFloat:radius 0.0bool:setangle trueFloat:dist_offset 0.0Float:dist_check 1.5stopdelay 250); 

  • v1.7.2
    • Исправления
      • Исправление SetWeaponClipSize
      • Исправление SetWeaponInfo
      • Исправление SetWeaponState
      • Исправление SetWeaponSkill
      • Обнуление патронов в обойме после SetWeapon
      • Исправлен бесконечный цикл и мгновенное пополнение патронов при начале стрельбы (#75)
      • Исправлен бесконечные патроны и бесконечный цикл
      • Исправлена перезарядка для оружия с одним патроном (#77)
      • Исправлено время перезарядки двойного оружия
      • Исправлена StopAim при перезарядке
      • Исправлена GetWeaponActualReloadTime для двойного оружия
      • Исправлен массив информации оружия

  • v1.7.1
    • О версии
      • Переименована функция GetWeaponClipSize в GetWeaponActualClipSize, добавлена функция GetWeaponClipSize
      • Добавлены функции контроля патронов в обойме
      • Добавлена функция *****_GetWeaponActualReloadTime

    • Исправления
      • Исправлены шотганы #65 (#66)
      • Исправлены перехватываемые автовызываемые функции (#67, #68)
      • Добавлена обойма для оружий (#65, #70, #71)
      • Исправлены состояния оружия
      • Исправлена перезарядка
      • Исправлена перезарядка при бесконечных патронах
      • Команда NPC по умолчанию теперь NO_TEAM (#69)
      • Исправлено время перезарядки шотгана
      • Исправлено время перезарядки для двоного WEAPON_SAWEDOFF

    • Новые и изменённые функции
      PHP Code:
      native *****_SetAmmoInClip(npcidammo);
      native *****_GiveAmmoInClip(npcidammo);
      native *****_GetAmmoInClip(npcid);
      native *****_GetWeaponActualReloadTime(npcidweaponid);
      native *****_GetWeaponActualClipSize(npcidweaponid); 

  • v1.7.0
    • О версии
      • Отключен поиск Z координаты через MapAndreas для позиций ниже 0.0
      • #36: Добавлена *****_ToggleMapAndreasUsage и *****_IsMapAndreasUsed
      • #39: Добавлена функция *****_GetDestinationPoint
      • Добавлена функция *****_AddPointsToPath2
      • #35: Добавлен параметр Float:dist_offset в функции GoTo[Player]
      • #56: Добавлена автовызываемая функция *****_OnChangeHeightPos (отключена по умолчанию, для включения используйте *****_SetMinHeightPosCall)
      • samples/bg: NPC теперь имеют бесконечные патроны

    • Исправления
      • Исправлены аргументы npcid и damagedid в автовызываемой функции *****_OnGiveDamage
      • #40: Исправлена оружие причины смерти при drive by
      • Исправлена система сообщения об ошибках инициализации
      • #45: Исправлены перехваченные функции stream
      • Исправлена настройка типа движения
      • #59: Установка угла после респавна
      • #48: Исправлена конечная позиция после передвижения
      • samples/missions: вызов FreeCamera после EndMission
      • samples/bg: Исправлено кручение NPC при следовании
      • samples/bg: Прекращение следования при посадке в транспорт

    • Новые и изменённые функции
      PHP Code:
      native *****_GoTo(npcidFloat:xFloat:yFloat:ztype MOVE_TYPE_AUTOFloat:speed MOVE_SPEED_AUTObool:UseMapAndreas falseFloat:radius 0.0bool:setangle trueFloat:dist_offset 0.0);
      native *****_GoToPlayer(npcidplayeridtype MOVE_TYPE_AUTOFloat:speed MOVE_SPEED_AUTObool:UseMapAndreas falseFloat:radius 0.0bool:setangle trueFloat:dist_offset 0.0Float:dist_check 1.5);
      native *****_GoByMovePath(npcidpathidtype MOVE_TYPE_AUTOFloat:speed MOVE_SPEED_AUTObool:UseMapAndreas falseFloat:radius 0.0bool:setangle trueFloat:dist_offset 0.0);
      native *****_GetDestinationPoint(npcid, &Float:x, &Float:y, &Float:z);
      native *****_AddPointsToPath2(pathidFloat:points_x[], Float:points_y[], Float:points_z[], const size sizeof(points_x));
      native *****_ToggleMapAndreasUsage(npcidbool:enabled);
      native *****_IsMapAndreasUsed(npcid);
      native *****_SetMinHeightPosCall(npcidFloat:height);
      native Float:*****_GetMinHeightPosCall(npcid); 
    • Новые и изменённые автовызываемые функции
      PHP Code:
      forward *****_OnGiveDamage(npciddamagedidweaponidbodypartFloat:health_loss);
      forward *****_OnChangeHeightPos(npcidFloat:new_zFloat:old_z); // disabled by default, see *****_SetMinHeightPosCall 

  • v1.6.1
    • О версии
      • #33: Добавлены параметры смещения для функций прицеливания
      • #31: Добавлена функция *****_IsPlayingNodePaused
      • Добавлена функция *****_IsPlayingNode

    • Исправления
      • Нет учёта регистра для GetIndexByName
      • #32: Исправлены аргументы *****_SetAnimationByName
      • #30: Пауза проигрывания нодов теперь не прекращает их обновления
      • Добавлены проверки на деление на ноль в функциях GoTo
      • Исправлена пауза для нодов
      • Исправлены примеры скриптов

    • Новые и изменённые функции
      PHP Code:
      native *****_AimAt(npcidFloat:xFloat:yFloat:zbool:shoot falseshoot_delay = -1bool:setangle trueFloat:offset_from_x 0.0Float:offset_from_y 0.0Float:offset_from_z 0.0);
      native *****_AimAtPlayer(npcidplayeridbool:shoot falseshoot_delay = -1bool:setangle trueFloat:offset_x 0.0Float:offset_y 0.0Float:offset_z 0.0Float:offset_from_x 0.0Float:offset_from_y 0.0Float:offset_from_z 0.0);
      native *****_TriggerWeaponShot(npcidweaponidhittypehitidFloat:xFloat:yFloat:zbool:ishit trueFloat:offset_from_x 0.0Float:offset_from_y 0.0Float:offset_from_z 0.0);
      native *****_IsPlayingNode(npcid);
      native *****_IsPlayingNodePaused(npcid); 


  • v1.6.0
    • О версии
      • Добавлена функция *****_GetAimingPlayer
      • Добавлены функции *****_PausePlayingNode и *****_ResumePlayingNode
      • Добавлена автовызываемая функция *****_OnWeaponStateChange
      • #28: Добавлено смещение для *****_AimAtPlayer
      • Удалены макросы с типами нодов
      • Дополнительные параметры для *****_PlayNode (как в функции *****_GoTo)
      • Обновлён скрипт citiziens

    • Исправления
      • Исправления в коде
      • Исправлена высота (Z) для нодов
      • Исправлена последняя перезарядка у NPC
      • Исправлена *****_GetNodeType

    • Новые и изменённые функции
      PHP Code:
      native *****_AimAtPlayer(npcidplayeridbool:shoot falseshoot_delay = -1bool:setangle trueFloat:offset_x 0.0Float:offset_y 0.0Float:offset_z 0.0);
      native *****_GetAimingPlayer(npcid);
      native *****_PlayNode(npcidnodeidmove_type MOVE_TYPE_AUTOFloat:speed MOVE_SPEED_AUTObool:UseMapAndreas falseFloat:radius 0.0bool:setangle true);
      native *****_PausePlayingNode(npcid);
      native *****_ResumePlayingNode(npcid); 
    • Новые автовызываемые функции
      PHP Code:
      forward *****_OnWeaponStateChange(npcidweapon_state); 


  • v1.5.0
    • О версии
      • Поддержка CR-MP 0.3.7
      • Удалены ограничения на максимальное количество здоровья и брони

    • Исправления
      • Исправлен pathid в OnFinishMovePath
      • Исправлены скрипты-примеры
      • Исправления для компиляции из-под VS 2015

    • Новые функции
      PHP Code:
      native *****_TriggerWeaponShot(npcidweaponidhittypehitidFloat:xFloat:yFloat:zbool:ishit true); 
    • Новые автовызываемые функции
      PHP Code:
      forward *****_OnWeaponShot(npcidweaponidhittypehitidFloat:xFloat:yFloat:z); 


  • v1.4.2
    • Исправления
      • Исправлено повреждение памяти в менеджере проигрывания записей
      • Исправлена инициализация foreach итератора в Filterscript


  • v1.4.1
    • О версии
      • Добавлен foreach итератор *****

    • Исправления
      • Исправлены функции *****_GetMovePoint и *****_GetNumberMovePoint
      • Исправлена автовызываемая функция *****_OnFinishMovePath

    • Новые автовызываемые функции
      PHP Code:
      forward *****_OnDestroy(npcid); 


  • v1.4.0
    • О версии
      • Добавлен опциональный параметр bool:update_pos = false в функции ускорения (*****_Set/GiveVelocity)
      • return 0 в *****_OnUpdate работает так же, как return 0 в OnPlayerUpdate
      • Оптимизация циклов обработки
      • #6: Реализована система путей движения
      • #9: Улучшена система проигрывания записей
      • #12: Оповещение о выходе новой версии

    • Новые функции
      PHP Code:
      native *****_LoadPlayingPlayback(file[]);
      native *****_UnloadPlayingPlayback(recordid);
      native *****_SetPlayingPlaybackPath(npcidpath[]);
      native *****_GetPlayingPlaybackPath(npcidpath[], const size sizeof(path));

      native *****_CreateMovePath();
      native *****_DestroyMovePath(pathid);
      native *****_IsValidMovePath(pathid);
      native *****_AddPointToPath(pathidFloat:xFloat:yFloat:z);
      native *****_AddPointsToPath(pathidFloat:points[][3], const size sizeof(points));
      native *****_RemovePointFromPath(pathidpointid);
      native *****_IsValidMovePoint(pathidpointid);
      native *****_GetMovePoint(pathidpointid, &Float:x, &Float:y, &Float:z);
      native *****_GetNumberMovePoint(pathid);
      native *****_GoByMovePath(npcidpathidtype MOVE_TYPE_AUTOFloat:speed MOVE_SPEED_AUTObool:UseMapAndreas falseFloat:radius 0.0bool:setangle true); 
    • Обновлённые функции
      PHP Code:
      native *****_SetVelocity(npcidFloat:xFloat:yFloat:zbool:update_pos false);
      native *****_GiveVelocity(npcidFloat:xFloat:yFloat:zbool:update_pos false);
      native *****_StartPlayingPlayback(npcidfile[] = ""recordid INVALID_RECORD_IDbool:auto_unload false); 
    • Новые автовызываемые функции
      PHP Code:
      forward *****_OnFinishMovePath(npcidpathid);
      forward *****_OnFinishMovePathPoint(npcidpathidpointid); 
    • Новые константы
      PHP Code:
      #define INVALID_MOVEPATH_ID (-1)
      #define INVALID_RECORD_ID   (-1) 


  • v1.3.1
    • Исправления
      • Исправлена точка начала стрельбы для NPC
      • Исправлен урон в скрипте-примере bodyguard
      • Исправлена корректность работы без объявленных необходимых автовызываемых функций (но их объявление по-прежнему необходимо для работы всех функций)


  • v1.3.0
    • О версии
      • Точность стрельбы (#23)
      • Автовызываемая функция *****_OnUpdate

    • Исправления
      • Больше проверок на подключение игрока (меньше крашей)
      • Исправление *****_GetWeaponInfo

    • Новые функции
      PHP Code:
      native *****_SetWeaponAccuracy(npcidweaponidFloat:accuracy);
      native Float:*****_GetWeaponAccuracy(npcidweaponid); 
    • Обновлённые функции
      PHP Code:
      native *****_SetWeaponInfo(npcidweaponidreload_time = -1shoot_time = -1clip_size = -1Float:accuracy 1.0);
      native *****_GetWeaponInfo(npcidweaponid, &reload_time = -1, &shoot_time = -1, &clip_size = -1, &Float:accuracy 1.0);
      native *****_SetWeaponDefaultInfo(weaponidreload_time = -1shoot_time = -1clip_size = -1Float:accuracy 1.0);
      native *****_GetWeaponDefaultInfo(weaponid, &reload_time = -1, &shoot_time = -1, &clip_size = -1, &Float:accuracy 1.0); 
    • Новые автовызываемые функции
      PHP Code:
      forward *****_OnUpdate(npcid); 


  • v1.2.0
    • О версии
      • Улучшены параметры оружия по умолчанию (deagle, m4, ak47)
      • Добавлено много *****_Give* функций
      • Чистка кода

    • Исправления
      • Исправлена работа параметра delay в функции *****_AimAt
      • Исправлено проигрывание node файлов

    • Новые функции
      PHP Code:
      native *****_GivePosition(npcidFloat:xFloat:yFloat:z);
      native Float:*****_GiveAngle(npcidFloat:angle);
      native *****_GiveQuaternion(npcidFloat:wFloat:xFloat:yFloat:z);
      native *****_GiveVelocity(npcidFloat:xFloat:yFloat:z);
      native Float:*****_GiveHealth(npcidFloat:health);
      native Float:*****_GiveArmour(npcidFloat:armour);
      native *****_GiveAmmo(npcidammo);
      native *****_GiveWeaponSkillLevel(npcidskilllevel);
      native *****_GiveSurfingOffsets(npcidFloat:xFloat:yFloat:z); 


  • v1.1.3
    • О версии
      • Переписан скрипт-пример Bodyguard
      • Оптимизация

    • Исправления
      • Исправление *****_IsStreamedForAnyone
      • Теперь *****_PutInVehicle работает для NPC находящихся в транспорте
      • Исправлена работа изменения времени стрельбы и задержки
      • Исправлено много предупреждений при компиляции
      • Добавлено много проверок на валидность (меньше крэшей)

    • Новые автовызываемые функции
      PHP Code:
      forward *****_OnGiveDamage(npcidissueridweaponidbodypartFloat:health_loss); 


  • v1.1.2
    • Изменения
      • Исправлена работа на Linux


  • v1.1.1
    • О версии
      • Сёрфинг теперь поддерживает прикреплённые объекты
      • Оптимизация
      • Добавлены константы скорости в инклуд файл
      • Обновлено загрузочное сообщение

    • Исправления
      • Исправлена валидация объектов и транспорта (меньше крэшей)
      • Исправлена проверка версии инклуд файла (спасибо плагину Streamer от Incognito за пример)
      • Исправлен радиус движения для функции *****_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
    • О версии
      • Улучшено определение цели в функции *****_AimAt
      • Теперь NPC могут наносить урон другому игроку (для предотвращения этого вы можете возвратить 0 в *****_OnTakeDamage)
      • Добавлена проверка версии инклуд файла
      • Теперь функция *****_GoToPlayer обновляет точку назначения NPC пока игрок двигается
      • Добавлены функции для контроля тяги в Hydra
      • Добавлены функции для контроля шасси
      • shoot_delay по умолчанию изменён на -1 (не важно)
      • Оптимизация процесса прицеливания
      • Небольшой рефакторинг исходного кода

    • Исправления
      • Исправлен крэш для недействительного транспорта во время проигрывания записи
      • Исправлена синхронизация позиции NPC при сёрфинге (прицеплении к транспорту)
      • Исправлена стрельба при сёрфинге
      • Исправлена работа аргумента speed в функциях *****_GoTo[Player] (теперь он работает для пеших NPC тоже)
      • Исправлено направление прицеливания по оси Z
      • Сброс клавиш NPC после смерти (исправляет некоторые ошибки с анимациями)
      • Исправлена проверка на параметры в функциях информации об оружии

    • Новые функции
      PHP Code:
      native *****_StopSurfing(npcid);
      native *****_IsAttacking(npcid);
      native *****_IsAimingAtPlayer(npcidplayerid);
      native *****_IsMovingAtPlayer(npcidplayerid);
      native *****_SetVehicleHydraThrusters(npciddirection);
      native *****_GetVehicleHydraThrusters(npcid);
      native *****_SetVehicleGearState(npcidgear_state);
      native *****_GetVehicleGearState(npcid); 


  • v1.0.7
    • Изменения
      • Исправлены кнопки передвижения (были некоторые проблемы с анимацией передвижения)
      • Исправлено исчезновение тела (#15)
      • Добавлена проверка на передаваемый адрес MapAndreas (больше не будет крашить, если адрес недействителен)
      • Добавлены некоторые проверки на вводимые параметры
      • Удалён сброс данных прицеливания из MeleeAttack (теперь вы можете использовать *****_AimAtPlayer совместно с *****_MeleeAttack)
      • *****_AimAt(Player) останавливает прицеливание перед началом нового
      • Исправлен и оптимизирован перехват автовызываемых функций (теперь это отлично работает с filterscript)
      • Исправлено действие по возвращаемому значению из автовызываемой функции (теперь это работает)
      • Оптимизация (совсем чуть-чуть)


  • v1.0.6
    • О версии
      • Добавлены аналоговые UD и LR в *****_SetKeys

    • Исправления
      • Исправлено получение урона в скрипте Bodyguard
      • Исправлено воскрешение NPC после рестрима
      • Установлены корректные клавиши при передвижении игрока
      • Исправлен крэш после отключения NPC
      • Исправлена причина и killerid при убийстве NPC

    • Изменённые функции
      PHP Code:
      native *****_SetKeys(npcidud_analoglr_analogkeys); 


  • v1.0.5
    • О версии
      • Нижний регистр для папки с путями (node) (сейчас путь выглядит так: **scriptfiles/*****/nodes/NODES%d.DAT**);
      • Файлы путей (node) добавлены в репозиторий и windows архив с плагином.

    • Исправления
      • Исправлены и оптимизированы некоторые скрипты примеры (citizens, missions);
      • Исправлена система playback (теперь она работает).

    • Новые функции
      PHP Code:
      native *****_IsStreamedForAnyone(npcid); 


  • v1.0.4
    • О версии
      • Небольшое обновление, исправляющее ошибки.

    • Исправления
      • Крэш после вызова KillPlayer.


  • v1.0.3
    • О версии
      • Новый параметр для *****_AimAt[Player] - setangle.
      • Внутренняя оптимизация циклов.
      • Удалены функции и параметры для работы с уроном NPC.
      • Удалена автовызываемая функция *****_OnGiveDamage.
      • Удалены функции DriveBy (удалены, потому что не работали нормально).

    • Исправления
      • Исправлено состояние оружия у NPC.
      • Очистка памяти для некоторых указателей.


  • v1.0.2
    • О версии
      • *****_EnterVehicle теперь работает практически идеально;
      • *****_SetWeaponDamage теперь работает, не идеально, но работает;
      • *****_SetSkin теперь работает идеально (без рестрама NPC);
      • Больше информации в крэшлог (+backtrace для Linux версии плагина).

    • Исправления
      • *****_ExitVehicle;
      • *****_SetWeaponDamage;
      • Установка угла транспорта при посадке в него;
      • Подключение NPC на сервер с одним слотом;
      • Крэш для оружия с размером обоймы равное нулю;
      • Стандартные значения урона оружия.

    • Новые автовызываемые функции
      PHP Code:
      forward *****_OnGiveDamage(npciddamagedidweaponidbodypartFloat:health_loss); 


  • v1.0.1
    • О версии
      • Теперь есть два метода установки анимации для NPC:
      • *****_SetAnimation[ByName], *****_ResetAnimation: работает с данными синхронизации. Анимация переигрывается после рестрима. Необходимо использовать *****_ResetAnimation (с небольшой задержкой) перед переигровкой этой анимации.
      • *****_ApplyAnimation, *****_ClearAnimations: отправляет RPC пакеты игрокам в зоне стрима, работает как ApplyAnimation.

    • Исправления
      • Крэш OnPlayerGiveDamage
      • Валидация MAX_PLAYER
      • Некоторые типы переменных

    • Новые функции
      PHP Code:
      native *****_SetAnimationByName(npcidname[], Float:fDelta 4.1loop 0lockx 1locky 1freeze 0time 1);
      native *****_ResetAnimation(npcid);
      native *****_ApplyAnimation(npcidanimlib[], animname[], Float:fDelta 4.1loop 0lockx 1locky 1freeze 0time 1);
      native *****_ClearAnimations(npcid); 
      Note: параметр name[] в *****_SetAnimationByName имеет маску НАЗВАНИЕ_БИБЛИОТЕКИ:НАЗВАНИЕ_АНИМАЦИИ, пример использования: PED:WALK_DRUNK.


  • v1.0.0
    • О версии
      • NPC теперь могут быть убиты в транспорте.
      • Транспорт теперь получает урон, если на водительском сидении сидит NPC (чтобы отключить это, возвратите 0 в *****_OnVehicleTakeDamage).
      • OnPlayerStreamIn/Out теперь не вызываются для ***** (используйте *****_OnStreamIn/Out).
      • NPC теперь можно прикрепить к транспорту, объекту или объекту игрока (доступно изменение смещение).
      • Контроль сирены транспорта NPC.
      • Контроль здоровья транспорта NPC.
      • Теперь можно контролировать урон, размер магазина, скорость стрельбы и скорость перезарядки оружия для всех или для каждого NPC.
      • Контроль WeaponSkill для оружия (с изменением уроня для двойного оружия).
      • Теперь можно контролировать силу броска гранаты, с помощью параметра shoot_delay в *****_AimAt.
      • Добавлен параметр UseFightstyle в *****_MeleeAttack, с помощью которого NPC могут бить с использованием Fightstyle.
      • Добавлено значение delay по умолчанию в *****_MeleeAttack.
      • В функции *****_GoTo теперь можно отключить автоматическую установку угла поворота (полезно для использования совместно с *****_SetQuaternion).
      • Функция *****_SetSkin теперь не респавнит, а рестримит NPC.
      • Новые функции для контроля угла поворота NPC (*****_SetAngleToPos, *****_SetAngleToPlayer).
      • Функции неуязвимости (*****_SetInvulnerable, *****_IsInvulnerable).
      • Добавлен MOVE_TYPE_AUTO для *****_GoTo (автоматически проверят NPC на нахождение в транспорте).
      • Добавлен параметр radius для *****_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?...&postcount=153).
      • Множество изменений в коде (замена Detours на subhook, переход на CMake, внедрение YSF Structs.h, замена небезопасных функций, оптимизация и другое).


  • Beta 15
    • Исправлен вход и выход из транспорта.
    • Исправлена стрельба (перезарядка, конечность патронов...), на первый взгляд остался лишь один небольшой баг.
    • Успешное создание патронов, NPC теперь могут стрелять (Спасибо kurta999 за его YSF плагин).
    • Добавлены функции *****_ToggleReloading и *****_ToggleInfiniteAmmo.
    • Переименованы все функции проигрывания записей в "playing" вместо "recording" (*****_StartPlayingPlayback вместо *****_StartRecordingPlayback).


  • Beta 14 R3
    • Исправлен случайный крэш linux версии (из-за неправильного перехвата).


  • Beta 14 R2
    • Исправлен крэш при спавне NPC.


  • Beta 14
    • Добавлена linux версия.
    • Исправлена работа *****_AimAt.


  • Beta 13
    • Плагин теперь автоматически ищет необходимые адреса и смещения в памяти (теперь не нужно обновлять плагин с каждым обновлением сервера)
    • Урон NPC теперь обрабатывается внутри плагина.
    • Исправлен баг с прицеливанием вверх, когда NPC промахивался (спасибо abagail).
    • Добавлен обработчик исключений, который создаёт лог файл при падении сервера.


  • Beta 12 R2
    • Добавлена поддержка SAMP сервера версии 0.3z R2-2
    • Возможно исправлена система урона в Linux версии


  • Beta 12
    • Добавлена поддержка SAMP сервера версий 0.3z and 0.3z R1-2 (обе используют одинаковые адреса в памяти)
    • Добавлена полностью рабочая linux версия (теперь система урона включена)
    • NPC теперь на стороне клиента выглядят как NPC
    • Добавлено определение части тела в систему урона (спасибо Kalcor за внедрение этого в 0.3z)


  • Beta 11
    • Добавлена поддержка SAMP сервера версии 0.3x R2 (теперь ***** поддерживает 0.3x R1-2 и R2 версии)
    • Исправлена linux версия (по прежнему нет системы урона NPC, но, в основном, работает стабильно)
    • Исправлен повышенный пинг у NPC в TAB-меню
    • Исправлены параметры автовызываемых функций


  • Beta 10 RC 1
    • Исправлены проблемы с входом в транспорт (больше никакого переворачивания и других проблем)
    • Исправлено направление взгляда игрока (больше никакого вглядывания в землю)
    • Исправлена неточность GoTo
    • Добавлен параметр "Floatpeed" в функцию GoTo для контроля ускорения транспорта
    • Добавлена функция *****_GetZGround для получения высоты местонсти (Z) по координатам X, Y


  • Beta 10
    • Исправлен краш при стрельбе в другого игрока
    • Добавлено значение "health_loss" в "*****_OnTakeDamage"
    • Добавлен тип движения в "*****_EnterVehicle"
    • Исправлена стрельба NPC (очень точная, теперь они могут стрелять в вас даже если вы находитесь на другой высоте)
    • Добавлены скрипт missions для демонстрации правильного использования этого плагина
    • Исправлены пути движения (node)


  • Beta 9
    • Исправлено определение урона (очень точный, основанный на перехвате автовызываемой функции "OnPlayerGiveDamage")
    • Исправлен переворот транспорта при входе в него NPC
    • NPC теперь могут посдке в транспорт выбросить игрока из него
    • Исправлена задержка атаки ближнего боя


  • Beta 8 R2
    • Исправлен метод создания (более чистый и эффективный метод, заменены грязные хуки и патчи)
    • Исправлены крэши на linux (надеюсь)
    • Исправлены значения урона оружия
    • Добавлены проверки значений maxplayers и maxnpc


  • Beta 8
    • Исправлено определение урона (точное определение урона с частью тела и уроном от оружия)
    • Добавлена linux версия (может быть найдена в загружаемом архиве)
    • Добавлена поддержка атаки ближнего боя (*****_MeleeAttack и *****_StopAttack)
    • Исправлены другие небольшие баги


  • Beta 7
    • Добавлена полная поддержка путей GTA SA (nodes) (смотри citiziens.pwn для большей информации)
    • Исправлено передвижение игрока
    • Исправлена езда (теперь работает очень плавно)
    • Исправлена установка или получение состояния транспорта игрока (позиция, ускорение и другие)


  • Beta 6
    • NPC теперь используют нормальные ID (playerid), никаких больше самодельных ID
    • Добавлен MOVE_TYPE_DRIVE, теперь NPC могут водить транспорт
    • Исправлено возгорание транспорта при посадке NPC в качестве водителя
    • Исправлен небольшой баг при создании NPC и добавлены некоторые дополнительные проверки
    • Исправлен неправильный ID транспорта при посадке в него


  • Beta 5 R3
    • Исправлен метод создания (исправлены связанные с этим крэши)


  • Beta 5 R2
    • Исправлен краш при создании NPC
    • Исправлено повышеное потребление CPU


  • Beta 5
    • Исправлен метод создания NPC (больше не используется samp-npc.exe) все падения и ошибки, связанные с созданием исправлены
    • Добавлено временное решение для определения урона (только игроки могут стрелять в NPC)
    • Исправлен угол прицеливания Z (теперь NPC могут попадать в цель при стрельбе)
    • Добавлена функция *****_GetNPCID для определения ID NPC из ID игрока
    • Улучшен вход в транспорт (теперь анимация применяется должным образом)


  • Beta 4
    • Исправлен ID у NPC начинающийся с maxplayers в config.cfg вместо 500
    • Исправлено падение при большом количестве NPC (теперь вы можете создавть столько, сколько хотите без крашей)
    • Добавлена функция *****_GetPlayerID (возвращает реальный ID игрока)
    • Добавлена возможность отключить использование карты высот (ZMap) при передвижении


  • Beta 3
    • Исправлено или ограничено использование пропускной способности для каждого NPC (может быть настроено с помощью *****_SetUpdateRate)
    • Исправлены анимации входа и выхода в транспорт (довольно идеальны теперь)
    • Добавлена функция *****_SetPlayerWeaponSkill
    • Исправлена скорость передвижения NPC при спринте и достижения пункта назначения
    • Добавлена карта высот (ZMap) для передвижений NPC (никакого больше полёта при передвижении)


  • Beta 2
    • Исправлен краш при создании NPC
    • NPC больше не лезут в слот 500
    • Исправлен поджог транспорта при посадке в него NPC
    • Исправлены неправильные параметры, передаваемые в автовызываемые функции, такие как *****_Spawn, *****_Create и другие (вызывало много проблем)
    • Исправлен id транспорта в *****_EnterVehicle


  • Beta 1 R2
    • Исправлена проблема с портом

Видео
Благодарности
  • SA-MP Team: SA-MP
  • OrMisicL: Разработка
  • *****: Обновление
  • Zeex: Библиотека Subhook
  • kurta999: YSF плагин
  • Admigo: Тестирование
  • iJumbo: Тестирование Linux версии
  • Lorenc_, kurta999, therainycat: Помощь

Last edited by ZiGGi; 14/06/2017 at 03:08 PM.
ZiGGi is offline   Reply With Quote
Old 16/03/2016, 02:01 PM   #2
Stuntff
Big Clucker
 
Join Date: Feb 2016
Posts: 83
Reputation: 21
Default Re: ***** - Fully Controllable NPC (Russian Thread)

Можно какие-то примеры?
Stuntff is offline   Reply With Quote
Old 16/03/2016, 02:15 PM   #3
Romz
High-roller
 
Romz's Avatar
 
Join Date: Jun 2013
Location: Ukraine
Posts: 1,051
Reputation: 62
Thumbs up Re: ***** - Fully Controllable NPC (Russian Thread)

Красавиц, отличная работа. Молодец что поддерживаешь плагин за это тебе жирный лойс.
Romz is offline   Reply With Quote
Old 16/03/2016, 02:23 PM   #4
Untonyst
Big Clucker
 
Untonyst's Avatar
 
Join Date: Dec 2015
Posts: 65
Reputation: 9
Default Re: ***** - Fully Controllable NPC (Russian Thread)

Quote:
Originally Posted by Stuntff View Post
Можно какие-то примеры?
Они таки есть в пункте "скачать"
__________________

GitHub account.
Untonyst is offline   Reply With Quote
Old 21/06/2016, 06:02 PM   #5
Bombo
Huge Clucker
 
Bombo's Avatar
 
Join Date: Jun 2012
Posts: 285
Reputation: 76
Default Re: ***** - Fully Controllable NPC (Russian Thread)

Есть ли возможность скомпилировать версию плагина 1.0.5 под 0.3z?
__________________
[Tool/Web/Other] SA:MP multiloader
[Plugin] Automatic chat translator
[GameMode] DayZ+ [0.3z]
[Plugin] imessage - fast multilanguage strings
[Tool/Web/Other] player search service
Bombo is offline   Reply With Quote
Old 21/06/2016, 06:19 PM   #6
Romz
High-roller
 
Romz's Avatar
 
Join Date: Jun 2013
Location: Ukraine
Posts: 1,051
Reputation: 62
Default Re: ***** - Fully Controllable NPC (Russian Thread)

Quote:
Originally Posted by Bombo View Post
Есть ли возможность скомпилировать версию плагина 1.0.5 под 0.3z?
Есть прошлые версии плагина под данную версию.
Romz is offline   Reply With Quote
Old 21/06/2016, 09:56 PM   #7
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,447
Reputation: 356
Default Re: ***** - Fully Controllable NPC (Russian Thread)

Quote:
Originally Posted by Bombo View Post
Есть ли возможность скомпилировать версию плагина 1.0.5 под 0.3z?
Последнюю нет, слишком много изменений в структурах.
ZiGGi is offline   Reply With Quote
Old 22/06/2016, 11:13 PM   #8
Bombo
Huge Clucker
 
Bombo's Avatar
 
Join Date: Jun 2012
Posts: 285
Reputation: 76
Default Re: ***** - Fully Controllable NPC (Russian Thread)

Позволю себе задать свой вопрос в этой теме.

У меня есть сервер на 0.3z, переход на 0.3.7 не планируется (из-за всем известной вкладки). На сервер нужно добавить NPC на плагине ***** (другие совершенно не подходят!). Поскольку текущую версию ***** под 0.3z скомпилировать нереально, остаётся два выхода: либо построить всё на 0.1 B15 (или ниже), либо скомпилировать более раннюю версию 1.0.0 ветки. С версией 0.1 B15 под Linux возникла проблема - плагин крашит при создании NPC. Полная информация об этой ошибке - ниже.

Code:
[02:09:05] init_npc_zombies() start
[02:09:05] [debug] Server crashed while executing menu.amx
[02:09:05] [debug] AMX backtrace:
[02:09:05] [debug] #0 native *****_Create () from *****.so
[02:09:05] [debug] #1 000c83b0 in public init_npc_zombies () from menu.amx
[02:09:05] [debug] #2 0006d43c in public OnFilterScriptInit () from menu.amx
[02:09:05] [debug] Native backtrace:
[02:09:05] [debug] #0 b737250b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so
[02:09:05] [debug] #1 b736b20f in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
[02:09:05] [debug] #2 b736c3fc in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
[02:09:05] [debug] #3 b736c866 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
[02:09:05] [debug] #4 b737215c in ?? () from plugins/crashdetect.so
[02:09:05] [debug] #5 b776cbd0 in ?? ()
[02:09:05] [debug] #6 b534bd2e in _ZN14CSAMPFunctions9NewPlayerEPc () from plugins/*****.so
[02:09:05] [debug] #7 b534b649 in _ZN14CPlayerManager9AddPlayerEPc () from plugins/*****.so
[02:09:05] [debug] #8 b5344b38 in _ZN8CNatives12*****_CreateEP6tagAMXPi () from plugins/*****.so
[02:09:05] [debug] #9 08093d84 in ?? () from ./samp03test
[02:09:05] [debug] #10 b736df7b in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
[02:09:05] [debug] #11 b7370f78 in ?? () from plugins/crashdetect.so
[02:09:05] [debug] #12 b7374f96 in amx_Exec () from plugins/crashdetect.so
[02:09:05] [debug] #13 b736d226 in _ZN11CrashDetect9DoAmxExecEPii () from plugins/crashdetect.so
[02:09:05] [debug] #14 b7370cd9 in ?? () from plugins/crashdetect.so
[02:09:05] [debug] #15 b72ded36 in ?? () from plugins/streamer.so
[02:09:05] [debug] #16 0809ff66 in ?? () from ./samp03test
[02:09:05] [debug] #17 0809df8d in ?? () from ./samp03test
[02:09:05] [debug] #18 0809e927 in ?? () from ./samp03test
[02:09:05] [debug] #19 080da68a in ?? () from ./samp03test
[02:09:05] [debug] #20 08093d84 in ?? () from ./samp03test
[02:09:05] [debug] #21 b736df7b in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
[02:09:05] [debug] #22 b7370f78 in ?? () from plugins/crashdetect.so
[02:09:05] [debug] #23 b7374f96 in amx_Exec () from plugins/crashdetect.so
[02:09:05] [debug] #24 b736d226 in _ZN11CrashDetect9DoAmxExecEPii () from plugins/crashdetect.so
[02:09:05] [debug] #25 b7370cd9 in ?? () from plugins/crashdetect.so
[02:09:05] [debug] #26 b72ded36 in ?? () from plugins/streamer.so
[02:09:05] [debug] #27 080a36bb in ?? () from ./samp03test
[02:09:05] [debug] #28 080a98bd in ?? () from ./samp03test
[02:09:05] [debug] #29 080a8162 in ?? () from ./samp03test
[02:09:05] [debug] #30 b73ad73e in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
В функции *****_Create() ошибка. Более детально:

код самого плагина с отладочной информацией:
PHP Code:
class CSAMPRakPeer
{
        
// +0xA = wMaxPlayers
        
public:
                
CSAMPRemoteSystem *GetRemoteSystem(unsigned short usIndex)
                {
fprintf(stderr"ok:SAMPRakPeer.h GetRemoteSystem(), this=0x%x\n",this);
fprintf(stderr"ok:SAMPRakPeer.h GetRemoteSystem(), CAddress::OFFSET_RemoteSystemManager=0x%x\n",CAddress::OFFSET_RemoteSystemManager);
fprintf(stderr"ok:SAMPRakPeer.h GetRemoteSystem(), SYSTEM_MANAGER_OFFSET=0x%x\n",SYSTEM_MANAGER_OFFSET);
                        
// Get the remote system manager
                        
CSAMPRemoteSystemManager *pRemoteSystemManager = *(CSAMPRemoteSystemManager **)(this CAddress::OFFSET_RemoteSystemManager SYSTEM_MANAGER_OFFSET);
fprintf(stderr"ok1:SAMPRakPeer.h GetRemoteSystem()\n");
                        
// Get the remote system
                        
return (CSAMPRemoteSystem *)(pRemoteSystemManager CAddress::OFFSET_RemoteSystemSize usIndex);
                }

... 
результат:
Code:
ok:SAMPRakPeer.h SetConnectedPlayer()
ok:SAMPRakPeer.h GetRemoteSystem(), this=0x937a320
ok:SAMPRakPeer.h GetRemoteSystem(), CAddress::OFFSET_RemoteSystemManager=0xe6740003
ok:SAMPRakPeer.h GetRemoteSystem(), SYSTEM_MANAGER_OFFSET=0x4
Segmentation fault (core dumped)
ОС: Ubuntu 16.04

Как мне кажется, дело в этом адресе: CAddress::OFFSET_RemoteSystemManager, который, судя по всему, выше определяется направильно. Хотелось бы знать, что это за адрес, и как допилить плагин до рабочего состояния. Обращаюсь к знатокам *****, в частности, к *****
__________________
[Tool/Web/Other] SA:MP multiloader
[Plugin] Automatic chat translator
[GameMode] DayZ+ [0.3z]
[Plugin] imessage - fast multilanguage strings
[Tool/Web/Other] player search service
Bombo is offline   Reply With Quote
Old 23/06/2016, 12:32 AM   #9
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,447
Reputation: 356
Default Re: ***** - Fully Controllable NPC (Russian Thread)

На сколько мне известно, версия B15 работает только под 0.3.7. Тебе нужно использовать версию Beta 12 R2.
В принципе, последнюю версию можно попытаться адаптировать для 0.3z, для этого нужно использовать старые структуры (можно взять из YSF) и, наверное, отключить пару функций. Может быть попробую реализовать в отдельной ветке.
ZiGGi is offline   Reply With Quote
Old 23/06/2016, 05:00 AM   #10
Bombo
Huge Clucker
 
Bombo's Avatar
 
Join Date: Jun 2012
Posts: 285
Reputation: 76
Default Re: ***** - Fully Controllable NPC (Russian Thread)

Quote:
Originally Posted by ***** View Post
На сколько мне известно, версия B15 работает только под 0.3.7. Тебе нужно использовать версию Beta 12 R2.
В принципе, последнюю версию можно попытаться адаптировать для 0.3z, для этого нужно использовать старые структуры (можно взять из YSF) и, наверное, отключить пару функций. Может быть попробую реализовать в отдельной ветке.
Спасибо, помог.
__________________
[Tool/Web/Other] SA:MP multiloader
[Plugin] Automatic chat translator
[GameMode] DayZ+ [0.3z]
[Plugin] imessage - fast multilanguage strings
[Tool/Web/Other] player search service
Bombo is offline   Reply With Quote
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] ***** - 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 06:35 PM.


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