99 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			99 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | VAR_PUSH_OUT_EXPLOSION_OLD_STATE <- 0 | |||
|  | 
 | |||
|  | function sq_AddFunctionName(appendage) | |||
|  | { | |||
|  | 	appendage.sq_AddFunctionName("proc", "proc_appendage_PushOutExplosion") | |||
|  | 	appendage.sq_AddFunctionName("onStart", "onStart_appendage_PushOutExplosion") | |||
|  | 	appendage.sq_AddFunctionName("onEnd", "onEnd_appendage_PushOutExplosion") | |||
|  | } | |||
|  | 
 | |||
|  | function onStart_appendage_PushOutExplosion(appendage) | |||
|  | { | |||
|  | 	if(!appendage) { | |||
|  | 		return; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	local parentObj = appendage.getParent(); | |||
|  | 				 | |||
|  | 	if(!parentObj) { | |||
|  | 		appendage.setValid(false); | |||
|  | 		return; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	local var = appendage.getVar(); | |||
|  | 	var.setInt(VAR_PUSH_OUT_EXPLOSION_OLD_STATE,parentObj.getState()); | |||
|  | 	 | |||
|  | } | |||
|  | 
 | |||
|  | function proc_appendage_PushOutExplosion(appendage) | |||
|  | { | |||
|  | 	if(!appendage && !appendage.isValid()) { | |||
|  | 		return;		 | |||
|  | 	} | |||
|  | 
 | |||
|  | 	local parentObj = appendage.getParent(); | |||
|  | 	local sourceObj = appendage.getSource(); | |||
|  | 	 | |||
|  | 	sourceObj = sq_GetCNRDObjectToSQRCharacter(sourceObj); | |||
|  | 	if(!sourceObj || !parentObj) { | |||
|  | 		appendage.setValid(false); | |||
|  | 		return; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	local var = appendage.getVar(); | |||
|  | 	local oldState = var.getInt(VAR_PUSH_OUT_EXPLOSION_OLD_STATE);	 | |||
|  | 	var.setInt(VAR_PUSH_OUT_EXPLOSION_OLD_STATE,parentObj.getState()); | |||
|  | 	 | |||
|  | 	if(oldState == STATE_STAND && parentObj.getState() != STATE_DOWN){ | |||
|  | 		appendage.setValid(false); | |||
|  | 		return; | |||
|  | 	} | |||
|  | 			 | |||
|  | 	if(parentObj.getState() == STATE_DOWN && parentObj.getDownState() >=1 || ( oldState == STATE_DOWN && parentObj.getState() != STATE_DOWN) ) | |||
|  | 	{ | |||
|  | 		if(sourceObj.isMyControlObject()) | |||
|  | 		{		 | |||
|  | 			local level		  = sq_GetSkillLevel(sourceObj, SKILL_PUSH_OUT); | |||
|  | 			 | |||
|  | 			// 醱问? 舆渗等嘐虽 | |||
|  | 			local attackPower = sourceObj.sq_GetPowerWithPassive(SKILL_PUSH_OUT, STATE_PUSH_OUT, 2, -1, 1.0); | |||
|  | 			local sizeRate = sq_GetIntData(sourceObj, SKILL_PUSH_OUT, 0); | |||
|  | 			print(sizeRate); | |||
|  | 			 | |||
|  | 			 | |||
|  | 			// 模蝶 : CNEarthBreak谛 翕橾? 匙击 饵辨? | |||
|  | 			sq_BinaryStartWrite();			 | |||
|  | 			// 0:(BOOL) ?筒 嵘鼠 0:絮筒 | |||
|  | 			sq_BinaryWriteBool(0); | |||
|  | 			 | |||
|  | 			// 1:(float) 奢问溘 | |||
|  | 			sq_BinaryWriteFloat(attackPower.tofloat()); | |||
|  | 			 | |||
|  | 			// 2:(WORD) 饵桧锷 | |||
|  | 			sq_BinaryWriteWord(sizeRate); | |||
|  | 			 | |||
|  | 			// 3:(WORD) 嗥办朝 ? | |||
|  | 			sq_BinaryWriteWord(200); | |||
|  | 			 | |||
|  | 			// 4:(bool) ?潍 蝶鉴 嵘鼠 | |||
|  | 			local isExSkill = false; | |||
|  | 			isExSkill = sq_GetSkillLevel(sourceObj, SKILL_PUSH_OUT_EX) > 0; | |||
|  | 			sq_BinaryWriteBool(isExSkill); | |||
|  | 			 | |||
|  | 			// 5:(DWORD) parent id : ?潍 蝶鉴橾 阳朝 濠褐紫 醱问?蒂 蜃朝棻. | |||
|  | 			if(!isExSkill) | |||
|  | 				sq_BinaryWriteDword(sq_GetObjectId(parentObj));			 | |||
|  | 			 | |||
|  | 			 | |||
|  | 			local x = sourceObj.getXPos() > parentObj.getXPos() ?  sourceObj.getXPos() - parentObj.getXPos() : parentObj.getXPos() - sourceObj.getXPos(); // 议葛搅谛 跨蝶搅谛暧 剪葬离  | |||
|  | 			local y = parentObj.getYPos() - sourceObj.getYPos(); | |||
|  | 							 | |||
|  | 			if(sourceObj.getDirection() == parentObj.getDirection()) | |||
|  | 				x = -x; | |||
|  | 				 | |||
|  | 			sq_SendCreatePassiveObjectPacket(sourceObj, 21035, 0, x, y, 0, ENUM_DIRECTION_NEUTRAL); | |||
|  | 		} | |||
|  | 		appendage.setValid(false); | |||
|  | 	}		 | |||
|  | } | |||
|  |  |