200 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			200 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /////////////////////////////////////////////////////////
 | ||
| //
 | ||
| // ?卫粽 蝶鉴籀葬
 | ||
| // ?渡 蝶鉴暧 ?卫粽 蝶鉴暧 Appendage蛔烟/?薯 蛔蛔
 | ||
| //
 | ||
| /////////////////////////////////////////////////////////
 | ||
| function ProcPassiveSkillAvenger(obj, skill_index, skill_level)
 | ||
| {
 | ||
| 	if (skill_index == SKILL_SCYTHE_MASTERY)
 | ||
| 	{
 | ||
| 		if (obj.getWeaponSubType() == WEAPON_SUBTYPE_SCYTHE && skill_level > 0)
 | ||
| 		{
 | ||
| 			local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false, "Appendage/Character/scythe_mastery.nut", true);
 | ||
| 			
 | ||
| 			local attack_speed = sq_GetLevelData(obj, skill_index, 0, skill_level);
 | ||
| 			local dark_element = sq_GetLevelData(obj, skill_index, 1, skill_level);
 | ||
| 			local light_element = sq_GetLevelData(obj, skill_index, 2, skill_level) * -1;
 | ||
| 			local weaponMagicAttack = sq_GetLevelData(obj, skill_index, 3, skill_level);
 | ||
| 
 | ||
| 			local change_appendage = appendage.sq_getChangeStatus("scythe");
 | ||
| 			if(!change_appendage) {
 | ||
| 				change_appendage = appendage.sq_AddChangeStatus("scythe",obj, obj, 0, CHANGE_STATUS_TYPE_ATTACK_SPEED, true, attack_speed );
 | ||
| 			}
 | ||
| 		
 | ||
| 			// 奢楼隶陛, 檩楼撩 荡?隶陛, 赀楼撩 荡?马模
 | ||
| 			if(change_appendage) {
 | ||
| 				change_appendage.clearParameter();
 | ||
| 				change_appendage.addParameter(CHANGE_STATUS_TYPE_ATTACK_SPEED, true, attack_speed.tofloat());
 | ||
| 				change_appendage.addParameter(CHANGE_STATUS_TYPE_ELEMENT_TOLERANCE_DARK, false, dark_element.tofloat());
 | ||
| 				change_appendage.addParameter(CHANGE_STATUS_TYPE_ELEMENT_TOLERANCE_LIGHT, false, light_element.tofloat());
 | ||
| 				
 | ||
| 				change_appendage.addParameter(CHANGE_STATUS_TYPE_EQUIPMENT_MAGICAL_ATTACK, true, weaponMagicAttack.tofloat());				
 | ||
| 			}
 | ||
| 		}
 | ||
| 		else
 | ||
| 		{
 | ||
| 			//CNSquirrelAppendage.sq_RemoveAppendage(obj, "Appendage/Character/scythe_mastery.nut");			
 | ||
| 			if(skill_level > 0) {
 | ||
| 				local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false, "Appendage/Character/scythe_mastery.nut", true);
 | ||
| 			
 | ||
| 				if(appendage) {					
 | ||
| 					local change_appendage = appendage.sq_getChangeStatus("scythe");					
 | ||
| 					if(change_appendage) {
 | ||
| 						change_appendage.clearParameter();
 | ||
| 					}
 | ||
| 				}
 | ||
| 			}
 | ||
| 		}
 | ||
| 	}
 | ||
| 	else if(skill_index == SKILL_HEARTHINGS)
 | ||
| 	{
 | ||
| 		if (skill_level > 0)
 | ||
| 			obj.sq_addPassiveSkillAttackBonusRate(SKILL_HEARTHINGS,1);
 | ||
| 	}
 | ||
| 	
 | ||
