Sqr/character/priest/avenger_common.nut

1942 lines
58 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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