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