コード例 #1
0
        void GossipSelectOption(Object* pObject, Player* plr, uint32 Id, uint32 IntId, const char* Code)
        {
            GossipMenu* Menu;
            if(!pObject->IsCreature())
                return;
            Creature* pCreature = TO_CREATURE(pObject);

            switch(IntId)

            {
                case 1:
                    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 60036, plr);            // What can I purchase?
                    Menu->SendTo(plr);
                    break;

                case 2:
                    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 60037, plr);            // What are Darkmoon Faire Prize Tickets and how do I get them?
                    Menu->SendTo(plr);
                    break;

                case 3:
                    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 60038, plr);            // What are Darkmoon Cards?
                    Menu->AddItem(0, "<more>", 10);
                    Menu->SendTo(plr);
                    break;

                case 4:
                    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 60040, plr);            // What other things can I do at the faire?
                    Menu->AddItem(0, "What are these Tonk Control Consoles?", 20);
                    Menu->AddItem(0, "Tell me about the cannon.", 21);
                    Menu->SendTo(plr);
                    break;

                case 10:
                    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 60039, plr);            // What are Darkmoon Cards? <more>
                    Menu->SendTo(plr);
                    break;

                case 20:
                    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 60041, plr);            // What are these Tonk Control Consoles?
                    Menu->SendTo(plr);
                    break;

                case 21:
                    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 60042, plr);            // Tell me about the cannon.
                    Menu->SendTo(plr);
                    break;
            }
        }
コード例 #2
0
/* This function handles the packet from the client which is
sent when we click on an npc with the flag UNIT_FLAG_SPELLCLICK
and checks if there is room for us then adds us as a passenger
to that vehicle*/
void WorldSession::HandleSpellClick( WorldPacket & recv_data )
{
	if (GetPlayer() == NULL || GetPlayer()->m_CurrentVehicle)
		return;

	CHECK_PACKET_SIZE(recv_data, 8);

	uint64 guid;
	recv_data >> guid;

	Vehicle* pVehicle = NULL;
	Unit* unit = GetPlayer()->GetMapMgr()->GetUnit(guid);
	Unit* pPlayer = TO_UNIT(GetPlayer());

	if(!unit)
		return;

	if(!unit->IsVehicle())
	{
		if(unit->IsCreature())
		{
			Creature* ctr = TO_CREATURE(unit);
			if(ctr->GetProto()->SpellClickid)
				ctr->CastSpell(pPlayer, ctr->GetProto()->SpellClickid, true);
			else
				OUT_DEBUG("[SPELL][CLICK]: Unknown spell click spell on creature %u", ctr->GetEntry());
		}
		return;
	}
	else
	{
		pVehicle = TO_VEHICLE(unit);
	}

	if(!pVehicle->GetMaxPassengerCount())
		return;

	if(!pVehicle->GetMaxSeat())
		return;

	// just in case.
	if( sEventMgr.HasEvent( pVehicle, EVENT_VEHICLE_SAFE_DELETE ) )
		return;

	if(pVehicle->HasPassenger(pPlayer))
		pVehicle->RemovePassenger(pPlayer);

	pVehicle->AddPassenger(pPlayer);
}
コード例 #3
0
    void GossipSelectOption(Object* pObject, Player* plr, uint32 Id, uint32 IntId, const char * Code)
    {
		Creature* pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?(TO_CREATURE(pObject)):NULL;
		if(pCreature==NULL)
			return;

        switch(IntId)
        {
        case 1:
			{
				TaxiPath * path = sTaxiMgr.GetTaxiPath( 316 ); // Flight Path
				plr->TaxiStart( path, 295, 0 ); // Wyvern
            }break;
		}
    }
コード例 #4
0
    void GossipSelectOption(ObjectPointer pObject, PlayerPointer plr, uint32 Id, uint32 IntId, const char * Code)
    {
		CreaturePointer pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?(TO_CREATURE(pObject)):NULLCREATURE;
		if(pObject->GetTypeId()!=TYPEID_UNIT)
			return;
		
		switch(IntId)
        {
        case 1:
			{
				plr->Gossip_Complete();
				pCreature->CastSpell(plr, dbcSpell.LookupEntry(42711), true);
            }break;
		}
    }
