1942 lines
		
	
	
		
			58 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			1942 lines
		
	
	
		
			58 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | 
 | |||
|  | S_FLOW_NORMAL <- 0 // 晦狱掘亵渠煎 | |||
|  | S_FLOW_PRIEST <- 1 // ?葬蝶? 薹戏煎 埠潍 绪螳捡?棻.. | |||
|  | S_FLOW_RETURN <- 2 //  | |||
|  | 
 | |||
|  | // Awakening.skl 蝶鉴溯涟 才桧绾 | |||
|  | SL_PERFECT_CHANGE_HP <- 0 // (0) 谏瞪 渗褐羹 HP  | |||
|  | SL_CHANGE_TIME <- 1 // (1) 虽楼卫除  | |||
|  | SL_DEF_INC <- 2 // (2) 寞横溘隶陛(+) | |||
|  | SL_ATK_SPD <- 3 // (3) 奢问楼紫(+) | |||
|  | SL_MOV_SPD <- 4 // (4) 桧翕楼紫(+) | |||
|  | SL_1_HIT_MAGIC_ATK <- 5 // (5) 1颤 葆彻奢问溘(+) | |||
|  | SL_2_HIT_MAGIC_ATK <- 6 // (6) 2颤 葆彻奢问溘(+) | |||
|  | SL_3_HIT_MAGIC_ATK <- 7 // (7) 3颤 葆彻奢问溘(+) | |||
|  | SL_DASH_MAGIC_ATK <- 8 // (8) 渠卫 葆彻奢问溘(+) | |||
|  | SL_JUMP_MAGIC_ATK <- 9 // (9) C(薄?) 葆彻奢问溘(+) | |||
|  | SL_JUMP_FULLCHARGE_MAGIC_ATK <- 10 // (10) ?醱瞪 C(薄?) 葆彻奢问溘(+) | |||
|  | 
 | |||
|  | 
 | |||
|  | //  | |||
|  | // DevilStrike.skl 蝶鉴溯涟 才桧绾 | |||
|  | SL_DS_ATTACK1_GAUGE_COMSUME <- 0 // 0.z郦 啪桧虽 模赅晔 | |||
|  | SL_DS_ATTACK2_GAUGE_COMSUME <- 1 // 1.x郦 啪桧虽 模赅晔 | |||
|  | SL_DS_ATTACK3_GAUGE_COMSUME <- 2 // 2.c郦 啪桧虽 模赅晔 | |||
|  | SL_DS_ATTACK1_ATTACK_RATE <- 3 // 3.z郦 奢问溘(%) | |||
|  | SL_DS_ATTACK2_ATTACK_RATE <- 4 // 4.x郦 奢问溘(%) | |||
|  | SL_DS_ATTACK3_ATTACK_RATE <- 5 // 5.c郦 奢问溘(%) | |||
|  | 
 | |||
|  | 
 | |||
|  | // DevilStrike.skl 蝶鉴溯涟 才桧绾 | |||
|  | SL_DS_ATTACK1_GAUGE_COMSUME <- 0 // 0.z郦 啪桧虽 模赅晔 | |||
|  | SL_DS_ATTACK2_GAUGE_COMSUME <- 1 // 1.x郦 啪桧虽 模赅晔 | |||
|  | SL_DS_ATTACK3_GAUGE_COMSUME <- 2 // 2.c郦 啪桧虽 模赅晔 | |||
|  | SL_DS_ATTACK1_ATTACK_RATE <- 3 // 3.z郦 奢问溘(%) | |||
|  | SL_DS_ATTACK2_ATTACK_RATE <- 4 // 4.x郦 奢问溘(%) | |||
|  | SL_DS_ATTACK3_ATTACK_RATE <- 5 // 5.c郦 奢问溘(%) | |||
|  | 
 | |||
|  | 
 | |||
|  | // 等网蝶?塭桧醴 樯策蝶 | |||
|  | DEVILSTRIKE_ATTACK_1 <- 0 | |||
|  | DEVILSTRIKE_ATTACK_2 <- 1 | |||
|  | DEVILSTRIKE_ATTACK_3 <- 2 | |||
|  | 
 | |||
|  | // 等网蝶?塭桧醴 横?蛤虽 VECTOR 樯策蝶  | |||
|  | DS_APEND_MAX_GAUGE <- 0 // 譆渠 学葆啪桧虽 热纂 | |||
|  | DS_APEND_GAUGE <- 1 // ?营 学葆啪桧虽 热纂 | |||
|  | DS_APEND_LAST_GAUGE <- 2 // 虽陪 学葆啪桧虽 热纂 | |||
|  | DS_APEND_ADD_FLAG <- 3 // using state 等网蝶?塭桧醴朝 蝶鉴 ?廓渡 ?廓虏 醱瞪桧 肾晦 阳侥缣 羹觼?楚斜蒂 虏菟横萋捡?中蛤凶.. | |||
|  | DS_APEND_BEFORE_ADD <- 4 // 夥煎 瞪  | |||
|  | 
 | |||
|  | 
 | |||
