UoKit.com Форумы > Ultima Online : Dev > Sphere Server > Sphere Server 0.56 - Sphere X
Llirik
Отличаются ли чем-нибудь обычные элементалы от накастованных? Если да то чем? Есть ли у них какой-нибудь MOREZ? А то не могу скрипт написать.

ON=@HitTry
if <FLAGS>==SPELLFLAG_SUMMON // тут нужна проверка на накастованный элементал
say Proverka!
endif

Заранее спасибо!
Вверх
Sirocco
хотя нет, не заслужил ответа.
Вверх
Llirik
Цитата(Sirocco @ 10.9.2014, 16:37)

хотя нет, не заслужил ответа.

Ну ответь пожалуйста!
Вверх
$yst3m_3rr0r
Так, в чем скрипт то заключается ?
Вверх
Llirik
Цитата($yst3m_3rr0r @ 10.9.2014, 19:45)

Так, в чем скрипт то заключается ?

В том, что если накастованный !(<FLAGS>&statf_spawned) элем начинает атаковать игрока <src.isplayer>, то return 1.
Вверх
Jose Cuervo
Кирилл, если не ошибаюсь, ты уже два года на этом форуме вопросы задаешь, при этом степень их сложности вообще не меняется.)

SPELLFLAG_SUMMON не может быть флагом монстра, потому что это флаг заклинания.
Открывай файл sphere_defs.scp и ищи флаги для персонажей (apply to chars):

Код
[defname stat_flags]
// apply to chars
statf_invul        000000001    // invulnerability
statf_dead        000000002
statf_freeze        000000004    // paralyzed. (spell)
statf_invisible        000000008    // invisible (spell).
statf_sleeping        000000010    // you look like a corpse ?
statf_war        000000020    // war mode on ?
statf_reactive        000000040    // have reactive armor on.
statf_poisoned        000000080    // poison level is in the poison object
statf_nightsight    000000100    // all a light to you
statf_reflection    000000200    // magic reflect on.
statf_polymorph        000000400    // we have polymorphed to another form.
statf_incognito        000000800    // dont show skill titles
statf_spiritspeak    000001000    // i can hear ghosts clearly.
statf_insubstantial    000002000    // ghost has not manifest. or gm hidden
statf_emoteaction    000004000    // the creature will emote its actions to it's owners.
statf_commcrystal    000008000    // the char can speak to a comm crystal in his bag
statf_hasshield        000010000    // using a shield
statf_archercanmove    000020000    // can move with archery
statf_stone        000040000    // turned to stone.
statf_fly        000100000    // flying or running ? (anim)
statf_hallucinating    000400000    // eat 'shrooms or bad food.
statf_hidden        000800000    // hidden (non-magical)
statf_indoors        001000000    // we are covered from the rain.
statf_criminal        002000000    // the guards will attack me. (someone has called guards)
statf_conjured        004000000    // this creature is conjured and will expire. (leave no corpse or loot)
statf_pet        008000000    // i am a pet/hirling. check for my owner memory.
statf_spawned        010000000    // i am spawned by a spawn item.
statf_saveparity    020000000    // has this char been saved or not ?
statf_ridden        040000000    // this is the horse. (don't display me) i am being ridden
statf_onhorse        080000000    // mounted on horseback.


А потом действуй по логике: призывные существа не оставляют после гибели трупов, поэтому их проще всего вычислить по флагу statf_conjured

Код
IF <FLAGS>&statf_conjured
...
ENDIF


Почему следует использовать символ "&" вместо "=="? Потому что "==" подразумевает абсолютное равенство, но ведь у твоего "элема" наверняка есть и другие флаги, поэтому такая проверка не сработает, а символ "&" позволяет проверить наличие конкретного флага среди всех имеющихся.
Вверх
Llirik
Цитата(Jose Cuervo @ 11.9.2014, 4:22)

Кирилл, если не ошибаюсь, ты уже два года на этом форуме вопросы задаешь, при этом степень их сложности вообще не меняется.)

SPELLFLAG_SUMMON не может быть флагом монстра, потому что это флаг заклинания.
Открывай файл sphere_defs.scp и ищи флаги для персонажей (apply to chars):

Код
[defname stat_flags]
// apply to chars
statf_invul        000000001    // invulnerability
statf_dead        000000002
statf_freeze        000000004    // paralyzed. (spell)
statf_invisible        000000008    // invisible (spell).
statf_sleeping        000000010    // you look like a corpse ?
statf_war        000000020    // war mode on ?
statf_reactive        000000040    // have reactive armor on.
statf_poisoned        000000080    // poison level is in the poison object
statf_nightsight    000000100    // all a light to you
statf_reflection    000000200    // magic reflect on.
statf_polymorph        000000400    // we have polymorphed to another form.
statf_incognito        000000800    // dont show skill titles
statf_spiritspeak    000001000    // i can hear ghosts clearly.
statf_insubstantial    000002000    // ghost has not manifest. or gm hidden
statf_emoteaction    000004000    // the creature will emote its actions to it's owners.
statf_commcrystal    000008000    // the char can speak to a comm crystal in his bag
statf_hasshield        000010000    // using a shield
statf_archercanmove    000020000    // can move with archery
statf_stone        000040000    // turned to stone.
statf_fly        000100000    // flying or running ? (anim)
statf_hallucinating    000400000    // eat 'shrooms or bad food.
statf_hidden        000800000    // hidden (non-magical)
statf_indoors        001000000    // we are covered from the rain.
statf_criminal        002000000    // the guards will attack me. (someone has called guards)
statf_conjured        004000000    // this creature is conjured and will expire. (leave no corpse or loot)
statf_pet        008000000    // i am a pet/hirling. check for my owner memory.
statf_spawned        010000000    // i am spawned by a spawn item.
statf_saveparity    020000000    // has this char been saved or not ?
statf_ridden        040000000    // this is the horse. (don't display me) i am being ridden
statf_onhorse        080000000    // mounted on horseback.


А потом действуй по логике: призывные существа не оставляют после гибели трупов, поэтому их проще всего вычислить по флагу statf_conjured

Код
IF <FLAGS>&statf_conjured
...
ENDIF


Почему следует использовать символ "&" вместо "=="? Потому что "==" подразумевает абсолютное равенство, но ведь у твоего "элема" наверняка есть и другие флаги, поэтому такая проверка не сработает, а символ "&" позволяет проверить наличие конкретного флага среди всех имеющихся.

Спасибо!
Вверх
kklej
а да и ещё, сусомоненого элема лутануть нельзя. запиши это в блокнотик.
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.