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

2 страниц V  1 2 >  
Тема закрытаОткрыть новую тему
> Искуственный интеллект
сообщение 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




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




Гость







Мочно (IMG:style_emoticons/default/smile.gif)
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
сообщение 18.7.2003, 11:17
Сообщение #3




Гость







:?: на кого он действует вообще?И как его поставить?
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DihlofozzZ
сообщение 18.7.2003, 12:33
Сообщение #4


***********

Администратор форума
Сообщений: 5.602
Регистрация: 8.3.2003
Группа: Администраторы
Наличность: 0
Из: Москва Россия
Пользователь №: 237



Ставить как хош, а действует конкретно на игрока(IMG:style_emoticons/default/smile.gif)


--------------------
С уважением Администратор Форума.
Контактный Email: dihlofozzz@uokit.com


Topic Closed
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
сообщение 18.7.2003, 14:35
Сообщение #5




Гость







:?: чё то я не понял что значит на самого игрока7 :?:
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DihlofozzZ
сообщение 18.7.2003, 19:48
Сообщение #6


***********

Администратор форума
Сообщений: 5.602
Регистрация: 8.3.2003
Группа: Администраторы
Наличность: 0
Из: Москва Россия
Пользователь №: 237



Ты се ПК представляешь?(IMG:style_emoticons/default/smile.gif) Дык вот это почти то же самое, бегает, хилится, кастует ману, только этим ПКшником управляет комп!!! Вообщем-то это простой нпс только с мозгами(IMG:style_emoticons/default/smile.gif)


--------------------
С уважением Администратор Форума.
Контактный Email: dihlofozzz@uokit.com


Topic Closed
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
сообщение 21.7.2003, 9:06
Сообщение #7




Гость







Тогда как его на карту то поставить? (IMG:style_emoticons/default/smile.gif)
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DihlofozzZ
сообщение 21.7.2003, 14:51
Сообщение #8


***********

Администратор форума
Сообщений: 5.602
Регистрация: 8.3.2003
Группа: Администраторы
Наличность: 0
Из: Москва Россия
Пользователь №: 237



Чтобы его на карту поставить надо его написать, то что здесь лежит это только движок нпса!!!


--------------------
С уважением Администратор Форума.
Контактный Email: dihlofozzz@uokit.com


Topic Closed
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
сообщение 22.7.2003, 9:03
Сообщение #9




Гость







(IMG:style_emoticons/default/sad.gif)
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BoDRoV
сообщение 22.7.2003, 18:54
Сообщение #10


****

Apprentice
Сообщений: 119
Регистрация: 18.1.2003
Группа: Пользователи
Наличность: 0
Пользователь №: 18



-= БРЕД =- :roll:


--------------------
www.relikt.com.ru
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
сообщение 23.7.2003, 13:50
Сообщение #11




Гость







:?: Что именно7 :?:
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NeO
сообщение 30.7.2003, 21:41
Сообщение #12


***

Novice
Сообщений: 81
Регистрация: 15.6.2003
Группа: Пользователи
Наличность: 0
Пользователь №: 607



Хеее!!! Ну да! Очень даже... , а если НПС'у ещё npc=11 прописать...
и ещё 999 силы, 999 ловкости и 999 инты, дать мифрильную бронь и робу ГМ'а ещё... Вооооооще куль будет!!! :twisted: :twisted: :twisted:

