void ChuanqiduanzaoItem::rsp_DuanZao(CCObject *msg_f)
{
	CCNotificationCenter::sharedNotificationCenter()->removeObserver(this, MSG_DuanzaoRsp_F);
	GameDirector::getDirector()->hideWaiting();

	Flat_DuanzaoRsp *data = (Flat_DuanzaoRsp*)((Flat_MSG_Rsp*)msg_f)->getData();
	if (data->err_code != Success)
	{
		if (data->err_code == CEC_NoMoreFreeSpaceToStoreEquip)
		{
			EquipBagNotEnoughDialog *layer = new EquipBagNotEnoughDialog;
			layer->showGoToFenJieDialog();
		}
		else
		{
			MessageDisplay *layer = MessageDisplay::create(CmdHelper::getHelper()->getMessage(data->err_code));
			CCDirector::sharedDirector()->getRunningScene()->addChild(layer);
		}
		return;
	}

	//刷新头部金币
	{
		int gold = 0;
		WuPin* wp = WuPinManager::getManager()->getWuPin(ItemsType_Gold);
		if (wp != NULL)
		{
			gold = wp->getCount();
		}

		BaseSprite* header = MainLayerBase::getCurrentMainBase()->getHeader()->getHeaderContent();

		CCLabelTTF* lable = (CCLabelTTF*)header->getChildByTag(STORE_FRAM_TAG_HEAD_JINBI);
		char str[64];
		sprintf(str, "%d", gold);
		lable->setString(str);
	}

	ShenBingShangDianDuanZao *layer = new ShenBingShangDianDuanZao(data->equips);
	CCDirector::sharedDirector()->getRunningScene()->addChild(layer, 1000);
	layer->release();
}
Exemplo n.º 2
0
void MainFooterLayer::getNewMessageInfo(CCNode* pInfoStr)
{
	if (pInfoStr)
	{
		pInfoStr->removeFromParent();
	}

	BaseSprite *messageBar = (BaseSprite*)this->getChildByTag(Tag_MessageInfoBar);
	if (messageBar)
	{
		NetLabelTTF* pLable = (NetLabelTTF*)messageBar->getChildByTag(Tag_MessageTipStr);
		if (!pLable)
		{
			if (SystemPushMessagePool::getPool()->getCurMsgCount() < 1)
			{
				messageBar->removeFromParent();
			}
			else
			{
				MarqueeMessage info;
				if (SystemPushMessagePool::getPool()->getOneMessage(info))
				{
					showMessageBar(info);
				}
			}
		}
	}
	else
	{
		MarqueeMessage info;
//		info.uid=186384394; 
// 		info.type = 5;
// 		info.count=1;
// 		sprintf(info.subject, "%s", "assdf");
		if (SystemPushMessagePool::getPool()->getOneMessage(info))
		{
			showMessageBar(info);
		}
	}
}
BaseSprite* MainLayerZhuangBeiBaseBody::getItemContentByIndex(unsigned int index)
{
    BaseSprite* bg = BaseSprite::create("mianban_zhuangbei_xiangxi.png");

    CCString tempStr;

    CCPoint picPos = ccp(75.0f, bg->getContentSize().height/2);

    {
        ImageData diWenData = ImageManager::getManager()->getImageData_DiWen_List(
                                  mEquipmentVec[index]->getEquipColor(),
                                  false,
                                  mEquipmentVec[index]->isPartOfSuit(),
                                  mEquipmentVec[index]->haveZhuanke());
        BaseSprite* diWen = BaseSprite::create(diWenData.getCurrentImageFile());
        diWen->setScale(diWenData.scale);
        diWen->setPosition(picPos);
        bg->addChild(diWen,0,TAG_BaseBody_TABLE_ITEM_DiWen);

        {
            BaseSprite *sprite = ImageManager::getManager()->getSpriteOfZhuangbei(mEquipmentVec[index],true,true);
            //sprite->setScale(data.scale);
            sprite->setScale(0.43f);
            sprite->setPosition(picPos);
            bg->addChild(sprite,0,TAG_BaseBody_TABLE_ITEM_Image);
        }

        //封印
        if (mEquipmentVec[index]->isInFengYin())
        {
            BaseSprite *fyImg = BaseSprite::create("shenbing_fengyin_suo.png");
            bg->addChild(fyImg, 0, TAG_BaseBody_TABLE_FengYin_Img);
            fyImg->setPosition(diWen->getPosition());
            fyImg->setScale(diWen->getContentSize().width*diWen->getScale() / fyImg->getContentSize().width);
        }

    }

    // 添加图片识别区
    {
        ImageData selecedData = ImageManager::getManager()->getImageData_DiWen_Selected(
                                    mEquipmentVec[index]->getEquipColor(),
                                    false,//mEquipmentVec[index]->isShenBing(),
                                    mEquipmentVec[index]->isPartOfSuit());
        BaseSprite* menuItemSel = BaseSprite::create(selecedData.getCurrentImageFile());
        menuItemSel->setScale(selecedData.scale);
        CCSprite* menuRect = CCSprite::createWithTexture(menuItemSel->getTexture());
        menuRect->setScale(0.0f);

        FXScrollMenu *menu = FXScrollMenu::create(
                                 mTableView->getParent()->convertToWorldSpace(mTableView->getPosition()), mTableView->getViewSize());
        bg->addChild(menu, 0, TAG_BaseBody_MENU);
        menu->setPosition(ccp(0,0));
        CCMenuItemSprite* t = CCMenuItemSprite::create(menuRect,menuItemSel,this,SEL_MenuHandler(&MainLayerZhuangBeiBaseBody::itemImageClicked));
        menu->addChild(t, 0, index);
        t->setPosition(picPos);
    }

    float left_x_start = 160 - 4;
    //名称
    {
        CCLabelTTF* label;
        char str[64];
        if (mEquipmentVec[index]->getEquipData().qianghua_data.qianghua_count != 0)
        {
            sprintf(str, "%s", mEquipmentVec[index]->getName().c_str());
        }
        else
        {
            sprintf(str, "%s", mEquipmentVec[index]->getName().c_str());
        }

        label = LF::lable(bg,str,ccp(left_x_start,190),24,fontStr_kaiti);
        label->setTag(TAG_BaseBody_LABLE_NAME);
        ccColor3B color = ImageManager::getManager()->getShowColor(mEquipmentVec[index]->getEquipColor(),false,mEquipmentVec[index]->isPartOfSuit());
        label->setColor(color);
    }

    //类型
    {
        std::string typeStr =
            CS::getZhuangbeiTypeName(mEquipmentVec[index]->getType(), mEquipmentVec[index]->getEquipColor());

        CCLabelTTF* label;
        label = LF::lable(bg,typeStr,ccp(left_x_start,165),18,fontStr_kaiti);
        label->setTag(TAG_BaseBody_LABLE_TYPE);
        label->setColor(fonColor_CiYao);
    }

    //白字
    {
        CCLabelTTF* label_baizhi = NULL;
        bool hasBaiZhi = false;
        {
            float baizi = 0;
            switch(mEquipmentVec[index]->getType())
            {
            case ZhuangbeiType_DanshouJian:
            case ZhuangbeiType_ShuangshouBishou:
            case ZhuangbeiType_ShuangshouFu:
            case ZhuangbeiType_DanshouFazhang:
            case ZhuangbeiType_ShuangshouFazhang:
            case ZhuangbeiType_Gong:
                hasBaiZhi = true;
                baizi = mEquipmentVec[index]->getGongjiLiAfterQianghua(false);
                break;
            case ZhuangbeiType_Dunpai:
            case ZhuangbeiType_KuijiaZhong:
            case ZhuangbeiType_KuijiaQin:
                hasBaiZhi = true;
                baizi = mEquipmentVec[index]->getHuJiaZhiAfterQianghua();
                break;
            default:
                break;
            }
            if (hasBaiZhi)
            {
                char str[64];
                sprintf(str, "%.1f", baizi);

                label_baizhi = LF::lable(bg,str,ccp(left_x_start,126),60,fontStr_BookAntiqua);
                label_baizhi->setTag(TAG_BaseBody_LABLE_BAIZI);
            }
            else
            {
                label_baizhi = LF::lable(bg,"",ccp(left_x_start,126),60,fontStr_BookAntiqua);
                label_baizhi->setTag(TAG_BaseBody_LABLE_BAIZI);
            }
        }
        //junshang
        CCLabelTTF* label_junshang = LF::lable(bg,LFStrings::getValue("junshang"),ccp(0,0),20,fontStr_kaiti);
        label_junshang->setAnchorPoint(ccp(0, 0.5));
        label_junshang->setPosition(
            ccp(label_baizhi->getPositionX()+label_baizhi->getContentSize().width+10, 116));
        label_junshang->setTag(TAG_BaseBody_LABLE_JUNSHANG_TXT);
        if(hasBaiZhi)
        {
            label_junshang->setVisible(true);
            if(mEquipmentVec[index]->getEquipType() == EquipType_FangJu)
                label_junshang->setString(LFStrings::getValue("huJia").c_str());
        }
        else
        {
            label_junshang->setVisible(false);
        }
    }

    //伤害详细
    if (mEquipmentVec[index]->getEquipType() == EquipType_WuQi)
    {
        CCLabelTTF* label;
        char str[64];
        sprintf(str, "%u-%u ", mEquipmentVec[index]->getEquipData().gongji_min
                , mEquipmentVec[index]->getEquipData().gongji_max);

        label = LF::lable(bg,str,ccp(left_x_start,87),20,fontStr_BookAntiqua);
        label->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_NUM);
        label->setColor(fonColor_CiYao);
        CCLabelTTF* label2;
        label2 = LF::lable(bg,LFStrings::getValue("dianShangHai")
                           ,ccp(label->getPosition().x + label->getContentSize().width, label->getPositionY()),20,fontStr_kaiti);
        label2->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_TXT);
        label2->setColor(fonColor_CiYao);
    }
    else
    {
        CCLabelTTF* label;
        label = LF::lable(bg,"",ccp(left_x_start,87),20,fontStr_kaiti);
        label->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_NUM);
        CCLabelTTF* label2;
        label2 = LF::lable(bg,""
                           ,ccp(label->getPosition().x + label->getContentSize().width, label->getPositionY()),20,fontStr_kaiti);
        label2->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_TXT);
    }

    //等级
    {
        CCLabelTTF* label;
        char str[64];
        sprintf(str, "%s %u ", LFStrings::getValue("dengji").c_str(), mEquipmentVec[index]->getEquipData().zhuangbei_level);
        label = LF::lable(bg,str,ccp(left_x_start,28),20,fontStr_kaiti);
        label->setColor(fonColor_FaGuang);
        label->setTag(TAG_BaseBody_LABLE_Level);
    }

    //人物
    {
        CCLabelTTF* label;
        int actorId = mEquipmentVec[index]->getActorId();
        if (actorId != INVALID_ID)
        {
            BaseActor* actor = MyselfManager::getManager()->getMyTeamActor(actorId);
            CCAssert(actor!=NULL,"");
            BaseActorProperty prop = actor->getCurrentProperty();
            label = LF::lable(bg,LF::getString("zhuangBeiYu")+prop.nameInChinese,ccp(0, 0),20,fontStr_kaiti);
        }
        else
        {
            label = LF::lable(bg,LF::getString("meiYouZhuangBei"),ccp(0, 0),20,fontStr_kaiti);
        }
        label->setColor(fonColor_FaGuang);
        label->setAnchorPoint(ccp(1, 0.5));
        label->setPosition(ccp( 590, 200));
        label->setTag(TAG_BaseBody_LABLE_OWNTO);
        if (actorId == INVALID_ID && mEquipmentVec[index]->getEquipData().profession_id != 0)
        {
            CCString temp;
            temp.initWithFormat("%s(%s)", LFStrings::getValue("ZhiYeXianZhi").c_str(),
                                BaseActorPropertyParser::getParser()->getExtraProerty((Profession)mEquipmentVec[index]->getEquipData().profession_id).nameInChinese.c_str());
            label->setString(temp.getCString());
            label->setColor(fonColor_JingGao);
        }
    }

    //魔法属性
    {
        int start_x = 400 + 38;
        Equipment* equip = mEquipmentVec[index];
        std::vector<std::string> vec = equip->getAllMofaShuxing(false);

        //大于5个  第五个就是 ......
        for(int i=0; i<vec.size(); ++i)
        {
            std::string txt = vec[i];

            BaseSprite* biaoji = BaseSprite::create("zhuangbei_xiangxi_biaoji.png");
            bg->addChild(biaoji, 0, TAG_BIAOJI+i);
            biaoji->setPosition(ccp(start_x, 170-i*28));
            //biaoji->setOpacity(80);

            CCLabelTTF* label;
            label = LF::lable(bg,txt,ccp(0,0),20,fontStr_kaiti);
            label->setColor(ImageManager::getManager()->getShowColor(ZhuangbeiColour_Fumo, false, false));
            label->setAnchorPoint(ccp(0, 0.5));
            label->setPosition(ccp(start_x+15, 170-i*28));
            label->setTag(i);

            if(vec.size()>6)
            {
                CCLog("Warrior:%s ---> equipment property > 6, current is [%d]", __FUNCTION__, vec.size());
                //	break;
            }
        }
        //洗练
        string xxx;
        CCSprite *diwen = (CCSprite*)bg->getChildByTag(TAG_BaseBody_TABLE_ITEM_DiWen);
        if (equip->canPurify(xxx,1) && diwen)
        {
            ZhuangbeiOptionLevel *layer = ZhuangbeiOptionLevel::createWithEquipment(equip);
            bg->addChild(layer,20);
            //layer->setScale(1/diwen->getScale());
            CCPoint pos = diwen->getPosition();
            pos.x -= diwen->getContentSize().width * diwen->getScaleX() / 2;
            pos.y -= diwen->getContentSize().height * diwen->getScaleY() / 2;

            int width = pos.x + layer->getContentSize().width / 2 + 12;
            int height = pos.y + layer->getContentSize().height / 2 + 4;
            layer->setPosition(ccp(width,height));
        }
    }

    bg->setPosition(ccp(bg->getContentSize().width/2,bg->getContentSize().height/2));
    return bg;
}
Exemplo n.º 4
0
void MainFooterLayer::showMessageBar(MarqueeMessage info)
{
	//system message info barbg
	BaseSprite *messageBar = (BaseSprite*)this->getChildByTag(Tag_MessageInfoBar);
	if (!messageBar)
	{
		messageBar = BaseSprite::create("zhuye_xitongtonggao.png");
		this->addChild(messageBar, 100, Tag_MessageInfoBar);
		messageBar->setPosition(ccp(320, 1152-1039));
	}
		
	//context
	NetLabelTTF* pLable = (NetLabelTTF*)messageBar->getChildByTag(Tag_MessageTipStr);
	if (pLable)
	{
		return;
	}

	NetTextListShowUI* pText = NetTextListShowUI::create();
	//普通字符串
	string firstStr = info.subject;
	string secondStr = "";
	string thirdlyStr = "";
	string fullStr = "";
	string name = "";
	int	iCount = 0;
	ChuanQi chuanqiinfo;
	//传奇锻造
	if (info.type == MarqueeType_ForgeLegend)
	{
		secondStr = LFStrings::getValue("Paomadeng_DuanZao_Chuanqi");
		
		if (ChuanqiPool::getPool()->getChuanQiData(info.object.group_id, chuanqiinfo))
		{
			name = chuanqiinfo.allChuanqiFenShenInLifeSpan.at(0).zhuangbei_name;
		}
		iCount = info.count;
		thirdlyStr = CCString::createWithFormat("*%d", iCount)->getCString();
		fullStr = pText->getConversionMsgStr(LFStrings::getValue("Paomadeng_Wanjia"), ccWHITE)
				 +pText->getConversionMsgStr(firstStr, fonColor_FaGuang)
				 +pText->getConversionMsgStr(secondStr, ccWHITE)
				 +pText->getConversionMsgStr(name, ImageManager::getManager()->getShowColor(ZhuangbeiColour_Chuanqi, true))
				 +pText->getConversionMsgStr(thirdlyStr, ccWHITE);
	}
	//杂货铺
	else if (info.type == MarqueeType_VarietyStore)
	{
		secondStr = LFStrings::getValue("Paomadeng_Zahuopu");
		string name = CS::getItemName(info.object.item_type);
		iCount = info.count;
		thirdlyStr = CCString::createWithFormat("*%d", iCount)->getCString();
		fullStr = pText->getConversionMsgStr(LFStrings::getValue("Paomadeng_Wanjia"), ccWHITE)
			+pText->getConversionMsgStr(firstStr, fonColor_FaGuang)
			+pText->getConversionMsgStr(secondStr, ccWHITE)
			+pText->getConversionMsgStr(name, FX_CommonFunc::getCaiLiaoColor(info.object.item_type))
			+pText->getConversionMsgStr(thirdlyStr, ccWHITE);
	}
	//传奇合成
	else if (info.type == MarqueeType_Compound)
	{
		secondStr =  LFStrings::getValue("Paomadeng_Hecheng_Chuanqi");
		if (ChuanqiPool::getPool()->getChuanQiData(info.object.group_id, chuanqiinfo))
		{
			name = chuanqiinfo.allChuanqiFenShenInLifeSpan.at(0).zhuangbei_name;
		}
		iCount = info.count;
		thirdlyStr = CCString::createWithFormat("*%d", iCount)->getCString();
		fullStr = pText->getConversionMsgStr(LFStrings::getValue("Paomadeng_Wanjia"), ccWHITE)
			+pText->getConversionMsgStr(firstStr, fonColor_FaGuang)
			+pText->getConversionMsgStr(secondStr, ccWHITE)
			+pText->getConversionMsgStr(name, fonColor_PuTong)
			+pText->getConversionMsgStr(thirdlyStr, ccWHITE);
	}
	//巅峰对决
	else if (info.type == MarqueeType_TopArena)
	{
		//四强,八强
		if (info.object.round == 0)
		{
			secondStr =  LFStrings::getValue("Paomadeng_Dianfengduijue");
			fullStr = pText->getConversionMsgStr(LFStrings::getValue("Paomadeng_Wanjia"), ccWHITE)
				+pText->getConversionMsgStr(firstStr, fonColor_FaGuang)
				+pText->getConversionMsgStr(secondStr, ccWHITE);
		}
		//决赛
		else if (info.object.round == 1)
		{
			secondStr =  LFStrings::getValue("Paomadeng_Juesai");
			fullStr = pText->getConversionMsgStr(LFStrings::getValue("Paomadeng_Wanjia"), ccWHITE)
				+pText->getConversionMsgStr(firstStr, fonColor_FaGuang)
				+pText->getConversionMsgStr(secondStr, ccWHITE);
		}
		//冠军
		else if (info.object.round == 2)
		{
			secondStr = LFStrings::getValue("Paomadeng_Guanjun");
			fullStr = pText->getConversionMsgStr(LFStrings::getValue("Paomadeng_Wanjia"), ccWHITE)
				+pText->getConversionMsgStr(firstStr, fonColor_FaGuang)
				+pText->getConversionMsgStr(secondStr, ccWHITE);
		}
	}
	//英雄榜
	else if (info.type == MarqueeType_TopList)
	{

		if (info.object.top_order == 1)
		{
			firstStr = LFStrings::getValue("Paomadeng_Top1");
		}
		else if (info.object.top_order == 2)
		{
			firstStr = LFStrings::getValue("Paomadeng_Top2");
		}
		else if (info.object.top_order == 3)
		{
			firstStr = LFStrings::getValue("Paomadeng_Top3");
		}
		secondStr = info.subject;
		thirdlyStr = LFStrings::getValue("Paomadeng_Shangxian");

		fullStr = pText->getConversionMsgStr(firstStr, ccWHITE)
			+pText->getConversionMsgStr(secondStr, fonColor_FaGuang)
			+pText->getConversionMsgStr(thirdlyStr, ccWHITE);
	}
	//守护之灵
	else if (info.type == MarqueeType_ProtectSpirit)
	{
		firstStr = "";
//		secondStr = "MarqueeType_ProtectSpirit";
	}
	//寻宝 破外封印
	else if (info.type == MarqueeType_Discover_Destroy)
	{
		secondStr = LFStrings::getValue("Paomadeng_Xunbao_Pohuaifengyin");
		fullStr = pText->getConversionMsgStr(LFStrings::getValue("Paomadeng_Wanjia"), ccWHITE)
			+pText->getConversionMsgStr(firstStr, fonColor_FaGuang)
			+pText->getConversionMsgStr(secondStr, ccWHITE)
			+pText->getConversionMsgStr(thirdlyStr, ccWHITE);
	}
	//寻宝 解封装备
	else if (info.type == MarqueeType_Discover_Unlock)
	{
		secondStr = LFStrings::getValue("Paomadeng_Xunbao_Jiefeng");
		if (ChuanqiPool::getPool()->getChuanQiData(info.object.group_id, chuanqiinfo))
		{
			name = chuanqiinfo.allChuanqiFenShenInLifeSpan.at(0).zhuangbei_name;
		}
		iCount = info.count;
		thirdlyStr = CCString::createWithFormat("*%d", iCount)->getCString();
		fullStr = pText->getConversionMsgStr(LFStrings::getValue("Paomadeng_Wanjia"), ccWHITE)
			+pText->getConversionMsgStr(firstStr, fonColor_FaGuang)
			+pText->getConversionMsgStr(secondStr, ccWHITE)
			+pText->getConversionMsgStr(name, fonColor_PuTong)
			+pText->getConversionMsgStr(thirdlyStr, ccWHITE);
	}
	
	if (firstStr == "")
	{
		return;	
	}
	if (!pLable)
	{
		pText->setTextWidth(this->getContentSize().width*10);
		pText->setTextSize(20);
		fullStr = pText->getConversionMsgStr(LFStrings::getValue("Paomadeng_XiTong"), ccWHITE) + fullStr;
		pText->addMessage(fullStr);

		NetLabelTTF* pLable = NetLabelTTF::create(pText->getMsgString().c_str(), fontStr_kaiti, 20);
		pLable->setMsgColorTexCoords(pText->getMsgColorTexCoordsList());
		pLable->setHorizontalAlignment(kCCTextAlignmentLeft);
		pLable->setHeight(pText->getHeight());

		messageBar->addChild(pLable, 101, Tag_MessageTipStr);
		pLable->setAnchorPoint(ccp(0.0f, 0.5f));
		pLable->setPosition(ccp(messageBar->getContentSize().width, messageBar->getContentSize().height/2-7));

		float distance = messageBar->getContentSize().width+pLable->getContentSize().width;
		float speed = 100.0f;
		float dt = 4.0f;
		dt = distance/speed;

		pLable->runAction(CCSequence::create(
			CCMoveBy::create(dt, ccp(-distance, 0)),
			CCCallFuncN::create(this, callfuncN_selector(MainFooterLayer::messageMoveDone)),
			CCDelayTime::create(3.0f),
			CCCallFuncN::create(this, callfuncN_selector(MainFooterLayer::getNewMessageInfo)),
			NULL));
	}
}