コード例 #5
0
ファイル: SpellTarget.cpp プロジェクト: Bootz/arcticdev
/// Spell Target Handling for type 18: All Party Members around the Caster in given range NOT RAID
void Spell::SpellTargetAllPartyMembersRangeNR(uint32 i, uint32 j)
{
	Player* p = p_caster;

	if( p == NULL )
	{
		if( TO_CREATURE( u_caster)->IsTotem() )
			p = TO_PLAYER( TO_CREATURE(u_caster)->GetSummonOwner());
		else if( u_caster->IsPet() && TO_PET( u_caster )->GetPetOwner() )
			p = TO_PET( u_caster )->GetPetOwner();
	}

	if( p == NULL )
		return;

	float r = GetDBCCastTime(i);

	r *= r;
	if( IsInrange( m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), p, r ) )
		_AddTargetForced(p->GetGUID(), i);

	SubGroup* subgroup = p->GetGroup() ? p->GetGroup()->GetSubGroup( p->GetSubGroup() ) : 0;

	if( subgroup != NULL )
	{
		p->GetGroup()->Lock();
		for(GroupMembersSet::iterator itr = subgroup->GetGroupMembersBegin(); itr != subgroup->GetGroupMembersEnd(); itr++)
		{
			if(!(*itr)->m_loggedInPlayer || m_caster == (*itr)->m_loggedInPlayer)
				continue;
			if(IsInrange(m_caster->GetPositionX(),m_caster->GetPositionY(),m_caster->GetPositionZ(),(*itr)->m_loggedInPlayer,r))
				_AddTargetForced( (*itr)->m_loggedInPlayer->GetGUID(), i );
		}
		p->GetGroup()->Unlock();
	}
}
コード例 #6
0
	void OnDamageTaken(UnitPointer mAttacker, float fAmount)
	{
		if( _unit->GetHealthPct() < 3 )
		{//freeze, some kinda of animation here maybe?
			_unit->Root();
			_unit->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2);
			for( uint8 i=0; i<7; i++ )
				_unit->SchoolImmunityList[i] = 1;
			_unit->GetAIInterface()->disable_combat = true;
			RemoveAIUpdateEvent();
			UnitPointer Volkhan = _unit->GetMapMgr()->GetUnit( _unit->GetUInt64Value( UNIT_FIELD_SUMMONEDBY ) );
			if( Volkhan )
				TO_CREATURE( Volkhan )->GetScript()->OnReachWP( 1337, true );
		}
	}
コード例 #7
0
		void GossipSelectOption(Object* pObject, Player* plr, uint32 Id, uint32 IntId, const char* Code)
		{
			GossipMenu* Menu;
			if(!pObject->IsCreature())
				return;
			Creature* pCreature = TO_CREATURE(pObject);

			switch(IntId)
			{
				case 1:
					objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 60014, plr);			// Silas, why is most everything at the fair free? How do you make a profit?
					Menu->SendTo(plr);
					break;
			}
		}
コード例 #8
0
        void GossipHello(Object* pObject, Player* plr)
        {
            if(!plr)
                return;

            GossipMenu* Menu;
            Creature* highchief = TO_CREATURE(pObject);
            if(highchief == NULL)
                return;

            objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
            if(plr->HasQuest(9663))
                Menu->AddItem(ICON_CHAT, plr->GetSession()->LocalizedGossipOption(454), 1);     // Warn him

            Menu->SendTo(plr);
        }
コード例 #9
0
		void GossipHello(Object* pObject, Player* plr)
		{
			if(!plr)
				return;

			GossipMenu* Menu;
			Creature* general = TO_CREATURE(pObject);
			if(general == NULL)
				return;

			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
			if(plr->GetQuestLogForEntry(2702) || plr->HasFinishedQuest(2702))
				Menu->AddItem(0, "I need to speak with Corporal.", 1);

			Menu->SendTo(plr);
		}