P.S. Хотя мозгов как таковых у него НЕТ!!! (IMG:style_emoticons/default/laugh.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DihlofozzZ
сообщение 31.7.2003, 2:10
Сообщение #13


***********

Администратор форума
Сообщений: 5.602
Регистрация: 8.3.2003
Группа: Администраторы
Наличность: 0
Из: Москва Россия
Пользователь №: 237



Слабак а не монстр будет!!!


--------------------
С уважением Администратор Форума.
Контактный Email: dihlofozzz@uokit.com


Topic Closed
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Steel
сообщение 31.7.2003, 10:11
Сообщение #14


*******

Хирург UltimaSoft.Ru
Сообщений: 901
Регистрация: 16.5.2003
Группа: Пользователи
Наличность: 0
Из: Великобритания
Пользователь №: 493



Нефлудить !


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dUha
сообщение 29.5.2005, 16:58
Сообщение #15


*

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



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

Заранее блогодарен
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mjaso
сообщение 12.6.2005, 2:08
Сообщение #16


****

Группа: Пользователи
Наличность: 0
Из: From Last Hope Castle
Пользователь №: 2.733



сильно задвинули (IMG:style_emoticons/default/wink.gif) возьму для своего навенро токо лут, пусть лутит этих жалких игроков (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
GM Monster
сообщение 12.6.2005, 13:52
Сообщение #17


****

Apprentice
Сообщений: 150
Регистрация: 10.6.2004
Группа: Пользователи
Наличность: 0
Из: Москва,СЗАО
Пользователь №: 1.845



Если те лут нужен то вот поприкольнее и причём будет одевтаься в это (IMG:style_emoticons/default/laugh.gif)
Код


///////////add e_looting to npc ! /////////////////





[defname looting_constants]
loot.considerweight    1  
loot.dropyunk  1


[EVENTS e_looting]
on=@hit
if !<src.brain> // loot players only
    //if a char is hit, mark him for looting
    src.events +e_looted
    src.tag.looter=<uid>
endif


[EVENTS e_looted]
on=@death

if ( <distance <tag.looter>> < 3 )
    var.looting.act=<act.uid>
    act=<tag.looter>
    
    
    //if <serv.itemdef.i_gold.weight>==0
    //    f_loot_type t_gold
    //endif

    
    if ( <act.weight>*<def.loot.considerweight> < (<act.weightmax>/2) )

 //f_loot_type t_gold //in case gold does weigh something, get it here
 f_loot_type t_gem
 f_loot_type t_jewelry
 f_loot_type t_rune

 if (<act.can>&mt_equip) //search for equipment, if it's usefull

     f_addloot_layer layer_hand1
     f_addloot_layer layer_hand2
     f_addloot_layer layer_shoes
     f_addloot_layer layer_pants
     f_addloot_layer layer_shirt
     f_addloot_layer layer_helm
     f_addloot_layer layer_gloves
     f_addloot_layer layer_collar
     f_addloot_layer layer_half_apron
     f_addloot_layer layer_chest
     f_addloot_layer layer_tunic
     f_addloot_layer layer_arms
     f_addloot_layer layer_cape
     f_addloot_layer layer_robe
     f_addloot_layer layer_skirt
     f_addloot_layer layer_legs

     // Снимет старый армор - оденет новый
     act.f_redress
     
 endif
    else
 // weight maximum reached
    endif

    act=<var.looting.act>
endif
events -e_looted
tag.looter

[function f_loot_type]
if <act.ischar>
    if <findtype.<args>>
 obj=<findtype.<args>>
 obj.attr = <obj.attr>&~attr_newbie
 act.bounce <obj.uid>
 f_loot_type <args>
 return 1
    endif
endif
return 0

[function f_addloot_layer]
if <findlayer.<args>> //is there an item to loot?
    obj=<findlayer.<args>.uid>
    if !(<obj.attr>&attr_newbie) //Чтобы нуби вещи не лутил
 if <act.findlayer.<args>>
     if ((<eval <act.findlayer.<args>.armor>>*<act.findlayer.<args>.more1l>*100)/<act.findlayer.<args>.more1h>)<((<eval <obj.armor>>*<obj.more1l>*100)/<obj.more1h>)
   
   act.bounce <obj.uid>
     endif
 else
     act.bounce <obj.uid>
 endif
    endif
endif

[function f_drop_yunk]
if <findlayer.layer_pack.findtype.t_armor>
    drop <findlayer.layer_pack.findtype.t_armor.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_armor_leather>
    drop <findlayer.layer_pack.findtype.t_armor_leather.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_sword>
    drop <findlayer.layer_pack.findtype.t_weapon_sword.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_axe>
    drop <findlayer.layer_pack.findtype.t_weapon_axe.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_fence>
    drop <findlayer.layer_pack.findtype.t_weapon_fence.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_mace_staff>
    drop <findlayer.layer_pack.findtype.t_weapon_mace_staff.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_mace_smith>
    drop <findlayer.layer_pack.findtype.t_weapon_mace_smith.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_mace_sharp>
    drop <findlayer.layer_pack.findtype.t_weapon_mace_sharp.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_mace_pick>
    drop <findlayer.layer_pack.findtype.t_weapon_mace_pick.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_bow>
    drop <findlayer.layer_pack.findtype.t_weapon_bow.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_xbow>
    drop <findlayer.layer_pack.findtype.t_weapon_xbow.uid>
    f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_shield>
    drop <findlayer.layer_pack.findtype.t_shield.uid>
    f_drop_yunk
endif

[function f_unequipall]
unequip <findlayer.layer_hand1.uid>
unequip <findlayer.layer_hand2.uid>
unequip <findlayer.layer_shoes.uid>
unequip <findlayer.layer_pants.uid>
unequip <findlayer.layer_shirt.uid>
unequip <findlayer.layer_helm.uid>
unequip <findlayer.layer_gloves.uid>
unequip <findlayer.layer_ring.uid>
unequip <findlayer.layer_collar.uid>
unequip <findlayer.layer_half_apron.uid>
unequip <findlayer.layer_chest.uid>
unequip <findlayer.layer_wrist.uid>
unequip <findlayer.layer_tunic.uid>
unequip <findlayer.layer_ears.uid>
unequip <findlayer.layer_arms.uid>
unequip <findlayer.layer_cape.uid>
unequip <findlayer.layer_robe.uid>
unequip <findlayer.layer_skirt.uid>
unequip <findlayer.layer_legs.uid>


[function f_redress]
f_unequipall
equiparmor
equipweapon
if <var.dropyunk>
    f_drop_yunk //get rid of unused items
endif

[EOF]


Добавленно: [mergetime]1118573559[/mergetime] (RUO)GM Monster

А можно ещё ТОМУ монстру с ТЕМ движком сделать ТУРБО скорость (IMG:style_emoticons/default/laugh.gif)
Код
//////////////////////add e_monster_turbo to npc //////////////////////////




[defname turbo_constants]
turbo.speed=1 //how many steps will NPCs make in one; don't set this too high or NPCs "jump"

[function turbo]
if (!<ischar>)
    message use this on NPCs only
    return 0
endif
if (<isplayer>)
    message use this on NPCs only
    return 0
endif
if (<restest i_monster_turbo>)||(<tag0.turbo>)||(<isevent.e_monster_turbo>)
    message turbo allready active
    return 0
endif
events +e_monster_turbo
message turbo installed!
return 1

[Events e_monster_turbo]
on=@NPCActFollow
call f_monster_turbo
on=@NPCActFight
call f_monster_turbo

[function f_monster_turbo]
if !(<tag0.turbo>) //is it active?
    serv.newitem i_monster_turbo
    tag.turbo=<serv.lastnewitem.uid>
    obj=<tag.turbo>
    obj.timerd 2
    obj.link=<uid>
    obj.p=<p>
endif

on=@death
if (<tag0.turbo>)
    obj=<tag.turbo>
    obj.remove
endif

[itemdef i_monster_turbo]
id=i_memory
type=t_script
name=Monsterturbo

on=@create
attr=attr_invis

on=@timer
if !((<link.action>==Skill_Wrestling)||(<link.action>==Skill_Macefighting)||(<link.action>==Skill_Swordsmanship)||(<link.action>==Skill_Fencing)||(<link.action>==064))
    link.tag.turbo
    remove
    return 1
endif

if (<link.distance <link.act.uid>> > 1)
    for x 1 <def.turbo.speed>
 link.f_run
 link.f_face <link.act.uid>
    endfor
    link.timer //reset chartimer for instant combat action
endif
timerd 2
p=<link.p>
update
return 1


[function f_run]
doswitch <dir>
    run n
    run ne
    run e
    run se
    run s
    run sw
    run w
    run nw
enddo

[function f_face]
if (<uid.<args>.ischar> && <ischar>)
    trysrc <args> face
endif



[EOF]


--------------------
Если Вас забанили , значит на Вас хотят скинуть вину...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mjaso
сообщение 13.6.2005, 2:19
Сообщение #18


****

Группа: Пользователи
Наличность: 0
Из: From Last Hope Castle
Пользователь №: 2.733



что именно за ТУРБО ? Турбо скорость ?(IMG:style_emoticons/default/smile.gif) Нпц на спид хаке так сказать ?(IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
exБивис
сообщение 13.6.2005, 19:45
Сообщение #19


**

Banned
Сообщений: 31
Регистрация: 13.6.2005
Группа: Banned
Наличность: 0
Из: Москва
Пользователь №: 3.825



Это искуственный интелект?
Это просто набор тригеров...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sanches
сообщение 14.6.2005, 1:43
Сообщение #20


**

Neophyte
Сообщений: 39
Регистрация: 23.2.2005
Группа: Пользователи
Наличность: 0
Пользователь №: 3.142



эта набор функций!! )))
а ваще реально весч сырая...


--------------------
Скрипты на заказ (любые, сферы 51-56) - пишите в личку.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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