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);
 | |
| 		}
 | |
| 	}	
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 |