485 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			485 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
 | ||
| function setCustomData_po_ATElementalStrikeEx(obj, reciveData)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 	
 | ||
| 	local pole_attack_rate = reciveData.readDword();
 | ||
| 	local attack_rate = reciveData.readDword();
 | ||
| 	local imagePerRate = reciveData.readDword();
 | ||
| 	local element = reciveData.readDword();
 | ||
| 	local speedRate = reciveData.readDword();
 | ||
| 
 | ||
| 	obj.getVar("imagerate").clear_vector(); // state vector
 | ||
| 	obj.getVar("imagerate").push_vector(imagePerRate);
 | ||
| 	
 | ||
| 	obj.getVar("attack").clear_vector(); // state vector
 | ||
| 	obj.getVar("attack").push_vector(attack_rate);
 | ||
| 	obj.getVar("attack").push_vector(pole_attack_rate);
 | ||
| 	
 | ||
| 	
 | ||
| 	obj.getVar("element").clear_vector(); // state vector
 | ||
| 	obj.getVar("element").push_vector(element);
 | ||
| 	
 | ||
| 	obj.getVar("speed").clear_vector(); // state vector
 | ||
| 	obj.getVar("speed").push_vector(speedRate);
 | ||
| 	
 | ||
| 	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);
 | ||
| 	
 | ||
| 	
 | ||
| 	
 | ||
| 	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_ATElementalStrikeEx(obj, state, datas)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 	
 | ||
| 	local pChr = obj.getTopCharacter();
 | ||
| 	
 | ||
| 	local passiveState = state;
 | ||
| 	
 | ||
| 	obj.getVar("state").set_vector(0, passiveState);
 | ||
| 	
 | ||
| 	
 | ||
| 	local posX = obj.getXPos();
 | ||
| 	local posY = obj.getYPos();
 | ||
| 	local posZ = obj.getZPos();
 | ||
| 	
 | ||
| 	local imagePerRate = obj.getVar("imagerate").get_vector(0);
 | ||
| 	local imageRate = imagePerRate.tofloat() / 100.0;
 | ||
| 	
 | ||
| 	
 | ||
| 	
 | ||
| 	
 | ||
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_0)
 | ||
