当前位置: 首页>>代码示例>>C++>>正文


C++ SpellCastTargets::getGOTarget方法代码示例

本文整理汇总了C++中SpellCastTargets::getGOTarget方法的典型用法代码示例。如果您正苦于以下问题:C++ SpellCastTargets::getGOTarget方法的具体用法?C++ SpellCastTargets::getGOTarget怎么用?C++ SpellCastTargets::getGOTarget使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SpellCastTargets的用法示例。


在下文中一共展示了SpellCastTargets::getGOTarget方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ItemUse_item_defias_gunpowder

bool ItemUse_item_defias_gunpowder(Player* player, Item* pItem, SpellCastTargets const& targets)
{
    ScriptedInstance *pInstance = player->GetInstanceData();

    if (!pInstance)
    {
        player->GetSession()->SendNotification("Instance script not initialized");
        return true;
    }
    if (pInstance->GetData(EVENT_CANNON) != CANNON_NOT_USED)
        return false;
    if (targets.getGOTarget() && targets.getGOTarget()->GetTypeId() == TYPEID_GAMEOBJECT && targets.getGOTarget()->GetEntry() == GO_DEFIAS_CANNON)
        pInstance->SetData(EVENT_CANNON, CANNON_GUNPOWDER_USED);

    player->DestroyItemCount(pItem->GetEntry(), 1, true);
    return true;
}
开发者ID:Bootz,项目名称:SF1,代码行数:17,代码来源:deadmines.cpp

示例2: OnUse

	bool OnUse(Player* player, Item* item, SpellCastTargets const& targets) {
		InstanceScript *pInstance = player->GetInstanceScript();

		if (!pInstance) {
			player->GetSession()->SendNotification(
					"Instance script not initialized");
			return true;
		}
		if (pInstance->GetData(EVENT_STATE) != CANNON_NOT_USED)
			return false;
		if (targets.getGOTarget()
				&& targets.getGOTarget()->GetTypeId() == TYPEID_GAMEOBJECT
				&& targets.getGOTarget()->GetEntry() == GO_DEFIAS_CANNON) {
			pInstance->SetData(EVENT_STATE, CANNON_GUNPOWDER_USED);
		}

		player->DestroyItemCount(item->GetEntry(), 1, true);
		return true;
	}
开发者ID:FrenchCORE,项目名称:Server,代码行数:19,代码来源:deadmines.cpp

示例3: ItemUse_item_tainted_core

bool ItemUse_item_tainted_core(Player* pPlayer, Item* _Item, SpellCastTargets const& targets)
{
    ScriptedInstance *pInstance = pPlayer->GetInstanceData();

    if (!pInstance)
    {
        pPlayer->GetSession()->SendNotification(TEXT_NOT_INITIALIZED);
        return true;
    }

    Creature *Vashj = NULL;
    Vashj = (Unit::GetCreature((*pPlayer), pInstance->GetData64(DATA_LADYVASHJ)));
    if (Vashj && CAST_AI(boss_lady_vashjAI, Vashj->AI())->Phase == 2)
    {
        if (targets.getGOTarget() && targets.getGOTarget()->GetTypeId()==TYPEID_GAMEOBJECT)
        {
            uint32 identifier;
            uint8 channel_identifier;
            switch (targets.getGOTarget()->GetEntry())
            {
                case 185052:
                    identifier = DATA_SHIELDGENERATOR1;
                    channel_identifier = 0;
                    break;
                case 185053:
                    identifier = DATA_SHIELDGENERATOR2;
                    channel_identifier = 1;
                    break;
                case 185051:
                    identifier = DATA_SHIELDGENERATOR3;
                    channel_identifier = 2;
                    break;
                case 185054:
                    identifier = DATA_SHIELDGENERATOR4;
                    channel_identifier = 3;
                    break;
                default:
                    return true;
            }

            if (pInstance->GetData(identifier))
            {
                pPlayer->GetSession()->SendNotification(TEXT_ALREADY_DEACTIVATED);
                return true;
            }

            //get and remove channel
            Unit *Channel = NULL;
            Channel = Unit::GetCreature(*Vashj, CAST_AI(boss_lady_vashjAI, Vashj->AI())->ShieldGeneratorChannel[channel_identifier]);
            if (Channel)
            {
                //call Unsummon()
                Channel->setDeathState(JUST_DIED);
            }

            pInstance->SetData(identifier, 1);

            //remove this item
            pPlayer->DestroyItemCount(31088, 1, true);
            return true;
        }
        else if (targets.getUnitTarget()->GetTypeId() == TYPEID_UNIT)
            return false;
        else if (targets.getUnitTarget()->GetTypeId() == TYPEID_PLAYER)
        {
            pPlayer->DestroyItemCount(31088, 1, true);
            pPlayer->CastSpell(targets.getUnitTarget(), 38134, true);
            return true;
        }
    }
    return true;
}
开发者ID:Ickybad,项目名称:diamondcore2,代码行数:72,代码来源:boss_lady_vashj.cpp


注:本文中的SpellCastTargets::getGOTarget方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。