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