Оживляем NPC после смерти в SAMP

09 октября 2014 | Рубрика: Статьи

<< Учимся создавать свой первый 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, методы передвижений и прочие интересности.