Форум Pawn.Wiki - Воплоти мечту в реальность!: Урок по FC_NPC №2 - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Урок ]
Урок по FC_NPC №2 Делаем бота-охранника
Оценка: -----

#1
Пользователь офлайн   SparrowCrew 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Всем привет, вот вам мой второй урок по FC_NPC :)
Сейчас мы сделаем бота, который будет охранять определенную точку.
Функции, которые я объяснял в первом уроке здесь объяснять не буду, только новые.
И так, у нас есть бот. Он охраняет определенную точку в радиусе. В паблик обновления игрока пихаем строчку : 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
Скрытый текст [Показать]

8

#2
Пользователь офлайн   Витёк 

  • Banned
  • Вставить ник
  • Раскрыть информацию
+ :rolleyes:

#3
Пользователь офлайн   .evoxxx 

  • Liberty Inc.
  • Вставить ник
  • Раскрыть информацию
Ооо с этой штуковиной можно и бота-зомби зафигачить :))) (если не сложно сделай готовое решение,у тебя хорошо получается), а за урок конечно же ++
1

#4
Пользователь офлайн   Витёк 

  • Banned
  • Вставить ник
  • Раскрыть информацию
подскажи как зделать например если бот убьёт то игроку даётся зарожение тоесть он зомби вот переменая для заражения pZombie

#5
Пользователь офлайн   SparrowCrew 

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияВитёк (14 июля 2015 - 14:44) писал:

подскажи как зделать например если бот убьёт то игроку даётся зарожение тоесть он зомби вот переменая для заражения pZombie


Попробуй так:
OnPlayerDeath(playerid, killerid, reasion)
{
     if(killerid == *id бота-зомби)
     {
           PlayerInfo[playerid][pZombie] = 1;
     }
     return 1;
}


Просмотр сообщенияSnoopDy (14 июля 2015 - 09:42) писал:

Ооо с этой штуковиной можно и бота-зомби зафигачить :))) (если не сложно сделай готовое решение,у тебя хорошо получается), а за урок конечно же ++


Хорошо.
1

#6
Пользователь офлайн   Витёк 

  • Banned
  • Вставить ник
  • Раскрыть информацию
а можеш дать сылку на FC_NPC пожалусто :rolleyes:

#7
Пользователь офлайн   SparrowCrew 

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияВитёк (15 июля 2015 - 03:02) писал:

а можеш дать сылку на FC_NPC пожалусто :rolleyes:


http://forum.sa-mp.c...ad.php?t=428066
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика