Exemple #1
0
CCNode * SFLayer::nodeWithDictionary(CCDictionary * pDict)
{
	CCString * pClassName = (CCString *)pDict->objectForKey("Class");
	while (!pClassName)
	{
		// extend scroll layer
		CCString * pScrollEnabled = (CCString *)pDict->objectForKey("ScrollEnabled");
		if (pScrollEnabled && pScrollEnabled->boolValue())
		{
			pDict->setObject(CCString::stringWithCString("SFScrollLayer"), "Class");
			break;
		}
		
		// extend scale layer
		CCString * pScaleEnabled = (CCString *)pDict->objectForKey("ScaleEnabled");
		if (pScaleEnabled && pScaleEnabled->boolValue())
		{
			pDict->setObject(CCString::stringWithCString("SFScaleLayer"), "Class");
			break;
		}
		
		pDict->setObject(CCString::stringWithCString("SFLayer"), "Class");
		break;
	}
	return SFNode::nodeWithDictionary(pDict);
}
void MoreDiamondDialog::onLogInCompleted( CCNode *sender, void *data )
{
	CCLOG("onLogInCompleted");
	if (data != NULL)
	{
		CCDictionary *convertedData = (CCDictionary *)data;
		CCString* s = (CCString*)convertedData->objectForKey("isSuccess");
		if (s->boolValue())
		{
			CCLOG("CPP Log In Completed: TRUE");

			NDKHelper::AddSelector("MoreDiamondDialog",
				"onGetProfileCompleted",
				callfuncND_selector(MoreDiamondDialog::onGetProfileCompleted),
				this);
			SendMessageWithParams(string("GetProfile"), NULL);
		} 
		else
		{
			CCLOG("CPP Log In Completed: FALSE");
			CCMessageBox("Không thể kết nối", "Lỗi");
		}

		NDKHelper::RemoveSelector("MoreDiamondDialog", "onLogInCompleted");
	}
}
void MoreDiamondDialog::onPublishFeedCompleted( CCNode *sender, void *data )
{
	CCLOG("onPublishFeedCompleted");
	if (data != NULL)
	{
		CCDictionary *convertedData = (CCDictionary *)data;
		CCString* s = (CCString*)convertedData->objectForKey("isSuccess");
		if (s->boolValue())
		{
			CCLOG("CPP Publish Feed Completed: TRUE");
			
			CCMessageBox(
				CCString::createWithFormat("Bạn được nhận +%d kim cương.", CONF_INT(DIAMOND_FOR_SHARE))->getCString(),
				"Thưởng");
			DataManager::sharedDataManager()->AddDiamond(CONF_INT(DIAMOND_FOR_SHARE));
		} 
		else
		{
			CCLOG("CPP Publish Feed Completed: FALSE");
			CCMessageBox("Không thể chia sẻ", "Lỗi");
		}

		NDKHelper::RemoveSelector("MoreDiamondDialog", "onPublishFeedCompleted");
	}
}
void MoreDiamondDialog::onInviteAllCompleted( CCNode *sender, void *data )
{
	if (data != NULL)
	{
		CCDictionary *convertedData = (CCDictionary *)data;
		CCString* s = (CCString*)convertedData->objectForKey("isSuccess");
		if (s->boolValue())
		{
			CCLOG("CPP Invite All Completed: TRUE");
			CCString* requestId = (CCString*)convertedData->objectForKey("requestId");
			CCLOG("requestId: %s", requestId->getCString());

			CCArray *arrFriends = (CCArray *)convertedData->objectForKey("invitedFriends");

			int count = arrFriends->count();
			int total = CONF_INT(DIAMOND_FOR_INVITE) * count;

			DataManager::sharedDataManager()->AddDiamond(total);
			CCMessageBox(CCString::createWithFormat("Bạn nhận được:\n%d x %d bạn = %d kim cương", 
				CONF_INT(DIAMOND_FOR_INVITE), count, total)->getCString(),
				"Thưởng");
		}
		else
		{
			CCLOG("CPP Invite All Completed: FALSE");
			CCMessageBox("Không thể mời bạn", "Lỗi");
		}

		NDKHelper::RemoveSelector("MoreDiamondDialog", "onInviteAllCompleted");
	}
}
void MoreDiamondDialog::onRateCompleted( CCNode *sender, void *data )
{
	if (data != NULL)
	{
		CCDictionary *convertedData = (CCDictionary *)data;
		CCString* s = (CCString*)convertedData->objectForKey("isSuccess");
		if (s->boolValue())
		{
			CCLOG("CPP Rate Completed: TRUE");
			CCString* s = (CCString*)convertedData->objectForKey("responseType");
			CCLOG("%s", s->getCString());
			if (s->compare("RATE") == 0)
			{
				CCMessageBox(
					CCString::createWithFormat("Bạn được nhận +%d kim cương.", CONF_INT(DIAMOND_FOR_RATE))->getCString(),
					"Thưởng");
				DataManager::sharedDataManager()->AddDiamond(CONF_INT(DIAMOND_FOR_RATE));
				DataManager::sharedDataManager()->SetIsRatedApp(true);

				m_itlbRate->setEnabled(false);
				m_itlbRate->setOpacity(100);
			}
		} 
		else
		{
			CCLOG("CPP Rate Completed: FALSE");
		}

		NDKHelper::RemoveSelector("MoreDiamondDialog", "onRateCompleted");
	}
}
bool CComponentParameter::getBoolParameter(const string& name, bool& value)
{
    CCString* str = dynamic_cast<CCString*>(parameters_->objectForKey(name));
    if (!str)
    {
        return false;
    }
    value = str->boolValue();
    
    return true;
}
bool boolValueFromDictionary(CCDictionary * dict, const string & key)
{
	CCString * result = dynamic_cast<CCString *>(dict->objectForKey(key));
	if (result != NULL)
	{
		return result->boolValue();
	}
	else
	{
		return false;
	}
}
void MoreDiamondDialog::onGetProfileCompleted( CCNode *sender, void *data )
{
	CCLOG("onGetProfileCompleted");
	if (data != NULL)
	{
		CCDictionary *convertedData = (CCDictionary *)data;
		CCString* s = (CCString*)convertedData->objectForKey("isSuccess");
		if (s->boolValue())
		{
			CCLOG("CPP Get Profile Completed: TRUE");

			string fbId = ((CCString*)convertedData->objectForKey("id"))->getCString();
			string firstName = ((CCString*)convertedData->objectForKey("firstName"))->getCString();
			string name = ((CCString*)convertedData->objectForKey("name"))->getCString();
			string username = ((CCString*)convertedData->objectForKey("username"))->getCString();
			string birthday = ((CCString*)convertedData->objectForKey("birthday"))->getCString();
			string picture50x50 = ((CCString*)convertedData->objectForKey("picture"))->getCString();

			//save

			DataManager::sharedDataManager()->SetFbID(fbId);
			DataManager::sharedDataManager()->SetFbFullName(name);
			DataManager::sharedDataManager()->SetName(name);
			DataManager::sharedDataManager()->SetFbUserName(username);

			//////////////////////////////////////////////////////////////////////////

			NDKHelper::AddSelector("MoreDiamondDialog",
				"onGetAvatarCompleted",
				callfuncND_selector(MoreDiamondDialog::onGetAvatarCompleted),
				this);

			string w = "128";
			string h = "128";

			CCDictionary* prms = CCDictionary::create();
			prms->setObject(CCString::create(fbId), "fbId");
			prms->setObject(CCString::create(w), "width");
			prms->setObject(CCString::create(h), "height");

			SendMessageWithParams(string("GetAvatar"), prms);
		} 
		else
		{
			CCLOG("CPP Get Profile Completed: FALSE");
			CCMessageBox("Không thể kết nối", "Lỗi");
		}

		NDKHelper::RemoveSelector("MoreDiamondDialog", "onGetProfileCompleted");
	}
}
//带参执行Lua方法有返回值
const char* SendLuaData::callLuaFuncParReturn(const char* luaFileName,const char* functionName,CCArray* arraypar,CCArray* arraypartype)
{
    lua_State*  ls = LuaEngine::defaultEngine()->getLuaStack()->getLuaState();
    
    int isOpen = luaL_dofile(ls, getFileFullPath(luaFileName));
    if(isOpen!=0){
        CCLOG("Open Lua Error: %i", isOpen);
        return NULL;
    }
    
    lua_getglobal(ls, functionName);
    int countnum = arraypar->count();
    if(countnum>0)
    {
        for (int i = 0; i<arraypar->count(); i++) {
            CCString* typestr = (CCString*)arraypartype->objectAtIndex(i);
            CCString* strnr = (CCString*)arraypar->objectAtIndex(i);
            if(typestr->isEqual(CCString::create("string")))
            {
                lua_pushstring(ls, strnr->getCString());
            }
            else if(typestr->isEqual(CCString::create("int")))
            {
                lua_pushnumber(ls, strnr->intValue());
            }
            else if(typestr->isEqual(CCString::create("bool")))
            {
                lua_pushboolean(ls, strnr->boolValue());
            }
        }
    }
    /*
     lua_call
     第一个参数:函数的参数个数
     第二个参数:函数返回值个数
     */
    lua_call(ls, countnum, 1);
    
    const char* iResult = lua_tostring(ls, -1);
    
    return iResult;
}
void MoreDiamondDialog::onGetAvatarCompleted( CCNode* pSender, void *data )
{
	CCLOG("onGetAvatarCompleted");
	if (data != NULL)
	{
		CCDictionary *convertedData = (CCDictionary *)data;
		CCString* s = (CCString*)convertedData->objectForKey("isSuccess");
		if (s->boolValue())
		{
			CCLOG("CPP Get Avatar Completed: TRUE");
			DataManager::sharedDataManager()->SetFbIsLogIn(true);

			CCString* path = (CCString*)convertedData->objectForKey("path");
			DataManager::sharedDataManager()->SetFbPhotoPath(path->getCString());

			MenuScene* parent = (MenuScene*) this->getParent();
			parent->m_itFacbook->runAction(CCFadeOut::create(0.5f));

			//show
			if (m_curOperator.compare("invite") == 0)
			{
				inviteCallback(NULL);
			} 
			else if (m_curOperator.compare("share") == 0)
			{
				shareCallback(NULL);
			}
		} 
		else
		{
			CCLOG("CPP Get Avatar Completed: FALSE");
			CCMessageBox("Không thể kết nối", "Lỗi");
		}

		NDKHelper::RemoveSelector("MoreDiamondDialog", "onGetAvatarCompleted");
	}
}