| 	if(skill_index == SKILL_DEVILSTRIKE) { // 等网蝶?塭桧醴 
 | ||
| 		if (skill_level > 0) {
 | ||
| 			local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false, "Appendage/Character/ap_avenger_devilstrike.nut", true);
 | ||
| 			local maxValue = sq_GetIntData(obj, SKILL_DEVILSTRIKE, SI_DS_MAX_DEVIL_GAUGE); // 譆渠 学葆啪桧虽 热纂
 | ||
| 			if(appendage.sq_var.size_vector() != 5) { // 虽陪 啪桧虽陛 虽表虽朝 帼斜热姜
 | ||
| 				appendage.sq_var.clear_vector();		
 | ||
| 				appendage.sq_var.push_vector(maxValue); // 譆渠 学葆啪桧虽 热纂
 | ||
| 				appendage.sq_var.push_vector(0); // ?营 学葆啪桧虽 热纂
 | ||
| 				appendage.sq_var.push_vector(0); // 虽陪 热纂
 | ||
| 				appendage.sq_var.push_vector(0); // 
 | ||
| 				appendage.sq_var.push_vector(0);
 | ||
| 			}
 | ||
| 			else {
 | ||
| 			 // 虏橾 裟蝶啪桧虽陛 棻脑棻贼 侦褐?丑捡?栖棻..
 | ||
| 				local max_gauge = appendage.sq_var.get_vector(DS_APEND_MAX_GAUGE);
 | ||
| 				
 | ||
| 				if(max_gauge != maxValue) {
 | ||
| 					appendage.sq_var.set_vector(DS_APEND_MAX_GAUGE, maxValue);
 | ||
| 				}
 | ||
| 			}
 | ||
| 			
 | ||
| 			obj.getVar("devilStrike").clear_vector();
 | ||
| 			obj.getVar("devilStrike").push_vector(0); // character "devilstrike" sqrvar 0廓樯策蝶 晦奖击 当 樯策蝶
 | ||
| 			obj.getVar("devilStrike").push_vector(0);
 | ||
| 			obj.getVar("devilStrike").push_vector(0);
 | ||
| 			obj.getVar("devilStrike").push_vector(0);
 | ||
| 			
 | ||
| 			obj.getVar("devilStrike").clear_ct_vector(); // 颤桧该 赝葬横
 | ||
| 			obj.getVar("devilStrike").push_ct_vector();
 | ||
| 			obj.getVar("devilStrike").push_ct_vector();
 | ||
| 			obj.getVar("devilStrike").push_ct_vector();
 | ||
| 			
 | ||
| 			obj.getVar("devilStrike").get_ct_vector(0).Reset();
 | ||
| 			obj.getVar("devilStrike").get_ct_vector(0).Start(0,0);
 | ||
| 			
 | ||
| 			
 | ||
| 			appendage.sq_var.clear_timer_vector(); // 颤桧该 赝葬横
 | ||
| 			appendage.sq_var.push_timer_vector(); // 颤桧该 ?卫
 | ||
| 			appendage.sq_var.push_timer_vector();
 | ||
| 		}
 | ||
| 		else {
 | ||
| 			CNSquirrelAppendage.sq_RemoveAppendage(obj, "Appendage/Character/ap_avenger_devilstrike.nut");
 | ||
| 		}
 | ||
| 	}
 | ||
| 	
 | ||
| 	if(skill_index == SKILL_NIGHTMARE) { // 陕撩 ?卫粽学跦(48溯涟)
 | ||
| 		// 陕撩?卫粽 : 学跦(48溯涟)
 | ||
| 		// 1. 陕撩 渗褐 翕寰 陕撩晦 奢问溘桧 隶陛?
 | ||
| 		// 2. 等网 蝶?塭桧醴暧 学葆 啪桧虽 离朝榆 隶陛.
 | ||
| 		// 陕撩?卫粽 学跦击 乾坚 毡朝虽 羹觼?坚 乾坚 毡棻贼 学葆 啪桧虽 离朝榆击 隶陛卫面怃 葬欐?栖棻..	
 | ||
| 		if (skill_level > 0) {
 | ||
| 			obj.sq_addPassiveSkillAttackBonusRate(SKILL_NIGHTMARE,1); // 1.奢问溘 隶陛榆(%)
 | ||
| 		}
 | ||
| 		//if (skill_level > 0) {
 | ||
| 			//local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skill_index, false, "Appendage/Character/ap_avenger_nightmare.nut", true);
 | ||
| 			//obj.sq_addPassiveSkillAttackBonusRate(SKILL_NIGHTMARE,1);
 | ||
| 		//}
 | ||
| 		//else {
 | ||
| 			//CNSquirrelAppendage.sq_RemoveAppendage(obj, "Appendage/Character/ap_avenger_nightmare.nut");
 | ||
| 		//}
 | ||
| 	}
 | ||
| 	
 | ||
| 	
 | ||
| 	return true;
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| function onUseSkillAvengerPassiveSkill(obj,skillIndex, skillLevel)
 | ||
