157 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| // 横?蛤虽虏击 称桧坚 鼻撮晦栋擎 横?蛤虽缣怃 棻 ?棻.
 | ||
| 
 | ||
| 
 | ||
| function checkExecutableSkill_LightningWall(obj)
 | ||
| {
 | ||
| 	if(!obj) return false;
 | ||
| 
 | ||
| 	local b_useskill = obj.sq_IsUseSkill(SKILL_LIGHTNING_WALL);
 | ||
| 	if(b_useskill) {
 | ||
| 		obj.sq_AddSetStatePacket(STATE_LIGHTNING_WALL , STATE_PRIORITY_USER, false);
 | ||
| 		return true;
 | ||
| 	}	
 | ||
| 	return false;
 | ||
| 
 | ||
| }
 | ||
| 
 | ||
| function checkCommandEnable_LightningWall(obj)
 | ||
| {
 | ||
| 	if(!obj)
 | ||
| 		return false;
 | ||
| 
 | ||
| 	local state = obj.sq_GetState();
 | ||
| 	
 | ||
| 	if(state == STATE_ATTACK) {
 | ||
| 		// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20]
 | ||
| 		return obj.sq_IsCommandEnable(SKILL_LIGHTNING_WALL);
 | ||
| 	}
 | ||
| 	
 | ||
| 	return true;
 | ||
| }
 | ||
| 
 | ||
| function onEndState_LightningWall(obj, newState)
 | ||
| {
 | ||
| 	if(!obj)
 | ||
| 		return;
 | ||
| 
 | ||
| 	if(newState != STATE_LIGHTNING_WALL) 
 | ||
| 		setLightningWallState(obj, PO_LIGHTNING_WALL_DESTROY);
 | ||
| }
 | ||
| 
 | ||
| function onSetState_LightningWall(obj, state, datas, isResetTimer)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 	
 | ||
| 	obj.sq_StopMove();
 | ||
| 	obj.sq_SetCurrentAnimation(CUSTOM_ANI_LIGHTNING_WALL);
 | ||
| 	
 | ||
| 	// 议蝶? 楼紫蒂 评塭陛紫烟 扑姜
 | ||
| 	// 议蝶? 楼紫陛 渗唳肾贼, 缣栖诡桧暮 楼紫紫 渗唳 腌栖棻.
 | ||
| 	// 议蝶? 啪桧虽紫 ?卫蒂 ?鄹栖棻.
 | ||
| 	local skillLevel = sq_GetSkillLevel(obj, SKILL_LIGHTNING_WALL);
 | ||
| 	local castTime  = sq_GetCastTime(obj, SKILL_LIGHTNING_WALL, skillLevel);
 | ||
| 	local animation = sq_GetCurrentAnimation(obj);
 | ||
| 	local castAniTime = sq_GetFrameStartTime(animation, 6);
 | ||
| 	local speedRate = castAniTime.tofloat() / castTime.tofloat();
 | ||
| 	obj.sq_SetStaticSpeedInfo(SPEED_TYPE_CAST_SPEED, SPEED_TYPE_CAST_SPEED,
 | ||
| 		SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, speedRate, speedRate);
 | ||
| 
 | ||
| 	sq_StartDrawCastGauge(obj, castAniTime, true);
 | ||
| 	
 | ||
| 	local var = obj.getVar();
 | ||
| 	var.setBool(0,false);
 | ||
| 	addElementalChain_ATMage(obj, ENUM_ELEMENT_LIGHT);
 | ||
| }
 | ||
| 
 | ||
| function setLightningWallState(obj, state)
 | ||
| {
 | ||
| 	if(!obj || !obj.isMyControlObject())
 | ||
| 		return;
 | ||
| 		
 | ||
| 	local count = obj.getMyPassiveObjectCount(24218);
 | ||
| 	
 | ||
| 	for(local i =0; i<count ; ++i) {
 | ||
| 		local wall = obj.getMyPassiveObject(24218,i);
 | ||
| 		if(wall) {
 | ||
| 			local var = obj.getVar();	
 | ||
| 			local isSendMove = var.getBool(0);
 | ||
| 	
 | ||
| 			if(state == PO_LIGHTNING_WALL_DESTROY) // 桧嘐 桧翕酝橾隆 赅暮桧 镞模 腑棻坚 饵塭虽虽 强朝棻.
 | ||
| 			{
 | ||
| 				if(wall.getState() != PO_LIGHTNING_WALL_MOVE)
 | ||
| 					wall.sendStateOnlyPacket(PO_LIGHTNING_WALL_DESTROY);
 | ||
| 			}
 | ||
| 			else
 | ||
| 			{
 | ||
| 				wall.sendStateOnlyPacket(state);
 | ||
| 			}
 | ||
| 		}
 | ||
| 	}
 | ||
| }
 | ||
