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