bool GChapterOneLayer::init()
{
	if (!CCLayer::init())
	{
		return false;
	}
	IsKillBoss=false;
	_mapMaxNum=3;
	_mapCurrentNum=1;
	_tileMapSizex=(float)1/2;
	strcpy(mapdata,"Map1_");
	initPlayer();
	initTileMap();
	initEnemy();
	return true;
}
bool MainCityLayer::initWithID(int ID)
{
	bool bRet = false;
	do 
	{
        CC_BREAK_IF(!BaseLayer::init());

		SqliteResolver* srl = SqliteResolver::create(TABLE_MAIN_CITY, ID);
		CC_BREAK_IF(!srl);

        initTileMap(srl->getInt("MapID"));
		initEntitiesManager();
        
        RoleResolver resolver;
        m_hero = resolver.createHero(1);
        CC_BREAK_IF(!m_hero);
		addChild(m_hero);

		m_hero->setPosition3D(m_hero->getPosition3D());

		Array* arr = srl->getArray("NPCs");

		Object* element;
		CCARRAY_FOREACH(arr, element)
		{
			Point3D pt = Point3DFromString(((String*)element)->getCString());
			NPCSprite* npc = NPCSprite::create(pt.z);
			addChild(npc);

			npc->setTarget(m_hero);
			npc->setPosition(Point(pt.x, pt.y));
		}

		arr = srl->getArray("Portals");
		CCARRAY_FOREACH(arr, element)
		{
			Point3D pt = Point3DFromString(((String*)element)->getCString());
			DungeonPortal* portal = DungeonPortal::create();
			addChild(portal);

			portal->setDungeonID(pt.z);
			portal->setTarget(m_hero);
			portal->setPosition(Point(pt.x, pt.y));
		}