Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   MaNGOSZero (1.12.X) (http://mangos.ytdb.ru/forumdisplay.php?f=48)
-   -   ВзрывоОвца) (http://mangos.ytdb.ru/showthread.php?t=3961)

BloodWarrior 23.03.2011 16:48

ВзрывоОвца)
 
Наблюдал как в свое время на 3.3.5 когда игрался ради фана у когот там на шарде.

Так и у себя когда сейчас собираю посмотреть мир, потестить ммапы.

Взрывоовца должна при контакте с противником подрываться на 135-165 дамаги, ну или в течении 3х минут исчезнуть.

У нас имеется следующая ситуация, овца 33 лвл, никуда не торопится взрываться а тупо лупит мобов, игрок при этом получает экспу.
Овца выносит порядка 40-60 на хит, что скажем на собранном твинке на 10 лвле очень таки неплохо для прокачки.

Ну и соответственно если играться твинком на бг в том же 19 брекете скажем, то овца 33 лвл доставит еще в довесок проблем противникам.

Mayss 26.03.2011 15:17

Нужен скрипт на нпц(овца) что при контакте с противником у неё срабатывает спел взрыва.

BloodWarrior 27.03.2011 14:43

Попробовал реализовать через EAI но тут столкнулся с такой вот ситуацией.

Дело в том, что итем 4384 Explosive Sheep - при использовании кастует спелл 4074 и появляется да - овца.

Но не та, что в базе под ид 2675, на которую я пробовал написать скрипт.

Дело в том, что еще сегодня по утру, залез в бд, желая сделать это дело и подправил овечку, она по умолчанию в бд была прописана 30 уровня с 1.5к хп примерно, но не суть важно, опустил ее до 14 лвла с 315 хп. привязал к EAI скрипту написанному, сейчас вот зашел затестить как получилось, добавил итем, использовал его, и появилось ни что иное, как овца.

Но у овцы 33 лвл, уйма хп, и это явно не то, что прописано в базе.

ПС:
Нужна помощь!

ПСПС:

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

Пытался сделать каст через расстояние до цели, не срабатывает, может косячу где. О_о

insert into `creature_ai_scripts` values('5000001','2675','9','0','100','0','1','5', '0','0',
'11','4050','0','2','0','0','0','0','0','0','0','0 ','explosive sheep');

Если делаю по аггро то овца сразу подрывается и все удачно, в особенности если близко к цели стою. Но пробовал именно по дистанции до цели и никак.

пспспс
Утро вечера мудренее, буду разбираца в новом дне)

Unid 27.03.2011 22:02

А если использовать

Проставить макс расстояние пару ярдов ( или сколько там ближний бой...) и должно сработать о.о

BloodWarrior 28.03.2011 04:16

2 Unid
Изменение параметров мин-макс дистанции вообще никак не влияло.

Вчера ушел по ночи дрыхнуть уже а не мучать мозг, работа и все такое.
Но последняя идея в том, что овца таки не берет моба в таргет, она просто видит его, добегает до него и встает как вкопанная, без там таргета или атак.

В общем я не знаю пока как конкретно и в чем дело, но по этому параметру, по 9ке влияния 0

Ну по крайней мере у меня понимание еаи скрипта такое - что если моб попадает в зону от 5 до 1 ярда пока к нему бежит овца то овца хлопает, данные значения были взяты от фанаря, просто первоначально там вообще мелкие были у меня, но в итоге при попадании в эту зону не происходит у овцы каст 4050 на себя.

-----

Попытался разбить пофазно

По условию
0
при аггро цели, начинать автоатаку и переводить в фазу 1

1
проверка расстояния до цели, при 0-2 каст 40-50 на себя мгновенно.

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


Кроме того добавил условие еще одно.
По таймеру вне боя.
Минимальное время поставил 1800000
Максимальное время 1800000
на повторы - 0
каст заклинания 4050 на себя

- не сработало по истечению времени.


-----