| 	{
 | ||
| 		local attackInfo = sq_GetCustomAttackInfo(obj, 0);
 | ||
| 		sq_SetCurrentAttackInfo(obj, attackInfo);
 | ||
| 		
 | ||
| 		local attack_rate = obj.getVar("attack").get_vector(1);
 | ||
| 		local pAttack = sq_GetCurrentAttackInfo(obj);
 | ||
| 		sq_SetCurrentAttackBonusRate(pAttack, attack_rate);
 | ||
| 		
 | ||
| 		local element = obj.getVar("element").get_vector(0);		
 | ||
| 		if(pAttack)
 | ||
| 		{
 | ||
| 			if (element != ENUM_ELEMENT_NONE)
 | ||
| 			{
 | ||
| 				pAttack.setElement(ENUM_ELEMENT_NONE);
 | ||
| 				print(" \n push element:" + element);
 | ||
| 				pAttack.setElement(element);
 | ||
| 			}
 | ||
| 		}
 | ||
| 		
 | ||
| 	
 | ||
| 		local currentAni = obj.getCurrentAnimation();
 | ||
| 		currentAni.Proc();
 | ||
| 		print( " setImageRate:");
 | ||
| 		currentAni.setImageRateFromOriginal(imageRate, imageRate);
 | ||
| 		sq_SetAttackBoundingBoxSizeRate(currentAni, imageRate, imageRate, imageRate);
 | ||
| 	}
 | ||
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | ||
| 	{
 | ||
| 		//local attackInfo = sq_GetDefaultAttackInfo(obj);
 | ||
| 		local attackInfo = sq_GetCustomAttackInfo(obj, 1);
 | ||
| 		sq_SetCurrentAttackInfo(obj, attackInfo);
 | ||
| 		
 | ||
| 		local attack_rate = obj.getVar("attack").get_vector(0);
 | ||
| 
 | ||
| 		local pAttack = sq_GetCurrentAttackInfo(obj);
 | ||
| 		sq_SetCurrentAttackBonusRate(pAttack, attack_rate);	
 | ||
| 		
 | ||
| 		local element = obj.getVar("element").get_vector(0);
 | ||
| 		if(pAttack)
 | ||
| 		{
 | ||
| 			if(element != ENUM_ELEMENT_NONE)
 | ||
| 				pAttack.setElement(element);
 | ||
| 		}
 | ||
| 		
 | ||
| 		
 | ||
| 		sq_SetMyShake(pChr,4,320);
 | ||
| 
 | ||
| 		local ani = obj.getCustomAnimation(0);
 | ||
| 		obj.setCurrentAnimation(ani);		
 | ||
| 		
 | ||
| 		local currentAni = obj.getCurrentAnimation();
 | ||
| 		currentAni.Proc();
 | ||
| 		print( " setImageRate:");
 | ||
| 		currentAni.setImageRateFromOriginal(imageRate, imageRate);
 | ||
| 		sq_SetAttackBoundingBoxSizeRate(currentAni, imageRate, imageRate, imageRate);
 | ||
| 		
 | ||
| 		local element = obj.getVar("element").get_vector(0);
 | ||
| 		
 | ||
| 		if (element == ENUM_ELEMENT_FIRE)
 | ||
| 		{
 | ||
| 			obj.sq_PlaySound("ESTRIKE_FIRE");
 | ||
| 		}
 | ||
| 		else if(element == ENUM_ELEMENT_WATER)
 | ||
| 		{			
 | ||
| 			obj.sq_PlaySound("ESTRIKE_WATER");
 | ||
| 		}
 | ||
| 		else if(element == ENUM_ELEMENT_DARK)
 | ||
| 		{			
 | ||
| 			obj.sq_PlaySound("ESTRIKE_DARK");
 | ||
| 		}
 | ||
| 		else if(element == ENUM_ELEMENT_LIGHT)
 | ||
| 		{			
 | ||
| 			obj.sq_PlaySound("ESTRIKE_LIGHT");
 | ||
| 		}
 | ||
| 		else if(element == ENUM_ELEMENT_NONE)
 | ||
| 		{			
 | ||
| 			obj.sq_PlaySound("ESTRIKE_FIRE");
 | ||
| 		}		
 | ||
| 	}
 | ||
| 	
 | ||
| 	local currentAni = obj.getCurrentAnimation();
 | ||
| 	
 | ||
| 	if(currentAni)
 | ||
| 	{
 | ||
| 		local speedRate = obj.getVar("speed").get_vector(0);
 | ||
| 		currentAni.setSpeedRate(speedRate.tofloat());
 | ||
| 	}
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| function procAppend_po_ATElementalStrikeEx(obj)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 	
 | ||
| 	local pChr = obj.getTopCharacter();
 | ||
| 	
 | ||
| 	local passiveState = obj.getVar("state").get_vector(0);
 | ||
| 	
 | ||
| 	
 | ||
| 	if(passiveState == 0)
 | ||
| 	{
 | ||
| 		return;
 | ||
| 	}
 | ||
| 
 | ||
| 
 | ||
| 	local pAni = obj.getCurrentAnimation();
 | ||
| 	
 | ||
| 	local frameIndex = 0;
 | ||
| 	
 | ||
| 	if(pAni)
 | ||
| 	{
 | ||
| 		frameIndex = pAni.GetCurrentFrameIndex();
 | ||
| 	}
 | ||
| 
 | ||
| 
 | ||
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_0)
 | ||
