void PlotScript::dispatchAll(const char* str) { // 脚本初始化 ValueVector triggerOn; ValueVector vec1; stringToValueVector(std::string(str),"###",vec1); for (auto i:vec1) { ValueVector vec2; stringToValueVector(i.asString(),"~~~",vec2); if(vec2.size() < 2) { vec2.push_back(cocos2d::Value("")); } triggerOn.push_back(cocos2d::Value(vec2)); } for(auto trigger:triggerOn) { auto vec = trigger.asValueVector(); ValueMap map; stringToValueMap(vec.at(0).asString(),map); if(map["target"].asString() == "player") { map["target"] = Detect::shareDetect()->getPlayer()->getName(); } EventHelper::getInstance()->dispatchByStr(valueMapToString(map),vec.at(1).asString()); } }
void User::getShareReward(int index) { if(getShareRewardsLock(index - 1) == 1) { PopPanel::getInstance()->note("shareReward","type:Text---text:"+ a2u("已经获得该奖励"),1.0f,false,true); return; } auto name = "shareReward" + cocos2d::Value(index).asString(); ValueVector rewards; ValueVector rewardVec; stringToValueVector(PlotScript::sharedHD()->getLuaVarString("script/Test.lua", name.c_str()),"###",rewardVec); for(auto pair:rewardVec) { ValueMap rewardMap; stringToValueMap(pair.asString(), rewardMap); rewards.push_back(cocos2d::Value(rewardMap)); } // 默认只有一个奖品 auto rewardMap = rewards.at(0).asValueMap(); int typeId = rewardMap["typeId"].asInt(); int num = rewardMap["num"].asInt(); for(int i = 0; i < num; i ++) { auto prop = Prop::create(typeId); // 获得奖励 auto player = Detect::shareDetect()->getPlayer(); player->addProp(prop); } auto prop = Prop::create(typeId); PopPanel::getInstance()->note("cantEquip","type:Text---text:"+ a2u("恭喜获得 ###") + "type:Text---text:"+ prop->getNickName() + "|color:{255,0,0}"); setShareRewardsLock(index - 1, 1); }
bool SparDiskPanel::init() { _sparDisk = Detect::shareDetect()->getPlayer()->getSparDisk(); _equipSparPan = static_cast<Layout*>(Helper::seekWidgetByName(_root, "Panel_equipSpar")); _bagSparPan = static_cast<Layout*>(Helper::seekWidgetByName(_root, "Panel_bagSpar")); _introPan = static_cast<Layout*>(Helper::seekWidgetByName(_root, "Panel_intro")); _nickNameLab = static_cast<Text*>(_introPan->getChildByName("Label_name")); _introLab = static_cast<Text*>(_introPan->getChildByName("Label_intro")); _refineBtn = static_cast<Button*>(_introPan->getChildByName("Button_refine")); _patchNumLab = static_cast<Text*>(_introPan->getChildByName("Label_patchNum")); _completeLab = static_cast<Text*>(_introPan->getChildByName("Label_complete")); _refineBtn->addTouchEventListener(CC_CALLBACK_2(SparDiskPanel::onRefine, this)); for(auto node:_buttons->getChildren()) { auto button = static_cast<Button*>(node); button->addTouchEventListener(CC_CALLBACK_2(SparDiskPanel::onButtonClicked, this)); } int i = 0; // ³õʼ»¯ÒõÓ° // disks i = 0; for(auto sparPan:_equipSparPan->getChildren()) { auto image = static_cast<ImageView*>(sparPan->getChildByName("Image_item")); auto bg = static_cast<ImageView*>(sparPan->getChildByName("Image_bg_item")); auto button = static_cast<Button*>(sparPan->getChildByName("Button_item")); auto num = static_cast<TextAtlas*>(sparPan->getChildByName("AtlasLabel")); auto sparBox = SparBox::create(button,bg,image,num); _equipSparBoxs.pushBack(sparBox); button->addTouchEventListener(CC_CALLBACK_2(SparDiskPanel::onEquipSparClicked, this)); sparBox->setTag(i); i++; } // spar i = 0; for(auto sparPan:_bagSparPan->getChildren()) { auto image = static_cast<ImageView*>(sparPan->getChildByName("Image_item")); auto bg = static_cast<ImageView*>(sparPan->getChildByName("Image_bg_item")); auto button = static_cast<Button*>(sparPan->getChildByName("Button_item")); auto num = static_cast<TextAtlas*>(sparPan->getChildByName("AtlasLabel")); auto sparBox = SparBox::create(button,bg,image,num); _sparBoxs.pushBack(sparBox); button->addTouchEventListener(CC_CALLBACK_2(SparDiskPanel::onSparClicked, this)); sparBox->setTag(i); i++; auto name = sparPan->getName(); ValueVector valueName; stringToValueVector(name, "_", valueName); auto typeId = valueName.at(valueName.size() - 1).asInt(); sparBox->setFixSpar(typeId); } updateSpars(); setSelectSparBox(nullptr); _selectEquipSparBox = _equipSparBoxs.at(0); return true; }