| {
 | ||
| 	if(!obj)
 | ||
| 		return;
 | ||
| 		
 | ||
| 	local hearthingsLevel = obj.sq_getSkillLevel(SKILL_HEARTHINGS);
 | ||
| 	local activeRate	  = obj.sq_getIntData(SKILL_HEARTHINGS,1); //嫦翕 ?睦
 | ||
| 		
 | ||
| 	if(activeRate >= sq_getRandom(0,100) && hearthingsLevel > 0 && obj.isSkillClassType(skillIndex,3)) {		
 | ||
| 			
 | ||
| 		local time				= obj.sq_getLevelData(SKILL_HEARTHINGS,0,hearthingsLevel);
 | ||
| 		local changeMoveSpeed	= obj.sq_getLevelData(SKILL_HEARTHINGS,2,hearthingsLevel);
 | ||
| 		local changeHp			= obj.sq_getLevelData(SKILL_HEARTHINGS,3,hearthingsLevel) * -1;
 | ||
| 		local changeMp			= obj.sq_getLevelData(SKILL_HEARTHINGS,4,hearthingsLevel) * -1;
 | ||
| 		local currentCount		= 1;
 | ||
| 		local maxCount			= obj.sq_getIntData(SKILL_HEARTHINGS,0);
 | ||
| 				
 | ||
| 		local oldAppendage = obj.GetSquirrelAppendage("Appendage/Character/hearthings.nut");
 | ||
| 		if(oldAppendage) {
 | ||
| 			currentCount = currentCount + oldAppendage.sq_var.getInt(0);
 | ||
| 			if(currentCount > maxCount) // 酝绘 譆渠纂 
 | ||
| 				return;
 | ||
| 		}		
 | ||
| 	
 | ||
| 		local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, skillIndex, true, "Appendage/Character/hearthings.nut", true);		
 | ||
| 		local change_appendage = appendage.sq_getChangeStatus("hearthings");
 | ||
| 		
 | ||
| 		if(!change_appendage) {
 | ||
| 			change_appendage = appendage.sq_AddChangeStatus("hearthings",obj, obj, 0, CHANGE_STATUS_TYPE_MOVE_SPEED, true, currentCount.tointeger() * changeMoveSpeed.tointeger() );
 | ||
| 		}
 | ||
| 		
 | ||
| 		if(change_appendage) {
 | ||
| 			change_appendage.clearParameter();
 | ||
| 			change_appendage.addParameter(CHANGE_STATUS_TYPE_MOVE_SPEED, true, currentCount.tofloat() * changeMoveSpeed.tofloat());
 | ||
| 			change_appendage.addParameter(CHANGE_STATUS_TYPE_HP_MAX, true, currentCount.tofloat() * changeHp.tofloat());
 | ||
| 			change_appendage.addParameter(CHANGE_STATUS_TYPE_MP_MAX, true, currentCount.tofloat() * changeMp.tofloat());			
 | ||
| 		}
 | ||
| 		
 | ||
| 		appendage.getAppendageInfo().setValidTime(time); // 嵘?卫除	
 | ||
| 				
 | ||
| 		appendage.sq_var.setInt(0,currentCount.tointeger());
 | ||
| 	}
 | ||
| 
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| function OnBeforeAttackAvengerPassiveSkill(obj, damager, bounding_box, is_stuck)
 | ||
| {
 | ||
| 	// 饵桧萄 葆蝶搅葬蒂 乾坚 毡棻贼, 陷缣 暧? 颤问 僭葬 奢问击 -> 葆彻 奢问戏煎 夥脯遽棻.
 | ||
| 	if(!obj) return false;
 | ||
| 	
 | ||
| 	if (is_stuck == false)
 | ||
| 	{
 | ||
| 		local result = CNSquirrelAppendage.sq_IsAppendAppendage(obj, "Appendage/Character/scythe_mastery.nut");
 | ||
| 		
 | ||
| 
 | ||
| 		if (result == true)
 | ||
| 		{
 | ||
| 			if(obj.getWeaponSubType() == WEAPON_SUBTYPE_SCYTHE) { // 陷 橾阳虏
 | ||
| 				// state 陛 ?颤橾阳谛 僭葬颤橾阳虏 瞳辨腌栖棻..
 | ||
| 				local state = obj.sq_GetSTATE();
 | ||
| 				if(sqr_IsNormalAttack(state) == true) {
 | ||
| 					local attack_info = sq_GetCurrentAttackInfo(obj);			
 | ||
| 					local eType = sq_GetAttackType(attack_info);
 | ||
| 					if(eType == ATTACKTYPE_PHYSICAL) {
 | ||
| 						sq_ChangeAttackTypeToOpposite(attack_info);
 | ||
| 					}
 | ||
| 				}
 | ||
| 			}
 | ||
| 		}
 | ||
| 	}
 | ||
| 	
 | ||
| 	return true;
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
|  |