| 	{
 | ||
| 		
 | ||
| 		if(frameIndex >= 10)
 | ||
| 		{	
 | ||
| 			if(obj.getVar("flag").get_vector(1) == 0)
 | ||
| 			{
 | ||
| 				sq_SetMyShake(pChr,2,150);
 | ||
| 				obj.getVar("flag").set_vector(1, 1);
 | ||
| 			}
 | ||
| 		}
 | ||
| 		
 | ||
| 		if(frameIndex >= 11)
 | ||
| 		{	
 | ||
| 			if(obj.getVar("flag").get_vector(3) == 0)
 | ||
| 			{
 | ||
| 				local element = obj.getVar("element").get_vector(0);
 | ||
| 				
 | ||
| 				if (element == ENUM_ELEMENT_FIRE)
 | ||
| 				{
 | ||
| 					obj.sq_PlaySound("MCANNON_FIREFALL");
 | ||
| 				}
 | ||
| 				else if(element == ENUM_ELEMENT_WATER)
 | ||
| 				{			
 | ||
| 					obj.sq_PlaySound("MCANNON_ATK");
 | ||
| 				}
 | ||
| 				else if(element == ENUM_ELEMENT_DARK)
 | ||
| 				{			
 | ||
| 					obj.sq_PlaySound("MCANNON_DARKFALL");
 | ||
| 				}
 | ||
| 				else if(element == ENUM_ELEMENT_LIGHT)
 | ||
| 				{			
 | ||
| 					obj.sq_PlaySound("MCANNON_LIGHTFALL");
 | ||
| 				}
 | ||
| 				else if(element == ENUM_ELEMENT_NONE)
 | ||
| 				{			
 | ||
| 					obj.sq_PlaySound("MCANNON_FIREFALL");
 | ||
| 				}
 | ||
| 				
 | ||
| 				obj.getVar("flag").set_vector(3, 1);
 | ||
| 			}
 | ||
| 		}
 | ||
| 
 | ||
| 		if(frameIndex >= 14)
 | ||
| 		{	
 | ||
| 			if(obj.getVar("flag").get_vector(2) == 0)
 | ||
| 			{
 | ||
| 				if(pChr)
 | ||
| 				{
 | ||
| 					obj.sq_PlaySound("ESTRIKE_READY");
 | ||
| 				}
 | ||
| 				
 | ||
| 				obj.getVar("flag").set_vector(2, 1);
 | ||
| 			}
 | ||
| 		}
 | ||
| 		
 | ||
| 		if(frameIndex >= 21)
 | ||
| 		{	
 | ||
| 			if(obj.getVar("flag").get_vector(0) == 0)
 | ||
| 			{
 | ||
| 				local fScreen = sq_flashScreen(obj,0,80,0,80, sq_RGB(255,255,255), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
 | ||
| 				sq_addFlashScreen(fScreen, 0, 320, 320, 180, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
 | ||
| 				
 | ||
| 				obj.getVar("flag").set_vector(0, 1);
 | ||
| 			}
 | ||
| 		}
 | ||
| 	}
 | ||
| }
 | ||
| 
 | ||
| function setCustomData_po_ATElementalStrikeFireEx(obj, reciveData)
 | ||
| {
 | ||
| 	setCustomData_po_ATElementalStrikeEx(obj, reciveData);
 | ||
| }
 | ||
| 
 | ||
| function setState_po_ATElementalStrikeFireEx(obj, state, datas)
 | ||
| {
 | ||
| 	setState_po_ATElementalStrikeEx(obj, state, datas);
 | ||
| }
 | ||
| 
 | ||
| function procAppend_po_ATElementalStrikeFireEx(obj)
 | ||
| {
 | ||
| 	procAppend_po_ATElementalStrikeEx(obj);
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| function onEndCurrentAni_po_ATElementalStrikeFireEx(obj)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 
 | ||
| 	local passiveState = obj.getVar("state").get_vector(0);
 | ||
| 
 | ||
| 	print(" passiveState:" + passiveState);
 | ||
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | ||
| 	{
 | ||
| 		if(obj.isMyControlObject())
 | ||
| 		{
 | ||
| 			sq_SendDestroyPacketPassiveObject(obj);
 | ||
| 		}
 | ||
| 	}
 | ||
| 	else
 | ||
| 	{
 | ||
| 		local pIntVec = sq_GetGlobalIntVector();
 | ||
| 		
 | ||
| 		sq_IntVectorClear(pIntVec);
 | ||
| 		sq_IntVectorPush(pIntVec, 0);
 | ||
| 		obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | ||
| 	}
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| ///////////////////////////////////
 | ||
| // 鼠楼撩
 | ||
| ///////////////////////////////////
 | ||
| 
 | ||
| function setCustomData_po_ATElementalStrikeNoneEx(obj, reciveData)
 | ||
| {
 | ||
| 	setCustomData_po_ATElementalStrikeEx(obj, reciveData);
 | ||
| }
 | ||
| 
 | ||
| function setState_po_ATElementalStrikeNoneEx(obj, state, datas)
 | ||
| {
 | ||
| 	setState_po_ATElementalStrikeEx(obj, state, datas);
 | ||
| }
 | ||
| 
 | ||
| function procAppend_po_ATElementalStrikeNoneEx(obj)
 | ||
| {
 | ||
| 	procAppend_po_ATElementalStrikeEx(obj);
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| function onEndCurrentAni_po_ATElementalStrikeNoneEx(obj)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 
 | ||
| 	local passiveState = obj.getVar("state").get_vector(0);
 | ||
| 
 | ||
| 	print(" passiveState:" + passiveState);
 | ||
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | ||
| 	{
 | ||
| 		if(obj.isMyControlObject())
 | ||
| 		{
 | ||
| 			sq_SendDestroyPacketPassiveObject(obj);
 | ||
| 		}
 | ||
| 	}
 | ||
| 	else
 | ||
| 	{
 | ||
| 		local pIntVec = sq_GetGlobalIntVector();
 | ||
| 		
 | ||
| 		sq_IntVectorClear(pIntVec);
 | ||
| 		sq_IntVectorPush(pIntVec, 0);
 | ||
| 		obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | ||
| 	}
 | ||
| }
 | ||
| 
 | ||
| /////////////////////////////////////////////////////////////////////////////////////////
 | ||
| 
 | ||
| ///////////////////////////////////
 | ||
| // 檩楼撩
 | ||
| ///////////////////////////////////
 | ||
| 
 | ||
| function setCustomData_po_ATElementalStrikeDarkEx(obj, reciveData)
 | ||
| {
 | ||
| 	setCustomData_po_ATElementalStrikeEx(obj, reciveData);
 | ||
| }
 | ||
| 
 | ||
| function setState_po_ATElementalStrikeDarkEx(obj, state, datas)
 | ||
| {
 | ||
| 	setState_po_ATElementalStrikeEx(obj, state, datas);
 | ||
| }
 | ||
| 
 | ||
| function procAppend_po_ATElementalStrikeDarkEx(obj)
 | ||
| {
 | ||
| 	procAppend_po_ATElementalStrikeEx(obj);
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| function onEndCurrentAni_po_ATElementalStrikeDarkEx(obj)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 
 | ||
| 	local passiveState = obj.getVar("state").get_vector(0);
 | ||
| 
 | ||
| 	print(" passiveState:" + passiveState);
 | ||
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | ||
| 	{
 | ||
| 		if(obj.isMyControlObject())
 | ||
| 		{
 | ||
| 			sq_SendDestroyPacketPassiveObject(obj);
 | ||
| 		}
 | ||
| 	}
 | ||
| 	else
 | ||
| 	{
 | ||
| 		local pIntVec = sq_GetGlobalIntVector();
 | ||
| 		
 | ||
| 		sq_IntVectorClear(pIntVec);
 | ||
| 		sq_IntVectorPush(pIntVec, 0);
 | ||
| 		obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | ||
| 	}
 | ||
| }
 | ||
| 
 | ||
| /////////////////////////////////////////////////////////////////////////////////////////
 | ||
| 
 | ||
| ///////////////////////////////////
 | ||
| // 热楼撩
 | ||
| ///////////////////////////////////
 | ||
| 
 | ||
| function setCustomData_po_ATElementalStrikeWaterEx(obj, reciveData)
 | ||
| {
 | ||
| 	setCustomData_po_ATElementalStrikeEx(obj, reciveData);
 | ||
| }
 | ||
| 
 | ||
| function setState_po_ATElementalStrikeWaterEx(obj, state, datas)
 | ||
| {
 | ||
| 	setState_po_ATElementalStrikeEx(obj, state, datas);
 | ||
| }
 | ||
| 
 | ||
| function procAppend_po_ATElementalStrikeWaterEx(obj)
 | ||
| {
 | ||
| 	procAppend_po_ATElementalStrikeEx(obj);
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| function onEndCurrentAni_po_ATElementalStrikeWaterEx(obj)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 
 | ||
| 	local passiveState = obj.getVar("state").get_vector(0);
 | ||
| 
 | ||
| 	print(" passiveState:" + passiveState);
 | ||
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | ||
| 	{
 | ||
| 		if(obj.isMyControlObject())
 | ||
| 		{
 | ||
| 			sq_SendDestroyPacketPassiveObject(obj);
 | ||
| 		}
 | ||
| 	}
 | ||
| 	else
 | ||
| 	{
 | ||
| 		local pIntVec = sq_GetGlobalIntVector();
 | ||
| 		
 | ||
| 		sq_IntVectorClear(pIntVec);
 | ||
| 		sq_IntVectorPush(pIntVec, 0);
 | ||
| 		obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | ||
| 	}
 | ||
| }
 | ||
| 
 | ||
| /////////////////////////////////////////////////////////////////////////////////////////
 | ||
| 
 | ||
| ///////////////////////////////////
 | ||
| // 赀楼撩
 | ||
| ///////////////////////////////////
 | ||
| 
 | ||
| function setCustomData_po_ATElementalStrikeLightEx(obj, reciveData)
 | ||
| {
 | ||
| 	setCustomData_po_ATElementalStrikeEx(obj, reciveData);
 | ||
| }
 | ||
| 
 | ||
| function setState_po_ATElementalStrikeLightEx(obj, state, datas)
 | ||
| {
 | ||
| 	setState_po_ATElementalStrikeEx(obj, state, datas);
 | ||
| }
 | ||
| 
 | ||
| function procAppend_po_ATElementalStrikeLightEx(obj)
 | ||
| {
 | ||
| 	procAppend_po_ATElementalStrikeEx(obj);
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| function onEndCurrentAni_po_ATElementalStrikeLightEx(obj)
 | ||
| {
 | ||
| 	if(!obj) return;
 | ||
| 
 | ||
| 	local passiveState = obj.getVar("state").get_vector(0);
 | ||
| 
 | ||
| 	print(" passiveState:" + passiveState);
 | ||
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | ||
| 	{
 | ||
| 		if(obj.isMyControlObject())
 | ||
| 		{
 | ||
| 			sq_SendDestroyPacketPassiveObject(obj);
 | ||
| 		}
 | ||
| 	}
 | ||
| 	else
 | ||
| 	{
 | ||
| 		local pIntVec = sq_GetGlobalIntVector();
 | ||
| 		
 | ||
| 		sq_IntVectorClear(pIntVec);
 | ||
| 		sq_IntVectorPush(pIntVec, 0);
 | ||
| 		obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | ||
| 	}
 | ||
| }
 | ||
| 
 | ||
| /////////////////////////////////////////////////////////////////////////////////////////
 | ||
|  |