|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
Скрипты ScriptDev2 |
|
Опции темы | Поиск в этой теме | Опции просмотра |
20.04.2010, 15:04 | #1 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
[dev] Trial of the Crusader
Объявлено бетатестирование полного скрипта TOC. Получить можно
git pull git://github.com/rsa/scriptdev2.git TOC Плюсы - вся storyline, все 4 уровня сложности (ненайденные мной спеллы и неправильные таймеры можно изменить самим без перекомпиляции). По умолчанию - русский язык. Использованы сниффы от GriffonHeart. Минусы - не стал писать оверрайды на некоторые неработающие (не полностью работающие) спеллы. Будем ждать поддержки ядра, поскольку каст заимплеменчен всего что должно быть; - почти обязательное использование ядра от Карателя (либо моего), с чистым часть спеллов боссов и суммоны работают некорректно; - необходимость имплемента моего собственного класса BSW (берет данные о спеллах боссов из sql базы) - включен в бранч; - не найдена часть моделей и визуальных эффектов (заменено на то, что подошло); - найдены не все спеллы 25n и 25h - ну уж очень их много. Вместо них автоматом пользуются 10n и 10h, поменять в базе - 30 секунд (этот пункт неактуален после ядра 9789). Просьба все найденные баги слать мне, пока мне этот скрипт окончательно не надоел. Последний раз редактировалось rsa; 25.04.2010 в 11:16. Причина: Требование GriffonHeart |
20.04.2010, 16:46 | #2 |
Ученый
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
|
|
20.04.2010, 22:36 | #3 | |
Пользователь
Регистрация: 12.03.2010
Адрес: Беларусь
Сообщений: 54
Сказал(а) спасибо: 8
Поблагодарили 24 раз(а) в 17 сообщениях
Записей в дневнике: 1
|
Цитата:
Класс - весьма удобен, тк код уменьшается в разы, однако несколько скомканный получился, разный функционал в 1ом месте - не есть гут. |
|
20.04.2010, 23:13 | #4 | ||
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
Поэтому решил малой кровью. Как минимум вырубить назад этот класс с корнем - дело 30 секунд. А спеллы не пашут многие. 66118 - совсем (есть иконка и аура, эффекта нет), 67322 - совсем, 66129 - работает но от ревы к реве, 66406 - нет линка, 68667 не кладет ауру скорости, 65876/65875 - нет хил-эффекта. В положении "закопанности" боссы теряют victim() и не кастят (в результате чего змеи и ануб кастят слегка по-другому, не как на оффе), Ну еще по мелочам что-то... Цитата:
Зато по размеру уточню - раньше код джараксуса у меня был 120кб, сейчас 14. IMHO стоило приседать... |
||
21.04.2010, 05:22 | #5 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
|
Тестировал ваше испытание могу помочь с вызовом джакартуса. lookupspell Портал вилфреда. Думаю пояснений не надо для чего этот спелл. .Lookupspell Джарак или Jaraxx точно не помню - можно найти цепи в которых он стоит когда только вышел из портала. Визуал кастования вилфреда не помню, ид дома посмотрю. Народ хоть чуточку юзайте lookup spell и фантазию, можно много чего найти нужного и не нужного
|
Пользователь сказал cпасибо: | rsa (21.04.2010) |
21.04.2010, 09:18 | #6 |
Модератор
|
66118
Патчем не могу выложить void Aura::PeriodicDummyTick() Код:
case 55592: // Clean switch(urand(0,2)) { case 0: m_target->CastSpell(m_target, 55731, true); break; case 1: m_target->CastSpell(m_target, 55738, true); break; case 2: m_target->CastSpell(m_target, 55739, true); break; } return; + case 66118: // Leeching Swarm + { + int32 damage = m_modifier.m_amount * m_target->GetHealth() / 100; + if (damage < 250) + damage = 250; + m_target->CastCustomSpell(m_target, 66240, &damage, NULL, NULL, true, NULL, this); + return; + } // Exist more after, need add later default: break; 66129 - это базовая аура, триггерящаяся от 66128. Возможны проблемы из-за не реализованности TARGET_7. 66406, - таргет 94, вообще не представляю что это, в коде даже комментов нету, не то что реализации 68667 - мб потому что это селф каст, т.е только на себя? У меня работает, проверил 65876/65875 - требует запись в spell_script_target, основной хил в % реализован, непонятен только 3 эффект, зачем он Код:
Effect: (136) SPELL_EFFECT_HEAL_PCT Base point = 20 Target A (TARGET_SELF), Target B (No target) Effect: (136) SPELL_EFFECT_HEAL_PCT Base point = 20 Target A (TARGET_SCRIPT), Target B (No target) Effect: (077) SPELL_EFFECT_SCRIPT_EFFECT Base point = 10 Target A (TARGET_SCRIPT), Target B (No target) Последний раз редактировалось MaS0n; 27.04.2010 в 12:40. |
21.04.2010, 10:22 | #7 |
Супер-модератор
|
66406 весит до тех пор пока на игроке не убьют Снобольта, снобольт сидит по средством технологии Vehicles
|
21.04.2010, 10:38 | #8 | ||||
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
Цитата:
Цитата:
UPDATE `scriptdev2`.`boss_spell_table` SET `isBugged` = '1' WHERE `boss_spell_table`.`entry` =34797 AND `boss_spell_table`.`spellID_N10` =68667; Цитата:
Кто бы лучше подсказал модель/эффект для slime_pool. А то игроки ругаются, говорят слизни вместо луж не оффлайк. |
||||
23.04.2010, 05:03 | #9 | |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
|
Цитата:
|
|
23.04.2010, 16:38 | #10 |
Гость
Сообщений: n/a
|
PHP код:
1) Снифить 2) Взять то, что я выкладывал Но так как тексты для стороны Орды у вас НЕ правильные - снифами тут и не пахнет! PHP код:
Последний раз редактировалось GriffonHeart; 23.04.2010 в 16:45. |
23.04.2010, 20:08 | #11 | ||
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
Цитата:
2. У меня своих сниффов нет и не будет. Сейчас народ наприсылал но пользоваться ими мне особо некогда. Английская часть текста - не от вас. 3. Не нравится то что сделал я - сделай сам. 101% оффлайка я нигде и никому не обещал. |
||
Пользователь сказал cпасибо: |
24.04.2010, 04:54 | #12 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
|
|
25.04.2010, 04:16 | #13 | |||
Гость
Сообщений: n/a
|
Цитата:
2. Вот это то и плохо. 3. Уже сделал, кроме ануб-арака. Нравится/не нравится - не могу сказать, так как тестить не буду (равзе что анубика). Но тексты должны быть оффлайк на 100% (если есть возможность) И побойтесь бога (близов), замените на оригинальные тексты со стороны орды - http://paste2.org/p/792336 Диалог после убийства Джараксуса: Для альянса: Цитата:
Цитата:
|
|||
25.04.2010, 10:34 | #14 |
Гость
Сообщений: n/a
|
Некоторые фразы пересекаются друг с другом. То есть ещё говорит один персонаж, в это же время начинает сторонний говорить.
|
25.04.2010, 11:31 | #15 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Тема (мной) закрыта.
Я в этой теме больше не работаю. Желающие обсудить код - просьба обращаться на github.
|
26.04.2010, 04:46 | #16 |
Ученый
Регистрация: 07.03.2010
Сообщений: 131
Сказал(а) спасибо: 9
Поблагодарили 10 раз(а) в 10 сообщениях
|
GriffonHeart, а вы не могли бы выложить ваш вариант скрипта, раз уж вы его сделали?
|
26.04.2010, 10:39 | #17 | |
Новичок
Регистрация: 07.03.2010
Адрес: Украина
Сообщений: 26
Сказал(а) спасибо: 28
Поблагодарили 26 раз(а) в 8 сообщениях
|
Цитата:
Код:
int32 damage = (m_modifier.m_amount * m_target->GetHealth()) /100; |
|
Пользователь сказал cпасибо: | MaS0n (27.04.2010) |
27.04.2010, 12:40 | #18 |
Модератор
|
Да, естественно, забыл добавить
|
27.04.2010, 12:51 | #19 | |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
По-моему должно быть так
Код:
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index d31b27f..cae5bdf 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -8131,6 +8131,17 @@ void Aura::PeriodicDummyTick() case 2: m_target->CastSpell(m_target, 55739, true); break; } return; + case 66118: // Leeching Swarm + case 67630: + case 68646: + case 68647: + { + int32 damage = (m_modifier.m_amount * m_target->GetHealth()) / 100; + if (damage < 250) + damage = 250; + m_target->CastCustomSpell(m_target, 66240, &damage, NULL, NULL, true, NULL, this); + return; + } // Exist more after, need add later default: break; И вроде сюда же нужно привязать спелл http://www.wowhead.com/spell=66125 . Цитата:
Только я незнаю когда он должен вылечивать: на каждом тике или же в конце. В случае если исцеление происходит сразу Код:
case 66118: // Leeching Swarm 10 man case 68646: { int32 damage = (m_modifier.m_amount * m_target->GetHealth()) / 100; if (damage < 250) damage = 250; int32 heal = damage * 68 / 100; m_target->CastCustomSpell(m_target, 66240, &damage, NULL, NULL, true, NULL, this); if (Unit* caster = GetCaster()) m_target->CastCustomSpell(caster, 66125, &heal, NULL, NULL, true, NULL, this); return; } case 67630: // Leeching Swarm 25 man case 68647: { int32 damage = (m_modifier.m_amount * m_target->GetHealth()) / 100; if (damage < 250) damage = 250; int32 heal = damage * 155 / 100; m_target->CastCustomSpell(m_target, 66240, &damage, NULL, NULL, true, NULL, this); if (Unit* caster = GetCaster()) m_target->CastCustomSpell(caster, 66125, &heal, NULL, NULL, true, NULL, this); return; } Последний раз редактировалось Insider42; 28.04.2010 в 09:26. |
|
11.05.2010, 23:51 | #20 |
Супер-модератор
|
По поводу исцеления: Анубарак вылечиваеться на такое количество на которое данный момент выхиливаеться рейд, т.е сколько нахилять хилы стока нахилиться босс
|
12.05.2010, 09:08 | #21 |
Гость
Сообщений: n/a
|
Нет Анубарак забирает процент от здоровья рейда... Чем меньше здоровья у рейда, тем меньше он хилиться... соответственно если хилить рейд на полный столб, то Анубарак хилиться сильнее.. обычно рейд держат на полстолба ХП или чуть меньше, но не больше иначе вайп..
|
Пользователь сказал cпасибо: | YuruY (13.05.2010) |
16.05.2010, 22:46 | #22 |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
Дополнение к патчу в посте №19. Не тестировалось... если не работает, то меняем цифру 1 на 2 и наоборот
Код:
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 6d72d54..5d95945 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -1673,6 +1673,10 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons if (spellId_1 == 40216 && spellId_2 == 42016 ) return false; + // Leeching Swarm and Insect Swarm + if ( spellInfo_1->SpellIconID == 1771 && spellInfo_1->SpellVisual[0] == 0 && spellInfo_2->SpellIconID == 1771 ) + return false; + break; } case SPELLFAMILY_ROGUE: |
17.05.2010, 18:32 | #23 |
Гость
Сообщений: n/a
|
При попытке скомпилить выдаёт такое в конце и длл не создаётся
Как исправить это? или только карательские исходники тянут?...хотя разницы и с карателем не увидел, тоже самое rsa вообще даже исходники мангоса не смог скомпилить там в самом начале больше 500 errorov Код:
Creating library ..\..\..\..\bin\x64_release/MaNGOSScript.lib and object ..\..\..\..\bin\x64_release/MaNGOSScript.exp ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_salramm(void)" (?AddSC_boss_salramm@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_meathook(void)" (?AddSC_boss_meathook@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_malganis(void)" (?AddSC_boss_malganis@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_lord_epoch(void)" (?AddSC_boss_lord_epoch@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_instance_halls_of_reflection(void)" (?AddSC_instance_halls_of_reflection@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_scourgelord_tirannus(void)" (?AddSC_boss_scourgelord_tirannus@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_instance_pit_of_saron(void)" (?AddSC_instance_pit_of_saron@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_instance_forge_of_souls(void)" (?AddSC_instance_forge_of_souls@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_icecrown_teleporter(void)" (?AddSC_icecrown_teleporter@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_icecrown_spire(void)" (?AddSC_icecrown_spire@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_instance_icecrown_spire(void)" (?AddSC_instance_icecrown_spire@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_lavanthor(void)" (?AddSC_boss_lavanthor@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_zuramat(void)" (?AddSC_boss_zuramat@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_ichoron(void)" (?AddSC_boss_ichoron@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_xevozz(void)" (?AddSC_boss_xevozz@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_erekem(void)" (?AddSC_boss_erekem@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_moragg(void)" (?AddSC_boss_moragg@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_cyanigosa(void)" (?AddSC_boss_cyanigosa@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_toravon(void)" (?AddSC_boss_toravon@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_dred(void)" (?AddSC_boss_dred@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_instance_trial_of_the_crusader(void)" (?AddSC_instance_trial_of_the_crusader@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_twin_valkyr(void)" (?AddSC_twin_valkyr@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_faction_champions(void)" (?AddSC_boss_faction_champions@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_boss_jaraxxus(void)" (?AddSC_boss_jaraxxus@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ScriptLoader.obj : error LNK2019: unresolved external symbol "void __cdecl AddSC_northrend_beasts(void)" (?AddSC_northrend_beasts@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ) ..\..\..\..\bin\x64_release/MaNGOSScript.dll : fatal error LNK1120: 25 unresolved externals так же были ошибки в скриптах 2 боссов не смертельные но компилить не позволяло: 1)Выдавало ошибку Код:
..\scripts\northrend\icecrown_citadel\icecrown_citadel\boss_the_lich_king.cpp(204) : error C4716: 'GossipSelect_boss_tirion_icc' : must return a value Код:
bool GossipSelect_boss_tirion_icc(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction) { if (uiAction == GOSSIP_ACTION_INFO_DEF) { pPlayer->CLOSE_GOSSIP_MENU(); } }; Код:
bool GossipSelect_boss_tirion_icc(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction) { if (uiAction == GOSSIP_ACTION_INFO_DEF) { pPlayer->CLOSE_GOSSIP_MENU(); return true; } return false; }; 2)Выдавало ошибку: Код:
..\scripts\northrend\ulduar\halls_of_lightning\boss_loken.cpp(147) : error C3861: 'round': identifier not found Код:
void UpdateAI(const uint32 uiDiff) { //Return since we have no target if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; **************полностью не буду показывать большой, если надо сами посмотрите********* (147 строка) dmg = round((m_bIsRegularMode ? 200 : 250) * m_fDist) + (m_bIsRegularMode ? 800 : 850); // need to correct damage m_creature->CastCustomSpell(i->getSource(), (m_bIsRegularMode ? 52942 : 59837), &dmg, 0, 0, false); } Код:
double round(double value) { return floor(value + 0.5); } Код:
double round(double value) { return floor(value + 0.5); } void UpdateAI(const uint32 uiDiff) { //Return since we have no target if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; **************полностью не буду показывать большой, если надо сами посмотрите********* (147 строка) dmg = round((m_bIsRegularMode ? 200 : 250) * m_fDist) + (m_bIsRegularMode ? 800 : 850); // need to correct damage m_creature->CastCustomSpell(i->getSource(), (m_bIsRegularMode ? 52942 : 59837), &dmg, 0, 0, false); } Последний раз редактировалось Murderer; 17.05.2010 в 20:15. |
Пользователь сказал cпасибо: |
18.05.2010, 02:16 | #24 |
Пользователь
Регистрация: 11.03.2010
Адрес: Спб
Сообщений: 35
Сказал(а) спасибо: 5
Поблагодарили 10 раз(а) в 8 сообщениях
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[spell=27158] Seal of the crusader | FenixSlap | MaNGOS 0.12 (2.4.3) | 0 | 28.11.2010 21:39 |
[9787][fix bug] Seal of the crusader | Chipleo | Принятые патчи | 1 | 24.04.2010 09:13 |