Сейчас мы сделаем бота, который будет охранять определенную точку.
Функции, которые я объяснял в первом уроке здесь объяснять не буду, только новые.
И так, у нас есть бот. Он охраняет определенную точку в радиусе. В паблик обновления игрока пихаем строчку : if(IsPlayerInRangeOfPoint(playerid, 15.0, 4732.23, 432.22, 43.54)), где 4732.23, 432.22, 43.54 - координаты, где стоит бот, а 15.0 - радиус. То-есть у вас должна выйти похожая конструкция:
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 15.0, 4732.23, 432.22, 43.54))
{
}
return 1;
}
Далее мы пропишем, что же будет происходить, если игрок находится в радиусе:
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 15.0, 4732.23, 432.22, 43.54))
{
new Float: x, Float: y, Float: z;
GetPlayerPos(playerid, x, y, z);
FCNPC_AimAt(MyFirstBot, x, y, z, true);
}
return 1;
}
Разберем эту функцию. Мы создали 3 переменные - x, y и z типа Float и получили позицию игрока, тут все просто. Теперь разберем FCNPC_AimAt(). MyFirstBot - это ID нашего NPC, x, y, z - координаты, куда будет целится наш бот, true - будет ли он атаковать, или нет. Т.к. у нас стоит "true", несложно догадаться, бот незамедлительно откроет огонь. Но сейчас наш бот стоит на месте, и как слабоумный машет руками в нашу сторону. Давайте дадим ему оружие. Для этого в FCNPC_OnSpawn прописываем следующие строки:
FCNPC_SetWeapon(MyFirstBot, 24); FCNPC_SetAmmo(MyFirstBot, 1000);
Разберем эти строки. FCNPC_SetWeapon - выдает боту с ID MyFirstBot оружие, с ID 24. Но без патронов бот не сможет стрелять, а просто будет в нас целится. Для этого мы выдадим ему патрон - FCNPC_SetAmmo(MyFirstBot, 1000);, где MyFirstBot - ID бота, 1000 - количество выдаваемых боеприпасов. Готово, наш бот вооружен и опасен, и будет убивать всех, кто будет в его радиусе.
HELP
Скрытый текст [Показать]
Вход
Регистрация
Помощь











