350 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			350 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /////////////////////////////////////////////////////////
 | |
| //
 | |
| // ?卫粽 蝶鉴籀葬
 | |
| // ?渡 蝶鉴暧 ?卫粽 蝶鉴暧 Appendage蛔烟/?薯 蛔蛔
 | |
| //
 | |
| /////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| function ProcPassiveSkill_CreatorMage(obj, skill_index, skill_level)
 | |
| {
 | |
| 	if (skill_index == SKILL_FIREWALL || skill_index == SKILL_FIREMETEO)
 | |
| 	{ // firewall
 | |
| 		if (skill_level > 0)
 | |
| 		{
 | |
| 			local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false, 
 | |
| 			"Character/CreatorMage/ap_creatormage_flame.nut", true);
 | |
| 
 | |
| 			if (appendage)
 | |
| 			{
 | |
| 				local attributeSkill = SKILL_CREATORFLAME;				
 | |
| 				local level = sq_GetSkillLevel(obj, attributeSkill);
 | |
| 				// 0.裟蝶 啪桧虽 热纂
 | |
| 				local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
 | |
| 
 | |
| 				if (appendage.sq_var.size_vector() == 0)
 | |
| 				{
 | |
| 					for (local i = 0; i < I_SIZE; i++)
 | |
| 						appendage.sq_var.push_vector(0);
 | |
| 
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				
 | |
| 				local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
 | |
| 				appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
 | |
| 
 | |
| 				
 | |
| 				if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
 | |
| 				{	
 | |
| 					// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
 | |
| 				{
 | |
| 					setCreatorSkillStateSkillIndex(obj, -1);
 | |
| 					onAllChargeCreatorMageGauge(obj);
 | |
| 				}
 | |
| 
 | |
| 				// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
 | |
| 				local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
 | |
| 				appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
 | |
| 
 | |
| 				local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
 | |
| 
 | |
| 				if (chargeMode)
 | |
| 				{
 | |
| 					local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
 | |
| 					local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
 | |
| 
 | |
| 					if ((chargeTime - time) > 0)
 | |
| 						appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
 | |
| 					appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
 | |
| 					//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	else if (skill_index == SKILL_ICEROCK || skill_index == SKILL_ICEPLATE)
 | |
| 	{
 | |
| 		if (skill_level > 0)
 | |
| 		{
 | |
| 			local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false, 
 | |
| 			"Character/CreatorMage/ap_creatormage_ice.nut", true);
 | |
| 
 | |
| 			if (appendage)
 | |
| 			{
 | |
| 				local attributeSkill = SKILL_CREATORICE;				
 | |
| 				local level = sq_GetSkillLevel(obj, attributeSkill);
 | |
| 				// 0.裟蝶 啪桧虽 热纂
 | |
| 				local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
 | |
| 
 | |
| 				if (appendage.sq_var.size_vector() == 0)
 | |
| 				{
 | |
| 					for (local i = 0; i < I_SIZE; i++)
 | |
| 						appendage.sq_var.push_vector(0);
 | |
| 
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				
 | |
| 				local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
 | |
| 				appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
 | |
| 
 | |
| 				if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
 | |
| 				{	
 | |
| 					// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
 | |
| 				{
 | |
| 					setCreatorSkillStateSkillIndex(obj, -1);
 | |
| 					onAllChargeCreatorMageGauge(obj);
 | |
| 				}
 | |
| 
 | |
| 				
 | |
| 				// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
 | |
| 				local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
 | |
| 				appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
 | |
| 
 | |
| 				local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
 | |
| 
 | |
| 				if (chargeMode)
 | |
| 				{
 | |
| 					local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
 | |
| 					local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
 | |
| 
 | |
| 					print(" chargeMode:" + chargeMode);
 | |
| 					print(" delayTime:" + time);
 | |
| 
 | |
| 					if ((chargeTime - time) > 0)
 | |
| 						appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
 | |
| 					appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
 | |
| 					//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	else if (skill_index == SKILL_WOODFENCE || skill_index == SKILL_MGRAB)
 | |
| 	{
 | |
| 		if (skill_level > 0)
 | |
| 		{
 | |
| 			local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false, 
 | |
| 			"Character/CreatorMage/ap_creatormage_disturb.nut", true);
 | |
| 
 | |
| 			if (appendage)
 | |
| 			{
 | |
| 				local attributeSkill = SKILL_CREATORDISTURB;				
 | |
| 				local level = sq_GetSkillLevel(obj, attributeSkill);
 | |
| 				// 0.裟蝶 啪桧虽 热纂
 | |
| 				local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
 | |
| 
 | |
| 				if (appendage.sq_var.size_vector() == 0)
 | |
| 				{
 | |
| 					for (local i = 0; i < I_SIZE; i++)
 | |
| 						appendage.sq_var.push_vector(0);
 | |
| 
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				
 | |
| 				local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
 | |
| 				appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
 | |
| 
 | |
| 				if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
 | |
| 				{	
 | |
| 					// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
 | |
| 				{
 | |
| 					setCreatorSkillStateSkillIndex(obj, -1);
 | |
| 					onAllChargeCreatorMageGauge(obj);
 | |
| 				}
 | |
| 
 | |
| 				//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				//appendage.sq_var.set_vector(l_CHARGE_ON, 0);
 | |
| 				
 | |
| 				// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
 | |
| 				local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
 | |
| 				appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
 | |
| 
 | |
| 				local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
 | |
| 
 | |
| 				if (chargeMode)
 | |
| 				{
 | |
| 					local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
 | |
| 					local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
 | |
| 
 | |
| 					print(" chargeMode:" + chargeMode);
 | |
| 					print(" delayTime:" + time);
 | |
| 
 | |
| 					if ((chargeTime - time) > 0)
 | |
| 						appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
 | |
| 					appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
 | |
| 					//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	else if (skill_index == SKILL_FIREHURRICANE || skill_index == SKILL_ICESHIELD)
 | |
| 	{
 | |
| 		if (skill_level > 0)
 | |
| 		{
 | |
| 			local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false, 
 | |
| 			"Character/CreatorMage/ap_creatormage_guardian.nut", true);
 | |
| 
 | |
| 			if (appendage)
 | |
| 			{
 | |
| 				local attributeSkill = SKILL_CREATORGUARDIAN;				
 | |
| 				local level = sq_GetSkillLevel(obj, attributeSkill);
 | |
| 				// 0.裟蝶 啪桧虽 热纂
 | |
| 				local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
 | |
| 
 | |
| 				if (appendage.sq_var.size_vector() == 0)
 | |
| 				{
 | |
| 					for (local i = 0; i < I_SIZE; i++)
 | |
| 						appendage.sq_var.push_vector(0);
 | |
| 
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				
 | |
| 				local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
 | |
| 				appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
 | |
| 				
 | |
| 				if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
 | |
| 				{	
 | |
| 					// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
 | |
| 				{
 | |
| 					setCreatorSkillStateSkillIndex(obj, -1);
 | |
| 					onAllChargeCreatorMageGauge(obj);
 | |
| 				}
 | |
| 
 | |
| 
 | |
| 				// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
 | |
| 				local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
 | |
| 				appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
 | |
| 
 | |
| 				local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
 | |
| 
 | |
| 				if (chargeMode)
 | |
| 				{
 | |
| 					local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
 | |
| 					local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
 | |
| 
 | |
| 					print(" chargeMode:" + chargeMode);
 | |
| 					print(" delayTime:" + time);
 | |
| 
 | |
| 					if ((chargeTime - time) > 0)
 | |
| 						appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
 | |
| 					appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
 | |
| 					//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	else if (skill_index == SKILL_WINDPRESS || skill_index == SKILL_WINDSTORM)
 | |
| 	{
 | |
| 		// 孺萄 楼撩
 | |
| 		if (skill_level > 0)
 | |
| 		{
 | |
| 			local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false, 
 | |
| 			"Character/CreatorMage/ap_creatormage_wind.nut", true);
 | |
| 
 | |
| 			if (appendage)
 | |
| 			{
 | |
| 				local attributeSkill = SKILL_CREATORWIND;				
 | |
| 				local level = sq_GetSkillLevel(obj, attributeSkill);
 | |
| 				// 0.裟蝶 啪桧虽 热纂
 | |
| 				local maxCnt = sq_GetLevelData(obj, attributeSkill, 0, level);
 | |
| 
 | |
| 				if (appendage.sq_var.size_vector() == 0)
 | |
| 				{
 | |
| 					for (local i = 0; i < I_SIZE; i++)
 | |
| 						appendage.sq_var.push_vector(0);
 | |
| 
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				
 | |
| 				local beforeMaxCnt = appendage.sq_var.get_vector(I_MAX_COUNT);
 | |
| 				appendage.sq_var.set_vector(I_MAX_COUNT, maxCnt);
 | |
| 				
 | |
| 				if (appendage.sq_var.get_vector(I_REMAIN_COUNT) > appendage.sq_var.get_vector(I_MAX_COUNT) || sq_GetCurrentModuleType() == MODULE_TYPE_ROOM_LIST)
 | |
| 				{	
 | |
| 					// 陴擎 醱瞪高桧 裟蝶纂尔棻 觼棻贼 裟蝶纂 虏踯虏 醱瞪卫霾栖棻.
 | |
| 					appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 				else if (beforeMaxCnt > 0 && beforeMaxCnt != maxCnt)
 | |
| 				{
 | |
| 					setCreatorSkillStateSkillIndex(obj, -1);
 | |
| 					onAllChargeCreatorMageGauge(obj);
 | |
| 				}
 | |
| 
 | |
| 
 | |
| 				// 0. 棻 瓣表韩阳梱虽 勘葬朝 卫除 (ms)
 | |
| 				local chargeTime = sq_GetIntData(obj, attributeSkill, 0);
 | |
| 				appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime);
 | |
| 
 | |
| 				local chargeMode = appendage.sq_var.get_vector(l_CHARGE_ON);
 | |
| 
 | |
| 				if (chargeMode)
 | |
| 				{
 | |
| 					local remainCnt = appendage.sq_var.get_vector(I_REMAIN_COUNT);
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, remainCnt);
 | |
| 					local time = appendage.sq_var.get_vector(I_CURRENT_CHARGE_TIME);
 | |
| 
 | |
| 					print(" chargeMode:" + chargeMode);
 | |
| 					print(" delayTime:" + time);
 | |
| 
 | |
| 					if ((chargeTime - time) > 0)
 | |
| 						appendage.sq_var.set_vector(I_CHARGE_TIME, chargeTime - time);
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					appendage.sq_var.set_vector(I_CHARGE_INIT_COUNT, 0);
 | |
| 					appendage.sq_var.set_vector(I_CURRENT_CHARGE_TIME, 0);
 | |
| 					//appendage.sq_var.set_vector(I_REMAIN_COUNT, maxCnt);
 | |
| 				}
 | |
| 
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	return true;
 | |
| }
 | |
| 
 | |
| 
 | |
| function onUseSkillPassiveSkill_CreatorMage(obj,skillIndex, skillLevel)
 | |
| {
 | |
| 	if(!obj)
 | |
| 		return;		
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |