![]() |
|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
Отвергнутые патчи Патчи, отвергнутые от приёма в GIT |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]()
Реализует работу Зеркальных Изображений у магов. Проверял на версии ядра 9225. также на версии клиента 3.3.2 Ревизию ядра не помню.
Патч переводили с тринити, но он не работал (вызывал трех призраков и все), дописал его я. Имеются недочеты: 1. В дуэли иллюзии не аттакуют игрока. - поправлено! (Спасибо Set) 2. Спелл агрит мобов вокруг. - поправлено! (огромное спасибо lucky) 3. Поправлено, Движение иллюзий за магом. (Спасибо Set) 4. Поправлено, после 30 секунд иллюзии исчезают (Спасибо Dimitrius) 5. Теперь копируется имя и гильдия. (Спасибо Set) Последний раз редактировалось MaxXx2021; 24.03.2010 в 05:50. |
![]() |
![]() |
22 пользователя(ей) сказали cпасибо: | DEFALSER (26.09.2010), Den (21.03.2010), Dimitrius (13.03.2010), Free (13.03.2010), GriffonHeart (13.03.2010), Hantet (13.03.2010), Incognito (14.07.2010), Insider42 (15.03.2010), KiriX (21.04.2010), Kwadjo (16.09.2010), Limpnau (17.03.2010), lucky (15.03.2010), Mayss (02.05.2010), Next (13.03.2010), Nordway (23.03.2010), Shadez (20.03.2010), sven (19.03.2010), VENOM (17.03.2010), xstream (15.03.2010), Кот ДаWINчи (12.03.2010), Марк (17.11.2010) |
![]() |
#2 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() Код:
enum { SPELL_FROSTBOLT = 59638, SPELL_FIREBALL = 59637 }; /*###### ## npc_mirror_image ######*/ struct MANGOS_DLL_DECL npc_mirror_imageAI : public ScriptedAI { npc_mirror_imageAI(Creature* pCreature) : ScriptedAI(pCreature) {Reset();} uint32 m_uiFrostboltTimer; uint32 m_uiFireblastTimer; bool inCombat; uint32 LifeTime; void Reset() { LifeTime = 30000; Unit *owner = m_creature->GetOwner(); if (!owner) return; if (owner && !m_creature->hasUnitState(UNIT_STAT_FOLLOW)) { m_creature->GetMotionMaster()->Clear(false); m_creature->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); } // Inherit Master's Threat List (not yet implemented) //owner->CastSpell((Unit*)NULL, 58838, true); // here mirror image casts on summoner spell (not present in client dbc) 49866 // here should be auras (not present in client dbc): 35657, 35658, 35659, 35660 selfcasted by mirror images (stats related?) // Clone Me! m_uiFrostboltTimer = 0; m_uiFireblastTimer = 6100; inCombat = false; } void AttackStart(Unit* pWho) { if (!pWho) return; if (m_creature->Attack(pWho, true)) { m_creature->clearUnitState(UNIT_STAT_FOLLOW); // TMGs call CreatureRelocation which via MoveInLineOfSight can call this function // thus with the following clear the original TMG gets invalidated and crash, doh // hope it doesn't start to leak memory without this :-/ //i_pet->Clear(); m_creature->GetMotionMaster()->MoveChase(pWho); m_creature->getVictim()->AddThreat(m_creature); inCombat = true; } } void EnterEvadeMode() { if (m_creature->IsInEvadeMode() || !m_creature->isAlive()) return; inCombat = false; Unit *owner = m_creature->GetCharmerOrOwner(); m_creature->AttackStop(); m_creature->CombatStop(true); if (owner && !m_creature->hasUnitState(UNIT_STAT_FOLLOW)) { m_creature->GetMotionMaster()->Clear(false); m_creature->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST,PET_FOLLOW_ANGLE); } } void UpdateAI(const uint32 diff) { if (LifeTime < diff) { m_creature->RemoveFromWorld(); } else LifeTime -= diff; if (/*!m_creature->SelectHostileTarget() || */!m_creature->getVictim()) { Unit *owner = m_creature->GetCharmerOrOwner(); if (owner && owner->getVictim()) m_creature->AI()->AttackStart(owner->getVictim()); } if (inCombat && !m_creature->getVictim()) { EnterEvadeMode(); return; } if (/*!m_creature->SelectHostileTarget() || */!m_creature->getVictim()) return; if (m_uiFrostboltTimer <= diff) { DoCast(m_creature->getVictim(),59638); m_uiFrostboltTimer = 3100; }else m_uiFrostboltTimer -= diff; if (m_uiFireblastTimer <= diff) { DoCast(m_creature->getVictim(),59637,true); m_uiFireblastTimer = 6000; }else m_uiFireblastTimer -= diff; DoMeleeAttackIfReady(); } }; CreatureAI* GetAI_npc_mirror_image(Creature* pCreature) { return new npc_mirror_imageAI(pCreature); } Код:
newscript = new Script; newscript->Name = "npc_mirror_image"; newscript->GetAI = &GetAI_npc_mirror_image; newscript->RegisterSelf(); Последний раз редактировалось MaxXx2021; 17.03.2010 в 04:01. |
![]() |
![]() |
![]() |
#3 |
Новичок
Регистрация: 07.03.2010
Сообщений: 12
Сказал(а) спасибо: 8
Поблагодарили 6 раз(а) в 5 сообщениях
![]() |
![]()
Мобы агрятся из-за этого
Код:
+ if (spell->Id == 55342) + { + // Set name of summons to name of caster + m_target->CastSpell((Unit *)NULL, m_spellProto->EffectTriggerSpell[m_effIndex], true); + m_isPeriodic = false; + } Код:
+ m_target->CastSpell((Unit *)NULL, m_spellProto->EffectTriggerSpell[m_effIndex], true); У меня также из-за этого было, что при вызове проекций всем мобам в округе присваивалось имя кастера ![]() Последний раз редактировалось lucky; 12.03.2010 в 07:45. |
![]() |
![]() |
Пользователь сказал cпасибо: | Limpnau (17.03.2010) |
![]() |
#4 | |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Ученый
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
![]() |
![]()
Проблема в том, что у спелла ID - 58836 Initialize Images () - Target B (TARGET_7). Нужно реализовывать его еще, это что-то вроде массового SCRIPT_TARGET.
|
![]() |
![]() |
![]() |
#6 |
Ученый
|
![]()
Создаваемые копии стоят на месте если поблизости нет врагов - это нормально? При появлении врагов работают как и должны (сверил с оффом). Попробую пока из pet.cpp (или player.cpp - точно пока не знаю, предположил) вытащить функцию следования за игроком, если решения пока нет (что маловероятно).
MaNGOS 9435 (не чистое) SD2 R1581 (не чистое) YTDB R535 ACID R303 Added: Добавил в spell_effects.cpp: После summon->SetUInt32Value(UNIT_FIELD_FLAGS_2, 2064); Код:
summon->GetMotionMaster()->MoveFollow(m_caster,PET_FOLLOW_DIST,PET_FOLLOW_ANGLE); P.s. не ругайте пожалуйста за кракозяброкод, использовал функции из Pet.cpp и PetHandler.cpp Бггг, я ненормальный. Всю ночь просидел перед ящиком, пробовал разные варианты. Псих ![]() Последний раз редактировалось Hantet; 14.03.2010 в 06:22. |
![]() |
![]() |
![]() |
#7 |
Новичок
Регистрация: 07.03.2010
Сообщений: 17
Сказал(а) спасибо: 10
Поблагодарили 14 раз(а) в 4 сообщениях
![]() |
![]()
Еще один минус - созданные копии не исчезают по прохождении 30 сек, если они находятся в бою. Следовательно дождавшись кд допустим на арене можно будет призвать еще 3-4 копии. Я думаю это не верно, и поправил это в SD2:
(+ отмечены добавленные строки) Код:
struct MANGOS_DLL_DECL npc_mirror_imageAI : public ScriptedAI { npc_mirror_imageAI(Creature *pCreature) : ScriptedAI(pCreature) { + LifeTime = 30000; Reset(); } +uint32 LifeTime; uint32 m_uiFrostBoltTimer; void Reset() { m_uiFrostBoltTimer = 1000; } void UpdateAI(const uint32 uiDiff) { + if (LifeTime < uiDiff) + { + m_creature->RemoveFromWorld(); + } else LifeTime -= uiDiff; if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; if (m_uiFrostBoltTimer < uiDiff) { if (DoCastSpellIfCan(m_creature->getVictim(), SPELL_FROSTBOLT) == CAST_OK) m_uiFrostBoltTimer = urand(3600, 4000); }else m_uiFrostBoltTimer -= uiDiff; } }; |
![]() |
![]() |
![]() |
#8 |
Ученый
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
![]() |
![]() Код:
/*###### ## npc_mirror_image ######*/ struct MANGOS_DLL_DECL npc_mirror_imageAI : public ScriptedAI { npc_mirror_imageAI(Creature* pCreature) : ScriptedAI(pCreature) {Reset();} uint32 m_uiFrostboltTimer; uint32 m_uiFireblastTimer; bool inCombat; void Reset() { Unit *owner = m_creature->GetOwner(); if (!owner) return; if (owner && !m_creature->hasUnitState(UNIT_STAT_FOLLOW)) { m_creature->GetMotionMaster()->Clear(false); m_creature->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); } // Inherit Master's Threat List (not yet implemented) //owner->CastSpell((Unit*)NULL, 58838, true); // here mirror image casts on summoner spell (not present in client dbc) 49866 // here should be auras (not present in client dbc): 35657, 35658, 35659, 35660 selfcasted by mirror images (stats related?) // Clone Me! m_uiFrostboltTimer = 0; m_uiFireblastTimer = 6100; inCombat = false; } void AttackStart(Unit* pWho) { if (!pWho) return; if (m_creature->Attack(pWho, true)) { m_creature->clearUnitState(UNIT_STAT_FOLLOW); // TMGs call CreatureRelocation which via MoveInLineOfSight can call this function // thus with the following clear the original TMG gets invalidated and crash, doh // hope it doesn't start to leak memory without this :-/ //i_pet->Clear(); m_creature->GetMotionMaster()->MoveChase(pWho); m_creature->getVictim()->AddThreat(m_creature); inCombat = true; } } void EnterEvadeMode() { if (m_creature->IsInEvadeMode() || !m_creature->isAlive()) return; inCombat = false; Unit *owner = m_creature->GetCharmerOrOwner(); m_creature->AttackStop(); m_creature->CombatStop(true); if (owner && !m_creature->hasUnitState(UNIT_STAT_FOLLOW)) { m_creature->GetMotionMaster()->Clear(false); m_creature->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST,PET_FOLLOW_ANGLE); } } void UpdateAI(const uint32 diff) { if (!(m_creature->HasAura(45204))) { Unit *owner = m_creature->GetCharmerOrOwner(); if (!owner) return; m_creature->CastSpell(m_creature, 45204, true, NULL, NULL, owner->GetGUID()); } if (!(m_creature->HasAura(58836))) { Unit *owner = m_creature->GetCharmerOrOwner(); if (!owner) return; m_creature->CastSpell(m_creature, 58836, true, NULL, NULL, owner->GetGUID()); } if (/*!m_creature->SelectHostileTarget() || */!m_creature->getVictim()) { Unit *owner = m_creature->GetCharmerOrOwner(); if (owner && owner->getVictim()) m_creature->AI()->AttackStart(owner->getVictim()); } if (inCombat && !m_creature->getVictim()) { EnterEvadeMode(); return; } if (/*!m_creature->SelectHostileTarget() || */!m_creature->getVictim()) return; if (m_uiFrostboltTimer <= diff) { DoCast(m_creature->getVictim(),59638); m_uiFrostboltTimer = 3100; }else m_uiFrostboltTimer -= diff; if (m_uiFireblastTimer <= diff) { DoCast(m_creature->getVictim(),59637,true); m_uiFireblastTimer = 6000; }else m_uiFireblastTimer -= diff; DoMeleeAttackIfReady(); } }; CreatureAI* GetAI_npc_mirror_image(Creature* pCreature) { return new npc_mirror_imageAI(pCreature); } |
![]() |
![]() |
![]() |
#9 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]()
Set странно, когда я в скрипте на 3.3.0 делал через owner у меня писало indefener is not found.
|
![]() |
![]() |
![]() |
#10 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#11 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#12 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
![]() ![]() ![]() |
![]() Код:
m_creature->GetOwner(); Код:
Unit* GetOwner() const; |
![]() |
![]() |
![]() |
#13 | |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#14 |
Новичок
Регистрация: 07.03.2010
Сообщений: 17
Сказал(а) спасибо: 10
Поблагодарили 14 раз(а) в 4 сообщениях
![]() |
![]()
А зазве у клонов столько же хелов сколько и у владельца?
Помойму нужно в Reset() добавить Код:
m_creature->SetMaxHealth(4000); Последний раз редактировалось Dimitrius; 16.03.2010 в 16:22. |
![]() |
![]() |
![]() |
#15 |
Ученый
Регистрация: 07.03.2010
Сообщений: 131
Сказал(а) спасибо: 9
Поблагодарили 10 раз(а) в 10 сообщениях
![]() |
![]()
Я всегда думал, что у клонов и ХП должно быть столько же.
|
![]() |
![]() |
![]() |
#16 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
![]() ![]() ![]() |
![]()
Нет, у них около 2.6к, насколько я помню.
|
![]() |
![]() |
![]() |
#17 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#18 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
![]() ![]() ![]() |
![]()
http://www.wowhead.com/?spell=69960 (к примеру)
|
![]() |
![]() |
![]() |
#19 | |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#20 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
![]() |
![]() Код:
Effect Apply Aura: Mirror Name Radius: 100 yards ![]() где-то я видел спелы - которые берут оружие и одежду миррор цели, как то их надо под эту ауру подогнать наверно |
![]() |
![]() |
![]() |
#21 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
![]() ![]() ![]() |
![]()
Насколько я помню это клиентом реализуется.
|
![]() |
![]() |
![]() |
#22 |
Новичок
Регистрация: 09.03.2010
Сообщений: 26
Сказал(а) спасибо: 18
Поблагодарили 3 раз(а) в 3 сообщениях
![]() |
![]()
когда игрок умирает воспроизводится клон игрока [Труп игрока]
Есть ли возможность использовать это В mirror image |
![]() |
![]() |
![]() |
#23 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#24 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#25 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
![]() ![]() ![]() |
![]()
Я имею ввиду ауру, на которую я давал ссылку.
|
![]() |
![]() |
![]() |
#26 |
Модератор
|
![]()
Не функции, пакеты CMSG_GET_MIRRORIMAGE_DATA, SMSG_MIRRORIMAGE_DATA
Они отсылаются с аурой и копируют имя, гильду, прическу, лицо, одежду и т.д |
![]() |
![]() |
![]() |
#27 | |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() Цитата:
Код:
+ Player* pCreator = (Player *)m_caster; + data << (uint8)pCreator->getRace(); // race + data << (uint8)pCreator->getGender(); // gender + data << (uint8)pCreator->getClass(); // class + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES, 0); // skin + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES, 1); // face + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES, 2); // hair + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES, 3); // haircolor + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES_2, 0); // facialhair + + data << (uint32)0; // unknown |
|
![]() |
![]() |
![]() |
#28 |
Новичок
Регистрация: 09.03.2010
Сообщений: 26
Сказал(а) спасибо: 18
Поблагодарили 3 раз(а) в 3 сообщениях
![]() |
![]()
это уже работает? или что не хватает?
Последний раз редактировалось VENOM; 21.03.2010 в 11:05. |
![]() |
![]() |
![]() |
#29 |
Ученый
Регистрация: 08.03.2010
Сообщений: 127
Сказал(а) спасибо: 34
Поблагодарили 120 раз(а) в 26 сообщениях
![]() ![]() |
![]()
Ну может быть сюда?
__________________
Наша работа во тьме. Мы делаем, что умеем, мы отдаем, что имеем. Наша работа - во тьме. Сомнения стали страстью, а страсть стала судьбой. Все остальное - искусство в безумии быть собой. |
![]() |
![]() |
![]() |
#30 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#31 |
Ученый
Регистрация: 08.03.2010
Сообщений: 127
Сказал(а) спасибо: 34
Поблагодарили 120 раз(а) в 26 сообщениях
![]() ![]() |
![]() Код:
+ data << pCreator->GetName(); // unknown
__________________
Наша работа во тьме. Мы делаем, что умеем, мы отдаем, что имеем. Наша работа - во тьме. Сомнения стали страстью, а страсть стала судьбой. Все остальное - искусство в безумии быть собой. |
![]() |
![]() |
![]() |
#32 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#35 |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() |
![]() |
![]() |
![]() |
#36 |
Ученый
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
![]() |
![]() Код:
+void WorldSession::HandleMirrrorImageDataRequest( WorldPacket & recv_data ) +{ + sLog.outDebug("WORLD: CMSG_GET_MIRRORIMAGE_DATA"); + uint64 guid; + recv_data >> guid; + + // Get unit for which data is needed by client + Unit *unit = ObjectAccessor::GetObjectInWorld(guid, (Unit*)NULL); + if(!unit) + return; + // Get creator of the unit + Unit *creator = ObjectAccessor::GetObjectInWorld(unit->GetCreatorGUID(),(Unit*)NULL); + if (!creator) + return; + WorldPacket data(SMSG_MIRRORIMAGE_DATA, 68); + data << (uint64)guid; + data << (uint32)creator->GetDisplayId(); + if (creator->GetTypeId() == TYPEID_PLAYER) + { + Player * pCreator = (Player *)creator; + data << (uint8)pCreator->getRace(); + data << (uint8)pCreator->getGender(); + data << (uint8)pCreator->getClass(); + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES, 0); // skin + + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES, 1); // face + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES, 2); // hair + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES, 3); // haircolor + data << (uint8)pCreator->GetByteValue(PLAYER_BYTES_2, 0); // facialhair + + data << (uint32)pCreator->GetGuildId(); // unk + static const EquipmentSlots ItemSlots[] = + { + EQUIPMENT_SLOT_HEAD, + EQUIPMENT_SLOT_SHOULDERS, + EQUIPMENT_SLOT_BODY, + EQUIPMENT_SLOT_CHEST, + EQUIPMENT_SLOT_WAIST, + EQUIPMENT_SLOT_LEGS, + EQUIPMENT_SLOT_FEET, + EQUIPMENT_SLOT_WRISTS, + EQUIPMENT_SLOT_HANDS, + EQUIPMENT_SLOT_BACK, + EQUIPMENT_SLOT_TABARD, + EQUIPMENT_SLOT_END + }; + // Display items in visible slots + for (EquipmentSlots const* itr = &ItemSlots[0]; *itr!=EQUIPMENT_SLOT_END; ++itr) + { + if (*itr == EQUIPMENT_SLOT_HEAD && pCreator->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_HELM)) + data << (uint32)0; + else if (*itr == EQUIPMENT_SLOT_BACK && pCreator->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK)) + data << (uint32)0; + else if (Item const *item = pCreator->GetItemByPos(INVENTORY_SLOT_BAG_0, *itr)) + data << (uint32)item->GetProto()->DisplayInfoID; + else + data << (uint32)0; + } + } + else + { + // Skip player data for creatures + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + data << (uint32)0; + } + SendPacket( &data ); } |
![]() |
![]() |
Пользователь сказал cпасибо: | MaxXx2021 (24.03.2010) |
![]() |
#37 | |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#38 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Россия
Сообщений: 29
Сказал(а) спасибо: 16
Поблагодарили 18 раз(а) в 3 сообщениях
![]() |
![]()
Сегодня собрал с Мангос 9611 (не чистые) и SD2 1647 (не чистый) старую версию, т.е. без пункта 5. Теперь копируется имя и гильдия. (Спасибо Set).
При появлении нпс реагриует только на вражеских мобов, а так же: - не ходят за мной; - не атакуют мою цель. Видел, что об этих багах писали выше, но в первом посте они значатся как "поправленные". Скрины прилагаются. Последний раз редактировалось Nordway; 24.03.2010 в 11:04. |
![]() |
![]() |
![]() |
#39 | |
Ученый
Регистрация: 08.03.2010
Сообщений: 127
Сказал(а) спасибо: 34
Поблагодарили 120 раз(а) в 26 сообщениях
![]() ![]() |
![]()
Ошибка
Цитата:
__________________
Наша работа во тьме. Мы делаем, что умеем, мы отдаем, что имеем. Наша работа - во тьме. Сомнения стали страстью, а страсть стала судьбой. Все остальное - искусство в безумии быть собой. |
|
![]() |
![]() |
![]() |
#40 | |
Ученый
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|