<< Учимся создавать свой первый NPC
Итак мы пишем /killnpc, наш NPC умирает, выполняется паблик OnDeath, данный паблик у нас работает для всех NPC вообще, так как мы не указали для кого именно выполнять таймер, то для всех NPC это будет работать, но можно сделать и для одного NPC конкретно, так как данный NPC у нас единственный допишем в паблик OnDeath:
public FCNPC_OnDeath(npcid)
{
for (new npcids = 0; npcids < 1; npcids++) {
SetTimerEx(«NPC_Death»,5000,0,»dd»,npcid);}
}
Теперь только для нашего NPC будет осуществлен переход в паблик NPC_Death, где собственное и выполнится функция по респавну (оживлению NPC), NPC респавнится там, где вы его убили, а не там, где он был изначально. Для чего мы задали выполнять перерождение лишь для NPC под номером 0 нашего цикла? Потому что другие NPC могут иметь и другой таймер, вдруг вам захочется сделать какого-нибудь NPC-босса с таймером в полчаса, а может вы и вовсе захотите, чтобы вашего NPC нельзя было убить. Если это так, допишем паблик:
public FCNPC_OnTakeDamage()
{
for (new npcids = 0; npcids < 1; npcids++) {
FCNPC_SetHealth(npc[npcids][npc_ID],100);
}
}
Теперь при нанесении урона по NPC он будет лечиться на 100 хп, обычно сверхдамаг не проходит и этого вполне достаточно, впрочем, это лишь пример, можно вообще игнорить дамаг, но NPC все ещё можно убить с ножа сзади, перерезав горло, чтобы этого не было, проверяйте кнопки игрока, если игрок рядом с NPC, то чтобы ПКМ и ЛКМ не работали, ну это для каких-то особых NPC, которых Вы не хотели бы убивать.
На этом я заканчиваю первую часть руководства по NPC, если данная книга, станет нужной определенному кругу лиц и они потребуют продолжение, я с радостью продолжу её, углубляясь всё дальше и дальше, и рассматривая новые методы, алгоритмы и подходы. Во второй части, если такая будет, мы напишем такой вот скрипт: помните же бокс в Лос Сантосе? У нас будет стоять там пикап, при подборе пикапа нас перемещает на ринг к битве с боксером, который будет не тупо жать ЛКМ, но ещё исполнять какие-то более сложные вещи; при победе над боксером вы получите его стиль. Может ещё какие-то скрипты, я их так много сделал, если найдутся единомышленники, мы вместе обсудим их и способы их оптимизации, а так же рассмотрим способы контроля NPC, методы передвижений и прочие интересности.
- Переходим к главе «Разбор скрипта NPC боксёра в SAMP«
- Или в начало руководства: Руководство по работе с NPC в GTA SAMP