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