| 
 | ||
| function onEndCurrentAni_LightningWall(obj)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 	obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
 | ||
| }
 | ||
| 
 | ||
| function onProc_LightningWall(obj)
 | ||
| {
 | ||
| 	if(!obj)
 | ||
| 		return;
 | ||
| 	local var = obj.getVar();	
 | ||
| 	
 | ||
| 	if(obj.isMyControlObject() && var.getBool(0) == false && sq_GetCurrentFrameIndex(obj) > 20)
 | ||
| 	{
 | ||
| 		setLightningWallState(obj,PO_LIGHTNING_WALL_MOVE);			
 | ||
| 		sq_flashScreen(obj, 0, 1000,500, 180, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
 | ||
| 
 | ||
| 		var.setBool(0,true);
 | ||
| 		obj.sq_PlaySound("LIGHTWALL_SHOT");
 | ||
| 	}	
 | ||
| }
 | ||
| 
 | ||
| function onKeyFrameFlag_LightningWall(obj, flagIndex)
 | ||
| {
 | ||
| 	if(!obj) return true;	
 | ||
| 	if (flagIndex == 1) {
 | ||
| 		sq_EndDrawCastGauge(obj);
 | ||
| 		sq_EffectLayerAppendageOnlyBody(obj, sq_RGB(255,255,255), 255, 0, 0, 320);
 | ||
| 		
 | ||
| 		if(obj.isMyControlObject()) {			
 | ||
| 			local yByDirection = -1; 
 | ||
| 			if(obj.getDirection() != ENUM_DIRECTION_RIGHT)
 | ||
| 				yByDirection = 1;
 | ||
| 						
 | ||
| 			local moveDistance	= sq_GetIntData(obj, SKILL_LIGHTNING_WALL, 2); //2: 桧翕 剪葬
 | ||
| 			local attackPower	= obj.sq_GetBonusRateWithPassive(SKILL_LIGHTNING_WALL , STATE_LIGHTNING_WALL, 0, 1.0);		
 | ||
| 			local skill_level	= sq_GetSkillLevel(obj, SKILL_LIGHTNING_WALL);
 | ||
| 			local prob			= sq_GetLevelData(obj, SKILL_LIGHTNING_WALL, 2, skill_level)/10.0; // 2. 马瞪 ?睦 (0.1%)
 | ||
| 			local level			= sq_GetLevelData(obj, SKILL_LIGHTNING_WALL, 1, skill_level); // 1. 马瞪 溯涟
 | ||
| 			local duration		= sq_GetLevelData(obj, SKILL_LIGHTNING_WALL, 4, skill_level); // 4. 虽楼卫除
 | ||
| 			local lightDamage	= sq_GetLevelData(obj, SKILL_LIGHTNING_WALL, 3, skill_level); // 3. 马瞪 奢问溘
 | ||
| 	
 | ||
| 							
 | ||
| 			// 塭桧?棚 错 当撩
 | ||
| 			obj.sq_StartWrite();
 | ||
| 			obj.sq_WriteDword(moveDistance); // 迹瞳虽 x 谢?
 | ||
| 			obj.sq_WriteDword(attackPower);
 | ||
| 			obj.sq_WriteDword(skill_level);
 | ||
| 			obj.sq_WriteFloat(prob);
 | ||
| 			obj.sq_WriteDword(level);
 | ||
| 			obj.sq_WriteDword(duration);
 | ||
| 			obj.sq_WriteDword(lightDamage);
 | ||
| 			obj.sq_SendCreatePassiveObjectPacket(24218, 0, 50, -1, 0);
 | ||
| 		}
 | ||
| 	}
 | ||
| 	else if (flagIndex == 2) {		
 | ||
| 		sq_EffectLayerAppendageOnlyBody(obj, sq_RGB(255,255,255), 255, 0, 0, 400);
 | ||
| 	}
 | ||
| 	else if (flagIndex == 3) {
 | ||
| 		// 塭桧?棚 错 桧翕	
 | ||
| 		sq_SetMyShake(obj,4,300);
 | ||
| 	}	
 | ||
| 	return true;
 | ||
| }
 | ||
| 
 | ||
|  |