Описание: Плагин позволяет управлять NPC (боты) из PAWN т.е. функционал подобен плагину Controllable NPC by Alex009. Отличия лишь в принципе их работы. Данный плагин использует стандартных ботов, генерацию .rec файла и его моментальное воспроизведение.
ConnectRNPC(name[]); // подключает бота и возвращает его ID. MoveRNPC(npcid, Float:x, Float:y, Float:z, Float:speed); // создаёт движение боту (не нужен RNPC_CreateBuild).
RNPC_CreateBuild(npcid, type, slot=0); // создаёт запись RNPC_FinishBuild(clear=1); // завершает запись RNPC_StartBuildPlayback(npcid, slot=0, vehicleid=0) // запускает сгенерированный .rec файл RNPC_AddMovement(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, Float:speed=RNPC_SPEED_RUN); // создаёт движение от xyz1 до xyz2 RNPC_AddAutoMovement(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, Float:speed=RNPC_SPEED_RUN, maxsteps=1000); RNPC_ConcatMovement(Float:x, Float:y, Float:z, Float:speed=RNPC_SPEED_RUN); // создаёт движение до xyz от текущей позиции RNPC_AddPause(time); // создаёт паузу RNPC_SetUpdateRate(rate); // задаёт интервал обновления бота (норма 100 ms). RNPC_SetLRKeys(lr); // статус LEFR-RIGHT клавиш RNPC_SetUDKeys(ud); // статус UP-DOWN клавиш RNPC_SetKeys(keys); // статус клавиш RNPC_SetQuat1(Float:w); // Функции ротации RNPC_SetQuat2(Float:x); RNPC_SetQuat3(Float:y); RNPC_SetQuat4(Float:z); RNPC_SetAngleQuats(Float:a, Float:h, Float:b); // Ротация RNPC_SetHealth(hp); // устанавливает HP RNPC_SetArmour(arm); // устанавливает броню RNPC_SetSpecialAction(sp); // аналог SetPlayerSpecialAction, только для бота RNPC_SetWeaponID(weaponid); // даёт оружие RNPC_SetAnimID(anim); // задаёт анимацию RNPC_SetAnimParams(params); // задаёт параметры анимации RNPC_GetBuildLength(); // возвращает величину .rec файла RNPC_SetSirenState(siren); // статус сирены RNPC_SetDriverHealth(health); // HP водителя или автомобиля <img rel="usm" src="http://www.samp-rus.com/Smiles_for_forum/lol.gif" border="0" align="absmiddle" alt=":D" /> RNPC_SetInternalPos(Float:x, Float:y, Float:z); // задаёт позицию RNPC_SetAcceleration(Float:acc); // скорость для AddMovementAlt RNPC_SetDeceleration(Float:dec); // пока не реализовано RNPC_AddMovementAlt(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, Float:speed=RNPC_SPEED_RUN, bool:lock=true); // движение от xyz1 до xyz2 (lock для удержания траектории по Z координате, нужен Map_Andreas плагин) RNPC_SetAutorepeat(npcid,repeat); // автоматический повтор воспроизведения .rec файла
public OnRNPCPlaybackFinished(npcid) - вызывается когда завершено воспроизведение .rec файла
forward Follower(npcid, targetid); public Follower(npcid, targetid) { new Float:x, Float:y, Float:z; GetPlayerPos(targetid, x, y, z); MoveRNPC(npcid, x, y, z, 0.006); }
Летающее такси:
Код
new npc = ConnectRNPC("Racer"); // подключаем бота (получаем его id в npc) new veh = CreateVehicle(420, 0.0, 0.0, 25.0, 0.0, -1, -1, 0); // создаём такси, (получаем id в veh) PutPlayerInVehicle(npc, veh, 0); // засовывем npc в veh
RNPC_CreateBuild(npc, PLAYER_RECORDING_TYPE_DRIVER); // создаём .rec файл DRIVER типа RNPC_SetAcceleration(0.003); // задаём скорость RNPC_AddMovementAlt(0.0, 0.0, 25.0, 0.0, 500.0, 25.0, 0.15, false); // указываем откуда и куда передвигать RNPC_FinishBuild(); // завершаем генерацию .rec файла
Мои услуги: -Качественный мапинг (в данный момент работ нет так как пока всё для своего сервера) -Скриптинг мелочей -Разработка сайтов -Работы в PhotoShop Обращаться по icq или скайпу! ICQ - 926048 Skype - x_leons
HTC это круто, но не IPhone ? Когда я купил CNPC, я конечно не жалел что поощрил Alex009 денежкой. Он молодец. Но плагин воистину багнутый, создаёт бесконечную кучу аномалий на сервере. Так что надёжней использовать именно стандартных NPC. Да и потом, этим плагином можно реализовать всё ровно то, что и CNPC и даже больше
UPD: p.s. Из всех этих функций, в принципе в PAWN можно сделать точные аналоги CNPC.
я не использовал ни то ни этот так что сравнить мне тяжело и я просто сужу по функионалу
Мои услуги: -Качественный мапинг (в данный момент работ нет так как пока всё для своего сервера) -Скриптинг мелочей -Разработка сайтов -Работы в PhotoShop Обращаться по icq или скайпу! ICQ - 926048 Skype - x_leons
X_LeonS, у этого плагина полный функционал возможностей бота. Можно реализовать всё что только можно записать в .rec файл. т.е. по сути всё что может сделать игрок.
Да и потом, этим плагином можно реализовать всё ровно то, что и CNPC и даже больше
Однако нет, не ровно, а меньше. Функционал CNPC И главный минус стандартных npc этот плагин не уберет - сильно большие требования на 1 npc. С этим плагином нет возможности создать 300-400 ботов (Пример - сервер с зомби npc. У меня такой был)
Цитата (AirKite)
Но плагин воистину багнутый, создаёт бесконечную кучу аномалий на сервере.
Баги убираются, проблемы пропадают. Сейчас с проблемами ко мне редко обращаются, последние баги исправлены в R4. (Основной был - большие затраты трафика)
Ну тут с какой стороны посмотреть. Можно заметить меньше, а можно и больше. Во всяком случае плагин позволяет загибать ботов по всей их природе в целом. А дополнительный функционал не относящийся к самим ботам на прямую, это уже другая история
p.s. Если я что то проглядел, опиши конкретный функционал при помощи которых нельзя что то проделать в этом плагине по сравнению с CNPC.
Самое простое, и принципиально невозможное со стандартными ботами на данный момент, это - стрельба в определенную точку (не прямо перед собой). Невозможно это потому, что записи ботов содержат только данные либо пакетов синхронизации движения на земле, либо синхронизации движения в транспорте. Синхронизации aim нет, так же как и пассажиров (вот и второй пример. А из него вытекают и все действия связанные с пассажирами, хотя это в целом только стрельба из окна, где используется и aim и синхронизация пассажира). P.S. Дополнительные минусы по сравнению с CNPC: 1. Высокие затраты памяти и цп на 1 бота (Главная причина создания CNPC) 2. Ботов нельзя убить Ну а дальше дополнительный функционал в виде графа путей gta sa, нахождение кратчайшего пути по этому графу, встроенная работа с zmap. И даже поддержка записей ботов присутствует, для тех кому это очень хочется.
Самое простое, и принципиально невозможное со стандартными ботами на данный момент, это - стрельба в определенную точку (не прямо перед собой). Невозможно это потому, что записи ботов содержат только данные либо пакетов синхронизации движения на земле, либо синхронизации движения в транспорте.
Не понял... Вроде записывали стрельбу со скалы, солдатики стреляли вниз. AIM вполне записывался. В генераторе записи можно использовать:
Код
RNPC_SetQuat1(Float:w); // Функции ротации RNPC_SetQuat2(Float:x); RNPC_SetQuat3(Float:y); RNPC_SetQuat4(Float:z); //и RNPC_SetKeys(keys); // статус клавиш
Цитата (Alex009)
2. Ботов нельзя убить
Почему? Можно всё.
Цитата (Alex009)
1. Высокие затраты памяти и цп на 1 бота (Главная причина создания CNPC)
Насчёт ЦП ещё можно поспорить (по крайне мере со старой версией, которую я покупал). А вот память, это да.