Так видимо подрыв идет не по игнору аггро в первом случае.
Заспавнил НПС - овцу под ид 2675.
Она появилась с теми параметрами что и в базе 14 лвл итд.
Но агрессивная для игрока, и именно игрок является обьектом для ее атаки.


Возможно таким макаром организовано следование за игроком, - данные берутся из базы но насильно устанавливается флаг для того чтобы при постоянном таргете игрока и по сути аггро на нем овца не била а таким образом следовала за ним, и кидалать на всех встречных-поперечных.

Но беда в том, что скрипт на подрыв срабатывает именно из за расстояния до игрока а не до цели к которой ломится.

Важно - в первоначальном варианте - без использования еаи овца кидается на любого нпс являющегося противником игроку и бьет его автоатакой, после смерти непися вновь держит путь до игрока или бежит к следующей цели.

Но после использования скрипта в условии - овца добегает до первого агрессивного противника и встает как вкопанная, ее не трогают, она не трогает..

Так-же перестает следовать за игроком, начинает следовать за мобом к которому добежала, и остается на месте, если его убить.

и еще вешается кд неспадающий на все взрывчатки после вызова овцы. О_о

Unid 28.03.2011 08:58

На вовхеде вообще есть комменты о том, что на БГ овца сама вдруг начинала бежать и врезалась в рогу в стелсе.

А ты все-таки пошамань с тем условием...других то там нет.
И еще, может я конечно считать не умею, но 1800000 это 1800 секунд.
И еще, я надеюсь, что при добавлении новой строки в eai_scripts ты ребутишь серв...

Sid 28.03.2011 09:12

Господи, скрипт простейший, ща напишу попробую.

BloodWarrior 28.03.2011 09:12

1 секунда = 1000 миллисекунд.
60 сек - 60000 милисеккунд.
овца существует 3 минуты - 180 сек - 180000, я конечно пролетел в описании выше, когда из таблицы брал значения на целый ноль) но все равно даже с таким значением не срабатывало, хотя может у меня тут гоны какие-то с другими условиями или в базе что не так пошло) Но таки)

С обратным отсчетом сам пролетел.
Указал в таблице не то значение) 2ку, - отсчет по времени в бою, поправил и без поя спустя 3 минуты овца лопнула.

Нашел где сам закосячил свою овцу, пока красноглазил вчера с этим непонятным ее лвлом и копанием в кричер темплейт сделал жуть)
Вернул, овца следует и правильно агрится на нужные цели, тока опять милилупит)

Sid 28.03.2011 11:44

Цитата:

Сообщение от Unid (Сообщение 20453)
И еще, я надеюсь, что при добавлении новой строки в eai_scripts ты ребутишь серв...

.re creature_ai_scripts

Кэп злой.

BloodWarrior 28.03.2011 11:56

В любом случае..

(5000000,2675,1,0,100,0,180000,180000,0,0,11,4050, 0,0,0,0,0,0,0,0,0,0,'ovca'); - корректно срабатывает, спустя три минуты - овца бух.


(5000001,2675,4,0,100,0,0,0,0,0,20,0,0,0,23,1,0,0, 0,0,0,0,'ovca'),(5000002,2675,9,1,100,0,0,2,0,0,11 ,4050,0,0,0,0,0,0,0,0,0,0,'ovca'); - некорректно срабатывает, несется на моба и подрывается от пересчета радиуса игрока


Если только так:
(5000002,2675,9,0,100,0,0,2,0,0,11,4050,0,0,0,0,0, 0,0,0,0,0,'ovca'); - то подрыв овцы вообще не срабатывает.


Да и кд так и повисает к черту на всей взрывчатке.
Думалось мне что повисает пока работает скрипт на овечку и возможно надо задавать еще фазу на проверку - если призванный кричер мертв то деспавн его, или даже хз что пока, не смотрел дальше, работы море не потестить не посмотреть.

virusav 28.03.2011 12:13

Цитата:

Сообщение от Sid (Сообщение 20459)
.re creature_ai_scripts

К сожалению, команда .reload creature_ai_scripts работает не всегда, так что самый надежный способ - это рестарт сервера.

Unid 28.03.2011 17:08

