248 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			248 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | 
 | |||
|  | function sq_AddFunctionName(appendage) | |||
|  | { | |||
|  | 	appendage.sq_AddFunctionName("proc", "proc_appendage_grab_icemagic") | |||
|  | 	appendage.sq_AddFunctionName("prepareDraw", "prepareDraw_appendage_grab_icemagic") | |||
|  | 	appendage.sq_AddFunctionName("onStart", "onStart_appendage_grab_icemagic") | |||
|  | 	appendage.sq_AddFunctionName("onEnd", "onEnd_appendage_grab_icemagic") | |||
|  | 	appendage.sq_AddFunctionName("isEnd", "isEnd_appendage_grab_icemagic") | |||
|  | 	appendage.sq_AddFunctionName("onDestroyObject", "onDestroyObject_appendage_grab_icemagic") | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | function sq_AddEffect(appendage) | |||
|  | { | |||
|  | } | |||
|  | 
 | |||
|  | function proc_appendage_grab_icemagic(appendage) | |||
|  | { | |||
|  | 	if(!appendage) | |||
|  | 	{ | |||
|  | 		return; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	if(!appendage.isValid()) | |||
|  | 		return; | |||
|  | 		 | |||
|  | 	local obj = appendage.getParent();	 | |||
|  | 	 | |||
|  | 	if (obj.getState() != STATE_HOLD && obj.getState() != STATE_DIE) | |||
|  | 	{ | |||
|  | 		//  湍螳虽朝 渠鼻桧 HOLD陛 嬴栖贼 | |||
|  | 		if (obj.isMyControlObject()) | |||
|  | 		{ | |||
|  | 			//  HOLD煎 瞪? | |||
|  | 			local pIntVec = sq_GetGlobalIntVector(); | |||
|  | 			sq_IntVectorClear(pIntVec); | |||
|  | 			sq_IntVectorPush(pIntVec, Z_ACCEL_TYPE_CONST); | |||
|  | 			 | |||
|  | 			obj.addSetStatePacket(STATE_HOLD, pIntVec, STATE_PRIORITY_FORCE, false, ""); | |||
|  | 			 | |||
|  | 			obj.flushSetStatePacket(); | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	 | |||
|  | } | |||
|  | 
 | |||
|  | function onDestroyObject_appendage_grab_icemagic(appendage, destroyObj) | |||
|  | { | |||
|  | 	if(!appendage) | |||
|  | 		return true; | |||
|  | 	 | |||
|  | 	if (destroyObj == appendage.sq_GetSourceChrTarget()) | |||
|  | 	{ | |||
|  | 		appendage.setValid(false); | |||
|  | 	} | |||
|  | 		 | |||
|  | 	return true; | |||
|  | } | |||
|  | 
 | |||
|  | function onStart_appendage_grab_icemagic(appendage) | |||
|  | { | |||
|  | 	if(!appendage) | |||
|  | 	{ | |||
|  | 		return; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	local obj = appendage.getParent();	 | |||
|  | 
 | |||
|  | 	if(!obj) | |||
|  | 	{ | |||
|  | 		return; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	appendage.getVar().clear_vector(); | |||
|  | 	 | |||
|  | 	appendage.getVar().push_vector(0); // 0 | |||
|  | 	appendage.getVar().push_vector(0); // 1 | |||
|  | 	appendage.getVar().push_vector(0); // 2 | |||
|  | 	appendage.getVar().push_vector(0); // 3 | |||
|  | 	appendage.getVar().push_vector(0); // 4 | |||
|  | 	appendage.getVar().push_vector(0); // 5 | |||
|  | 
 | |||
|  | 	sq_SetCustomDamageType(obj, true, 1); // DAMAGETYPE_SUPERARMOR = 1 | |||
|  | 	sq_SetGrabable(obj, false); | |||
|  | 
 | |||
|  | 	if (sq_IsValidActiveStatus(obj, ACTIVESTATUS_STUN)) | |||
|  | 	{ | |||
|  | 		//  STUN 勘溥毡戏贼 ?薯卫霁. STATE_STAND煎 给嬴陛虽 强啪 disable卫霁 | |||
|  | 		obj.setEnableChangeState(false); | |||
|  | 		sq_IsSetActiveStatus(obj, ACTIVESTATUS_STUN, 0.0); | |||
|  | 		obj.setEnableChangeState(true); | |||
|  | 	} | |||
|  | 	print("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"); | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | function prepareDraw_appendage_grab_icemagic(appendage) | |||
|  | { | |||
|  | 	if(!appendage) { | |||
|  | 		return; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	//if (attacker_->getState() != CNFighter::STATE_SUPLEX) | |||
|  | 	//	return; | |||
|  | 	 | |||
|  | 	if(!appendage.isValid()) | |||
|  | 		return; | |||
|  | 	 | |||
|  | 	local attacker = appendage.sq_GetSourceChrTarget(); | |||
|  | 	 | |||
|  | 	if(!attacker) | |||
|  | 	{ | |||
|  | 		appendage.setValid(false); | |||
|  | 		return; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	if (attacker.getState() != STATE_ICEMAN) | |||
|  | 	{ | |||
|  | 		appendage.setValid(false); | |||
|  | 		return; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	if(attacker.getState() == STATE_ICEMAN && attacker.getSkillSubState() == SUB_STATE_ICEMAN_4) | |||
|  | 	{ | |||
|  | 		local frmIndex = sq_GetCurrentFrameIndex(attacker); | |||
|  | 		 | |||
|  | 		if(frmIndex >= 6) | |||
|  | 		{ | |||
|  | 			appendage.setValid(false); | |||
|  | 			return; | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	//print(" attacker.getSkillSubState():" + attacker.getSkillSubState()); | |||
|  | 
 | |||
|  | 	local obj = appendage.getParent();	 | |||
|  | 
 | |||
|  | 
 | |||
|  | 	if(attacker.getState() == STATE_ICEMAN && attacker.getSkillSubState() == SUB_STATE_ICEMAN_3) // 陪颤翕蒙 | |||
|  | 	{ | |||
|  | 		//appendage.getVar().get_vector(0) | |||
|  | 		local isHit = false; | |||
|  | 		local frmIndex = sq_GetCurrentFrameIndex(attacker); | |||
|  | 		 | |||
|  | 		if(frmIndex >= 1 && !appendage.getVar().get_vector(0)) | |||
|  | 		{ | |||
|  | 			isHit = true; | |||
|  | 			appendage.getVar().set_vector(0, 1); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		if(frmIndex >= 4 && !appendage.getVar().get_vector(1)) | |||
|  | 		{ | |||
|  | 			isHit = true; | |||
|  | 			appendage.getVar().set_vector(1, 1); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		if(frmIndex >= 8 && !appendage.getVar().get_vector(2)) | |||
|  | 		{ | |||
|  | 			isHit = true; | |||
|  | 			appendage.getVar().set_vector(2, 1); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		if(frmIndex >= 11 && !appendage.getVar().get_vector(3)) | |||
|  | 		{ | |||
|  | 			isHit = true; | |||
|  | 			appendage.getVar().set_vector(3, 1); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		if(frmIndex >= 16 && !appendage.getVar().get_vector(4)) | |||
|  | 		{ | |||
|  | 			isHit = true; | |||
|  | 			appendage.getVar().set_vector(4, 1); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		 | |||
|  | 		if(isHit) | |||
|  | 		{ | |||
|  | 			if(attacker.isMyControlObject()) | |||
|  | 			{ | |||
|  | 				print(" hit"); | |||
|  | 				local h = (sq_GetObjectHeight(obj) / 2); | |||
|  | 				//sq_SendHitObjectPacket(attacker,obj,0,0,0); | |||
|  | 			} | |||
|  | 		} | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// 桧 横?蛤虽 勘萼吃击 嫡嬴蚂棻 | |||
|  | 	// 勘萼吃桧 ?营 HOLD 鼻鹧陛 嬴栖塭贼 | |||
|  | 	if (obj.getState() != STATE_HOLD) | |||
|  | 		// 警蜗 | |||
|  | 		return; | |||
|  | 
 | |||
|  | 	 | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | function onEnd_appendage_grab_icemagic(appendage) | |||
|  | { | |||
|  | 	if(!appendage) | |||
|  | 	{ | |||
|  | 		return; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	local obj = appendage.getParent(); | |||
|  | 	 | |||
|  | 	//sq_SetCustomRotate(obj, 0.0); | |||
|  | 	sq_SetCustomDamageType(obj, false, 0); // DAMAGETYPE_NORMAL = 0 | |||
|  | 	sq_SetGrabable(obj, true); | |||
|  | 	 | |||
|  | 	//CNSquirrelAppendage.sq_AppendAppendage(damager, pChr, SKILL_ICEMAN,  | |||
|  | 	//false, "Character/ATMage/IceMan/ap_ATIceManMagicCircle.nut", true); | |||
|  | 	 | |||
|  | 	//CNSquirrelAppendage.sq_RemoveAppendage(obj, "Character/ATMage/IceMan/ap_ATIceManMagicCircle.nut"); | |||
|  | 
 | |||
|  | 	 | |||
|  | 	if(obj.isMyControlObject()) | |||
|  | 	{ | |||
|  | 		//sq_AddSetStatePacketActiveObject(obj, STATE_STAND, null, STATE_PRIORITY_USER); | |||
|  | 		//obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false); | |||
|  | 		 | |||
|  | 		//local pIntVec = sq_GetGlobalIntVector(); | |||
|  | 		//sq_IntVectorClear(pIntVec); | |||
|  | 		//sq_IntVectorPush(pIntVec, obj.getDirection()); | |||
|  | 		//sq_IntVectorPush(pIntVec, 0); | |||
|  | 		//sq_IntVectorPush(pIntVec, DOWN_PARAM_TYPE_FORCE); | |||
|  | 		//sq_IntVectorPush(pIntVec, 0); | |||
|  | 		//sq_IntVectorPush(pIntVec, 10); | |||
|  | 		//obj.addSetStatePacket(STATE_DOWN, pIntVec, STATE_PRIORITY_FORCE, false, ""); | |||
|  | 		obj.addSetStatePacket(STATE_STAND, null, STATE_PRIORITY_FORCE, false, ""); | |||
|  | 		obj.flushSetStatePacket(); | |||
|  | 		print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); | |||
|  | 	} | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | // 横渐螳 陕撩 渗褐暧 部睡碟 | |||
|  | function isEnd_appendage_grab_icemagic(appendage) | |||
|  | { | |||
|  | 	if(!appendage) return false; | |||
|  | 	 | |||
|  | 	local T = appendage.getTimer().Get(); | |||
|  | 	 | |||
|  | 	return false; | |||
|  | } |