1942 lines
58 KiB
Plaintext
1942 lines
58 KiB
Plaintext
|
||
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;
|
||
} |