Цитата:

Сообщение от Sid (Сообщение 20459)
.re creature_ai_scripts

Кэп злой.

Кэп тут явно не при чем. :mda:

BloodWarrior 28.03.2011 18:24

насколько я понимаю тип события 04 и все его внутренние условия начинают работать при аггро цели выбранного непися?

Но тогда возникает вопрос почему он не срабатывает с овцой, даже когда она бьет.

------

Попытался сделать через чтение заклинания
INSERT INTO `creature_ai_scripts` VALUES ('5000001', '2675', '8', '0', '100', '0', '6603', '-1', '0', '0', '11', '4050', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'explosive sheep');

Но вот жеж беда, автоатака активируется на любом расстоянии, когда цель взята в таргет, овца сразу бухает(

-------

Можно было бы сделать подобие если бы в типах события было событие срабатывающее при получении урона или нанесении урона, но такого события просто нет(

ПСПС

Баг с неспадающим кд на всю взрывчатку при использовании ЕАИ сохраняется даже после деспавна тушки мертвой овцы.
КД просто повисает намертво в точке отсчета.

BloodWarrior 29.03.2011 14:58

По поводу типа события 8 вопрос.
По идее он должен срабатывать ведь при уроне спеллом а не при активации оного?

virusav 29.03.2011 16:21

Из документации по АИ, которая есть в исходниках ядра:
Код:

---------------------
8 = EVENT_T_SPELLHIT:
---------------------
Parameter 1: SpellID - The Spell ID that will trigger the event to occur (NOTE: If you use Spell School as the trigger set this value to 0)
Parameter 2: School - Spell School to trigger the event (NOTE: If you use a SpellID then set this value to -1) - *See Below for Spell School Bitmask Values*
Parameter 3: RepeatMin - Minimum Time used to calculate Random Repeat Expire
Parameter 4: RepeatMax - Maximum Time used to calculate Random Repeat Expire

BOTH - Expires upon Spell hit. If (param1) is set will only expire on that spell OR If (param2) is set it will only expire on spells of that school. Will repeat every (Param3) and (Param4).
This Event is commonly used for NPC's who can do special things when you cast a spell (Or specific spell) on them.

(Name ==> School ==> School Bitmask Values)
-------------------------------------------
SPELL_SCHOOL_NORMAL = 0 ==> 1
SPELL_SCHOOL_HOLY  = 1 ==> 2
SPELL_SCHOOL_FIRE  = 2 ==> 4
SPELL_SCHOOL_NATURE = 3 ==> 8
SPELL_SCHOOL_FROST  = 4 ==> 16
SPELL_SCHOOL_SHADOW = 5 ==> 32
SPELL_SCHOOL_ARCANE = 6 ==> 64
Use These Bitmask Values For Schoolmask (Param2) or Any Combinations Of These Schoolmasks for Multiple Schools.

Не обязательно нанесение урона спеллом.

Если кастуемый спелл имеет в качестве цели скриптуемого нпц, то действие произойдет.

BloodWarrior 29.03.2011 16:59

В общем фиг с носиком, через ЕАИ как не корячусь постоянно ложные срабатывания и повисающий кд.

Если мои мысли верны то данного кричера можно заставить то что нужно делать только патчем в ядро.

Если комрады со мной согласны, и молча своим авторитетным словом подтвердят что еаи тут копать бесполезно то прошу направить в каком .ccp в сурсах мне искать что мне нужно.
Буду учиться как править изнутри.

Если я не прав, то прошу направить мысли в нужное русло по реализации ЕАИ, делать за меня все не прошу, появился просто спортивный интерес сделать самому)

rsa 29.03.2011 18:03

Я скрипт на овцу полгода как нарисовал, работает. Еще там кролик такого же типа и что-то еще. Но с КД проблема - очень сильно надо текущие структуры корежить :( Так и бросил...

virusav 29.03.2011 18:34

Скрипт на СД2, возможно, в /src/bindings/scriptdev2/scripts/world/npcs_special.cpp


Текущее время: 08:57. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS