165 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			165 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | // 蝶鉴 撮睡嫦翕 亵勒击 虏菟横舆朝 ?热殓栖棻.. 嫦翕 亵勒 state朝 桧嘐 模蝶缣怃 掘?肾横 毡蝗栖棻. 桧够缣怃 useskill娄 setstate蒂 虽姜?舆贼 腌栖棻. | ||
|  | function checkExecutableSkill_Ripper(obj)   | ||
|  | { | ||
|  | 	if(!obj) return false; | ||
|  | 	local b_useskill = obj.sq_IsUseSkill(SKILL_RIPPER); | ||
|  | 	if(b_useskill) { | ||
|  | 		obj.sq_addSetStatePacket(STATE_RIPPER, STATE_PRIORITY_USER, false); | ||
|  | 		return true; | ||
|  | 	}	 | ||
|  | 	 | ||
|  | 	return false; | ||
|  | } | ||
|  | 
 | ||
|  | // 蝶鉴嬴桧夔 ?撩? 亵勒击 评虽朝 ?热殓栖棻. true蒂 葬欐?贼 蝶鉴 嬴桧夔桧 ?撩?陛 腌栖棻. (嫦翕亵勒 state朝  模蝶缣怃 籀葬腌栖棻.) | ||
|  | function checkCommandEnable_Ripper(obj) | ||
|  | { | ||
|  | 	if(!obj) return false; | ||
|  | 	 | ||
|  | 	local state = obj.sq_GetSTATE(); | ||
|  | 	 | ||
|  | 	if(state == STATE_ATTACK) { | ||
|  | 		// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] | ||
|  | 		return obj.sq_IsCommandEnable(SKILL_RIPPER); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	return true; | ||
|  | } | ||
|  | 
 | ||
|  | //------------------------------------------------------------------------------ | ||
|  | 
 | ||
|  | 
 | ||
|  | //isCheckHitCollision谛 checkHit朝 ?问 羹觼蒂 鼻渠寞桧 嬴棋 顶陛 ?捡 ?唳办缣 噙樯棻. pvp缣摹 鼻渠寞桧 ?问羹觼蒂 ?贼 拟港卫除桧 替溥 蝶鉴桧 警蜗肾朝 唳办陛 毡晦 阳侥. | ||
|  | function onIsCheckHitCollision_Ripper(obj,damager) | ||
|  | {	 | ||
|  | 	return obj.isMyControlObject(); | ||
|  | } | ||
|  | 
 | ||
|  | function isForceHitCheck_Ripper(obj) | ||
|  | { | ||
|  | 	return obj.isMyControlObject(); | ||
|  | } | ||
|  | 
 | ||
|  | function onAttack_Ripper(obj,damager,boundingBox) | ||
|  | { | ||
|  | 	local sq_var = obj.getVar(); | ||
|  | 	sq_var.setBool(0,true); // 奢问 撩奢	 | ||
|  | 	 | ||
|  | 	local isLast = sq_var.getBool(1); // 虞颤 | ||
|  | 	if (!isLast) { | ||
|  | 		sq_var.push_obj_vector(damager); | ||
|  | 		sq_AtrractionForce(obj, damager, false, 270, -1, 2000.0, 1500.0, false); // 尘横顶晦	 | ||
|  | 		sq_EffectLayerAppendage(damager,sq_RGB(255,255,255),155,0,80,0);	 | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | function onEndState_Ripper(obj, newState) | ||
|  | { | ||
|  | 	if(!obj) return; | ||
|  | 	local sq_var = obj.getVar(); | ||
|  | 	sq_var.clear_obj_vector(); | ||
|  | 	 | ||
|  | 	local ani = sq_GetCurrentAnimation(obj);	 | ||
|  | 	if(ani){ | ||
|  | 		local sizeRate = sq_var.getFloat(2); | ||
|  | 		ani.setAttackBoundingBoxSizeRate(1.0/sizeRate,true); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | // state蒂 撮??坚 籀挤戏煎 菟横螃啪 腌栖棻. 陕谦 葬模蝶蒂 撮??栖棻.  | ||
|  | function onSetState_Ripper(obj, state, datas, isResetTimer) | ||
|  | {	 | ||
|  | 	if(!obj) return; | ||
|  | 	local sq_var = obj.getVar(); | ||
|  | 	obj.sq_stopMove(); | ||
|  | 	obj.sq_setCurrentAnimation(CUSTOM_ANI_RIPPER); | ||
|  | 	obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_RIPPER);	 | ||
|  | 	obj.sq_setAttackPowerWithPassive(SKILL_RIPPER, state, -1,0,1.0);	 | ||
|  | 	sq_var.setBool(0,false);	 | ||
|  | 	sq_var.setBool(1,false); | ||
|  | 	sq_var.setFloat(2,1.0); | ||
|  | 	 | ||
|  | 	obj.sq_setXScroll(180,500,1500,100); | ||
|  | 	obj.sq_PlaySound("PR_RIPPER_READY");	 | ||
|  | } | ||
|  | 
 | ||
|  | function onEndCurrentAni_Ripper(obj) | ||
|  | { | ||
|  | 	obj.sq_addSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false); | ||
|  | 	obj.sq_setfindNearMovablePos(obj.getXPos(),obj.getYPos(),50,1,5); | ||
|  | } | ||
|  | 
 | ||
|  | function onKeyFrameFlag_Ripper(obj,flagIndex) | ||
|  | { | ||
|  | 	local isMycontrolObject = obj.sq_isMyControlObject(); | ||
|  | 	local sq_var = obj.getVar(); | ||
|  | 	 | ||
|  | 	if(isMycontrolObject && flagIndex == 1) // 霞翕,廓翻 桧??朝 釭缣啪虏 尔樯棻. | ||
|  | 		obj.sq_setShake(obj,4,60); | ||
|  | 	else if(isMycontrolObject && flagIndex == 2) | ||
|  | 		obj.sq_setShake(obj,2,30); | ||
|  | 	else if(flagIndex == 3)  | ||
|  | 	{		 | ||
|  | 		if(isMycontrolObject) | ||
|  | 			obj.sq_setShake(obj,3,60);			 | ||
|  | 	} | ||
|  | 	else if(isMycontrolObject && flagIndex == 4) | ||
|  | 		obj.sq_setShake(obj,2,30); | ||
|  | 	else if(flagIndex == 6) | ||
|  | 	{ | ||
|  | 		obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_RIPPER); | ||
|  | 		local state = obj.sq_GetSTATE(); | ||
|  | 		obj.sq_setAttackPowerWithPassive(SKILL_RIPPER, state, -1,0,1.0); | ||
|  | 	} | ||
|  | 	else if(flagIndex == 5 && sq_var.getBool(0)) | ||
|  | 	{		 | ||
|  | 		local state = obj.sq_GetSTATE(); | ||
|  | 
 | ||
|  | 		obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_RIPPER_EXPLOSION); | ||
|  | 		 | ||
|  | 		// 葬? ?撩 蝶鉴桧贼 | ||
|  | 		local exSkillLevel = sq_GetSkillLevel(obj,SKILL_RIPPER_EX);		 | ||
|  | 		if(!sq_isPVPMode() && exSkillLevel > 0) {			 | ||
|  | 			local sizeRate = sq_GetLevelData(obj, SKILL_RIPPER, 2, exSkillLevel);			 | ||
|  | 			sizeRate = sizeRate * 0.01;	 | ||
|  | 			 | ||
|  | 			local ani = sq_GetCurrentAnimation(obj);			 | ||
|  | 			if(ani){ | ||
|  | 				ani.setAttackBoundingBoxSizeRate(sizeRate,true); | ||
|  | 				sq_var.setFloat(2,sizeRate); | ||
|  | 			} | ||
|  | 		}	 | ||
|  | 		 | ||
|  | 			 | ||
|  | 		obj.sq_setAttackPowerWithPassive(SKILL_RIPPER, state, -1,1,1.0); | ||
|  | 		sq_AddDrawOnlyAniFromParent(obj,"Character/Priest/Effect/Animation/Ripper/etc/33p_1_burst1-handup_normal.ani",0,1,0); | ||
|  | 		sq_AddDrawOnlyAniFromParent(obj,"Character/Priest/Effect/Animation/Ripper/etc/33p_burst1-handup_normal.ani",0,1,0); | ||
|  | 		if(isMycontrolObject) | ||
|  | 		{			 | ||
|  | 			local flash = sq_flashScreen(obj,80, 80, 0, 255, sq_RGBA(255,255,255,128),GRAPHICEFFECT_NONE,ENUM_DRAWLAYER_BOTTOM); | ||
|  | 			sq_addFlashScreen(flash,0,0,400,255,sq_RGBA(0,0,0,180),GRAPHICEFFECT_NONE,ENUM_DRAWLAYER_BOTTOM); | ||
|  | 			 | ||
|  | 			local objListSize = sq_var.get_obj_vector_size();	 | ||
|  | 			for(local i =0;i<objListSize;++i) | ||
|  | 			{				 | ||
|  | 				local obj = sq_var.get_obj_vector(i); | ||
|  | 				if(obj == null) | ||
|  | 					continue; | ||
|  | 				 | ||
|  | 				sq_EffectLayerAppendage(obj,sq_RGB(0,0,0),255,0,160,160); | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | 	else if(flagIndex == 7 && sq_var.getBool(0)) | ||
|  | 	{				 | ||
|  | 		sq_var.setBool(1,true); | ||
|  | 		if(isMycontrolObject) | ||
|  | 			sq_SendCreatePassiveObjectPacket(obj,24102, 0, 267, 1, 83,obj.getDirection()); | ||
|  | 		obj.sq_PlaySound("R_PR_RIPPER"); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	return true; | ||
|  | } |