コード例 #10
0
        void GossipHello(Object* pObject, Player* plr)
        {
            if(!plr)
                return;

            GossipMenu* Menu;
            Creature* doctor = TO_CREATURE(pObject);
            if(doctor == NULL)
                return;

            objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
            if(plr->HasQuest(10201) && plr->GetItemInterface()->GetItemCount(28500, 0))
                Menu->AddItem(ICON_CHAT, plr->GetSession()->LocalizedGossipOption(497), 1);     // Try this

            Menu->SendTo(plr);
        }
コード例 #11
0
		void GossipHello(Object* pObject, Player* plr)
		{
			if(!plr)
				return;

			GossipMenu* Menu;
			Creature* windwatcher = TO_CREATURE(pObject);
			if(windwatcher == NULL)
				return;

			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
			if(plr->GetQuestLogForEntry(1713))
				Menu->AddItem(0, "I'm ready, Summon Him!", 1);

			Menu->SendTo(plr);
		}
コード例 #12
0
    void GossipSelectOption(Object* pObject, Player*  pPlayer, uint32 Id, uint32 IntId, const char * Code)
    {
        if( !pObject->IsCreature() )
            return;

        switch (IntId)
        {
        case 1:
            pPlayer->Gossip_Complete();
            pPlayer->CastSpell( pPlayer, SPELL_ABMER_TO_COLDARRA, true );
            break;
        case 2:
            pPlayer->GetSession()->SendTaxiList( TO_CREATURE( pObject ) );
            break;
        };
    };
コード例 #13
0
    void GossipHello(Object* pObject, Player* plr)
    {
        if (!plr)
            return;

        GossipMenu* Menu;
        Creature* Prisoner12 = TO_CREATURE(pObject);
        if (Prisoner12 == nullptr)
            return;

        objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
        if (plr->HasQuest(9164))
            Menu->AddItem(ICON_CHAT, plr->GetSession()->LocalizedGossipOption(462), 1);     // Release Him.

        Menu->SendTo(plr);
    }
コード例 #14
0
ファイル: Ghostlands.cpp プロジェクト: Bootz/arcticdev
    void GossipHello(Object* pObject, Player* plr, bool AutoSend)
    {
        if(!plr)
            return;
        GossipMenu *Menu;
        Creature* Prisoner12 = TO_CREATURE(pObject);
        if (Prisoner12 == NULL)
            return;

        objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
        if(plr->GetQuestLogForEntry(9164))
            Menu->AddItem( 0, "Release Him.", 1);

        if(AutoSend)
            Menu->SendTo(plr);
    }
コード例 #15
0
    void GossipSelectOption(Object* pObject, Player* plr, uint32 Id, uint32 IntId, const char * Code)
    {
		Creature* pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?(TO_CREATURE(pObject)):NULL;
		if(pCreature==NULL)
			return;

        switch(IntId)
        {
        case 1:
			{
				plr->GetQuestLogForEntry(11142)->SendQuestComplete();
				TaxiPath * path = sTaxiMgr.GetTaxiPath( 724 ); // Flight Path
				plr->TaxiStart( path, 1147, 0 ); // Gryph
            }break;
		}
    }
コード例 #16
0
		void GossipHello(Object* pObject, Player* plr)
		{
			if(!plr)
				return;

			GossipMenu* Menu;
			Creature* highchief = TO_CREATURE(pObject);
			if(highchief == NULL)
				return;

			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
			if(plr->GetQuestLogForEntry(9663))
				Menu->AddItem(0, "Warn him", 1);

			Menu->SendTo(plr);
		}
