|
Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь |
|
Опции темы | Поиск в этой теме | Опции просмотра |
19.07.2014, 17:48 | #1 |
Гость
Сообщений: n/a
|
Вопрос-ответ(Нужная тема)
Добрый день уважаемые. Хотелось бы узнать у Вас о парочке важных для меня вещей. Описываю чтоб меня поняли правильно: Скриптую (а точнее пробую) Тюрьму Штормграда(Не смейтесь сильно)) я новичок, начинать с чего то надо...) В общем много чего заскриптовал удачно, но столкнулся с парочкой проблем:
1 босс. Рэндольф Молох: -Можно ли через: Код:
void ReceiveEmote -Когда он использует http://ru.wowhead.com/spell=55964 на оффе происходит визуальный эффект на подобие маленького вихря, но у меня он просто исчезает и все... (добавлял способность себе: эффект вихря присутствует, у моба по прежнему нету( -При использовании того же самого спелла http://ru.wowhead.com/spell=55964, босс после первого исчезновения(75% хп) появляется со 100% и снова произносит фразу аггро и нападает, при втором ванише(35%) он появляеться с 75% хп и опять кидает фразу аггро, и только после этого его можно добить оканчательно... в общем кидаю код. Буду очень благодарен за любую помощь! Код:
//Created by BeingHuman (Felzewell) /* ScriptData SDName: Boss_Randolph SD%Complete: 70% SDComment: Исправить скилл Vanish решить проблему с его эффектом, добавить как нибудь поклон в начале... SDCategory: Stockade EndScriptData */ #include "precompiled.h" #include "stockade.h" enum { SAY_AGGRO = -1800000, SAY_DEATH = -1800001, SAY_VANISH = -1800002, SPELL_WILDLY_STABBING = 86726, SPELL_SWEEP = 86729, SPELL_VANISH = 55964, }; struct MANGOS_DLL_DECL boss_randolphAI : public ScriptedAI { boss_randolphAI(Creature* pCreature) : ScriptedAI(pCreature) { m_pInstance = (instance_stockade*)pCreature->GetInstanceData(); Reset(); } instance_stockade* m_pInstance; uint32 m_uiWildlyStabbingTimer; uint32 m_uiSweepTimer; uint32 m_uiVanishTimer; bool m_bFirstVanish; bool m_bSecondVanish; void Reset() override { m_uiWildlyStabbingTimer = 3000; m_uiSweepTimer = 6000; m_uiVanishTimer = 0; m_bFirstVanish = false; m_bSecondVanish = false; } void Aggro(Unit* /*pWho*/) override { DoScriptText(SAY_AGGRO, m_creature); if (m_pInstance) m_pInstance->SetData(TYPE_RANDOLPH, IN_PROGRESS); } void JustDied(Unit* /*pKiller*/) override { DoScriptText(SAY_DEATH, m_creature); if (m_pInstance) m_pInstance->SetData(TYPE_RANDOLPH, DONE); } void JustReachedHome() override { if (m_pInstance) m_pInstance->SetData(TYPE_RANDOLPH, FAIL); } void AttackedBy(Unit* pAttacker) override { if (m_creature->getVictim()) return; AttackStart(pAttacker); } void AttackStart(Unit* pWho) override { if (m_creature->Attack(pWho, true)) { m_creature->AddThreat(pWho); m_creature->SetInCombatWith(pWho); pWho->SetInCombatWith(m_creature); m_creature->GetMotionMaster()->MoveChase(pWho); } } void MovementInform(uint32 uiMotionType, uint32 /*uiPointId*/) override { if (uiMotionType != POINT_MOTION_TYPE) return; m_creature->SetSheath(SHEATH_STATE_UNARMED); m_creature->SetStandState(UNIT_STAND_STATE_KNEEL); } void UpdateAI(const uint32 uiDiff) override { if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; //Wildly Stabbing if (m_uiWildlyStabbingTimer < uiDiff) { if (DoCastSpellIfCan(m_creature, SPELL_WILDLY_STABBING) == CAST_OK) m_uiWildlyStabbingTimer = urand(20000, 25000); } else m_uiWildlyStabbingTimer -= uiDiff; //Sweep if (m_uiSweepTimer < uiDiff) { if (DoCastSpellIfCan(m_creature, SPELL_SWEEP) == CAST_OK) m_uiSweepTimer = urand(10000, 12000); } else m_uiSweepTimer -= uiDiff; //Vanish if (!m_bFirstVanish && m_creature->GetHealthPercent() <= 65.0f) { if (DoCastSpellIfCan(m_creature, SPELL_VANISH) == CAST_OK) { DoScriptText(SAY_VANISH, m_creature); m_bFirstVanish = true; m_uiVanishTimer = 5000; } } else m_uiVanishTimer -= uiDiff; if (!m_bSecondVanish && m_bFirstVanish && m_creature->GetHealthPercent() <= 35.0f) { if (DoCastSpellIfCan(m_creature, SPELL_VANISH) == CAST_OK) { DoScriptText(SAY_VANISH, m_creature); m_bSecondVanish = true; m_uiVanishTimer = 5000; } } else m_uiVanishTimer -= uiDiff; DoMeleeAttackIfReady(); } }; CreatureAI* GetAI_boss_randolph(Creature* pCreature) { return new boss_randolphAI(pCreature); } void AddSC_boss_randolph() { Script* pNewScript; pNewScript = new Script; pNewScript->Name = "boss_randolph"; pNewScript->GetAI = &GetAI_boss_randolph; pNewScript->RegisterSelf(); } |
21.07.2014, 19:53 | #2 | |
Пользователь
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
|
Цитата:
Код:
void ScriptedAI::EnterEvadeMode() { m_creature->RemoveAllAurasOnEvade(); удаление всех аур при эвейде, исключая CONTROL_VEHICLE and FLY. m_creature->DeleteThreatList(); удаляет весь лист угрозы. m_creature->CombatStop(true); бой останавливается полностью. Вот и ответ. if (m_creature->isAlive()) m_creature->GetMotionMaster()->MoveTargetedHome(); m_creature->SetLootRecipient(NULL); Reset(); } Код:
void EnterEvadeMode() override { // Don't evade during vanish phase if (m_creature->HasAura(SPELL_VANISH) return; ScriptedAI::EnterEvadeMode(); } Брал пример со скрипта Мороуза. override добавлять обязательно. По поводу поклона - есть функция. Код:
void ScriptedAI::EnterCombat(Unit* pEnemy) { if (pEnemy) Aggro(pEnemy); } По поводу движения моба есть 2 пути. Creature_movement_template. Или EscortAI. Также есть db_script_on_creature_movement.
__________________
So foolish. |
|
22.07.2014, 22:46 | #3 |
Гость
Сообщений: n/a
|
Премного благодарен) Надо будет пробовать, надеюсь поможет
|
30.07.2014, 21:58 | #4 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
|
Ну как, помогло?
__________________
So foolish. |
31.07.2014, 13:17 | #5 |
Гость
Сообщений: n/a
|
к сожалению... нет... Моих знаний к сожалению мало но я пытался сделать как вы говорили:
Код:
void EnterEvadeMode() override { // Don't evade during vanish phase if (m_creature->HasAura(SPELL_VANISH)) return; m_creature->CombatStop(false); ScriptedAI::EnterEvadeMode(); } |
02.08.2014, 21:14 | #6 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
|
Эмоции на Катаклизме работают через раз - я на Рагнаросе заметил это. По поводу ваниша - хз у Xfurry вроде работало.
__________________
So foolish. |
01.11.2014, 18:09 | #7 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
|
Код:
m_creature->CombatStop(false); Код:
void AttackStart(Unit* pWho) override { // Don't attack while banished if (m_creature->HasAura(SPELL_LEOTHERAS_BANISH)) return; ScriptedAI::AttackStart(pWho); } HasAura(имеет ауру) -SPELL_LEOTHERAS_BANISH(номера теперь не обозначают, берут из enum) return; - идёт возврат. Тоесть Слепец имеет ауру - атаку не начнёт. Аура исчезла - бой начнёт с помощью Код:
ScriptedAI::AttackStart(pWho);
__________________
So foolish. |
01.11.2014, 21:30 | #8 | |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
Я не эксперт, но и поправлять тут нечего, обычная проверка на ауру.
Цитата:
|
|
02.11.2014, 08:52 | #9 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
|
Код:
void EnterEvadeMode() override { // Don't evade during vanish phase if (m_creature->HasAura(SPELL_VANISH) return; ScriptedAI::EnterEvadeMode(); }
__________________
So foolish. |
08.02.2015, 07:23 | #10 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 93
Сказал(а) спасибо: 4
Поблагодарили 4 раз(а) в 3 сообщениях
|
Прошу прощения Felzewell
Код:
void EnterEvadeMode() override { // Don't evade if the boss has the ember blast invisibility aura if (m_creature->HasAura(SPELL_EMBER_BLAST)) return; ScriptedAI::EnterEvadeMode(); } Вот эта проверка работает(тоже проверка на ауру) - сделайте также и просьба не ставьте CombatStop(false) Если вы конечно ещё этим занимаетесь) P.S: Рагнаросу бы тоже наверное стоит впаять. Код:
void EnterEvadeMode() override { // Don't evade during vanish phase if (m_uiPhase == PHASE_SUBMERGED) return; ScriptedAI::EnterEvadeMode(); }
__________________
So foolish. |
11.06.2015, 01:48 | #11 |
Гость
Сообщений: n/a
|
Добрый день, 5 лет не прикасался к эмулю вова, сейчас решил собрать кату. Собрал всё по гайду (под ubuntu), накатил последнюю базу YTDB, собиралось всё вроде бы гладко, но при запуске сервака сыпится немало ошибок, и в игре большая часть квестов не работает. Больше всего пугает, что у рог вообще не появляются комбо поинты...
Собственно у меня вопрос: так и должно быть и это нынешнее состояние каты, или я что-то упустил при сборке сервака? |
13.06.2015, 00:52 | #12 | |
MaNGOS Dev
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
|
Цитата:
|
|
13.06.2015, 18:29 | #13 |
Гость
Сообщений: n/a
|
Я в курсе что нужно заменить wow.exe на пропатченый, без этого в игре вообще ничего не работает, ни один скил, ни один моб. У меня заменён и после этого уже описанная мною ситуация... Или там что-то ещё пропатченное должно быть?
|
14.06.2015, 01:35 | #14 |
Гость
Сообщений: n/a
|
Хотя поискав так сервера каты везде пишут, что нужно только скачать пропатченный wow.exe.
|
16.06.2015, 00:16 | #15 |
Гость
Сообщений: n/a
|
Так же хочу спросить разработчиков ядра, кто-нибудь может объяснить в чём заключалась идея таблицы npc_trainer_template? Я не совсем понимаю её смысл и отличие от npc_trainer. Сейчас эта таблица не используется (по крайней мере в YTDB базе).
Собственно интересуюсь т.к. появилась идея переписать немного механизм работы этих таблиц для того, что бы корректно работали наставники профессий. |
16.06.2015, 09:35 | #16 |
Администратор
|
Если более одного нпц обучают одним и тем же спеллам, например, за разные расы, то создается один шаблон.
|
26.06.2015, 00:38 | #17 |
Пользователь
Регистрация: 22.06.2013
Сообщений: 71
Сказал(а) спасибо: 22
Поблагодарили 0 раз(а) в 0 сообщениях
|
хз где спросить, но по пробую тут. YTDB будет поддерживать WoD?
|
26.06.2015, 07:43 | #18 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
|
А cMangos?
|
26.06.2015, 19:21 | #19 |
Ученый
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
|
А вы глаза откройте, и посмотрите ядро ли поддерживает, если нет то и бд поддерживать не будут.
__________________
sql-language.ru |
26.06.2015, 23:50 | #20 |
Пользователь
Регистрация: 22.06.2013
Сообщений: 71
Сказал(а) спасибо: 22
Поблагодарили 0 раз(а) в 0 сообщениях
|
|
27.06.2015, 19:40 | #21 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
|
Ну у них же своя база, они самые крутые.)
Про тринку писать и спрашивать тут по крайней мере не логично. Для меня это второстепенно, после того как есть мангос. У меня база и под Панд есть, и что толку, по привычке собираю все сниффы, ядра то нет. ВоД тоже упорно сниффается, до 6.2.0х, почти фулл отсниффано, не собирал еще, пока смысла нет т.к. билды двигаются и много чего меняется. Да и мало кому это нужно, помогают в сборе новинок пару человек всего, тоже видимо по старой привычке.) Все остальные ждут только готовое, даже кешами хер кто помогает.( |
27.06.2015, 21:59 | #22 | |
Пользователь
Регистрация: 22.06.2013
Сообщений: 71
Сказал(а) спасибо: 22
Поблагодарили 0 раз(а) в 0 сообщениях
|
Цитата:
|
|
28.06.2015, 06:05 | #23 | |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
|
Цитата:
Последний раз редактировалось YuruY; 28.06.2015 в 06:56. |
|
28.06.2015, 09:13 | #24 |
Пользователь
Регистрация: 22.06.2013
Сообщений: 71
Сказал(а) спасибо: 22
Поблагодарили 0 раз(а) в 0 сообщениях
|
мешает время , а точнее его отсутствие на "взять сниффер не побегать" )
|
29.06.2015, 14:42 | #25 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
|
А у кого оно есть то.
|
30.06.2015, 13:51 | #26 |
Пользователь
Регистрация: 22.06.2013
Сообщений: 71
Сказал(а) спасибо: 22
Поблагодарили 0 раз(а) в 0 сообщениях
|
Ну так у вас уже есть снифы
|
30.06.2015, 16:42 | #27 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
|
Они много у кого есть, и что?
|
Метки |
вопрос, вопрос-ответ, ответ |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Флуд-тема или помоги ближнему своему | StinK | Флудильня | 17 | 13.02.2013 20:07 |
Вопрос по dbc | Mediv | Новичкам | 17 | 26.07.2011 14:40 |
Вопрос по LOS | BloodWarrior | Новичкам | 4 | 23.04.2011 06:03 |
Вопрос по git | impylse | Новичкам | 2 | 23.09.2010 07:58 |