Здравствуйте, гость ( Вход | Регистрация )

> Искуственный интеллект
сообщение 27.6.2003, 22:08
Сообщение #1




Гость







Если это хорошо применять, то нпс будет играть лучше плеера.
Код


//Отступление (@GETHIT)

[FUNCTION MOB_RUNAWAY]

  IF (<SRC.DIR> == 0)

     RUN n

     RUN n

     RUN n

     RUN n

  ELIF (<SRC.DIR> == 1)

     RUN ne

     RUN ne

     RUN ne

     RUN ne

  ELIF (<SRC.DIR> == 2)

     RUN e

     RUN e

     RUN e

     RUN e

  ELIF (<SRC.DIR> == 3)

     RUN se

     RUN se

     RUN se

     RUN se

  ELIF (<SRC.DIR> == 4)

     RUN s

     RUN s

     RUN s

     RUN s

  ELIF (<SRC.DIR> == 5)

     RUN sw

     RUN sw

     RUN sw

     RUN sw

  ELIF (<SRC.DIR> == 6)

     RUN w

     RUN w

     RUN w

     RUN w

  ELIF (<SRC.DIR> == 7)

     RUN nw

     RUN nw

     RUN nw

     RUN nw

  ENDIF





//Наступление (@GETHIT)

[FUNCTION MOB_CHARGE]

  IF (<DISTANCE> > 1)

     SRC.GO = <P>

  ENDIF





//Проверка маны

[FUNCTION MANA_CHECK]

  IF (<MANA> < <ARGN> )

     RETURN 1

  ENDIF





//Кастование монстром

[FUNCTION MOB_CAST]

  IF (<ARGN> <= 8)

     MANA_CHECK 5

  ELIF (<ARGN> > 8) && (<ARGN> <= 16)

     MANA_CHECK 10

  ELIF (<ARGN> > 16) && (<ARGN> <= 24)

     MANA_CHECK 15

  ELIF (<ARGN> > 24) && (<ARGN> <= 32)

     MANA_CHECK 20

  ELIF (<ARGN> > 32) && (<ARGN> <= 40)

     MANA_CHECK 25

  ELIF (<ARGN> > 40) && (<ARGN> <= 48)

     MANA_CHECK 30

  ELIF (<ARGN> > 48) && (<ARGN> <= 56)

     MANA_CHECK 35

  ELIF (<ARGN> > 56) && (<ARGN> <= 64)

     MANA_CHECK 50

  ENDIF



  IF (<ARGN> == 7)    //Reactive armor

     SAY In Vas Mani

  ELIF (<ARGN> == 15) //Great Heal

     SAY In Vas Mani

  ELIF (<ARGN> == 30) //Paralyze

     SAY In Vas Mani

  ELIF (<ARGN> == 31) //Lighting

     SAY In Vas Mani

  ELIF (<ARGN> == 41) //Dispel

     SAY An Ort

  ENDIF



  NEWITEM m_mobcast

  ACT.EQUIP

  VAR.SPELL = <ARGN>

  VAR.FIZZLE = 0

  EVENTS = +e_cast_events





[EVENTS e_cast_events]



ON=@GETHIT

  VAR.FIZZLE = 1



ON=@SPELLEFFECT

  VAR.FIZZLE = 1



[ITEMDEF m_mobcast]

TYPE = t_eq_script

LAYER = layer_special



ON=@CREATE

  ATTR = attr_invis



ON=@EQUIP

  TIMER = 2



ON=@TIMER

  IF !(<VAR.FIZZLE> )

     CONT.ANIM 2

     IF (<EVAL <VAR.SPELL>> == 31)

        CONT.SPELLEFFECT s_greater_heal, <CONT.MAGERY>

        CONT.MANA = <CONT.MANA> + -15

     ELIF (<EVAL <VAR.SPELL>> == 30)

        CONT.SPELLEFFECT s_greater_heal, <CONT.MAGERY>

        CONT.MANA = <CONT.MANA> + -15

     ENDIF

  ELSE

     CONT.ANIM 17

     CONT.MANA = <CONT.MANA> + -5

  ENDIF

  CONT.EVENTS = -e_cast_events

  REMOVE

  RETURN 1





//Лечении бутылями, если хиты меньше <ARGN> (@GETHIT)

[FUNCTION MOB_HEALING]

  IF (<HITPOINTS> < <ARGN> )

     IF (<RESTEST 1 i_potion_healgreat> )

        SPELLEFFECT s_greater_heal,100.0

        CONSUME i_potion_healgreat

     ENDIF

  ENDIF





//Лечении спелом, если хиты меньше <ARGN> (@GETHIT)

[FUNCTION MOB_HEALING_SPELL]

  IF (<HITPOINTS> < <ARGN> ) && (<MANA> > 15)

     MOB_RUNAWAY

     MOB_CAST 15 //Great heal

  ENDIF





//Подготовка к атаке (@NPCSEENEWPLAYER)

[FUNCTION MOB_MAGIC_PREPARE]

  IF !(<FLAGS> & statf_reactive)

     MOB_CAST 7 //reactive armor

  ENDIF

  ATTACK





//Диспел спелов с игрока (@HITTRY)

[FUNCTION MOB_DISPEL]

  IF (<SRC.FLAGS> & statf_conjured)

     MOB_CAST 41 // Dispel

  ENDIF