コード例 #17
0
ファイル: Hellfire_Peninsula.cpp プロジェクト: wow4all/wowtbc
	void GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
    {
		Creature* pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?(TO_CREATURE(pObject)):NULL;
		if(!pCreature)
			return;

        switch(IntId)
        {
			case 1: //Mission: The Abyssal Shelf ( GOSSIP_MISSIONA )
			{       
				//We need Horde / Alliance Check
				if ( Plr->GetTeam() == 1)
				{
					TaxiPath * taxipath = sTaxiMgr.GetTaxiPath(587);
                    Plr->TaxiStart(taxipath, 18712, 0);
				}
				else
				{
					TaxiPath * taxipath = sTaxiMgr.GetTaxiPath(589);
					Plr->TaxiStart(taxipath, 18736, 0);
				}
			}break;
			case 2:
			{
				if ( Plr->GetTeam() == 1)
					pCreature->CastSpell(Plr, 33659, true); //Gateways Murket and Shaadraz H
				else
					pCreature->CastSpell(Plr, 33768, true); // Gateways Murket and Shaadraz A                
			}break;
			case 3: //SPINEBRIDGE
			{
				pCreature->CastSpell(Plr, 34578, true); // Taxi - Reaver's Fall to Spinebreaker Ridge
			}break;
			case 4:
			{       
				if(pCreature->GetEntry() == TAXI_DABIREE) 
					pCreature->CastSpell(Plr, 35069, true); // Taxi - Hellfire Peninsula - Expedition Point to Shatter Point
				if(pCreature->GetEntry() == TAXI_LEAFBEARD) 
					pCreature->CastSpell(Plr, 35066, true); // Taxi - Hellfire Peninsula - Beach Head to Shatter Point
			}break;
			case 5: 
			{
				pCreature->CastSpell(Plr, 35065, true); // Taxi - Hellfire Peninsula - Shatter Point to Beach Head
			}break;
		}
    }
コード例 #18
0
	void GossipHello(ObjectPointer pObject, PlayerPointer plr, bool AutoSend)
	{
		if(!plr)
			return;

		GossipMenu *Menu;
		CreaturePointer doctor = TO_CREATURE(pObject);
		if (doctor == NULL)
			return;

		objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
		if(plr->GetQuestLogForEntry(348) && plr->GetItemInterface()->GetItemCount(2799, 0) && !plr->GetItemInterface()->GetItemCount(2797, 0))
			Menu->AddItem( 0, "I'm ready, Summon Him!", 1);

		if(AutoSend)
			Menu->SendTo(plr);
	}
コード例 #19
0
ファイル: Quest_Terrokar_Forest.cpp プロジェクト: vata/wowice
	void GossipHello(Object* pObject, Player* plr, bool AutoSend)
	{
		if(!plr)
			return;

		GossipMenu *Menu;
		Creature* doctor = TO_CREATURE(pObject);
		if (doctor == NULL)
			return;

		objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
		if(plr->GetQuestLogForEntry(10201) && plr->GetItemInterface()->GetItemCount(28500, 0))
			Menu->AddItem( 0, "Try this", 1);

		if(AutoSend)
			Menu->SendTo(plr);
	}
コード例 #20
0
	void GossipHello(Object* pObject, Player* plr, bool AutoSend)
	{
		if(!plr)
			return;

		GossipMenu *Menu;
		Creature* lord = TO_CREATURE(pObject);
		if (lord == NULL)
			return;

			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, plr);
			if(plr->GetQuestLogForEntry(9692))
			Menu->AddItem( 0, "Take Insignia", 1);

		if(AutoSend)
			Menu->SendTo(plr);
	}
コード例 #21
0
ファイル: Quest_Icecrown.cpp プロジェクト: lev1976g/easywow
        void OnSelectOption(Object *pObject, Player *plr, uint32 Id, const char *Code)
        {
            switch (Id)
            {
                case 0:
                {
                    plr->CloseGossip();
                    TO_CREATURE(pObject)->GetMapMgr()->GetInterface()->SpawnCreature(NPC_ARGENT_VALIANT, 8575.451f, 952.472f, 547.554f, 0.38f, false, true, 0, 0, 1);
                }break;
                case 1:
                {

                }break;
                default:
                    break;
            }
        }
