343 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			343 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | // 塭桧?棚 错卫缣 当撩肾朝 维暧 潍虞 | ||
|  | PO_LIGHTNING_WALL_CREATE	<- 2; // ?卫粽 螃粽薛?朝 state陛 2睡搅 卫蒙?棻. | ||
|  | PO_LIGHTNING_WALL_MOVE		<- 3; | ||
|  | PO_LIGHTNING_WALL_DESTROY	<- 4; | ||
|  | 
 | ||
|  | PO_LIGHTNING_VAR_LIGHTNING_1 <- 0; | ||
|  | PO_LIGHTNING_VAR_LIGHTNING_2 <- 1; | ||
|  | PO_LIGHTNING_VAR_TARGET_X_POS <- 2; | ||
|  | PO_LIGHTNING_VAR_DIRECTION	  <- 3; // 潍虞暧 寞?擎 ?鼻 伪晦 阳侥缣 蟾晦 寞?击 荡潍 | ||
|  | 
 | ||
|  | 
 | ||
|  | PO_LIGHTNING_1_DISTANCE_X <- 61; | ||
|  | PO_LIGHTNING_1_DISTANCE_Y <- 32; | ||
|  | PO_LIGHTNING_2_DISTANCE_X <- -76; | ||
|  | PO_LIGHTNING_2_DISTANCE_Y <- -32; | ||
|  | 
 | ||
|  | PO_LIGHTNING_TIMER_BLACK_MARK_SMALL  <- 0; // 蒙擎 夥款 濠措 当撩 卫除		 | ||
|  | PO_LIGHTNING_TIMER_BLACK_MARK_BIG	 <- 1; // 赎 夥款 濠措 当撩 卫除 | ||
|  | PO_LIGHTNING_TIMER_ELEC_MARK_1		 <- 2; // 瞪晦 葆觼 1 | ||
|  | PO_LIGHTNING_TIMER_ELEC_MARK_2		 <- 3; // 瞪晦 葆觼 2		 | ||
|  | 		 | ||
|  | 		 | ||
|  | 
 | ||
