242 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			242 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | 
 | ||
|  | function setCustomData_po_ATFirePillar(obj, reciveData) | ||
|  | { | ||
|  | 	if(!obj) return; | ||
|  | 	 | ||
|  | 	local attackRate = reciveData.readDword(); // 横鸥奢问溘 | ||
|  | 	local distance = reciveData.readDword(); // 釭陛朝 剪葬 | ||
|  | 	local arriveTime = reciveData.readDword(); // 模辨给桧 釭陛朝 楼紫 (剪葬梱虽 紫殖?朝 卫除) (1/1000蟾) | ||
|  | 	local term = reciveData.readDword(); | ||
|  | 	 | ||
|  | 	initGetVarTimer(obj, 1, term, -1); | ||
|  | 
 | ||
|  | 	obj.getVar("state").clear_vector(); // state vector | ||
|  | 	obj.getVar("state").push_vector(0); | ||
|  | 	 | ||
|  | 	obj.getVar("flag").clear_vector(); | ||
|  | 	obj.getVar("flag").push_vector(0); | ||
|  | 	obj.getVar("flag").push_vector(0); | ||
|  | 	obj.getVar("flag").push_vector(0); | ||
|  | 	obj.getVar("flag").push_vector(0); | ||
|  | 	obj.getVar("flag").push_vector(0); | ||
|  | 	 | ||
|  | 	local x = sq_GetXPos(obj); | ||
|  | 	local y = sq_GetYPos(obj); | ||
|  | 	local z = sq_GetZPos(obj); | ||
|  | 		 | ||
|  | 	obj.getVar("dis").clear_vector(); | ||
|  | 	 | ||
|  | 	obj.getVar("dis").push_vector(x); | ||
|  | 	obj.getVar("dis").push_vector(y); | ||
|  | 	obj.getVar("dis").push_vector(z); | ||
|  | 	obj.getVar("dis").push_vector(distance); | ||
|  | 	 | ||
|  | 	obj.getVar("arriveTime").clear_vector(); | ||
|  | 	obj.getVar("arriveTime").push_vector(arriveTime); | ||
|  | 	 | ||
|  | 	obj.getVar("frmIndex").clear_vector(); | ||
|  | 	obj.getVar("frmIndex").push_vector(0); | ||
|  | 	obj.getVar("frmIndex").push_vector(0); | ||
|  | 	obj.getVar("frmIndex").push_vector(0); | ||
|  | 	 | ||
|  | 	local pAttack = sq_GetCurrentAttackInfo(obj); | ||
|  | 	sq_SetCurrentAttackBonusRate(pAttack, attackRate); | ||
|  | 
 | ||
|  | 	if(obj.isMyControlObject()) { | ||
|  | 		local pIntVec = sq_GetGlobalIntVector(); | ||
|  | 		 | ||
|  | 		sq_IntVectorClear(pIntVec); | ||
|  | 		sq_IntVectorPush(pIntVec, 0); | ||
|  | 		 | ||
|  | 		obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_0, pIntVec, STATE_PRIORITY_AUTO, false, ""); | ||
|  | 	} | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | function setState_po_ATFirePillar(obj, state, datas) | ||
|  | { | ||
|  | 	if(!obj) return; | ||
|  | 	 | ||
|  | 	local passiveState = state; | ||
|  | 	 | ||
|  | 	obj.getVar("state").set_vector(0, passiveState); | ||
|  | 	 | ||
|  | 	obj.getVar("flag").set_vector(VECTOR_FLAG_0, 0); | ||
|  | 
 | ||
|  | 	//initGetVarTimer(obj, 1, 400, 10); | ||
|  | 	 | ||
|  | 	if(passiveState == PASSIVEOBJ_SUB_STATE_0) | ||
|  | 	{ | ||
|  | 	} | ||
|  | 	else if(passiveState == PASSIVEOBJ_SUB_STATE_1) | ||
|  | 	{ | ||
|  | 		local ani = obj.getCustomAnimation(0); | ||
|  | 		obj.setCurrentAnimation(ani); | ||
|  | 	}	 | ||
|  | 	else if(passiveState == PASSIVEOBJ_SUB_STATE_2) | ||
|  | 	{ | ||
|  | 	} | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | function procAppend_po_ATFirePillar(obj) | ||
|  | { | ||
|  | 
 | ||
|  | 	if(!obj) return; | ||
|  | 	 | ||
|  | 	local state = obj.getVar("state").get_vector(0); | ||
|  | 	local passiveState = state; | ||
|  | 	 | ||
|  | 	local pAni = obj.getCurrentAnimation(); | ||
|  | 	local frmIndex = sq_GetAnimationFrameIndex(pAni); | ||
|  | 	local currentT = sq_GetCurrentTime(pAni); | ||
|  | 
 | ||
|  | 	local objX = sq_GetXPos(obj); | ||
|  | 	local objY = sq_GetYPos(obj); | ||
|  | 	local parentObj = obj.getParent(); | ||
|  | 	 | ||
|  | 	if(!parentObj) | ||
|  | 	{ | ||
|  | 		if(obj.isMyControlObject()) | ||
|  | 		{ | ||
|  | 			sq_SendDestroyPacketPassiveObject(obj); | ||
|  | 			return; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	if(parentObj.getState() != STATE_FIREPILLAR) | ||
|  | 	{ | ||
|  | 		//if(passiveState == PASSIVEOBJ_SUB_STATE_0) | ||
|  | 		//{ | ||
|  | 			//if(obj.isMyControlObject()) | ||
|  | 			//{ | ||
|  | 				//local pIntVec = sq_GetGlobalIntVector(); | ||
|  | 			// | ||
|  | 				//sq_IntVectorClear(pIntVec); | ||
|  | 				//sq_IntVectorPush(pIntVec, 0); | ||
|  | // | ||
|  | 				//obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_1, pIntVec, STATE_PRIORITY_AUTO, false, ""); | ||
|  | 				//return; | ||
|  | 			//} | ||
|  | 		//} | ||
|  | 	} | ||
|  | 		 | ||
|  | 	if(passiveState == PASSIVEOBJ_SUB_STATE_0) | ||
|  | 	{ | ||
|  | 		 | ||
|  | 		local fireT = obj.getVar("arriveTime").get_vector(0); | ||
|  | 		 | ||
|  | 		local srcX = obj.getVar("dis").get_vector(0); // 卫蒙x | ||
|  | 		local srcY = obj.getVar("dis").get_vector(1); // 卫蒙y | ||
|  | 		local srcZ = obj.getVar("dis").get_vector(2); // 卫蒙z | ||
|  | 		    	 | ||
|  | 		local distance = obj.getVar("dis").get_vector(3); // 识 桧翕剪葬 | ||
|  | 		 | ||
|  | 		local v = sq_GetUniformVelocity(0, distance, currentT, fireT); | ||
|  | 		print(" distance:" + distance); | ||
|  | 		local dstX = sq_GetDistancePos(srcX, obj.getDirection(), v); | ||
|  | 		local dstY = srcY; | ||
|  | 		 | ||
|  | 		sq_setCurrentAxisPos(obj, 0, dstX); | ||
|  | 		 | ||
|  | 		if(currentT >= fireT) | ||
|  | 		{ | ||
|  | 			if(obj.isMyControlObject()) | ||
|  | 			{ | ||
|  | 				local pIntVec = sq_GetGlobalIntVector(); | ||
|  | 			 | ||
|  | 				sq_IntVectorClear(pIntVec); | ||
|  | 				sq_IntVectorPush(pIntVec, 0); | ||
|  | 
 | ||
|  | 				obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_1, pIntVec, STATE_PRIORITY_AUTO, false, ""); | ||
|  | 			} | ||
|  | 		}	 | ||
|  | 		 | ||
|  | 		local hitT = obj.getVar().get_timer_vector(0); | ||
|  | 	 | ||
|  | 		if(hitT) | ||
|  | 		{		 | ||
|  | 			if(hitT.isOnEvent(currentT) == true) | ||
|  | 			{ | ||
|  | 				print(" reset"); | ||
|  | 				obj.resetHitObjectList(); | ||
|  | 			} | ||
|  | 		} | ||
|  | 			 | ||
|  | 	} | ||
|  | 	 | ||
|  | 	local oldFrmIndex = obj.getVar("frmIndex").get_vector(VECTOR_FLAG_0); | ||
|  | 	if(frmIndex != oldFrmIndex) | ||
|  | 	{ | ||
|  | 		obj.getVar("frmIndex").set_vector(VECTOR_FLAG_0, frmIndex); | ||
|  | 		 | ||
|  | 		local x = objX; | ||
|  | 		local y = objY; | ||
|  | 		 | ||
|  | 		local cnt = obj.getVar("frmIndex").get_vector(VECTOR_FLAG_1); | ||
|  | 		local size = 3; | ||
|  | 		local iKeyList =[]; | ||
|  | 		iKeyList.resize(size); | ||
|  | 		 | ||
|  | 		iKeyList[0] = 0; | ||
|  | 		iKeyList[1] = 15; | ||
|  | 		iKeyList[2] = -15; | ||
|  | 		 | ||
|  | 		local yList =[]; | ||
|  | 		yList.resize(size); | ||
|  | 		yList[0] = -1; | ||
|  | 		yList[1] = 1; | ||
|  | 		yList[2] = -2; | ||
|  | 		 | ||
|  | 		local pooledObj = createAnimationPooledObject(obj, "PassiveObject/Character/Mage/Animation/ATFirePillar/3_firetail_dodge.ani", true, x, y + yList[cnt], iKeyList[cnt]); | ||
|  | 		 | ||
|  | 		pooledObj.setCurrentDirection(obj.getDirection()); | ||
|  | 		 | ||
|  | 		cnt = cnt + 1; | ||
|  | 		if(cnt > (size - 1)) | ||
|  | 		{ | ||
|  | 			cnt = 0; | ||
|  | 		} | ||
|  | 		obj.getVar("frmIndex").set_vector(VECTOR_FLAG_1, cnt); | ||
|  | 	} | ||
|  | 	 | ||
|  | } | ||
|  | 
 | ||
|  | function onChangeSkillEffect_po_ATFirePillar(obj, skillIndex, reciveData) | ||
|  | { | ||
|  | 
 | ||
|  | 	if(!obj) return; | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | function onDestroyObject_po_ATFirePillar(obj, object) | ||
|  | { | ||
|  | 
 | ||
|  | 	if(!obj) return; | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | function onKeyFrameFlag_po_ATFirePillar(obj, flagIndex) | ||
|  | { | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | function onEndCurrentAni_po_ATFirePillar(obj) | ||
|  | { | ||
|  | 	if(!obj) return; | ||
|  | 	 | ||
|  | 	local state = obj.getVar("state").get_vector(0); | ||
|  | 	local passiveState = state; | ||
|  | 
 | ||
|  | 	if(passiveState == PASSIVEOBJ_SUB_STATE_1) | ||
|  | 	{ | ||
|  | 		if(obj.isMyControlObject()) | ||
|  | 		{ | ||
|  | 			sq_SendDestroyPacketPassiveObject(obj); | ||
|  | 		} | ||
|  | 	}	 | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 |