コード例 #22
0
bool ElementalPowerExtractor(uint32 i, Spell * pSpell)
{
	if ( pSpell == NULL || pSpell->u_caster == NULL || !pSpell->u_caster->IsPlayer() )
		return true;
    
	Player * pPlayer = TO_PLAYER( pSpell->u_caster );
	Unit * pUnit = pSpell->GetUnitTarget();
	if ( pUnit == NULL || !pUnit->IsCreature() )
		return true;

    Creature * pTarget = TO_CREATURE( pUnit );
	if ( ( pTarget->GetEntry() == 18881 || pTarget->GetEntry() == 18865 ) && pTarget->isAlive() )
	{
		sEAS.AddItem( 28548, pPlayer );
	}

	return true;
}
コード例 #23
0
		void OnHello(Object* pObject, Player* plr)
		{
			int32 i = -1;
			Creature* pPrisoner = TO_CREATURE(pObject);
			switch(pPrisoner->GetEntry())
			{
				case 20677: i = 0; break;
				case 20678: i = 1; break;
				case 20679: i = 2; break;
			}

			if(i == -1)
				return;

			QuestLogEntry* pQuest = plr->GetQuestLogForEntry(10368);
			if(pQuest != NULL && pQuest->GetMobCount(i) < pQuest->GetQuest()->required_mobcount[i] && plr->GetItemInterface()->GetItemCount(29501) > 0)
				Arcemu::Gossip::Menu::SendQuickMenu(pObject->GetGUID(), 10104, plr, 1, Arcemu::Gossip::ICON_CHAT, "Walk free, Elder. Bring the spirits back to your tribe.");
		}