|  | // 蝶鹧? 等桧搅蒂 奁舱?罹 谆桧锷 亵瞰 | ||
|  | function lightingWallObjAniResizeing(parentObj, obj){ | ||
|  | 	local parentChr = parentObj.getTopCharacter(); | ||
|  | 	if(!parentChr) | ||
|  | 		return; | ||
|  | 		 | ||
|  | 	local size = sq_GetIntData(parentChr, SKILL_LIGHTNING_WALL, 0);	 | ||
|  | 	size = size.tofloat()/100.0; | ||
|  | 	 | ||
|  | 	local ani = sq_GetCurrentAnimation(obj);	 | ||
|  | 	if(ani) | ||
|  | 		ani.resizeWithChild(size);	 | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | // 饵桧锷 渗?缣 评艇 螃?掸 嫔纂蒂 葬欐. | ||
|  | function getLightningWallPos(obj, offset) { | ||
|  | 	local parentChr = obj.getTopCharacter(); | ||
|  | 	if(!parentChr) | ||
|  | 		return offset; | ||
|  | 			 | ||
|  | 	local walllGap = sq_GetIntData(parentChr, SKILL_LIGHTNING_WALL, 0);		 | ||
|  | 	offset = offset.tofloat() * (walllGap.tofloat()/100.0); | ||
|  | 	 | ||
|  | 	return offset.tointeger();	 | ||
|  | } | ||
|  | 
 | ||
|  | // 夥款 瞪晦 葆觼 当撩 | ||
|  | function lightningWallMakeElectMark(obj, x, y) | ||
|  | { | ||
|  | 	local randNum = sq_getRandom(0,1); | ||
|  | 	local elecMark  = sq_AddDrawOnlyAniFromParent(obj,"PassiveObject/Character/Mage/Animation/ATLightningWall/8_el-p2_dodge_" + randNum + ".ani", 0, 0, 0); | ||
|  | 	local x = obj.getXPos() + getLightningWallPos(obj, x); | ||
|  | 	local y = obj.getYPos() + getLightningWallPos(obj, y); | ||
|  | 	elecMark.setCurrentPos(x, y, 0); | ||
|  | 	lightingWallObjAniResizeing(obj, elecMark); | ||
|  | 	local ani = sq_GetCurrentAnimation(obj); | ||
|  | } | ||
|  | 
 | ||
|  | function setCustomData_po_ATLightningWall(obj, receiveData) | ||
|  | { | ||
|  | 	if(!obj) return; | ||
|  | 		 | ||
|  | 	local moveDistance = receiveData.readDword();	 | ||
|  | 	local attackPower  = receiveData.readDword();	 | ||
|  | 	local skill_level  = receiveData.readDword();	 | ||
|  | 	local prob		   = receiveData.readFloat();	 | ||
|  | 	local level		   = receiveData.readDword();	 | ||
|  | 	local duration	   = receiveData.readDword();	 | ||
|  | 	local lightDamage  = receiveData.readDword();	 | ||
|  | 	local attackInfo = sq_GetCurrentAttackInfo(obj); | ||
|  | 	 | ||
|  | 	sq_SetCurrentAttackBonusRate(attackInfo, attackPower);	 | ||
|  | 	sq_SetChangeStatusIntoAttackInfoWithEtc(attackInfo, 0, ACTIVESTATUS_LIGHTNING ,prob.tointeger() ,level ,duration, lightDamage, 0); | ||
|  | 	sq_SetCurrentAttackeHitStunTime(attackInfo, 0); | ||
|  | 	 | ||
|  | 	// 谢办 塭桧?棚 偌羹 当撩 | ||
|  | 	local var = obj.getVar();	 | ||
|  | 	local lightningObj1 = sq_AddDrawOnlyAniFromParent(obj,"PassiveObject/Character/Mage/Animation/ATLightningWall/5_el-p_normal_1.ani", PO_LIGHTNING_1_DISTANCE_X, PO_LIGHTNING_1_DISTANCE_Y, 0); | ||
|  | 	local lightningObj2 = sq_AddDrawOnlyAniFromParent(obj,"PassiveObject/Character/Mage/Animation/ATLightningWall/5_el-p_normal_2.ani", PO_LIGHTNING_2_DISTANCE_X, PO_LIGHTNING_2_DISTANCE_Y, 0); | ||
|  | 	lightingWallObjAniResizeing(obj, lightningObj1); | ||
|  | 	lightingWallObjAniResizeing(obj, lightningObj2); | ||
|  | 	 | ||
|  | 	var.setObject(PO_LIGHTNING_VAR_LIGHTNING_1, lightningObj1); | ||
|  | 	var.setObject(PO_LIGHTNING_VAR_LIGHTNING_2, lightningObj2);	 | ||
|  | 		 | ||
|  | 	local targetXPos = sq_GetDistancePos(50, sq_GetDirection(obj), moveDistance); // 譆谦迹瞳虽 x谢?  | ||
|  | 	var.setInt(PO_LIGHTNING_VAR_TARGET_X_POS, targetXPos);	 | ||
|  | 	var.setInt(PO_LIGHTNING_VAR_DIRECTION,  sq_GetDirection(obj));	 | ||
|  | 		 | ||
|  | 	// 维暧 潍虞擎 卫薄鼻 ?鼻 螃艇薹桧横捡 ?棻. | ||
|  | 	obj.setDirection(ENUM_DIRECTION_RIGHT); | ||
|  | 	lightingWallObjAniResizeing(obj, obj); | ||
|  | 	 | ||
|  | 	obj.sendStateOnlyPacket(PO_LIGHTNING_WALL_CREATE); | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | function onKeyFrameFlag_po_ATLightningWall(obj, keyIndex) | ||
|  | { | ||
|  | 	// 当撩卫 霞翕 | ||
|  | 	if(keyIndex == 1) { | ||
|  | 		sq_SetMyShake(obj,4,200); | ||
|  | 		return false;		 | ||
|  | 	} | ||
|  | 	 | ||
|  | 	return true; | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | function onTimeEvent_po_ATLightningWall(obj, timeEventIndex, timeEventCount) | ||
|  | { | ||
|  | 	if(timeEventIndex == PO_LIGHTNING_TIMER_BLACK_MARK_SMALL) // 夥款缣 匐湮桧 濠措 | ||
|  | 	{ | ||
|  | 		if(obj.isCurrentAnimationIndex(0)) {			 | ||
|  | 			local var = obj.getVar(); | ||
|  | 			local lightningObj1 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_1); | ||
|  | 			local lightningObj2 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_2); | ||
|  | 						 | ||
|  | 			if(lightningObj1) {					 | ||
|  | 				local floorMark = sq_AddDrawOnlyAniFromParent(obj,"PassiveObject/Character/Mage/Animation/ATLightningWall/0_bottom_normal_1.ani", 0, 0, 0); | ||
|  | 				floorMark.setCurrentPos(lightningObj1.getXPos(), lightningObj1.getYPos(), 0);				 | ||
|  | 				lightingWallObjAniResizeing(obj, floorMark); | ||
|  | 				sq_ChangeDrawLayer(floorMark, ENUM_DRAWLAYER_BOTTOM);				 | ||
|  | 			} | ||
|  | 			 | ||
|  | 			if(lightningObj2) {							 | ||
|  | 				local floorMark = sq_AddDrawOnlyAniFromParent(obj,"PassiveObject/Character/Mage/Animation/ATLightningWall/0_bottom_normal_1.ani", 0, 0, 0); | ||
|  | 				floorMark.setCurrentPos(lightningObj2.getXPos(), lightningObj2.getYPos(), 0);					 | ||
|  | 				lightingWallObjAniResizeing(obj, floorMark); | ||
|  | 				sq_ChangeDrawLayer(floorMark, ENUM_DRAWLAYER_BOTTOM); | ||
|  | 			} | ||
|  | 		 | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 		else | ||
|  | 			return true; | ||
|  | 		 | ||
|  | 	} | ||
|  | 	else if(timeEventIndex == PO_LIGHTNING_TIMER_BLACK_MARK_BIG)  // 夥款缣 匐湮桧 濠措 | ||
|  | 	{ | ||
|  | 		if(obj.isCurrentAnimationIndex(0)) {		 | ||
|  | 			local randNum = sq_getRandom(0,2);			 | ||
|  | 			local floorDark = sq_AddDrawOnlyAniFromParent(obj,"PassiveObject/Character/Mage/Animation/ATLightningWall/0_bottom_normal_2.ani", 0, 0, 0); | ||
|  | 			sq_ChangeDrawLayer(floorDark, ENUM_DRAWLAYER_BOTTOM); | ||
|  | 			lightingWallObjAniResizeing(obj, floorDark); | ||
|  | 			 | ||
|  | 			local floorElec = sq_AddDrawOnlyAniFromParent(obj,"PassiveObject/Character/Mage/Animation/ATLightningWall/4_el-b_dodge_" + randNum+ ".ani", 0, 0, 0);			 | ||
|  | 			sq_ChangeDrawLayer(floorElec, ENUM_DRAWLAYER_BOTTOM); | ||
|  | 			lightingWallObjAniResizeing(obj, floorElec); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 		else  | ||
|  | 			return true; | ||
|  | 	} | ||
|  | 	else if(timeEventIndex == PO_LIGHTNING_TIMER_ELEC_MARK_1)  // 瞪晦 涛鼻 | ||
|  | 	{ | ||
|  | 		if(obj.isCurrentAnimationIndex(0)) { | ||
|  | 			lightningWallMakeElectMark(obj, PO_LIGHTNING_1_DISTANCE_X , PO_LIGHTNING_1_DISTANCE_Y);			 | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 		else  | ||
|  | 			return true; | ||
|  | 	} | ||
|  | 	else if(timeEventIndex == PO_LIGHTNING_TIMER_ELEC_MARK_2) // 瞪晦 涛鼻 | ||
|  | 	{ | ||
|  | 		if(obj.isCurrentAnimationIndex(0)) { | ||
|  | 			lightningWallMakeElectMark(obj, PO_LIGHTNING_2_DISTANCE_X , PO_LIGHTNING_2_DISTANCE_Y); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 		else  | ||
|  | 			return true; | ||
|  | 	} | ||
|  | 				 | ||
|  | 				 | ||
|  | 				 | ||
|  | 	return true;	 | ||
|  | }  | ||
|  | 
 | ||
|  | function setState_po_ATLightningWall(obj, state, datas) | ||
|  | { | ||
|  | 	if(!obj) return; | ||
|  | 	 | ||
|  | 	if(state == PO_LIGHTNING_WALL_MOVE) { //桧翕		 | ||
|  | 		setCurrentAnimationFromCutomIndex(obj, 0);			 | ||
|  | 		obj.sq_SetMoveParticle("Particle/ATLightningWall.ptl", 0.0, 0.0 );// 桧翕 ??赝 虽姜		 | ||
|  | 			 | ||
|  | 		local parentChr		= obj.getTopCharacter(); | ||
|  | 		local size = sq_GetIntData(parentChr, SKILL_LIGHTNING_WALL, 0);	 | ||
|  | 		size = size.tofloat()/100.0; //谆桧锷. 谆桧锷陛 觼贼 夥款缣 桧嘐虽蒂 斜葬朝 除问紫 创?棻. | ||
|  | 		 | ||
|  | 		local speed			= sq_GetIntData(parentChr, SKILL_LIGHTNING_WALL, 1); | ||
|  | 		local speedPerSec	= speed.tofloat()/1000.0; | ||
|  | 		local calltime		= 55.0/speedPerSec  * size; | ||
|  | 				 | ||
|  | 		if(parentChr) {	 | ||
|  | 			// 卫薄鼻 塭桧?棚 错擎 ?薹 寞?戏煎虏 尔樯棻. 评塭怃 奁渠寞?缣怃 陈莴唳办 寞?击 庵煎 ?棻. | ||
|  | 			if(parentChr.getDirection() != obj.getDirection())  | ||
|  | 				speed = -speed; | ||
|  | 							 | ||
|  | 			sq_SetSpeedToMoveParticle(obj,0,speed); // x蹴 蝶?萄 虽姜			 | ||
|  | 		} | ||
|  | 
 | ||
|  | 		obj.setTimeEvent(PO_LIGHTNING_TIMER_BLACK_MARK_SMALL, calltime.tointeger(),999,true); // 蒙擎 夥款 濠措 当撩 卫除		 | ||
|  | 		 | ||
|  | 		calltime = 100.0/speedPerSec * size;		 | ||
|  | 		obj.setTimeEvent(PO_LIGHTNING_TIMER_BLACK_MARK_BIG, calltime.tointeger(),999,true); // 赎 夥款 濠措 当撩 卫除 | ||
|  | 		 | ||
|  | 		calltime = 90.0/speedPerSec  * size; | ||
|  | 		obj.setTimeEvent(PO_LIGHTNING_TIMER_ELEC_MARK_1, calltime.tointeger(),999,true); // 瞪晦 葆觼 | ||
|  | 		 | ||
|  | 		calltime = 110.0/speedPerSec  * size; | ||
|  | 		obj.setTimeEvent(PO_LIGHTNING_TIMER_ELEC_MARK_2, calltime.tointeger(),999,true); // 瞪晦 葆觼 | ||
|  | 		 | ||
|  | 		local var = obj.getVar(); | ||
|  | 		local lightningObj1 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_1); | ||
|  | 		local lightningObj2 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_2);					 | ||
|  | 			 | ||
|  | 		// 桧?? 称桧晦    /|/|/|   <- 蹂楛 窒葬 伪擎 桧?? | ||
|  | 		local currentAni = sq_GetCurrentAnimation(lightningObj1); | ||
|  | 		if(currentAni) { | ||
|  | 			currentAni.addLayerAnimation(6,sq_CreateAnimation("","PassiveObject/Character/Mage/Animation/ATLightningWall/7_el-p1_dodge_1.ani"),true); | ||
|  | 			 | ||
|  | 			currentAni = sq_GetCurrentAnimation(lightningObj2); | ||
|  | 			currentAni.addLayerAnimation(6,sq_CreateAnimation("","PassiveObject/Character/Mage/Animation/ATLightningWall/7_el-p1_dodge_2.ani"),true); | ||
|  | 		} | ||
|  | 		lightingWallObjAniResizeing(obj, obj); | ||
|  | 	} | ||
|  | 	else if(state == PO_LIGHTNING_WALL_DESTROY) { | ||
|  | 		obj.sq_RemoveMoveParticle(); // 桧翕部		 | ||
|  | 		setCurrentAnimationFromCutomIndex(obj, 1); // ?惚 拥栖		 | ||
|  | 		lightingWallObjAniResizeing(obj, obj); | ||
|  | 		 | ||
|  | 		local var = obj.getVar(); | ||
|  | 		local lightningObj1 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_1); | ||
|  | 		local lightningObj2 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_2); | ||
|  | 		if(lightningObj1 && lightningObj2) { | ||
|  | 			lightningObj1.setValid(false); | ||
|  | 			lightningObj2.setValid(false); | ||
|  | 			 | ||
|  | 			lightningObj1 = sq_AddDrawOnlyAniFromParent(obj,"PassiveObject/Character/Mage/Animation/ATLightningWall/d5_el-p_normal_1.ani", PO_LIGHTNING_1_DISTANCE_X, PO_LIGHTNING_1_DISTANCE_Y, 0); | ||
|  | 			lightningObj2 = sq_AddDrawOnlyAniFromParent(obj,"PassiveObject/Character/Mage/Animation/ATLightningWall/d5_el-p_normal_2.ani", PO_LIGHTNING_2_DISTANCE_X, PO_LIGHTNING_2_DISTANCE_Y, 0); | ||
|  | 			 | ||
|  | 			var.setObject(PO_LIGHTNING_VAR_LIGHTNING_1, lightningObj1); | ||
|  | 			var.setObject(PO_LIGHTNING_VAR_LIGHTNING_2, lightningObj2);		 | ||
|  | 		} | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | function onAttack_po_ATLightningWall(obj, damager, boundingBox, isStuck) | ||
|  | {	 | ||
|  | 	if(sq_IsHoldable(obj,damager) && sq_IsGrabable(obj,damager) && !sq_IsFixture(damager)) {	 | ||
|  | 		local parentChr = obj.getTopCharacter(); | ||
|  | 		local masterAppendage = CNSquirrelAppendage.sq_AppendAppendage(damager, obj, SKILL_LIGHTNING_WALL, false, "Character/ATMage/LightningWall/ap_LightningWall.nut", true);				  | ||
|  | 		if(parentChr && masterAppendage) {			 | ||
|  | 			sq_HoldAndDelayDie(damager, obj, true, true, true, 200, 200, ENUM_DIRECTION_NEUTRAL , masterAppendage);			 | ||
|  | 	 | ||
|  | 			local time = sq_GetIntData(parentChr, SKILL_LIGHTNING_WALL, 3); // 虽虽霜 唳霜卫除 | ||
|  | 			local appendageInfo = masterAppendage.getAppendageInfo(); | ||
|  | 			appendageInfo.setValidTime(time); | ||
|  | 		} | ||
|  | 	} | ||
|  | 	return 0; | ||
|  | } | ||
|  | 
 | ||
|  | function procAppend_po_ATLightningWall(obj) | ||
|  | { | ||
|  | 	if(!obj) return; | ||
|  | 	local var = obj.getVar(); | ||
|  | 	 | ||
|  | 	if(!var) return; | ||
|  | 	 | ||
|  | 	local lightningObj1 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_1); | ||
|  | 	local lightningObj2 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_2); | ||
|  | 	 | ||
|  | 	local pos1X = getLightningWallPos(obj, PO_LIGHTNING_1_DISTANCE_X);	 | ||
|  | 	local pos1Y = getLightningWallPos(obj, PO_LIGHTNING_1_DISTANCE_Y); | ||
|  | 	local pos2X = getLightningWallPos(obj, PO_LIGHTNING_2_DISTANCE_X); | ||
|  | 	local pos2Y = getLightningWallPos(obj, PO_LIGHTNING_2_DISTANCE_Y); | ||
|  | 			 | ||
|  | 	if(lightningObj1) | ||
|  | 		lightningObj1.setCurrentPos(obj.getXPos() + pos1X.tointeger(), obj.getYPos()+ pos1Y.tointeger(), obj.getZPos()); // ?惚陛 嬴栖塭 ?惚 拥栖煎 掖羹. | ||
|  | 	if(lightningObj2) | ||
|  | 		lightningObj2.setCurrentPos(obj.getXPos() + pos2X.tointeger(), obj.getYPos()+ pos2Y.tointeger(), obj.getZPos());	 | ||
|  | 	 | ||
|  | 	local targetXPos = var.getInt(PO_LIGHTNING_VAR_TARGET_X_POS); | ||
|  | 	local direction = var.getInt(PO_LIGHTNING_VAR_DIRECTION); | ||
|  | 	 | ||
|  | 	if(direction == ENUM_DIRECTION_RIGHT) { | ||
|  | 		if(obj.getXPos() > targetXPos) | ||
|  | 		{	 | ||
|  | 			sq_SetCurrentPos(obj, targetXPos, obj.getYPos(), obj.getZPos()); | ||
|  | 			obj.sendStateOnlyPacket(PO_LIGHTNING_WALL_DESTROY); | ||
|  | 		} | ||
|  | 	} | ||
|  | 	else if(direction == ENUM_DIRECTION_LEFT) { | ||
|  | 		if(obj.getXPos() < targetXPos) | ||
|  | 		{	 | ||
|  | 			sq_SetCurrentPos(obj, targetXPos, obj.getYPos(), obj.getZPos()); | ||
|  | 			obj.sendStateOnlyPacket(PO_LIGHTNING_WALL_DESTROY); | ||
|  | 		} | ||
|  | 	} | ||
|  | 	else { | ||
|  | 		obj.sendStateOnlyPacket(PO_LIGHTNING_WALL_DESTROY);	 // 寞?桧 桡戏贼 饵塭虽虽 强挤戏煎 ?惚 | ||
|  | 	} | ||
|  | 	 | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | function onEndCurrentAni_po_ATLightningWall(obj) | ||
|  | { | ||
|  | 	if(!obj) return; | ||
|  | 	 | ||
|  | 	if(obj.isCurrentAnimationIndex(1)) { | ||
|  | 		if(obj.isMyControlObject()) | ||
|  | 			sq_SendDestroyPacketPassiveObject(obj); // 饵塭虽朝 赅暮? ?惚 | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | function onDestroyObject_po_ATLightningWall(obj, destroyObj) | ||
|  | { | ||
|  | 	if(!obj || isSameObject(obj,destroyObj)) { | ||
|  | 		local var = obj.getVar(); | ||
|  | 		local lightningObj1 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_1); | ||
|  | 		local lightningObj2 = var.getObject(PO_LIGHTNING_VAR_LIGHTNING_2); | ||
|  | 		if(lightningObj1) | ||
|  | 			lightningObj1.setValid(false); // ?惚陛 嬴栖塭 ?惚 拥栖煎 掖羹. | ||
|  | 		if(lightningObj2) | ||
|  | 			lightningObj2.setValid(false); | ||
|  | 	} | ||
|  | 	 | ||
|  | 	local parentChr = obj.getTopCharacter(); | ||
|  | 	if(isSameObject(obj,parentChr)) { | ||
|  | 		if(obj.isMyControlObject()) | ||
|  | 			sq_SendDestroyPacketPassiveObject(obj); 		 | ||
|  | 	}		 | ||
|  | } |