|  | // 横渐螳 陕撩赅萄 樯虽 羹觼 | |||
|  | function isAvengerAwakenning(obj) | |||
|  | { | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_awakening.nut"); | |||
|  | 	 | |||
|  | 	if(appendage) { | |||
|  | 		// 葬橡 寨葬萄 ?楚斜煎 噩 詹帼殓栖棻.. 谒 桧楛冲桧 腑傍贼..  | |||
|  | 		// 横渐荡陛 state_stand鼻鹧缣怃虏 渗褐?薯陛 肾横捡 ?栖棻  | |||
|  | 		// 斜楚怃 valid陛 false陛 胀棻坚 ?怃 埠潍 渗褐?薯 腑棻坚 除舆?怃朝 寰腌栖棻 罹楝寞彻击 当陕?鱼 念娄 桧 寞彻桧 陛潍 梃莠?剪 伪嬴怃 殓栖棻..  | |||
|  | 		// 该 噙桧朝 够紫 桡戏栖梱 | |||
|  | 		local isvalid = appendage.sq_var.get_vector(I_AVENGER_AWAKENING_VALID); | |||
|  | 		if(isvalid) { | |||
|  | 			return true; | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return false;	 | |||
|  | } | |||
|  | 
 | |||
|  | function isGrowTypeAvenger(obj) // ?塭嘐搅煎 剩啖霞 偌羹陛 ?葬蝶?-横渐荡樯虽 羹觼?朝 ?热殓栖棻.. | |||
|  | { | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	if(sq_getJob(obj) == ENUM_CHARACTERJOB_PRIEST && sq_getGrowType(obj) == GROW_TYPE_AVENGER) return true; // 横渐螳陛 嬴栖塭贼 传? 斜溥还 ?踵 桡击匏栖棻.. | |||
|  | 	 | |||
|  | 	return false; | |||
|  | } | |||
|  | 
 | |||
|  | // 等网蝶?塭桧醴蒂 噙朝等 瞳渡? state樯虽 羹觼 | |||
|  | function isExecutableStateDevilStrike(obj) | |||
|  | { | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj)) return false; | |||
|  | 	 | |||
|  | 	local skill = sq_GetSkill(obj, SKILL_DEVILSTRIKE); | |||
|  | 	 | |||
|  | 	local bEnable = false; | |||
|  | 	 | |||
|  | 	if(skill) { | |||
|  | 		local state = obj.getState(); | |||
|  | 		bEnable = skill.isExcutableState(state); | |||
|  | 		 | |||
|  | 		//print("isExecutableStateDevilStrike:" + bEnable + " state:" + state); | |||
|  | 		 | |||
|  | 		if(bEnable) { | |||
|  | 			if(state == STATE_THROW) { // 陛栋? skill 酝缣 state_throw煎 霞??朝 赁偃暧 蝶鉴桧 毡朝等 桧匙缣 妇?怃朝 热翕戏煎 羹觼?棻.. | |||
|  | 				 if(obj.getThrowIndex() != SKILL_GRASP_HAND_OF_ANGER && obj.getThrowIndex() != SKILL_CHANGE_HP_TO_MP) { | |||
|  | 					bEnable = false; | |||
|  | 				 } | |||
|  | 			}			 | |||
|  | 		} | |||
|  | 		 | |||
|  | 		local var_devil = obj.getVar("devilStrike"); | |||
|  | 		 | |||
|  | 		if(bEnable) { | |||
|  | 			 | |||
|  | 			local before_state = var_devil.get_vector(1); // 0廓擎 藤颤歜 1廓擎 瞪 state | |||
|  | 			if(state == before_state) { | |||
|  | 				//var_devil.set_vector(2, 1); // 2廓樯策蝶 ?楚斜朝 翱楼 等网蝶?塭桧觼  | |||
|  | 			} | |||
|  | 			else { | |||
|  | 				var_devil.set_vector(2, 0); // 2廓樯策蝶 ?楚斜朝 翱楼 等网蝶?塭桧觼  | |||
|  | 				var_devil.set_vector(1, state); | |||
|  | 			} | |||
|  | 		} | |||
|  | 		else { | |||
|  | 			var_devil.set_vector(2, 0); // 2廓 樯策蝶 ?楚斜朝 翱楼 等网蝶?塭桧觼  | |||
|  | 			var_devil.set_vector(1, state); | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	 | |||
|  | 	return bEnable; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | // 等网蝶?塭桧醴暧 学葆模绿榆击 掘?栖棻.. | |||
|  | function getDevilStrikeConsumeValue(obj, attack_index) | |||
|  | { | |||
|  | 	if(!obj) return 999999; // obj陛 割桧塭贼.. 橾钦 模绿榆击 樵羶釭啪 碳溥怃 陈萼棻.. | |||
|  | 	 | |||
|  | 	local level = sq_GetSkillLevel(obj, SKILL_DEVILSTRIKE); | |||
|  | 	local consumeValue = sq_GetLevelData(obj, SKILL_DEVILSTRIKE, SL_DS_ATTACK1_GAUGE_COMSUME + attack_index, level);	 | |||
|  | 	 | |||
|  | 	return consumeValue; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | // 横渐荡 等网蝶?塭桧醴 奢问 陛栋?虽 羹觼 | |||
|  | function isInDevilStrike(obj) | |||
|  | { | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	local level = sq_GetSkillLevel(obj, SKILL_DEVILSTRIKE); | |||
|  | 	 | |||
|  | 	if(level <= 0) return false; | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 	 | |||
|  | 	if(appendage) { | |||
|  | 		if(appendage.isValid() && level > 0) { | |||
|  | 			if(!isExecutableStateDevilStrike(obj)) return false; // 等网蝶?塭桧醴蒂 噙朝等 瞳渡? state樯虽 羹觼 | |||
|  | 			 | |||
|  | 			return true; | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return false;	 | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | // 横渐荡 - 等网蝶?塭桧醴 蝶鉴击 乾坚 毡朝虽 羹觼?栖棻.. | |||
|  | function isInDevilStrikeSkill(obj) | |||
|  | { | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	local level = sq_GetSkillLevel(obj, SKILL_DEVILSTRIKE); | |||
|  | 	 | |||
|  | 	if(level <= 0) return false; | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 	 | |||
|  | 	 | |||
|  | 	 | |||
|  | 	if(appendage) { | |||
|  | 		if(appendage.isValid() && level > 0) { | |||
|  | 			return true; | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return false;	 | |||
|  | } | |||
|  | 
 | |||
|  | // 晦奖击 噙朝 谛酝缣 棻钦??陛 菟横鬲击 阳 等网啪桧虽 坚楼醱瞪桧 桧瑞横虽朝匙击 虞晦嫔? 桧嘐 醱瞪肾历朝虽 羹觼?朝 ?热 殓栖棻.. | |||
|  | // 樯濠朝 state_throw缣怃 碟晦肾朝 睡碟紫 毡晦 阳侥缣 skl?橾暧 staticindex煎 绿掖?琐栖棻.. | |||
|  | function IsAddDevilGauge(obj, staticIndex) | |||
|  | { | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽	 | |||
|  | 	 | |||
|  | 	local use_index = -1; | |||
|  | 	 | |||
|  | 	if(appendage) { | |||
|  | 		use_index = appendage.sq_var.get_vector(DS_APEND_ADD_FLAG); | |||
|  | 	} | |||
|  | 	//print("IsAddDevilGauge:" + use_index); | |||
|  | 	 | |||
|  | 	if(use_index >= 0) { // -1桧剪釭 | |||
|  | 		return true; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return false; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | // ?营 陴嬴毡朝 学葆啪桧虽谛 蹂羶?朝 等网蝶?塭桧醴 樯策蝶暧 学葆啪桧虽 模赅榆娄  | |||
|  | // 绿掖?怃 醱碟? 陴嬴毡棻贼 return true蒂 ?栖棻..  | |||
|  | 
 | |||
|  | function IsEnableDevilStrike(obj, index) | |||
|  | { | |||
|  | 	if(!obj) return false;  | |||
|  | 	 | |||
|  | 	if(!isInDevilStrike(obj)) return false; | |||
|  | 	 | |||
|  | 	//SL_DS_ATTACK1_GAUGE_COMSUME <- 0 // 0.z郦 啪桧虽 模赅晔 | |||
|  | 	//SL_DS_ATTACK2_GAUGE_COMSUME <- 1 // 1.x郦 啪桧虽 模赅晔 | |||
|  | 	//SL_DS_ATTACK3_GAUGE_COMSUME <- 2 // 2.c郦 啪桧虽 模赅晔 | |||
|  | 	//SL_DS_ATTACK1_ATTACK_RATE <- 3 // 3.z郦 奢问溘(%) | |||
|  | 	//SL_DS_ATTACK2_ATTACK_RATE <- 4 // 4.x郦 奢问溘(%) | |||
|  | 	//SL_DS_ATTACK3_ATTACK_RATE <- 5 // 5.c郦 奢问溘(%) | |||
|  | 	// | |||
|  | 	// | |||
|  | 	//// 等网蝶?塭桧醴 樯策蝶 | |||
|  | 	//DEVILSTRIKE_ATTACK_1 <- 0 | |||
|  | 	//DEVILSTRIKE_ATTACK_2 <- 1 | |||
|  | 	//DEVILSTRIKE_ATTACK_3 <- 2 | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 	 | |||
|  | 	if(!appendage) return false; | |||
|  | 
 | |||
|  | 	if(appendage.sq_var.size_vector() > 1) { | |||
|  | 		//iKeyList[0] = E_ATTACK_COMMAND; | |||
|  | 		//iKeyList[1] = E_JUMP_COMMAND; | |||
|  | 		//iKeyList[2] = E_SKILL_COMMAND; | |||
|  | 		local leve_column = 0; | |||
|  | 		 | |||
|  | 		if(index == 0) { // attack (x) | |||
|  | 			leve_column = 1; | |||
|  | 		} | |||
|  | 		else if(index == 1) { // jump (c) | |||
|  | 			leve_column = 2; | |||
|  | 		} | |||
|  | 		else if(index == 2) { // skill (z) | |||
|  | 			leve_column = 0; | |||
|  | 		} | |||
|  | 		 | |||
|  | 		local consumeValue = getDevilStrikeConsumeValue(obj, leve_column); | |||
|  | 		 | |||
|  | 		//DS_APEND_MAX_GAUGE <- 0 // 譆渠 学葆啪桧虽 热纂 | |||
|  | 		//DS_APEND_GAUGE <- 1 // ?营 学葆啪桧虽 热纂 | |||
|  | 		 | |||
|  | 		local devil_gauge = appendage.sq_var.get_vector(DS_APEND_GAUGE); // gauge index 0 | |||
|  | 		 | |||
|  | 		if(devil_gauge >= consumeValue) return true; | |||
|  | 		else { | |||
|  | 			//obj.startCantUseSkillWarning(); | |||
|  | 			if (obj.isMessage()) { | |||
|  | 				sq_AddMessage(29002); // 29002>学葆啪桧虽陛 睡褶?栖棻. | |||
|  | 			} | |||
|  | 			return false; | |||
|  | 		} | |||
|  | 		 | |||
|  | 	} | |||
|  | 	 | |||
|  | 	 | |||
|  | 	return false; | |||
|  | } | |||
|  | 
 | |||
|  | // 藤颤歜桧 部釭 蒙翕陛栋? 颤歜击 葬欐?朝 ?热.  | |||
|  | function getLoadSkillEnableTime(obj, skillIndex, intDataIndex) | |||
|  | { | |||
|  | 	if(!obj) return 0; | |||
|  | 	 | |||
|  | 	local skill = sq_GetSkill(obj, skillIndex); | |||
|  | 	local level = sq_GetSkillLevel(obj, skillIndex); | |||
|  | 	local enableTime = 0; | |||
|  | 
 | |||
|  | 	if (skill == null) | |||
|  | 		return enableTime; | |||
|  | 
 | |||
|  | 	enableTime = obj.sq_getIntData(skillIndex, intDataIndex); | |||
|  | 	 | |||
|  | 	//print("enableTime:" + enableTime); | |||
|  | 
 | |||
|  | 	return enableTime; | |||
|  | 	//return obj.sq_GetObjectWorldTime(obj).Get() + enableTime; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | // 陕 等网蝶?塭桧醴 蝶鉴击 踩 热 毡朝 晦奖菟击 髦?狱棻.. 陴嬴毡朝 学葆啪桧虽 热纂煎 羹觼?狱棻.. | |||
|  | // 斜 热纂缣 睡?肾朝 蝶鉴桧 毡棻贼 斜 蝶鉴缣 衙?肾横 毡朝 郦蒂 sq_SetKeyxEnable煎 援蒂 热 毡朝 鼻鹧煎 虏苌 ?缣  | |||
|  | 
 | |||
|  | function isEnterDevilStrike(obj, commandIndex, devil_index) | |||
|  | { | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	local bEnable = false; | |||
|  | 	 | |||
|  | 	 | |||
|  | 	local beforeCommandEnable = sq_GetKeyxEnable(obj, commandIndex); | |||
|  | 	 | |||
|  | 	sq_SetKeyxEnable(obj, commandIndex, true); | |||
|  | 	 | |||
|  | 
 | |||
|  | 	local bCommand = sq_IsEnterCommand(obj, commandIndex); | |||
|  | 	 | |||
|  | 	//print("bCommand:" + bCommand + " commandIndex:" + commandIndex + " getstate:" +  obj.getState()); | |||
|  | 
 | |||
|  | 	if(bCommand) { | |||
|  | 		bEnable = IsEnableDevilStrike(obj, devil_index); // 啪桧虽 模赅榆 羹觼?怃 陛栋?虽		 | |||
|  | 	}	 | |||
|  | 	//sq_SetKeyxEnable(obj, commandIndex, beforeCommandEnable); | |||
|  | 	//}	 | |||
|  | 	 | |||
|  | 	return bEnable; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | // 学葆啪桧虽榆击 椭横褫栖棻.. | |||
|  | function getDevilGauge(obj) | |||
|  | { | |||
|  | 	if(!obj) return 0; | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 	 | |||
|  | 	local v = 0; | |||
|  | 	 | |||
|  | 	if(!appendage) return 0; | |||
|  | 	 | |||
|  | 	if(appendage.sq_var.size_vector() > 1) { | |||
|  | 		//appendage.sq_var.set_vector(500); | |||
|  | 		v = appendage.sq_var.get_vector(DS_APEND_GAUGE); // gauge index 1 | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return v; | |||
|  | } | |||
|  | 
 | |||
|  | function getDevilMaxGaugeValue(obj) | |||
|  | { | |||
|  | 	if(!obj) return 0; | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 	 | |||
|  | 	if(!appendage) return 0; | |||
|  | 	 | |||
|  | 	local v = 0; | |||
|  | 	if(appendage.sq_var.size_vector() > 1) { | |||
|  | 		v = appendage.sq_var.get_vector(DS_APEND_MAX_GAUGE); // gauge index 0 | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return v; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | // 学葆啪桧虽蒂 撮??栖棻.. | |||
|  | function setDevilGauge(obj, value) | |||
|  | { | |||
|  | 	if(!obj) return 0; | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 	 | |||
|  | 	if(!appendage) return 0; | |||
|  | 	 | |||
|  | 	if(appendage.sq_var.size_vector() > 1) { | |||
|  | 		appendage.sq_var.set_vector(DS_APEND_GAUGE, value); // gauge index 0 | |||
|  | 	} | |||
|  | } | |||
|  | 
 | |||
|  | // 学葆啪桧虽 模绿榆击 剩啖舆贼 宪嬴怃 梗嬴鄹栖棻.. | |||
|  | function consumeDevilGauge(obj, consumeValue) | |||
|  | { | |||
|  | 	if(!obj) return; | |||
|  | 	 | |||
|  | 	local devil_value = getDevilGauge(obj);	 | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 	 | |||
|  | 	if(appendage) { | |||
|  | 		//DS_APEND_MAX_GAUGE <- 0 // 譆渠 学葆啪桧虽 热纂 | |||
|  | 		//DS_APEND_GAUGE <- 1 // ?营 学葆啪桧虽 热纂 | |||
|  | 		//DS_APEND_LAST_GAUGE <- 2 // 虽陪 学葆啪桧虽 热纂 | |||
|  | 	 | |||
|  | 		appendage.sq_var.set_vector(DS_APEND_LAST_GAUGE, devil_value); // 虽陪 啪桧虽热纂蒂 荡潍?棻.. | |||
|  | 		 | |||
|  | 		appendage.getTimer().Reset(); | |||
|  | 		appendage.getTimer().Start(0,0); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	local value = devil_value - consumeValue; | |||
|  | 	 | |||
|  | 	if(value < 0) | |||
|  | 		value = 0; | |||
|  | 		 | |||
|  | 	setDevilGauge(obj, value); | |||
|  | } | |||
|  | 
 | |||
|  | // 陕撩?卫粽 : 学跦(48溯涟) | |||
|  | // 1. 陕撩 渗褐 翕寰 陕撩晦 奢问溘桧 隶陛? | |||
|  | // 2. 等网 蝶?塭桧醴暧 学葆 啪桧虽 离朝榆 隶陛. | |||
|  | // 陕撩?卫粽 学跦击 乾坚 毡朝虽 羹觼?坚 乾坚 毡棻贼 学葆 啪桧虽 离朝榆击 隶陛卫面怃 葬欐?栖棻.. | |||
|  | function getDSGConvertbyNightmare(obj, addValue) // get DevilStrikeGauge Convert by Nightmare | |||
|  | { | |||
|  | 	if(!obj) return 0; | |||
|  | 	 | |||
|  | 	local level = sq_GetSkillLevel(obj, SKILL_NIGHTMARE); | |||
|  | 	 | |||
|  | 	local gauge_bonus = sq_GetLevelData(obj, SKILL_NIGHTMARE, 0, level); // 0廓 樯策蝶 蚝岁 啪桧虽尔伞蝶(+) | |||
|  | 	 | |||
|  | 	if(gauge_bonus < 0) | |||
|  | 		gauge_bonus = 0; | |||
|  | 		 | |||
|  | 	local value = addValue + gauge_bonus; | |||
|  | 	 | |||
|  | 	return value; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | // 学葆啪桧虽蒂 醱瞪?栖棻.. | |||
|  | function addDevilGauge(obj, addValue) | |||
|  | { | |||
|  | 	if(!obj) return; | |||
|  | 	 | |||
|  | 	local devil_value = getDevilGauge(obj); | |||
|  | 	 | |||
|  | 	// 陕撩?卫粽 学跦击 乾坚 毡朝虽 羹觼?坚 乾坚 毡棻贼 学葆 啪桧虽 离朝榆击 隶陛卫面怃 葬欐?栖棻.. | |||
|  | 	local result_addValue =	getDSGConvertbyNightmare(obj, addValue); | |||
|  | 
 | |||
|  | 	local add = result_addValue - addValue; | |||
|  | 	//print("addValue:" + addValue + " add:" + add + " result_addValue:" + result_addValue); | |||
|  | 	 | |||
|  | 	local value = devil_value + result_addValue; | |||
|  | 	 | |||
|  | 	local  maxValue = getDevilMaxGaugeValue(obj); | |||
|  | 	if(value >= maxValue) | |||
|  | 		value = maxValue; | |||
|  | 		 | |||
|  | 		 | |||
|  | 	setDevilGauge(obj, value); | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | // 横渐螳陛 晦狱 state陛 nut?橾煎 晦殓肾横 毡击 鼻?橾阳 蕨蒂 菟贼 state_attack桧塭苌虽.. | |||
|  | // 桧匙桧 横渐螳辨 STATE_ATTACK桧 毡涡塭紫 鼻?缣 评塭 CNPriest::setState 薹戏煎 绪虽啪 ?溥贼 晦襄 掘亵煎朝 寞彻桧 桡棻.. 谒傍贼 onSetState朝 irdcharacter缣 毡戏嘎煎 | |||
|  | // 棻卫 剪绂煎 给嬴陛朝 掘亵朝 毡击 热 桡棻 斜楚怃 饵瞪缣 渗褐樯虽 羹觼?尔坚 斜溢棻贼.. state_attack戏煎 绪虽坚 嬴栖塭贼.. priest:: 煎 绪虽朝 掘亵煎 夥绂横捡?棻.. | |||
|  | // 桧匙桧 斜 葬欐高桧棻.. | |||
|  | 
 | |||
|  | function isPriestFlow(obj, state) | |||
|  | { | |||
|  | 	if(!obj) return true; | |||
|  |  // 桧够缣怃 true蒂 葬欐?贼 irdcharacter:: 薹戏煎 陛朝匙桧 嬴栖塭 cnpriest 薹戏煎 陛啪 腌栖棻.. | |||
|  | 	if(!isGrowTypeAvenger(obj)) // 横渐荡陛 嬴棋 唳办 鼠亵勒 flowpriest煎 | |||
|  | 		return true; | |||
|  | 		 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 陕撩渗褐鼻鹧塭贼.. | |||
|  | 		if(state == STATE_DASH_ATTACK) { | |||
|  | 			return false; | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == false) { | |||
|  | 		//if(state == STATE_ATTACK) | |||
|  | 		//	return false; | |||
|  | 			 | |||
|  | 		return true; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	 | |||
|  | 	return false; | |||
|  | } | |||
|  | 
 | |||
|  | function flushCommandEnable_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return S_FLOW_NORMAL; | |||
|  | 	 | |||
|  | 	if(!obj.isInBattle()) { | |||
|  | 		sq_SetAllCommandEnable(obj, false); // 瞪瘫酝橾隆 赅苌 蝶鉴击 饵辨? 热 桡蝗栖棻. | |||
|  | 		return S_FLOW_RETURN; | |||
|  | 	 } | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 陕撩 渗褐鼻鹧塭贼 棻艇 蝶鉴擎 瞪睡 绿?撩? 卫面捡 ?棻..钦 陕撩 渗褐缣怃 螃朝 蝶鉴虏 狸坚 桧蒂才贼..钦舒渠 ? | |||
|  | 		// 籀?蝶鉴击 萄蛤横 ?撩?卫监棻.. | |||
|  | 		if(obj.isMyControlObject()) | |||
|  | 			sq_SetAllCommandEnable(obj, false); // 赅苌 state蒂 残嬴场朝棻.. | |||
|  | 			 | |||
|  | 		local skill = sq_GetSkill(obj, SKILL_EXECUTION);		 | |||
|  | 		if(skill) { | |||
|  | 			if(obj.getState() != STATE_AVENGER_AWAKENING) // 渗褐翕蒙桧 嬴栖横捡?栖棻..  | |||
|  | 			{ | |||
|  | 				// 籀?嬴桧夔桧 模赅榆尔棻 号击 阳虏 ?撩?肾紫烟 ?栖棻.. | |||
|  | 				local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 				 | |||
|  | 				if(appendage) { | |||
|  | 					local skillLevel = sq_GetSkillLevel(obj, SKILL_EXECUTION); | |||
|  | 					local consumeValue = sq_GetLevelData(obj, SKILL_EXECUTION, 7, skillLevel); | |||
|  | 					 | |||
|  | 					//DS_APEND_MAX_GAUGE <- 0 // 譆渠 学葆啪桧虽 热纂 | |||
|  | 					//DS_APEND_GAUGE <- 1 // ?营 学 | |||
|  | 					local devil_gauge = appendage.sq_var.get_vector(DS_APEND_GAUGE); // gauge index 0 | |||
|  | 					 | |||
|  | 					if(devil_gauge >= consumeValue) {		 | |||
|  | 						skill.setCommandEnable(true);  | |||
|  | 					} | |||
|  | 				} | |||
|  | 			} | |||
|  | 		} | |||
|  | 		 | |||
|  | 		skill = sq_GetSkill(obj, SKILL_EX_DISASTER); | |||
|  | 		 | |||
|  | 		if(skill) { | |||
|  | 			skill.setCommandEnable(true);  | |||
|  | 		} | |||
|  | 		 | |||
|  | 		skill = sq_GetSkill(obj, SKILL_PANDEMONIUM_EX); | |||
|  | 		 | |||
|  | 		if(skill) { | |||
|  | 			skill.setCommandEnable(true);  | |||
|  | 		} | |||
|  | 		 | |||
|  | 		return S_FLOW_RETURN; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return S_FLOW_NORMAL; | |||
|  | } | |||
|  | 
 | |||
|  | function setState_Avenger(obj, state, datas, isResetTimer) | |||
|  | { | |||
|  | 	if(!obj) return S_FLOW_PRIEST; | |||
|  | 	if(!isGrowTypeAvenger(obj)) return S_FLOW_PRIEST; | |||
|  | 	 | |||
|  | 	// 等网蝶?塭桧醴 醱瞪蝶鉴 ?楚斜 蚂 | |||
|  | 	if(isInDevilStrikeSkill(obj)) {	 | |||
|  | 		if(state != obj.getState() || state == STATE_ATTACK) { // 虽陪 state陛 殖塭捡 桧薯 等网啪桧虽蒂 醱瞪? 热 毡朝匙殓栖棻..		 | |||
|  | 			local staticIndex = getStaticDataIndexDevilGauge(obj, -1, state);  | |||
|  | 			 | |||
|  | 			 | |||
|  | 			// ?营 议葛搅暧 state蒂 羹觼?罹 葬欐肾朝高桧 -1桧 嬴栖塭贼 醱瞪?丑捡?棻朝 暧嘐殓栖棻.. | |||
|  | 			if(staticIndex != -1) { //  | |||
|  | 				local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽			 | |||
|  | 				if(appendage) { | |||
|  | 					//if(appendage.sq_var.get_vector(DS_APEND_ADD_FLAG) == -1)  | |||
|  | 					//-2蒂 葬欐?捡 桧薯 啪桧虽蒂 醱瞪卫鉴 热 毡紫烟?棻..谒傍贼.. 伪擎 state蒂 啗楼 蹂羶?朝 唳办陛 毡晦阳侥缣.. | |||
|  | 						//print("\n setState_Avenger:" + obj.getState() + " DS_APEND_ADD_FLAG: staticIndex " + staticIndex); | |||
|  | 						appendage.sq_var.set_vector(DS_APEND_ADD_FLAG, staticIndex); // 醱瞪 卫郦朝 羹觼?楚斜蒂 霾栖棻.. | |||
|  | 				} | |||
|  | 			} | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	if(state == STATE_THROW) | |||
|  | 	{ | |||
|  | 		if(obj.getThrowIndex() == SKILL_CHANGE_HP_TO_MP && obj.getThrowState() == 0) { | |||
|  | 			local level = sq_GetSkillLevel(obj, SKILL_CHANGE_HP_TO_MP); | |||
|  | 			local gaugeUpValue = sq_GetLevelData(obj, SKILL_CHANGE_HP_TO_MP, 2, level); | |||
|  | 			addDevilGauge(obj,gaugeUpValue); | |||
|  | 		} | |||
|  | 	} | |||
|  | 
 | |||
|  | 	 | |||
|  | 	 | |||
|  | 	if(isPriestFlow(obj, state) == true) { | |||
|  | 		return S_FLOW_PRIEST; | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		if(isAvengerAwakenning(obj) == true) { | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return S_FLOW_NORMAL; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | function isRidingToObject_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return -1; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 菸蝶陛蛤树戏煎 渗褐?朝等 骁匙击 颤贼 寰肾癒.. | |||
|  | 		//print("isRidingToObject_Avenger"); | |||
|  | 		return -1; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return 1; | |||
|  | 	 | |||
|  | } | |||
|  | 
 | |||
|  | // 桧匙击 螃帼塭桧注 ?朝 桧嵘朝 ?葬蝶?-横渐螳:菸蝶陛蛤树缣怃 薄?帼?击 扬毓击 阳 奢问桧 釭陛捡?嘎煎 | |||
|  | // 紫酝缣 薄?state 蹂羶?朝匙击 ?缰?晦 嫔?殓栖棻.. | |||
|  | // 晦狱 flow朝 avenger_common.nut 缣怃 addSetStatePacket_Avenger 葬欐高桧 -1桧塭贼 IRDCollisionObject::addSetStatePacket蒂 ?轿?虽 强蝗栖棻.  | |||
|  | 
 | |||
|  | function addSetStatePacket_Avenger(obj, state, datas) | |||
|  | { | |||
|  | 	if(!obj) | |||
|  | 		return -1;		 | |||
|  | 	 | |||
|  | 	 | |||
|  | 	if(state == STATE_JUMP_ATTACK) { | |||
|  | 		//print("\n STATE_JUMP_ATTACK" + " now_state:" + obj.sq_GetSTATE()); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	if(!obj.isMyControlObject()) | |||
|  | 		return -1; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { | |||
|  | 		if(state == STATE_JUMP) { | |||
|  | 			if(obj.getState() == STATE_DASH || obj.getState() == STATE_STAND) { | |||
|  | 			   local var_awakening = obj.getVar("awakening"); | |||
|  | 			   local t = var_awakening.get_ct_vector(0).Get();	 | |||
|  | 
 | |||
|  | 			   if(var_awakening.get_ct_vector(0).Get() > var_awakening.get_vector(0)) { // 濠羹 藤颤歜 羹觼 | |||
|  | 					obj.sq_IntVectClear(); | |||
|  | 					obj.sq_IntVectPush(3); // substate撮? | |||
|  | 					obj.sq_addSetStatePacket(STATE_ATTACK, STATE_PRIORITY_USER, true); | |||
|  | 			   } | |||
|  | 			   else { // 藤颤歜桧 测 腑棻.. | |||
|  | 					obj.startCantUseSkillWarning(); | |||
|  | 					if (obj.isMessage()) // | |||
|  | 					{ | |||
|  | 						sq_AddMessage(414); // 414>藤颤歜殓栖棻. | |||
|  | 					} | |||
|  | 			   } | |||
|  | 			} | |||
|  | 			else { | |||
|  | 				obj.sq_addSetStatePacket(STATE_SIT, STATE_PRIORITY_USER, false); | |||
|  | 			} | |||
|  | 			return -1; | |||
|  | 		} | |||
|  | 		else if(state == STATE_DIE) { | |||
|  | 			local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_awakening.nut"); | |||
|  | 		 | |||
|  | 			if(appendage) { | |||
|  | 				appendage.setValid(false); | |||
|  | 				appendage.sq_var.set_vector(I_AVENGER_AWAKENING_VALID, 0); | |||
|  | 				obj.setObjectHeight(-1); | |||
|  | 			} | |||
|  | 			 | |||
|  | 			return -1; | |||
|  | 		} | |||
|  | 		 | |||
|  | 		if(state == STATE_THROW) { | |||
|  | 			//print("STATE_THROW"); | |||
|  | 			return -1; | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return 1; | |||
|  | } | |||
|  | 
 | |||
|  | function isEnableBackStepState_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { | |||
|  | 		return false; // 菸蝶陛蛤树 鼻鹧缣怃朝 寥蝶变击 虞嬴堤捡?栖棻.. | |||
|  | 	} | |||
|  | 	 | |||
|  | 	 | |||
|  | 	//print("isEnableBackStepState"); | |||
|  | 	 | |||
|  | 	return obj.sq_isEnableBackStepState(); | |||
|  | } | |||
|  | 
 | |||
|  | function getDefaultAttackInfo_Avenger(obj, index) | |||
|  | { | |||
|  | 	local atk = null; | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 陕撩 渗褐鼻鹧塭贼 棻艇 蝶鉴擎 瞪睡 绿?撩? 卫面捡 ?棻..钦 陕撩 渗褐缣怃 螃朝 蝶鉴虏 狸坚 桧蒂才贼..钦舒渠 ? | |||
|  | 	  atk = sq_GetCustomAttackInfo(obj, CUSTOM_ATTACKINFO_AW_ATTACK1 + index);	   | |||
|  | 	} | |||
|  | 	else { | |||
|  | 	  if(isInDevilStrikeSkill(obj)) { | |||
|  | 		atk = sq_GetCustomAttackInfo(obj, CUSTOM_ATTACKINFO_AVENGER_ATTACK_1 + index); | |||
|  | 	  } | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return atk; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | // ?塭嘐搅煎 剩啖霞 郦 樯策蝶谛, 奢问寞彻桧 陛栋?虽 羹觼?罹 鳝娄?贼 ?卫粽螃粽薛?蒂 虏菟横 蛔烟?栖棻.. | |||
|  | function procEnterDevilStrike(obj, keyIndex, attackIndex) | |||
|  | { | |||
|  | 	if(!obj) return; | |||
|  | 	 | |||
|  | 	local bEnable = isEnterDevilStrike(obj, keyIndex, attackIndex); | |||
|  | 	 | |||
|  | 	if(bEnable) {					 | |||
|  | 		// 学葆啪桧虽蒂 梗嬴遽棻.. | |||
|  | 		if(obj.isMyControlObject()) { | |||
|  | 			local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 			 | |||
|  | 			if(appendage) {			 | |||
|  | 					 | |||
|  | 					//if (obj.getWorldTimer().Get() >= obj.getVar("devilStrike").get_vector(0)) { | |||
|  | 					local var_devil = obj.getVar("devilStrike"); | |||
|  | 					 | |||
|  | 					local t = var_devil.get_ct_vector(0).Get(); | |||
|  | 					 | |||
|  | 					//print("get_ct_vector:" + t + "  get_vector(0):" + var_devil.get_vector(0)); | |||
|  | 					 | |||
|  | 					if(var_devil.get_ct_vector(0).Get() > var_devil.get_vector(0)) { // 濠羹 藤颤歜 羹觼 | |||
|  | 						local leve_column = 0; | |||
|  | 		 | |||
|  | 						if(attackIndex == 0) { // attack (x) | |||
|  | 							leve_column = 1; | |||
|  | 						} | |||
|  | 						else if(attackIndex == 1) { // jump (c) | |||
|  | 							leve_column = 2; | |||
|  | 						} | |||
|  | 						else if(attackIndex == 2) { // skill (z) | |||
|  | 							leve_column = 0; | |||
|  | 						} | |||
|  | 
 | |||
|  | 						local consumeV = getDevilStrikeConsumeValue(obj, leve_column); | |||
|  | 						consumeDevilGauge(obj, consumeV); | |||
|  | 
 | |||
|  | 
 | |||
|  | 						// x郦暧 唳办  | |||
|  | 						// 伪擎 state顶缣怃 嫦当?朝 唳办 横鸥樯策蝶蒂 棺溥遽棻.. | |||
|  | 						local resultAttackIndex = attackIndex; | |||
|  | 						 | |||
|  | 						if(keyIndex == E_ATTACK_COMMAND) { | |||
|  | 							resultAttackIndex = obj.getVar("devilStrike").get_vector(2); // 2廓樯策蝶 ?楚斜朝 翱楼 等网蝶?塭桧觼  | |||
|  | 							//print("resultAttackIndex:" + resultAttackIndex); | |||
|  | 							local Index = resultAttackIndex; | |||
|  | 							Index = Index + 1; | |||
|  | 							if(Index > 2) | |||
|  | 								Index = 0; | |||
|  | 							 | |||
|  | 							obj.getVar("devilStrike").set_vector(2, Index); | |||
|  | 						} | |||
|  | 					 | |||
|  | 						if(resultAttackIndex == 0) { // attack (x) | |||
|  | 							leve_column = 1; | |||
|  | 						} | |||
|  | 						else if(resultAttackIndex == 1) { // jump (c) | |||
|  | 							leve_column = 2; | |||
|  | 						} | |||
|  | 						else if(resultAttackIndex == 2) { // skill (z) | |||
|  | 							leve_column = 0; | |||
|  | 						} | |||
|  | 						 | |||
|  | 						// 桧薯 奢问嫦翕 | |||
|  | 						local level = sq_GetSkillLevel(obj, SKILL_DEVILSTRIKE); | |||
|  | 						 | |||
|  | 						//iKeyList[0] = E_ATTACK_COMMAND; | |||
|  | 						//iKeyList[1] = E_JUMP_COMMAND; | |||
|  | 						//iKeyList[2] = E_SKILL_COMMAND; | |||
|  | 						 | |||
|  | 						//local firstAttackRate = obj.sq_getBonusRateWithPassive(SKILL_DEVILSTRIKE, state, 0, 1.0); | |||
|  | 						 | |||
|  | 						// 等网蝶?塭桧醴暧 奢问溘(%) | |||
|  | 						//local attack_bonus_rate = sq_GetLevelData(obj, SKILL_DEVILSTRIKE, SL_DS_ATTACK1_ATTACK_RATE + leve_column, level); | |||
|  | 						local devilSkill = sq_GetSkill(obj, SKILL_DEVILSTRIKE); | |||
|  | 						local attack_bonus_rate = sq_GetAttackBonusRate(devilSkill, SL_DS_ATTACK1_ATTACK_RATE + leve_column, 1.0); | |||
|  | 						 | |||
|  | 						//print("\n devilstrike attack_rate:" + attack_bonus_rate + " resultAttackIndex:" + leve_column); | |||
|  | 						 | |||
|  | 						obj.sq_binaryData_startWrite(); | |||
|  | 						obj.sq_binaryData_writeDword(attack_bonus_rate); // 等网蝶?塭桧醴暧 奢问溘(%) | |||
|  | 						 | |||
|  | 						obj.sq_p00_sendCreatePassiveObjectPacket(24104 + resultAttackIndex, 0, 0, 1, 0); | |||
|  | 						 | |||
|  | 						// 藤颤歜 撮? | |||
|  | 						var_devil.get_ct_vector(0).Reset(); | |||
|  | 						var_devil.get_ct_vector(0).Start(0,0); | |||
|  | 						 | |||
|  | 						local cooltime = getLoadSkillEnableTime(obj, SKILL_DEVILSTRIKE, SI_DS_COOLTIME); // 蛤?? 藤颤歜 | |||
|  | 						var_devil.set_vector(0, cooltime); | |||
|  | 				   } | |||
|  | 				   else { // 藤颤歜桧 测 腑棻.. | |||
|  | 						//obj.startCantUseSkillWarning(); | |||
|  | 						if (obj.isMessage()) // | |||
|  | 						{ | |||
|  | 							sq_AddMessage(29001); // 29001>等网 蝶?塭桧醴 藤颤歜殓栖棻. | |||
|  | 							 | |||
|  | 						} | |||
|  | 				   } | |||
|  | 				// | |||
|  | 			} | |||
|  | 		} | |||
|  | 		 | |||
|  | 		// 罹晦怃 桧薯 舆樯奢暧 桧??陛 殖塭虽朝匙桧棻..横舒表螺棻陛 嫩嬴虽朝 ?娄 | |||
|  | 		local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, SKILL_DEVILSTRIKE, true, "Appendage/Character/ap_avenger_effect.nut", true); | |||
|  | 		 | |||
|  | 	} | |||
|  | } | |||
|  | 
 | |||
|  | //sq_GetCustomAttackInfo | |||
|  | 
 | |||
|  | function procAppend_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return S_FLOW_PRIEST; | |||
|  | 	 | |||
|  | 	// 橾奁 横渐荡樯 唳办 | |||
|  | 	// 桧够缣怃 等网蝶?塭桧醴 ?卫粽 蝶鉴桧 毡朝虽 羹觼?狱棻.. | |||
|  | 	if(isInDevilStrike(obj)) { // 等网蝶?塭桧醴 ?卫粽蝶鉴桧 嫦翕肾横 毡棻贼..		 | |||
|  | 		// 陕 等网蝶?塭桧醴 蝶鉴击 踩 热 毡朝 晦奖菟击 髦?狱棻.. 陴嬴毡朝 学葆啪桧虽 热纂煎 羹觼?狱棻.. | |||
|  | 		// 斜 热纂缣 睡?肾朝 蝶鉴桧 毡棻贼 斜 蝶鉴缣 衙?肾横 毡朝 郦蒂 sq_SetKeyxEnable煎 援蒂 热 毡朝 鼻鹧煎 虏苌 ?缣  | |||
|  | 		//  | |||
|  | 		 | |||
|  | 		// 等网蝶?塭桧醴蒂 踩 热 毡朝 鼻?桧塭贼..  | |||
|  | 		// 1. 等网蝶?塭桧醴 ?卫粽 蝶鉴击 蝗菜?艘朝虽 | |||
|  | 		// 2. 等网蝶?塭桧醴陛 嫦翕? 热 毡朝 state鼻鹧樯虽 桧 赅苌匙桧 鳝娄陛 肾贼..桧薯 郦 羹觼蒂 ?狱棻.. | |||
|  | 		if(isInDevilStrike(obj)) {  | |||
|  | 		 | |||
|  | 			if(obj.getState() == STATE_ATTACK || obj.getState() == STATE_DASH_ATTACK) { | |||
|  | 				// ?颤塭贼 C郦 羹觼?栖棻.. | |||
|  | 				procEnterDevilStrike(obj, E_JUMP_COMMAND, DEVILSTRIKE_ATTACK_2); | |||
|  | 			} | |||
|  | 			else {			 | |||
|  | 				local size = 3; | |||
|  | 				local iKeyList =[]; | |||
|  | 				iKeyList.resize(size); | |||
|  | 				 | |||
|  | 				iKeyList[0] = E_ATTACK_COMMAND; | |||
|  | 				iKeyList[1] = E_JUMP_COMMAND; | |||
|  | 				iKeyList[2] = E_SKILL_COMMAND;			 | |||
|  | 				 | |||
|  | 				for(local i=0;i<size;i+=1) { | |||
|  | 					// ?塭嘐搅煎 剩啖霞 郦 樯策蝶谛, 奢问寞彻桧 陛栋?虽 羹觼?罹 鳝娄?贼 ?卫粽螃粽薛?蒂 虏菟横 蛔烟?栖棻.. | |||
|  | 					local devilstrikeAttackIndex = i; | |||
|  | 					procEnterDevilStrike(obj, iKeyList[i], devilstrikeAttackIndex); | |||
|  | 				} | |||
|  | 			} | |||
|  | 		} | |||
|  | 		//24104	`Character/Priest/DevilStrike1.obj`	// 横渐荡 - 等网蝶?塭桧醴 奢问1 | |||
|  | 		//24105	`Character/Priest/DevilStrike2.obj`	// 横渐荡 - 等网蝶?塭桧醴 奢问2 | |||
|  | 		//24106	`Character/Priest/DevilStrike3.obj`	// 横渐荡 - 等网蝶?塭桧醴 奢问3 | |||
|  | 	} | |||
|  | 
 | |||
|  | 
 | |||
|  | 	if(isPriestFlow(obj, obj.getState()) == true) { | |||
|  | 		return S_FLOW_PRIEST; | |||
|  | 	} | |||
|  | 
 | |||
|  | 
 | |||
|  | 	if(obj.isMyControlObject()) { | |||
|  | 		if(isAvengerAwakenning(obj) == true) {		 | |||
|  | 			local state = obj.getState(); | |||
|  | 			if(state == STATE_STAND) {		  | |||
|  | 				local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_awakening.nut"); | |||
|  | 			 | |||
|  | 				if(appendage) { | |||
|  | 					//if(appendage.isValid() && appendage.isEnd()) { | |||
|  | 					//if(appendage.sq_var.get_vector(I_AVENGER_AWAKENING_VALID) && appendage.isEnd()) { | |||
|  | 					if(appendage.sq_var.get_vector(I_AVENGER_AWAKENING_VALID) && appendage.isEnd()) { | |||
|  | 						obj.sq_IntVectClear(); | |||
|  | 						obj.sq_IntVectPush(0); // substate撮? | |||
|  | 						obj.sq_addSetStatePacket(STATE_AWAKENING_TURN_OFF, STATE_PRIORITY_IGNORE_FORCE, true); | |||
|  | 						return S_FLOW_RETURN; | |||
|  | 					} | |||
|  | 				} | |||
|  | 			} | |||
|  | 			 | |||
|  | 			if(state == STATE_STAND || state == STATE_DASH) { | |||
|  | 				if(obj.sq_IsEnterSkill(SKILL_BACK_STEP) != -1) { | |||
|  | 				   local var_awakening = obj.getVar("awakening"); | |||
|  | 				   local t = var_awakening.get_ct_vector(0).Get();	 | |||
|  | 
 | |||
|  | 				   if(var_awakening.get_ct_vector(0).Get() > var_awakening.get_vector(0)) { // 濠羹 藤颤歜 羹觼 | |||
|  | 						obj.sq_IntVectClear(); | |||
|  | 						obj.sq_IntVectPush(3); // substate撮? | |||
|  | 						obj.sq_addSetStatePacket(STATE_ATTACK, STATE_PRIORITY_USER, true); | |||
|  | 				   } | |||
|  | 				   else { // 藤颤歜桧 测 腑棻.. | |||
|  | 						obj.startCantUseSkillWarning(); | |||
|  | 						if (obj.isMessage()) // | |||
|  | 						{ | |||
|  | 							sq_AddMessage(414); // 414>藤颤歜殓栖棻. | |||
|  | 						} | |||
|  | 				   } | |||
|  | 				} | |||
|  | 			} | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return S_FLOW_NORMAL; | |||
|  | } | |||
|  | 
 | |||
|  | function drawAppend_Avenger(obj, isOver, x, y) | |||
|  | { | |||
|  | 	if(!obj) return S_FLOW_PRIEST; | |||
|  | 	 | |||
|  | 	if(isPriestFlow(obj, obj.getState()) == true) { | |||
|  | 		return S_FLOW_PRIEST; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return S_FLOW_NORMAL; | |||
|  | } | |||
|  | 
 | |||
|  | function prepareDraw_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return; | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // isPriestFlow 葬欐高桧 true塭贼.. 陕撩桧 嬴栖坚 罹楝陛虽 亵勒桧 ?葬蝶? flow煎 绪螳捡 ?棻.. | |||
|  | 		return S_FLOW_NORMAL; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return S_FLOW_PRIEST; | |||
|  | } | |||
|  | 
 | |||
|  | function getStayAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local sq_var = obj.getVar(); | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = sq_var.GetAnimationMap("Stay", "Character/Priest/Animation/AvengerAwakening/Stay.ani");		 | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getStayAni(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getAttackAni_Avenger(obj, index) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local sq_var = obj.getVar(); | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		if(index == 0) { | |||
|  | 			ani = sq_var.GetAnimationMap("Attack1", "Character/Priest/Animation/AvengerAwakening/Attack1.ani"); | |||
|  | 		} | |||
|  | 		else if(index == 1) { | |||
|  | 			ani = sq_var.GetAnimationMap("Attack2", "Character/Priest/Animation/AvengerAwakening/Attack2.ani"); | |||
|  | 		} | |||
|  | 		else if(index == 2) { | |||
|  | 			ani = sq_var.GetAnimationMap("Attack3", "Character/Priest/Animation/AvengerAwakening/Attack3.ani"); | |||
|  | 		} | |||
|  | 		else if(index == 3) { | |||
|  | 			ani = sq_var.GetAnimationMap("Attack4", "Character/Priest/Animation/AvengerAwakening/Attack4.ani"); | |||
|  | 		} | |||
|  | 		else if(index == 4) { | |||
|  | 			ani = sq_var.GetAnimationMap("Attack5", "Character/Priest/Animation/AvengerAwakening/Attack5.ani"); | |||
|  | 		} | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		if(isInDevilStrikeSkill(obj)) { // 横渐荡 - 等网蝶?塭桧醴 蝶鉴击 乾坚 毡戏贼 ?颤陛 夥荸栖棻.. | |||
|  | 			//print("getAttackAni_Avenger"); | |||
|  | 			if(index == 3) { // 横渐荡 - ?虞颤朝 鼠晦 谦盟缣 评塭 2陛虽煎 拥栖诡桧暮桧 夥莎棻 樵尘? 蜓?贼 ?娄陛 棻脑棻.. | |||
|  | 				// 褊濠陛 - 腻舆 | |||
|  | 				// 釭该虽 陷 | |||
|  | 				if(obj.getWeaponSubType() == WEAPON_SUBTYPE_CROSS || obj.getWeaponSubType() == WEAPON_SUBTYPE_ROSARY) { | |||
|  | 					ani = obj.sq_getCustomAni(CUSTOM_ANI_AVENGER_ATTACK_4_ROSARY); | |||
|  | 				} | |||
|  | 				else { | |||
|  | 					ani = obj.sq_getCustomAni(CUSTOM_ANI_AVENGER_ATTACK_4_SCYTHE); | |||
|  | 				} | |||
|  | 			} | |||
|  | 			else | |||
|  | 				ani = obj.sq_getCustomAni(CUSTOM_ANI_AVENGER_ATTACK_1 + index); | |||
|  | 			 | |||
|  | 		} | |||
|  | 		else { | |||
|  | 			//print("obj.sq_getAttackAni"); | |||
|  | 			ani = obj.sq_getAttackAni(index); | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | function getMoveAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local sq_var = obj.getVar(); | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = sq_var.GetAnimationMap("Move", "Character/Priest/Animation/AvengerAwakening/Move.ani"); | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getMoveAni(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getSitAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		local sq_var = obj.getVar(); | |||
|  | 		ani = sq_var.GetAnimationMap("Sit", "Character/Priest/Animation/AvengerAwakening/Sit.ani");  | |||
|  | 		 | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getSitAni(); | |||
|  | 	}	 | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getDamageAni_Avenger(obj, index) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = null; | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getDamageAni(index); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getDownAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = null; | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getDownAni(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	 | |||
|  | 	//local ani = obj.sq_getDownAni(); | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getOverturnAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = null; | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getOverturnAni(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getJumpAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		local sq_var = obj.getVar(); | |||
|  | 		ani = sq_var.GetAnimationMap("Sit", "Character/Priest/Animation/AvengerAwakening/Sit.ani");  | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getJumpAni(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getJumpAttackAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	//if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		//ani = null; | |||
|  | 	//} | |||
|  | 	//else { | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		print("\n warning \n "); | |||
|  | 		print("\n warning \n "); | |||
|  | 		print("\n warning \n "); | |||
|  | 		print("\n warning \n "); | |||
|  | 		print("\n warning \n "); | |||
|  | 		print("\n warning \n "); | |||
|  | 		print("\n warning \n "); | |||
|  | 		print("(isAvengerAwakenning(obj) == true) getJumpAttackAni_Avenger"); | |||
|  | 	 | |||
|  | 	} | |||
|  | 	 | |||
|  | 	ani = obj.sq_getJumpAttackAni(); | |||
|  | 	//} | |||
|  | 	 | |||
|  | 	//local ani = obj.sq_getJumpAttackAni(); | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getRestAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local sq_var = obj.getVar(); | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		//ani = null; | |||
|  | 		ani = sq_var.GetAnimationMap("Stay", "Character/Priest/Animation/AvengerAwakening/Stay.ani"); | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getRestAni(); | |||
|  | 	} | |||
|  | 	 | |||
|  | //	local ani = obj.sq_getRestAni(); | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getThrowChargeAni_Avenger(obj, index) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = null; | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getThrowChargeAni(index); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	//local ani = obj.sq_getThrowChargeAni(index); | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getThrowShootAni_Avenger(obj, index) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = null; | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getThrowShootAni(index); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	//local ani = obj.sq_getThrowShootAni(index); | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getDashAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local sq_var = obj.getVar(); | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = sq_var.GetAnimationMap("Dash", "Character/Priest/Animation/AvengerAwakening/Dash.ani"); | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getDashAni(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	//local ani = obj.sq_getDashAni(); | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getAttackCancelStartFrame_Avenger(obj, index) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local frm = 0; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		if(index == 0) { | |||
|  | 			frm = 4; // 锰瘫 奢问擎..?溯歜 3桧鼻缣怃 渗唳 | |||
|  | 		} | |||
|  | 		else if(index == 1) { | |||
|  | 			frm = 2; // 锰瘫 奢问擎..?溯歜 3桧鼻缣怃 渗唳 | |||
|  | 		} | |||
|  | 		else if(index == 2) { | |||
|  | 			frm = 8; // 葆虽虞 奢问擎 10?溯歜 桧鼻缣怃 渗唳 | |||
|  | 		} | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		if(isInDevilStrikeSkill(obj)) { // 横渐荡 - 等网蝶?塭桧醴 蝶鉴击 乾坚 毡戏贼 ?颤陛 夥荸栖棻.. | |||
|  | 			if(index == 0) { | |||
|  | 				frm = 2; // 锰瘫 奢问擎..?溯歜 2桧鼻缣怃 渗唳 | |||
|  | 			} | |||
|  | 			else if(index == 1) { | |||
|  | 				frm = 3; // 锰瘫 奢问擎..?溯歜 3桧鼻缣怃 渗唳 | |||
|  | 			} | |||
|  | 			else if(index == 2) { | |||
|  | 				frm = 5; // 葆虽虞 奢问擎 5?溯歜 桧鼻缣怃 渗唳 | |||
|  | 			} | |||
|  | 		} | |||
|  | 		else | |||
|  | 			frm = obj.sq_getAttackCancelStartFrame(index); | |||
|  | 	}	 | |||
|  | 	 | |||
|  | 	return frm; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | function getAttackCancelStartFrameSize_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local frmSize = 0; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		//frmSize = 3; // 晦狱奢问桧 横渐螳 陕撩 渗褐擎 4偃棻.. | |||
|  | 		frmSize = 2; // 晦狱奢问桧 横渐螳 陕撩 渗褐擎 4偃棻.. | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		if(isInDevilStrikeSkill(obj)) { // 横渐荡樯 唳办 ?颤陛 赁偃樯虽 | |||
|  | 			frmSize = 3; // 横渐荡朝 晦狱奢问桧 4偃 殓栖棻.. | |||
|  | 		} | |||
|  | 		else | |||
|  | 			frmSize = obj.sq_getAttackCancelStartFrameSize(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return frmSize; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | function getDashAttackAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 
 | |||
|  | 	local ani = null; | |||
|  | 	local sq_var = obj.getVar(); | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = sq_var.GetAnimationMap("DashAttack", "Character/Priest/Animation/AvengerAwakening/DashAttack.ani"); | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getDashAttackAni(); | |||
|  | 	} | |||
|  | 
 | |||
|  | 	//local ani = obj.sq_getDashAttackAni(); | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getGetItemAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		local sq_var = obj.getVar(); | |||
|  | 		ani = sq_var.GetAnimationMap("GetItem", "Character/Priest/Animation/AvengerAwakening/GetItem.ani");  | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getGetItemAni(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	//local ani = obj.sq_getGetItemAni(); | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | function getBuffAni_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	 | |||
|  | 	local ani = null; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		ani = null; | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		ani = obj.sq_getBuffAni(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	//local ani = obj.sq_getBuffAni(); | |||
|  | 	 | |||
|  | 	return ani; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | function getJumpAttackInfo_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	local atk = obj.sq_getJumpAttackInfo(); | |||
|  | 	 | |||
|  | 	return atk; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | function getDashAttackInfo_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 		 | |||
|  | 	local atk = null; | |||
|  | 	 | |||
|  | 	// 陕撩?卫粽 : 学跦(48溯涟) | |||
|  | 	// 1. 陕撩 渗褐 翕寰 陕撩晦 奢问溘桧 隶陛? | |||
|  | 	// 2. 等网 蝶?塭桧醴暧 学葆 啪桧虽 离朝榆 隶陛. | |||
|  | 	// 陕撩?卫粽 学跦击 乾坚 毡朝虽 羹觼?坚 乾坚 毡棻贼 学葆 啪桧虽 离朝榆击 隶陛卫面怃 葬欐?栖棻.. | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		atk = sq_GetCustomAttackInfo(obj, CUSTOM_ATTACKINFO_AW_DASHATTACK); | |||
|  | 		 | |||
|  | 		local state = obj.sq_GetSTATE(); | |||
|  | 	    local power = obj.sq_getBonusRateWithPassive(SKILL_AVENGER_AWAKENING, state, SL_DASH_MAGIC_ATK,1.0); | |||
|  | 	    obj.sq_setCurrentAttackBonusRate(power); | |||
|  | 	     | |||
|  | 		//sq_setAttackPowerWithPassive | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return atk; | |||
|  | } | |||
|  | 
 | |||
|  | function getJumpUpStartFrame_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	local index = obj.sq_getJumpUpStartFrame(); | |||
|  | 	 | |||
|  | 	return index; | |||
|  | } | |||
|  | 
 | |||
|  | function getJumpDownStartFrame_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	local index = obj.sq_getJumpDownStartFrame(); | |||
|  | 	 | |||
|  | 	return index; | |||
|  | } | |||
|  | 
 | |||
|  | function getJumpLandStartFrame_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	local index = obj.sq_getJumpLandStartFrame(); | |||
|  | 	 | |||
|  | 	return index; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | // 蜗塭桧注 奢问击 ?击阳  | |||
|  | function getDashAttackSlideStopFrame_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return null; | |||
|  | 	local index = -1; | |||
|  | 
 | |||
|  | 	if(isAvengerAwakenning(obj) == true) { // 横渐螳 陕撩赅萄塭贼 | |||
|  | 		index = 15; | |||
|  | 	} | |||
|  | 	else { | |||
|  | 		index = obj.sq_getDashAttackSlideStopFrame(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return index; | |||
|  | } | |||
|  | 
 | |||
|  | function drawDevilStrikeGauge(obj) | |||
|  | { | |||
|  | 	if(!obj) return; | |||
|  | 	 | |||
|  | 	// 等网蝶?塭桧醴 啪桧虽 斜葬晦 | |||
|  | 	local level = sq_GetSkillLevel(obj, SKILL_DEVILSTRIKE); | |||
|  | 	 | |||
|  | 	if(level <= 0) return; // 等网蝶?塭桧醴暧 ?卫粽蝶鉴桧 桡棻贼 传 斜溥还 ?踵桡击匏栖棻.. 斜歇橾桧 毡击梱 赅脑啊虽虏.. | |||
|  | 	 | |||
|  | 	local sq_var = obj.getVar(); | |||
|  | 	 | |||
|  | 	local gaugebar_normal_base = sq_var.GetAnimationMap("4_gaugebar_normal_base", "Character/Priest/Effect/Animation/DevilStrike/gauge/4_gaugebar_normal_base.ani"); | |||
|  | 	local gaugebar_normal_flash = sq_var.GetAnimationMap("4_gaugebar_normal_flash", "Character/Priest/Effect/Animation/DevilStrike/gauge/4_gaugebar_normal_flash.ani"); | |||
|  | 	local gaugebar_normal_max = sq_var.GetAnimationMap("4_gaugebar_normal_max", "Character/Priest/Effect/Animation/DevilStrike/gauge/4_gaugebar_normal_max.ani"); | |||
|  | 	 | |||
|  | 	local gauge_normal_bar = sq_var.GetAnimationMap("5_gauge_normal_bar", "Character/Priest/Effect/Animation/DevilStrike/gauge/5_gauge_normal_bar.ani"); | |||
|  | 	local gauge_normal_flash = sq_var.GetAnimationMap("5_gauge_normal_flash", "Character/Priest/Effect/Animation/DevilStrike/gauge/5_gauge_normal_flash.ani"); | |||
|  | 	local gauge_normal_max = sq_var.GetAnimationMap("5_gauge_normal_max", "Character/Priest/Effect/Animation/DevilStrike/gauge/5_gauge_normal_max.ani"); | |||
|  | 	local gauge_normal_max_f = sq_var.GetAnimationMap("5_gauge_normal_max_f", "Character/Priest/Effect/Animation/DevilStrike/gauge/5_gauge_normal_max_f.ani"); | |||
|  | 
 | |||
|  | 	local x = 105; | |||
|  | 	local y = 525; | |||
|  | 	 | |||
|  | 	local line_buff_num = 9; | |||
|  | 
 | |||
|  | 
 | |||
|  | 	if(sq_getMyBuffInfoCount() > line_buff_num) { // 2还橾隆 嫔煎 萤萼棻..	 | |||
|  | 		local line_offset = 20; | |||
|  | 		local line_num = sq_getMyBuffInfoCount() / line_buff_num; // 帼?嬴桧夔戏煎 塭樯偎热 | |||
|  | 		 | |||
|  | 		y = y - (line_offset * line_num); | |||
|  | 	} | |||
|  | 
 | |||
|  | 	 | |||
|  | 	 | |||
|  | 	/////////////////////////////////////// | |||
|  | 	// 啪桧虽 夥 ? 斜葬晦 | |||
|  | 	sq_AnimationProc(gaugebar_normal_base); | |||
|  | 	sq_drawCurrentFrame(gaugebar_normal_base, x, y, false); | |||
|  | 	/////////////////////////////////////// | |||
|  | 	 | |||
|  | 	local gaugeValue = getDevilGauge(obj); | |||
|  | 	local max_gaugeValue = getDevilMaxGaugeValue(obj); | |||
|  | 	local rate = gaugeValue.tofloat() / max_gaugeValue.tofloat(); | |||
|  | 	 | |||
|  | 	// 啪桧虽 涧 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 	 | |||
|  | 	if(appendage) { | |||
|  | 		local lastValue = appendage.sq_var.get_vector(2); // 虽陪 啪桧虽  | |||
|  | 		 | |||
|  | 		//print("lastValue:" + lastValue + " gaugeValue:" + gaugeValue); | |||
|  | 		 | |||
|  | 		local CURRENT_HIT_WHITE_FLASH_TIME = 500; | |||
|  | 		 | |||
|  | 		if(lastValue == max_gaugeValue) { // 譆渠热纂谛 葆虽虞 啪桧虽陛 伪棻贼..?仪戏煎  | |||
|  | 			CURRENT_HIT_WHITE_FLASH_TIME = 600; | |||
|  | 		} | |||
|  | 		 | |||
|  | 		if(lastValue > gaugeValue) { //葆虽虞 啪桧虽陛 ?营 啪桧虽 尔棻 堪棻贼.. 啪桧虽涧蒂 ?药捡?棻.. | |||
|  | 			//DS_APEND_MAX_GAUGE <- 0 // 譆渠 学葆啪桧虽 热纂 | |||
|  | 			 | |||
|  | 			local time = appendage.getTimer().Get(); | |||
|  | 
 | |||
|  | 			local whitetrans = sq_GetUniformVelocity(255, 0, time, CURRENT_HIT_WHITE_FLASH_TIME); | |||
|  | 			local lv = sq_GetUniformVelocity(lastValue, gaugeValue, time, CURRENT_HIT_WHITE_FLASH_TIME); | |||
|  | 			 | |||
|  | 			local flahbar_rate = lv.tofloat() / max_gaugeValue.tofloat(); | |||
|  | 			 | |||
|  | 			if(lastValue == max_gaugeValue) { // 譆渠热纂谛 葆虽虞 啪桧虽陛 伪棻贼..?仪戏煎  | |||
|  | 				if(time < 200) { // ?仪啪桧虽虏 尔桧紫烟 200 tick桧?缣怃朝 罹晦怃 葬欐?帼董栖棻.. | |||
|  | 					sq_AnimationProc(gauge_normal_flash); | |||
|  | 					gauge_normal_flash.setImageRate(flahbar_rate, 1.0); | |||
|  | 					 | |||
|  | 					local rgb = sq_RGB(255,255,255); | |||
|  | 					local alpha = sq_ALPHA(whitetrans); | |||
|  | 					 | |||
|  | 					sq_drawCurrentFrameEffect_SIMPLE(gauge_normal_flash, x, y, rgb, alpha); | |||
|  | 					 | |||
|  | 					// ?仪 啪桧虽夥紫 斜溥遽棻.. | |||
|  | 					sq_AnimationProc(gaugebar_normal_max); | |||
|  | 					sq_drawCurrentFrame(gaugebar_normal_max, x, y, false); | |||
|  | 					return; | |||
|  | 				} | |||
|  | 			} | |||
|  | 			 | |||
|  | 			//print("flahbar_rate:" + flahbar_rate); | |||
|  | 			// 啪桧虽 斜葬晦 | |||
|  | 			sq_AnimationProc(gauge_normal_flash); | |||
|  | 			gauge_normal_flash.setImageRate(flahbar_rate, 1.0); | |||
|  | 			 | |||
|  | 			local rgb = sq_RGB(255,255,255); | |||
|  | 			local alpha = sq_ALPHA(whitetrans); | |||
|  | 			 | |||
|  | 			sq_drawCurrentFrameEffect_SIMPLE(gauge_normal_flash, x, y, rgb, alpha);			 | |||
|  | 			 | |||
|  | 			// 啪桧虽 ?娄 部 | |||
|  | 			if(lv == gaugeValue) { | |||
|  | 				appendage.sq_var.set_vector(2, gaugeValue); | |||
|  | 			} | |||
|  | 		} | |||
|  | 		 | |||
|  | 	} | |||
|  | 	 | |||
|  | 	// 橾奁 啪桧虽蒂 斜葬朝等 裟蝶朝 觊 棻脑啪 斜溥丑捡?栖棻.. | |||
|  | 	if(gaugeValue == max_gaugeValue) { | |||
|  | 		// 橾奁 啪桧虽 斜葬晦 | |||
|  | 		sq_AnimationProc(gauge_normal_max);	 | |||
|  | 		gauge_normal_max.setImageRate(rate, 1.0);	 | |||
|  | 		sq_drawCurrentFrame(gauge_normal_max, x, y, false); | |||
|  | 		// | |||
|  | 		 | |||
|  | 		// 裟蝶纂 啪桧虽夥紫 斜溥遽棻.. | |||
|  | 		sq_AnimationProc(gaugebar_normal_flash); | |||
|  | 		sq_drawCurrentFrame(gaugebar_normal_flash, x, y, false); | |||
|  | 		// | |||
|  | 		 | |||
|  | 		 | |||
|  | 		local max_gauge_offset_x = 150; | |||
|  | 		// 裟蝶纂 啪桧虽夥紫 斜溥遽棻.. | |||
|  | 		local size = 8; | |||
|  | 		local maxResWidth = 20;		 | |||
|  | 		local lineMoveLen = (max_gauge_offset_x + (maxResWidth * 2)); // ?塭樯 遗霜桧朝 剪葬 | |||
|  | 
 | |||
|  | 		local time = (appendage.getTimer().Get() / 20) % lineMoveLen; | |||
|  | 		 | |||
|  | 		//print("x:" + x + " y:" + y); | |||
|  | 		local xPos = x; | |||
|  | 		local yPos = y - 10; | |||
|  | 		setClip(xPos, yPos, xPos + max_gauge_offset_x + 16, yPos + 20); | |||
|  | 		 | |||
|  | 		for(local i=0;i<size;i+=1) { | |||
|  | 			// 裟蝶纂 啪桧虽夥紫 斜溥遽棻.. | |||
|  | 			sq_AnimationProc(gauge_normal_max_f); | |||
|  | 			 | |||
|  | 			//local x1 = max_gauge_offset_x + maxResWidth + (i * 25) - time; | |||
|  | 			local x1 = max_gauge_offset_x + maxResWidth + (i * 25) - time; | |||
|  | 			local x2 = -maxResWidth + (i * 25) - time; | |||
|  | 			 | |||
|  | 			sq_drawCurrentFrame(gauge_normal_max_f, x + x1, y, false); | |||
|  | 			 | |||
|  | 			sq_drawCurrentFrame(gauge_normal_max_f, x + x2, y, false); | |||
|  | 			// | |||
|  | 		} | |||
|  | 		//		 | |||
|  | 		releaseClip(); | |||
|  | 	} | |||
|  | 	else {	 | |||
|  | 		// 橾奁 啪桧虽 斜葬晦 | |||
|  | 		sq_AnimationProc(gauge_normal_bar);	 | |||
|  | 		gauge_normal_bar.setImageRate(rate, 1.0);	 | |||
|  | 		sq_drawCurrentFrame(gauge_normal_bar, x, y, false); | |||
|  | 		// | |||
|  | 	} | |||
|  | 	 | |||
|  | 	// 罐? 轿溘 | |||
|  | 	local mouseX = sq_GetMouseXPos(); | |||
|  | 	local mouseY = sq_GetMouseYPos(); | |||
|  | 	 | |||
|  | 	local tipX = x - 20; | |||
|  | 	local tipY = y - 15; | |||
|  | 	local tipEndX = tipX + 195; | |||
|  | 	local tipEndY = tipY + 20; | |||
|  | 	if(mouseX > tipX && mouseY > tipY && mouseX < tipEndX && mouseY < tipEndY) { | |||
|  | 		sq_drawToolTip(x - 35, y - 13, sq_RGB(255,255,255), 0, 1, 29003, 0, 260, true); | |||
|  | 	} | |||
|  | 	 | |||
|  | } | |||
|  | 
 | |||
|  | // 横渐荡辨 drawcustomui 睡碟殓栖棻.. 渠?瞳戏煎 等网蝶?塭桧醴 啪桧虽蒂 斜葬溥坚 虏菟历蝗栖棻.. | |||
|  | function drawCustomUI_Avenger(obj) | |||
|  | { | |||
|  | 	if(!obj) return; | |||
|  | 	//if(obj.sq_isMyCharacter()) // 釭暧 议葛搅陛 嬴栖塭贼 桧匙击 斜溥还 ?踵 桡击匏栖棻.. | |||
|  | 	//if(sq_getMyCharacter() != obj) { | |||
|  | 	//	return; | |||
|  | 	//} | |||
|  | 	 | |||
|  | 	 | |||
|  | 	if(!obj.sq_isMyCharacter()) { | |||
|  | 		//print("!obj.sq_isMyCharacter()"); | |||
|  | 		return; | |||
|  | 	}	 | |||
|  | 		 | |||
|  | 		 | |||
|  | 	if(!isGrowTypeAvenger(obj)) return; // 横渐螳陛 嬴栖塭贼 传? 斜溥还 ?踵 桡击匏栖棻.. | |||
|  | 	 | |||
|  | 	 | |||
|  | 	 | |||
|  | 	// 等网蝶?塭桧醴 啪桧虽 斜葬晦 | |||
|  | 	drawDevilStrikeGauge(obj); | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | function getStaticDataIndexDevilGauge(obj, passiveobjectIndex, newState) { // 螃粽薛? state 高缣 评塭 醱瞪腆 DevilStrike.skl 蝶鹧?等桧颤 樯策蝶蒂 掘?褫栖棻.. | |||
|  | 	if(!obj) return -1; | |||
|  | 	 | |||
|  | 	local state = obj.getState(); | |||
|  | 	local staticIndex = -1; | |||
|  | 	if(newState != -1) { | |||
|  | 		state = newState; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	 | |||
|  | 	if(state == STATE_THROW) { // 陛栋? skill 酝缣 state_throw煎 霞??朝 赁偃暧 蝶鉴桧 毡朝等 桧匙缣 妇?怃朝 热翕戏煎 羹觼?棻.. | |||
|  | 			//print("\n state == STATE_THROW:" + obj.getThrowIndex()); | |||
|  | 		 if(obj.getThrowIndex() == SKILL_GRASP_HAND_OF_ANGER) { //GraspHandOfAnger // (碟喻暧 遗面锅) | |||
|  | 			staticIndex = SI_DS_GRASP_HANDOFANGER; | |||
|  | 		 } | |||
|  | 		 else if(obj.getThrowIndex() == SKILL_CHANGE_HP_TO_MP) { // ChangeHpToMp (坚鳝暧 ?翮) | |||
|  | 			staticIndex = SI_DS_CHANGE_HPTOMP; | |||
|  | 		 } | |||
|  | 		 else if(obj.getThrowIndex() == SKILL_SLOW_HEAL) { // SKILL_SLOW_HEAL | |||
|  | 			//SI_DS_SLOW_HEAL <- 20 // 蜗煎办? | |||
|  | 			staticIndex = SI_DS_SLOW_HEAL; | |||
|  | 		 } | |||
|  | 		 else if(obj.getThrowIndex() == SKILL_STRIKING) { // SKILL_STRIKING | |||
|  |                 //SKILL_STRIKING,						/// 蝶?塭桧缰 | |||
|  | 				//SI_DS_STRIKING <- 22 // 蝶?塭桧缰 | |||
|  | 			staticIndex = SI_DS_STRIKING; | |||
|  | 		 } | |||
|  | 		 else if(obj.getThrowIndex() == SKILL_CURE) { // SKILL_CURE | |||
|  | 				//SKILL_CURE,							/// 听横 - ??卫瞪 | |||
|  | 				//SI_DS_CURE <- 23 // 听横 | |||
|  | 			staticIndex = SI_DS_CURE; | |||
|  | 		 } | |||
|  | 		 else if(obj.getThrowIndex() == SKILL_BLESS) { // SKILL_BLESS | |||
|  | 				//SKILL_BLESS,						/// 绾溯蝶 - 偃樯卫瞪 | |||
|  | 				//SI_DS_BLESS <- 25 // 虽?暧 蹴犒 | |||
|  | 			staticIndex = SI_DS_BLESS; | |||
|  | 		 } | |||
|  | 		 else if(obj.getThrowIndex() == SKILL_RISING_AREA) { // SKILL_RISING_AREA | |||
|  | 				//SKILL_RISING_AREA | |||
|  | 				//SI_DS_RISING_AREA <- 27 // 蝓茧霞 | |||
|  | 			staticIndex = SI_DS_RISING_AREA; | |||
|  | 		 }				 | |||
|  | 	} | |||
|  | 	else if(state == STATE_ATTACK) { | |||
|  | 		if(isAvengerAwakenning(obj)) { | |||
|  | 			if(obj.getAttackIndex() == 3) { | |||
|  | 				staticIndex = SI_DS_DG_JUMP_ATTACK; | |||
|  | 			} | |||
|  | 			else { | |||
|  | 				staticIndex = SI_DS_DG_ATTACK; | |||
|  | 			} | |||
|  | 		} | |||
|  | 		else { | |||
|  | 			staticIndex = SI_DS_ATTACK; | |||
|  | 		} | |||
|  | 	} | |||
|  | 	else if(state == STATE_JUMP_ATTACK) { | |||
|  | 		staticIndex = SI_DS_JUMP_ATTACK; | |||
|  | 	} | |||
|  | 	else if(state == STATE_DASH_ATTACK) { | |||
|  | 		if(isAvengerAwakenning(obj)) { | |||
|  | 			staticIndex = SI_DS_DG_DASH_ATTACK; | |||
|  | 		} | |||
|  | 		else { | |||
|  | 			staticIndex = SI_DS_DASH_ATTACK; | |||
|  | 		} | |||
|  | 	} | |||
|  | 	else if(state == STATE_HIGH_SPEED_SPLASH) { | |||
|  | 		staticIndex = SI_DS_HIGH_SPEED_SLASH; | |||
|  | 	} | |||
|  | 	else if(state == STATE_EARTHQUAKE || passiveobjectIndex == 24103) { //24103	`Character/Priest/EarthQuakeRock.obj` | |||
|  | 		staticIndex = SI_DS_EARTH_QUAKE; | |||
|  | 	} | |||
|  | 	else if(state == STATE_SPINCUTTER) { | |||
|  | 		staticIndex = SI_DS_SPINCUTTER; | |||
|  | 	} | |||
|  | 	else if(state == STATE_HEDGEHOG) { | |||
|  | 		staticIndex = SI_DS_HEDGEHOG; | |||
|  | 	} | |||
|  | 	else if(state == STATE_FASTMOVE) { | |||
|  | 		staticIndex = SI_DS_FASTMOVE; | |||
|  | 	} | |||
|  | 	else if(state == STATE_EXECUTION) { | |||
|  | 		staticIndex = SI_DS_EXECUTION; | |||
|  | 	} | |||
|  | 	else if(state == STATE_RIPPER) { | |||
|  | 		staticIndex = SI_DS_RIPPER; | |||
|  | 	} | |||
|  | 	else if(state == STATE_POWER_OF_DARKNESS) { | |||
|  | 		staticIndex = SI_DS_DARK; | |||
|  | 	} | |||
|  | 	else if(state == STATE_ANTIAIR_UPPER) { | |||
|  | //SI_DS_ANTIAIR_UPPER <- 18 // 奢溜颤 | |||
|  | 		staticIndex = SI_DS_ANTIAIR_UPPER; | |||
|  | 	} | |||
|  | 	else if(state == STATE_SMASHER) { | |||
|  | //SI_DS_SMASHER <- 19// 蝶衙敷 | |||
|  | 		staticIndex = SI_DS_SMASHER; | |||
|  | 	} | |||
|  | 	else if(state == STATE_LUCKY_STRAIGHT) { | |||
|  | //SI_DS_LUCKY_STRAIGHT <- 21 // 楣郦 蝶?溯桧? | |||
|  | 		staticIndex = SI_DS_LUCKY_STRAIGHT; | |||
|  | 	} | |||
|  | 	else if(state == STATE_SECOND_UPPER) { | |||
|  | 	// STATE_SECOND_UPPER <- 30 		  //  撮钟萄横? | |||
|  | //SI_DS_SKILL_SECOND_UPPER <- 24 // 撮钟萄横? | |||
|  | 		staticIndex = SI_DS_SKILL_SECOND_UPPER; | |||
|  | 	} | |||
|  | 	else if(state == STATE_LUCKY_STRAIGHT) { | |||
|  | //SI_DS_LUCKY_STRAIGHT <- 21 // 楣郦 蝶?溯桧? | |||
|  | 		staticIndex = SI_DS_LUCKY_STRAIGHT; | |||
|  | 	} | |||
|  | 	else if(state == STATE_QUAKE_AREA) { | |||
|  | 	// STATE_QUAKE_AREA <- 26 		  //  钒瑰跷 | |||
|  | //SI_DS_QUAKE_AREA <- 26 // 钒瑰跷 | |||
|  | 		staticIndex = SI_DS_QUAKE_AREA; | |||
|  | 	} | |||
|  | 	else if(state == STATE_EX_DISASTER) { | |||
|  | 	// STATE_EX_DISASTER <- 74 		  //  ex蝶鉴 - 营懈 | |||
|  | 		staticIndex = SI_DS_DISASTER; | |||
|  | 	} | |||
|  | 	else if(state == STATE_PANDEMONIUM_EX) { | |||
|  | 	// STATE_PANDEMONIUM_EX <- 73 		  //  ex蝶鉴 - 犒葆瞪 | |||
|  | 		staticIndex = SI_DS_PANDEMONI; | |||
|  | 	} | |||
|  | 	 | |||
|  | 		// | |||
|  | 	 | |||
|  | 	//print("\n staticIndex:" + staticIndex); | |||
|  | 	return staticIndex; | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | // 横渐荡 state蒂 羹觼?罹 醱瞪桧 ?蹂? 鼻鹧塭贼 学葆啪桧虽蒂 醱瞪卫面鄹栖棻.. | |||
|  | // ?卫粽螃粽薛? 樯策蝶蒂 跷陛? 桧嵘朝 舆樯奢 state陛 桧嘐 棻艇鼻鹧煎 渗唳?击 阳 庵棵啪 等嘐虽陛 菟横鬲击 阳蒂 籀葬?晦 嫔?怃 殓栖棻.. | |||
|  | function procDevilStrikeGauge(obj, passiveobjectIndex)  | |||
|  | { | |||
|  | 	if(!obj) return; | |||
|  | 	 | |||
|  | 	local staticIndex = getStaticDataIndexDevilGauge(obj, passiveobjectIndex, -1);  | |||
|  | 	//local passive_attack_staticIndex = getStaticDataIndexDevilGauge(obj, passiveobjectIndex);  | |||
|  | 	 | |||
|  | 	// ?营 议葛搅暧 state蒂 羹觼?罹 葬欐肾朝高桧 -1桧 嬴栖塭贼 醱瞪?丑捡?棻朝 暧嘐殓栖棻.. | |||
|  | 	//print("procDevilStrikeGauge:" + staticIndex); | |||
|  | 	if(staticIndex != -1) { //  | |||
|  | 		if(!IsAddDevilGauge(obj, staticIndex)) { | |||
|  | 			//print(" \n IsAddDevilGauge(obj, staticIndex) == false"); | |||
|  | 		 return; // 醱瞪?楚斜蒂 羹觼?怃 -1桧 葬欐肾贼 FALSE蒂 葬欐?朝等 桧歇隆 醱瞪?怃朝 寰腌栖棻.. | |||
|  | 		 } | |||
|  | 		 | |||
|  | 		//print("addDevilGauge staticIndex :" + staticIndex); | |||
|  | 		local addValue = sq_GetIntData(obj, SKILL_DEVILSTRIKE, staticIndex); | |||
|  | 		//print("addValue:" + addValue + " maxValue:" +  getDevilMaxGaugeValue(obj)); | |||
|  | 		 addDevilGauge(obj, addValue); // 学葆啪桧虽蒂 陕 state涤煎 蜃啪 醱瞪?栖棻 | |||
|  | 		 		  | |||
|  | 		//obj.getVar("devilStrike").set_vector(0, -1); // 醱瞪桧 腑戏栖..桧薯 醱瞪斜虏~ | |||
|  | 		// 桧 晦奖缣 渠?怃朝 桧薯 涡桧鼻 醱瞪?贼 寰肾晦 阳侥缣 ?楚斜蒂 -1高戏煎 撮? | |||
|  | 		local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽			 | |||
|  | 		 | |||
|  | 		if(appendage) { | |||
|  | 			//print("appendage.sq_var.set_vector(DS_APEND_ADD_FLAG, -1);"); | |||
|  | 			appendage.sq_var.set_vector(DS_APEND_ADD_FLAG, -1); | |||
|  | 		} | |||
|  | 		 | |||
|  | 	} | |||
|  | } | |||
|  | 
 | |||
|  | // 横渐荡 attack妇湿 属寥?热菟 殓栖棻.. | |||
|  | function onBeforeAttack_Avenger(obj, damager, bounding_box, is_stuck) | |||
|  | { | |||
|  | 	 | |||
|  | 	return 1; | |||
|  | } | |||
|  | 
 | |||
|  | function onAttack_Avenger(obj, damager, bounding_box, is_stuck) | |||
|  | { | |||
|  | 	if(!obj) return -1; | |||
|  | 	//print(" onAttack_Avenger" + isGrowTypeAvenger(obj)); | |||
|  | 	 | |||
|  | 	if(!isGrowTypeAvenger(obj)) return -1; // 横渐螳陛 嬴栖塭贼 传? 斜溥还 ?踵 桡击匏栖棻..	 | |||
|  | 	 | |||
|  | 	procDevilStrikeGauge(obj, -1); // 横渐荡 state蒂 羹觼?罹 醱瞪桧 ?蹂? 鼻鹧塭贼 学葆啪桧虽蒂 醱瞪卫面鄹栖棻.. | |||
|  | 	 | |||
|  | 	return 1; | |||
|  | } | |||
|  | 
 | |||
|  | function onAfterAttack_Avenger(obj, damager, bounding_box, is_stuck) | |||
|  | { | |||
|  | 	return 1; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | function onAfterAttack_PassiveObject(passiveobj, damager, bounding_box, is_stuck) | |||
|  | { | |||
|  | 	return 1; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | function setEnableCancelSkill_Avenger(obj, isEnable) | |||
|  | { | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	if(!isGrowTypeAvenger(obj)) return false; // 横渐螳陛 嬴栖塭贼 ?葬蝶?蒂 埠潍 桧翕?紫烟 | |||
|  | 	 | |||
|  | 	 | |||
|  | 	if(!obj.isMyControlObject()) return false; | |||
|  | 
 | |||
|  | 
 | |||
|  | 	if(!isEnable) { | |||
|  | 		return true; | |||
|  | 	} | |||
|  | 	 | |||
|  | 	// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] | |||
|  | 	//if(sq_isPVPMode()) | |||
|  | 	{	 | |||
|  | 		//127 `Priest/CancelFastmove.skl` // 警蜗 坚楼桧翕 | |||
|  | 		obj.setSkillCommandEnable(SKILL_FASTMOVE, isEnable);		 | |||
|  | 		//128 `Priest/CancelHighSpeedSlash.skl` // 警蜗 坚楼漆晦 | |||
|  | 		obj.setSkillCommandEnable(SKILL_HIGH_SPEED_SLASH, isEnable);		 | |||
|  | 		//129 `Priest/CancelEarthQuake.skl` // 警蜗 虽煆霞 | |||
|  | 		obj.setSkillCommandEnable(SKILL_EARTH_QUAKE, isEnable);		 | |||
|  | 		//130 `Priest/CancelHedgehog.skl` // 警蜗 尔?暧 陛卫(?虽?斜) | |||
|  | 		obj.setSkillCommandEnable(SKILL_HEDGEHOG, isEnable);		 | |||
|  | 		//132 `Priest/CancelSpincutter.skl`  // 警蜗 蝶?醴搅 | |||
|  | 		obj.setSkillCommandEnable(SKILL_SPINCUTTER, isEnable);		 | |||
|  | 		//170	`Priest/CancelBackStep.skl`		// 警蜗 寥蝶变 | |||
|  | 		 | |||
|  | //133 	`Priest/PandemoniumEx.skl`		// ?撩 : 犒葆瞪 | |||
|  | //SKILL_PANDEMONIUM_EX			<- 133 // 犒葆瞪  | |||
|  | 		obj.setSkillCommandEnable(SKILL_PANDEMONIUM_EX, isEnable);		 | |||
|  | //134 	`Priest/DisasterEx.skl` 		// ?撩 : 营懈 | |||
|  | //SKILL_EX_DISASTER			<- 134	// ex蝶鉴 - 营懈 | |||
|  | 		obj.setSkillCommandEnable(SKILL_EX_DISASTER, isEnable);		 | |||
|  | 		// | |||
|  | 	} | |||
|  | 	// 警蜗晦 饷薯 蒙机殓栖棻. (2012.04.12) | |||
|  | 	return true; | |||
|  | 	 | |||
|  | 	//local size = 5; | |||
|  | 	local size = 4; | |||
|  | 	local cancel_skill_l =[]; | |||
|  | 	local skill_l =[]; | |||
|  | 	cancel_skill_l.resize(size); | |||
|  | 	skill_l.resize(size); | |||
|  | 	 | |||
|  | 	cancel_skill_l[0] = SKILL_CANCEL_FASTMOVE; | |||
|  | 	cancel_skill_l[1] = SKILL_CANCEL_HIGH_SPEED_SLASH; | |||
|  | 	cancel_skill_l[2] = SKILL_CANCEL_EARTH_QUAKE; | |||
|  | 	cancel_skill_l[3] = SKILL_CANCEL_HEDGEHOG; | |||
|  | 	//cancel_skill_l[4] = SKILL_CANCEL_SPINCUTTER; | |||
|  | 
 | |||
|  | 	skill_l[0] = SKILL_FASTMOVE; | |||
|  | 	skill_l[1] = SKILL_HIGH_SPEED_SLASH; | |||
|  | 	skill_l[2] = SKILL_EARTH_QUAKE; | |||
|  | 	skill_l[3] = SKILL_HEDGEHOG; | |||
|  | 	//skill_l[4] = SKILL_SPINCUTTER; | |||
|  | 
 | |||
|  | 	for(local i=0;i<size;i+=1) { | |||
|  | 		// ?塭嘐搅煎 剩啖霞 郦 樯策蝶谛, 奢问寞彻桧 陛栋?虽 羹觼?罹 鳝娄?贼 ?卫粽螃粽薛?蒂 虏菟横 蛔烟?栖棻.. | |||
|  | 		local level = sq_GetSkillLevel(obj, cancel_skill_l[i]); | |||
|  | 		local bRet = false; | |||
|  | 		 | |||
|  | 		if(level > 0) { | |||
|  | 			if(isEnable) { | |||
|  | 				// 罹晦缣怃 菸蝶陛蛤树樯虽 羹觼?瑭捡?棻.. 菸蝶陛蛤树 渗褐鼻鹧缣怃 橾奁 警蜗晦陛 釭陛贼 堆坞?虽 强朝陛.. | |||
|  | 				if(!isAvengerAwakenning(obj)) | |||
|  | 					bRet = true; | |||
|  | 				else { | |||
|  | 					return false; | |||
|  | 				} | |||
|  | 			} | |||
|  | 		} | |||
|  | 		 | |||
|  | 		//print("\n cancel_skill_l[i]:" + cancel_skill_l[i] + " level:" + level + " bRet:" + bRet + " skill_l[i]:" + skill_l[i]); | |||
|  | 		obj.setSkillCommandEnable(skill_l[i], bRet); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	 | |||
|  | 	return true; | |||
|  | } | |||
|  | 
 | |||
|  | function playDashAttackSound_Avenger(obj) // 渠莲饵遴萄蒂 撮??朝 螃帼塭桧注胀 ?热殓栖棻.. | |||
|  | { | |||
|  | 	if(!obj) return 0; | |||
|  | 	if(!isGrowTypeAvenger(obj)) return 0; // 横渐螳陛 嬴栖塭贼 传? 斜溥还 ?踵 桡击匏栖棻.. | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj)) return 1; // 陕撩橾隆 评煎 渠莲饵遴萄 撮??栖棻.. | |||
|  | 	 | |||
|  | 	return 0; | |||
|  | } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | function setActiveStatus_Avenger(obj, activeStatus, power) | |||
|  | { | |||
|  | 	if(!obj) return 0; | |||
|  | 	if(isAvengerAwakenning(obj)) | |||
|  | 	{ | |||
|  | 		return 0; // 陕撩橾隆 评煎 鼻鹧桧鼻击 虞嬴帼董栖棻.. | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return 1; | |||
|  | } | |||
|  | 
 | |||
|  | // setcurrentanimation桧 胀 ?缣 桧??瘫赀紫 娄湿 亵瞰击 嫔? 赅苌 setcurrentanimation?缣 夔?煤 ? 热 毡朝 squirrel function?轿击 ?栖棻.. | |||
|  | function setCurrentAnimation_Avenger(obj, animation)  | |||
|  | { | |||
|  | 	if(!obj) return; | |||
|  | 	if(!animation) return; | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj)) { // 陕撩 菸蝶陛蛤树 渗褐 ?塭贼 setcurrentanimation 肾朝 赅苌 animation擎 瘫赀紫 亵瞰妇湿 ?楚斜蒂 螃?卫霾栖棻.. | |||
|  | 		if(animation) { | |||
|  | 			animation.setNeverApplyAnotherPlayersEffectAlphaRate(false); | |||
|  | 			animation.setIsApplyAnotherPlayersEffectAlphaRate(false); | |||
|  | 		} | |||
|  | 	} | |||
|  | } | |||
|  | 
 | |||
|  | //湍瞪击 亿煎 卫蒙? 阳 ?轿肾朝 葬掸 ?热 | |||
|  | function resetDungeonStart_Avenger(obj, moduleType, resetReason, isDeadTower, isResetSkillUserCount) | |||
|  | { | |||
|  | 	if(!obj) return -1;	 | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_devilstrike.nut"); // 等网蝶?塭桧醴 横?蛤虽 | |||
|  | 	 | |||
|  | 	if(appendage) { | |||
|  | 		if(appendage.sq_var.size_vector() == 5) { // 亿煎 殓潍?朝匙桧塭贼 学葆啪桧虽 热纂蒂 葬掸?栖棻.. | |||
|  | 			appendage.sq_var.set_vector(1, 0); // ?营 学葆啪桧虽 热纂 樯策蝶 1 | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	local awakening_appendage = obj.GetSquirrelAppendage("Appendage/Character/ap_avenger_awakening.nut"); | |||
|  | 	 | |||
|  | 	if(awakening_appendage) { | |||
|  | 		if(isAvengerAwakenning(obj)) { | |||
|  | 			awakening_appendage.setValid(false); | |||
|  | 			awakening_appendage.sq_var.set_vector(I_AVENGER_AWAKENING_VALID, 0); | |||
|  | 			obj.setObjectHeight(-1); | |||
|  | 		} | |||
|  | 	} | |||
|  | 	 | |||
|  | 	return 1; | |||
|  | 	 | |||
|  | } | |||
|  | 
 | |||
|  | function takingAwakenSkillBack_Avenger(obj) | |||
|  | {	 | |||
|  | 	if(!obj) return false; | |||
|  | 	if(!isGrowTypeAvenger(obj)) // 横渐荡陛 嬴棋 唳办 鼠亵勒 flowpriest煎 | |||
|  | 		return false; | |||
|  | 		 | |||
|  | 	local state = obj.getState(); | |||
|  | 	 | |||
|  | 	print("\n takingAwakenSkillBack:" + state + " isAvengerAwakenning(obj):" + isAvengerAwakenning(obj)); | |||
|  | 	 | |||
|  | 	if(isAvengerAwakenning(obj) || state == STATE_AVENGER_AWAKENING) { // 陕撩 渗褐 - 菸蝶陛蛤树 鼻鹧塭贼 ?擎 // 渗褐 酝橾 鼻鹧橾阳紫 桧够缣 菟横陛捡?栖棻.. | |||
|  | 		obj.sq_IntVectClear(); | |||
|  | 		obj.sq_IntVectPush(0); // substate撮? | |||
|  | 		obj.sq_addSetStatePacket(STATE_AWAKENING_TURN_OFF, STATE_PRIORITY_IGNORE_FORCE, true); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	if(obj.getVar("takingAwakenSkillBack").size_vector() == 0) { | |||
|  | 		obj.getVar("takingAwakenSkillBack").push_vector(0); | |||
|  | 		obj.getVar("takingAwakenSkillBack").push_vector(0); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	obj.getVar("takingAwakenSkillBack").set_vector(0, 1); | |||
|  | 	 | |||
|  | 	return true; | |||
|  | } |