コード例 #24
0
uint32 Transporter::BuildCreateUpdateBlockForPlayer(ByteBuffer *data, Player* target )
{
    uint32 cnt = Object::BuildCreateUpdateBlockForPlayer(data, target);

    // add all the npcs to the packet
    for(TransportNPCMap::iterator itr = m_npcs.begin(); itr != m_npcs.end(); itr++)
    {
        LocationVector v_offset;
        TO_CREATURE(itr->second)->GetMovementInfo()->GetTransportPosition(v_offset);
        v_offset.x += GetPositionX();
        v_offset.y += GetPositionY();
        v_offset.z += GetPositionZ();
        itr->second->SetPosition(v_offset);
        cnt += itr->second->BuildCreateUpdateBlockForPlayer(data, target);
    }

    return cnt;
}
コード例 #25
0
ファイル: ItemSpells.cpp プロジェクト: Bootz/arcticdev
bool MinionsOfGurok(uint32 i, Spell *pSpell)
{
	Unit * target = pSpell->GetUnitTarget();
	if(!pSpell->p_caster || !target || target->GetTypeId() != TYPEID_UNIT || target->GetEntry() != 17157) return true;

	TO_CREATURE(target)->Despawn(500, 360000);

	float SSX = target->GetPositionX();
	float SSY = target->GetPositionY();
	float SSZ = target->GetPositionZ();
	float SSO = target->GetOrientation();

	pSpell->p_caster->GetMapMgr()->GetInterface()->SpawnCreature(18181, SSX+rand()%8-4, SSY+rand()%8-4, SSZ, SSO, true, false, 0, 0);
	pSpell->p_caster->GetMapMgr()->GetInterface()->SpawnCreature(18181, SSX+rand()%8-4, SSY+rand()%8-4, SSZ, SSO, true, false, 0, 0);
	pSpell->p_caster->GetMapMgr()->GetInterface()->SpawnCreature(18181, SSX+rand()%8-4, SSY+rand()%8-4, SSZ, SSO, true, false, 0, 0);

	return true;
}
コード例 #26
0
void Player::SendLootUpdate(Object* o)
{

	if(!IsVisible(o->GetGUID()))
		return;

	// Build the actual update.
	ByteBuffer buf(500);

	uint32 Flags = o->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
	Flags |= U_DYN_FLAG_LOOTABLE;
	Flags |= U_DYN_FLAG_TAPPED_BY_PLAYER;
	if(o->IsCreature() && !TO_CREATURE(o)->HasLoot())
		Flags &= ~U_DYN_FLAG_LOOTABLE;
	o->BuildFieldUpdatePacket(&buf, UNIT_DYNAMIC_FLAGS, Flags);

	PushUpdateData(&buf, 1);
}
コード例 #27
0
bool ChatHandler::HandleKillCommand(const char *args, WorldSession *m_session)
{
	Unit* target = m_session->GetPlayer()->GetMapMgr()->GetUnit(m_session->GetPlayer()->GetSelection());
	if(target == 0)
	{
		RedSystemMessage(m_session, "A valid selection is required.");
		return true;
	}

	switch(target->GetTypeId())
	{
	case TYPEID_PLAYER:
		sGMLog.writefromsession(m_session, "used kill command on PLAYER %s", TO_PLAYER( target )->GetName() );
		break;

	case TYPEID_UNIT:
		sGMLog.writefromsession(m_session, "used kill command on CREATURE %s", TO_CREATURE( target )->GetCreatureInfo() ? TO_CREATURE( target )->GetCreatureInfo()->Name : "unknown");
		break;
	}


	// If we're killing a player, send a message indicating a gm killed them.
	if(target->IsPlayer())
	{
		Player* plr = TO_PLAYER(target);
		m_session->GetPlayer()->DealDamage(plr, plr->GetUInt32Value(UNIT_FIELD_MAXHEALTH)+10,0,0,0);
		BlueSystemMessageToPlr(plr, "%s killed you with a GM command.", m_session->GetPlayer()->GetName());
	}
	else
	{

		// Cast insta-kill.
		SpellEntry * se = dbcSpell.LookupEntry(5);
		if(se == 0) return false;

		SpellCastTargets targets(target->GetGUID());
		Spell* sp(new Spell(m_session->GetPlayer(), se, true, NULL));
		sp->prepare(&targets);

	}

	return true;
}
コード例 #28
0
		void GossipHello(Object* pObject, Player* plr)
		{
			Creature*  pCreature = (pObject->IsCreature()) ? (TO_CREATURE(pObject)) : NULL;
			if(pCreature == NULL)
				return;

			uint32 chance = RandomUInt(1);
			if(chance == 0)
			{
				pCreature->SetFaction(14);
				pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "The Woodlands Walker is angered by your request and attacks!");
			}
			else
			{
				sEAS.AddItem(36786, plr);
				pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Breaking off a piece of its bark, the Woodlands Walker hands it to you before departing.");
			}

		}
コード例 #29
0
ファイル: Dragonblight.cpp プロジェクト: Ballwinkle/Ascent_NG
	void GossipHello(Object* pObject, Player* plr, bool AutoSend)
	{
		Creature*  pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?(TO_CREATURE(pObject)):NULL;
		if( pCreature == NULL )
			return;

		uint32 chance = RandomUInt(1);
		if( chance == 0 )
		{
			pCreature->SetUInt32Value( UNIT_FIELD_FACTIONTEMPLATE, 14 );
			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "The Woodlands Walker is angered by your request and attacks!" );
		}
		else
		{
			sEAS.AddItem( 36786, plr );
			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Breaking off a piece of its bark, the Woodlands Walker hands it to you before departing." );
		}

	}
コード例 #30
0
    void GossipSelectOption(Object * pObject, Player * plr, uint32 Id, uint32 IntId, const char * EnteredCode)
    {
		Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?(TO_CREATURE(pObject)):NULLCREATURE;
		if(pCreature==NULLCREATURE)
			return;

        switch(IntId)
        {
        case 0:
			{
				TaxiPath * path = sTaxiMgr.GetTaxiPath( 795 ); // Flight Path
				plr->TaxiStart( path, 25854, 0 ); // Dragon
            }break;
		case 1:
			{
				plr->GetSession()->SendTaxiList(pCreature);
            }break;
		}
    }