Jump to content

gen1us2k

Members
  • Posts

    20
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

gen1us2k's Achievements

Member

Member (2/3)

0

Reputation

  1. ok. thanks for your answers. I will try make AHBot work today.
  2. so. I need to create a character and set char's data in config file or not? PS. lookup code and maybe I'll understand. sorry for my english
  3. add code from *.rej file... sorry, but I patching sources, and add from rejects with my hands PS maybe later i post the correct patch
  4. for MaNGOS 9565. not tested yet diff --git a/src/game/Map.cpp b/src/game/Map.cpp index befc8e1..2ac75c4 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -926,11 +926,36 @@ Map::CreatureRelocation(Creature *creature, float x, float y, float z, float ang creature->SetNeedNotify(); } } + // hack for eye of acherus part 1 + if(creature->isCharmed()) + { + NGridType* oldGrid = getNGrid(old_cell.GridX(), old_cell.GridY()); + RemoveFromGrid(creature->GetCharmerOrOwnerPlayerOrPlayerItself(), oldGrid, old_cell); + if(!old_cell.DiffGrid(new_cell)) + AddToGrid(creature->GetCharmerOrOwnerPlayerOrPlayerItself(), oldGrid, new_cell); + else + EnsureGridLoadedAtEnter(new_cell, creature->GetCharmerOrOwnerPlayerOrPlayerItself()); + } } else { creature->Relocate(x, y, z, ang); creature->SetNeedNotify(); + // hack for eye of acherus part 2 + if(creature->isCharmed()) + { + UpdatePlayerVisibility(creature->GetCharmerOrOwnerPlayerOrPlayerItself(), new_cell, new_val); + UpdateObjectsVisibilityFor(creature->GetCharmerOrOwnerPlayerOrPlayerItself(), new_cell, new_val); + PlayerRelocationNotify(creature->GetCharmerOrOwnerPlayerOrPlayerItself(), new_cell, new_val); + + bool same_cell = (new_cell == old_cell); + NGridType* newGrid = getNGrid(new_cell.GridX(), new_cell.GridY()); + if( !same_cell && newGrid->GetGridState()!= GRID_STATE_ACTIVE ) + { + ResetGridExpiry(*newGrid, 0.1f); + newGrid->SetGridState(GRID_STATE_ACTIVE); + } + } } assert(CheckGridIntegrity(creature,true)); diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 9ec6a5b..9de6ded 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -1453,6 +1453,10 @@ void WorldObject::MonsterTextEmote(const char* text, uint64 TargetGuid, bool IsB { WorldPacket data(SMSG_MESSAGECHAT, 200); BuildMonsterChat(&data,IsBossEmote ? CHAT_MSG_RAID_BOSS_EMOTE : CHAT_MSG_MONSTER_EMOTE,text,LANG_UNIVERSAL,GetName(),TargetGuid); + Unit * eye = Unit::GetUnit((*this), TargetGuid); + if (eye && eye->isCharmed() && eye->GetEntry() == 28511) + SendMessageToSet(&data, true); + else SendMessageToSetInRange(&data,sWorld.getConfig(IsBossEmote ? CONFIG_FLOAT_LISTEN_RANGE_YELL : CONFIG_FLOAT_LISTEN_RANGE_TEXTEMOTE),true); } diff --git a/src/game/Spell.h b/src/game/Spell.h index a09c7c0..1c9a2e0 100644 --- a/src/game/Spell.h +++ b/src/game/Spell.h @@ -241,6 +241,7 @@ class Spell friend void Unit::SetCurrentCastedSpell( Spell * pSpell ); public: + void EffectSummonPosessed(SpellEffectIndex eff_idx); void EffectEmpty(SpellEffectIndex eff_idx); void EffectNULL(SpellEffectIndex eff_idx); void EffectUnused(SpellEffectIndex eff_idx); diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 9c7d8f8..b303eb1 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -3788,9 +3788,20 @@ void Spell::EffectSummonType(SpellEffectIndex eff_idx) } case SUMMON_PROP_GROUP_CONTROLLABLE: { + switch(prop_id) + { + //SUMMON_TYPE_POSESSED = 65 + //SUMMON_TYPE_POSESSED2 = 428 + case 65: + case 428: + EffectSummonPosessed(eff_idx); + break; + default: DoSummonGuardian(eff_idx, summon_prop->FactionId); + break; + } // no type here // maybe wrong - but thats the handler currently used for those - DoSummonGuardian(eff_idx, summon_prop->FactionId); + // DoSummonGuardian(eff_idx, summon_prop->FactionId); break; } case SUMMON_PROP_GROUP_VEHICLE: @@ -3805,6 +3816,61 @@ void Spell::EffectSummonType(SpellEffectIndex eff_idx) } } +void Spell::EffectSummonPosessed(SpellEffectIndex eff_idx) +{ + uint32 creature_entry = m_spellInfo->EffectMiscValue[eff_idx]; + if (!creature_entry) + return; + + int32 duration = GetSpellDuration(m_spellInfo); + + float px, py, pz; + // If dest location if present + if (m_targets.m_targetMask & TARGET_FLAG_DEST_LOCATION) + { + // Summon 1 unit in dest location + px = m_targets.m_destX; + py = m_targets.m_destY; + pz = m_targets.m_destZ; + } + // Summon if dest location not present near caster + else + m_caster->GetClosePoint(px, py, pz, 1.0f); + + TempSummonType summonType = (duration == 0) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_OR_DEAD_DESPAWN; + Creature *spawnCreature = m_caster->SummonCreature(creature_entry, px, py, pz, m_caster->GetOrientation(), summonType, duration); + + if(!spawnCreature->IsPositionValid()) + { + sLog.outError("Pet (guidlow %d, entry %d) not created base at creature. Suggested coordinates isn't valid (X: %f Y: %f)", + spawnCreature->GetGUIDLow(), spawnCreature->GetEntry(), spawnCreature->GetPositionX(), spawnCreature->GetPositionY()); + delete spawnCreature; + return; + } + + spawnCreature->setFaction(m_caster->getFaction()); + spawnCreature->SetCharmerGUID(m_caster->GetGUID()); + spawnCreature->SetCreatorGUID(m_caster->GetGUID()); + + CharmInfo *charmInfo = spawnCreature->InitCharmInfo(spawnCreature); + charmInfo->InitPossessCreateSpells(); + + if(m_caster->GetTypeId()==TYPEID_PLAYER) + { + ((Player*)m_caster)->SetCharm(spawnCreature); + ((Player*)m_caster)->SetFarSightGUID(spawnCreature->GetGUID()); + ((Player*)m_caster)->SetClientControl(spawnCreature, 1); + ((Player*)m_caster)->SetMover(spawnCreature); + ((Player*)m_caster)->PossessSpellInitialize(); + } + + spawnCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + spawnCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + + spawnCreature->CombatStop(); + spawnCreature->DeleteThreatList(); +} + void Spell::DoSummon(SpellEffectIndex eff_idx) { if (m_caster->GetPetGUID()) @@ -5308,6 +5374,45 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx) { switch(m_spellInfo->Id) { + case 52694: // Recall Eye of Acherus + { + if(!m_caster || m_caster->GetTypeId() != TYPEID_UNIT || !(m_caster->isCharmed())) + return; + + Creature *eye = ((Creature*)m_caster); + if(m_caster->GetCharmer()->GetTypeId() != TYPEID_PLAYER) + return; + + Player *player =((Player*)m_caster->GetCharmer()); + if(eye->isInCombat()) + return; + + eye->GetMap()->CreatureRelocation(eye, 2325.0f, -5660.0f, 427.0f, 3.83f); + eye->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + eye->SetCharmerGUID(0); + + player->InterruptSpell(CURRENT_CHANNELED_SPELL); + player->RemoveAurasDueToSpell(51852); // Remove The Eye of Acherus aura + player->RemoveAurasDueToSpell(51923); + player->RemoveAurasDueToSpell(51890); + player->SetCharm(NULL); + player->SetFarSightGUID(0); + player->SetClientControl(m_caster, 0); + player->SetMover(NULL); + player->RemovePetActionBar(); + + eye->CleanupsBeforeDelete(); + eye->AddObjectToRemoveList(); + return; + } + case 51904: // Summon Ghouls On Scarlet Crusade + { + if(!unitTarget) + return; + + unitTarget->CastSpell(unitTarget, 54522, true); + break; + } case 8856: // Bending Shinbone { if (!itemTarget && m_caster->GetTypeId()!=TYPEID_PLAYER)
  5. git clone git://github.com/jolan/MoveMaps.git
  6. for MaNGOS_rev9471 http://filebeam.com/a6f0688bbf353c28f48c63f346278011
  7. ??? have you changed this file for you? google for 500 internal server error
  8. so .. sorry .. mangos now officially supports 3,2,2 and 3,3,0, or switched to? Have not dealt with mangos and histori-project commits read broke:) Shl thanks for added me:)
  9. U can seat on tanks but its works nemnogo koryavo in Ulduar vehicles operate so. you can ride on them you can shoot but they have not filled with energy
  10. here my vehicle data.... http://pastie.org/740244 Vehicles in Ulduar works normally (pa4ti) be useful
  11. ulduar's vehicle done... look for correctly work ulduar vehicles
  12. So, I understood that basically vehicles in Ulduar are realized ... all vehicles are working normally ... It's only deal with spawn left. PS now I'm picking base of 3x repositories ... repository Kicho, current repository and the base with an alternative kernel ... PPS I don't want to put trinitycore2 because there already almost is done ... It's better to look at code
  13. tnx... really,,, The Argent Tournament is works i take data from http://github.com/kicho/vehicle/raw/master/sql/Vehicle/mangos_vehicle_sql.sql and ulduar'd vehicle works... but.... O see them on;y why I'm in GM mode...
  14. compiled... allied updates from mangos & vehicle.... @ ulduar its dont work... @ wintergrasp too I think that vehicles dont work on me petbat ok.... I'll see ur sql file.,,, vehicles dont work.,,, maybe i not correct pacthed my database? O_o
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use