//Лут трупа игрока и одевает на себя его лучшие вещи... (@ItemStep)

[FUNCTION MOB_LOOT]

  IF (<ACT.BASEID> == i_corpse)

     SRC.SAY Corpse looted

     LOOT_COPRSE

     EQUIPWEAPON

     EQUIPARMOR

  ENDIF





[FUNCTION LOOT_CORPSE]

  IF (0<ACT.FINDCONT(0).UID>==0)

     RETURN 1

  ENDIF

  ACT.FINDCONT(0).CONT = <FINDLAYER(21).UID>

  LOOT_CORPSE

  RETURN 1





//Одевание оружия (@GETHIT/ItemStep)

[FUNCTION MOB_EQUIP_SWORD]

//findid(i_jail_sword).cont=<uid>

  IF (FINDLAYER(21).FINDTYPE.T_WEAPON_SWORD.UID)

     FINDLAYER(21).FINDTYPE.T_WEAPON_SWORD.CONT = <UID>

  ENDIF





//Одевание лука или арбалета (@GETHIT/ItemStep)

[FUNCTION MOB_EQUIP_BOW]

  IF (FINDLAYER(21).FINDTYPE.T_WEAPON_BOW.UID)

     FINDLAYER(21).FINDTYPE.T_WEAPON_BOW.CONT = <UID>

  ENDIF





//Одевание брони (@GETHIT/ItemStep)

[FUNCTION MOB_EQUIP_ARMOR]

  EQUIPARMOR





//Ивент для мага

[EVENTS e_npc_sorc]



ON=@NPCSEENEWPLAYER

  MOB_MAGIC_PREPARE



ON=@GETHIT

  // Смена лука / меча

  IF (<SRC.DISTANCE> < 2)

     MOB_EQUIP_SWORD

     MOB_EQUIP_ARMOR

     ATTACK

  ELSE

     MOB_EQUIP_BOW

     ATTACK

  ENDIF

  MOB_HEALING_SPELL 40

  MOB_HEALING 20



ON=@HIT

  // Добивание лайтнингами или паралайз

  IF (<SRC.HITS> < 10)

     MOB_CAST 37

  ENDIF

  IF (<HITS> > <SRC.HITS> ) && (<HITS> < <STR>/2)

     MOB_CAST 30

  ENDIF



  // Смена лука / меча

  IF (<SRC.DISTANCE> < 2)

     MOB_EQUIP_SWORD

     MOB_EQUIP_ARMOR

     ATTACK

  ELSE

     MOB_EQUIP_BOW

     ATTACK

  ENDIF



ON=@SPELLEFFECT

  IF (<ARGN> == 20) // Poison

     MOB_RUNAWAY

     MOB_CAST 11

  ENDIF

  IF (<ARGN> == 38) // Paralyze

     MOB_RUNAWAY

     MOB_CAST 5

  ENDIF



ON=@SPELLCAST

  RETURN 1




Скрипт НЕ мой. Я непомню автора.
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Тема закрытаОткрыть новую тему
Ответов
dUha
сообщение 29.5.2005, 16:58
Сообщение #2


*

Registred
Сообщений: 6
Регистрация: 29.5.2005
Группа: Пользователи
Наличность: 0
Пользователь №: 3.749



Подскажите нюбу как заставить ето работать у нпц..
киньте скрипт уже готовый хотябы на одного монстра чтоб было видно что куда сувать чтоб монстр понимал етот движок

Заранее блогодарен
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
  Искуственный интеллект   27.6.2003, 22:08
  Мочно :)   28.6.2003, 7:40
  :?: на кого он действует вообще?И как его поставит...   18.7.2003, 11:17
DihlofozzZ   Ставить как хош, а действует конкретно на игрока:)   18.7.2003, 12:33
  :?: чё то я не понял что значит на самого игрока7 ...   18.7.2003, 14:35
DihlofozzZ   Ты се ПК представляешь?:) Дык вот это почти то же ...   18.7.2003, 19:48
  Тогда как его на карту то поставить? :)   21.7.2003, 9:06
DihlofozzZ   Чтобы его на карту поставить надо его написать, то...   21.7.2003, 14:51
  :(   22.7.2003, 9:03
BoDRoV   -= БРЕД =- :roll:   22.7.2003, 18:54
  :?: Что именно7 :?:   23.7.2003, 13:50
NeO   Хеее!!! Ну да! Очень даже... , а если НПС'у ещё np...   30.7.2003, 21:41
DihlofozzZ   Слабак а не монстр будет!!!   31.7.2003, 2:10
Steel   Нефлудить !   31.7.2003, 10:11
Mjaso   сильно задвинули ;) возьму для своего навенро токо...   12.6.2005, 2:08
GM Monster   Если те лут нужен то вот поприкольнее и причём буд...   12.6.2005, 13:52
Mjaso   что именно за ТУРБО ? Турбо скорость ?:) Нпц на сп...   13.6.2005, 2:19
exБивис   Это искуственный интелект? Это просто набор тригер...   13.6.2005, 19:45
sanches   эта набор функций!! ))) а ваще реально вес...   14.6.2005, 1:43
Steel   Не считая того что этот скрипт написали в 2003 го...   14.6.2005, 9:14


Тема закрытаОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 24.6.2025, 21:52
Designed by Nickostyle