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