163 lines
5.3 KiB
Plaintext
163 lines
5.3 KiB
Plaintext
|
||
function checkExecutableSkill_IceSword(obj)
|
||
{
|
||
if(!obj) return false;
|
||
|
||
local b_useskill = obj.sq_IsUseSkill(SKILL_ICE_SWORD);
|
||
if(b_useskill) {
|
||
obj.sq_AddSetStatePacket(STATE_ICE_SWORD, STATE_PRIORITY_USER, false);
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
function checkCommandEnable_IceSword(obj)
|
||
{
|
||
if(!obj) return false;
|
||
|
||
local state = obj.sq_GetState();
|
||
if(state == STATE_ATTACK) {
|
||
return obj.sq_IsCommandEnable(SKILL_ICE_SWORD);
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
function onSetState_IceSword(obj, state, datas, isResetTimer)
|
||
{
|
||
if(!obj) return;
|
||
|
||
obj.sq_StopMove();
|
||
obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICE_SWORD);
|
||
|
||
// 觼煎栖赝 嬴桧蛊 蒙机 蝶鉴 奢问楼紫 隶陛 等桧颤 (100~)
|
||
local speed100Rate = obj.sq_GetIntData(SKILL_ICE_SWORD, 0); // 0. 觼煎栖赝 嬴桧蛊 蒙机) 蝶鉴 奢问楼紫 隶陛 等桧颤 (100~)
|
||
local speedRate = speed100Rate.tofloat() / 100.0;
|
||
|
||
obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_ICE_SWORD);
|
||
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED,
|
||
SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, speedRate, speedRate);
|
||
//obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED,
|
||
//SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
|
||
|
||
// 钟帼瞪 蝶鉴击 瞳辨?棻.
|
||
obj.sq_SetApplyConversionSkill();
|
||
|
||
local damage = obj.sq_GetBonusRateWithPassive(SKILL_ICE_SWORD , STATE_ICE_SWORD, 0, 1.0);
|
||
obj.sq_SetCurrentAttackBonusRate(damage);
|
||
obj.sq_setCustomHitEffectFileName("Character/Mage/Effect/Animation/ATIceSword/05_2_smoke_dodge .ani");
|
||
|
||
addElementalChain_ATMage(obj, ENUM_ELEMENT_WATER);
|
||
|
||
|
||
// ?撩 蝶鉴击 嫔?
|
||
// 彩寥匐 鬼?蒂 栉?棻贼 3颤陛 蒙翕?虽 强坚, 1, 2颤蒂 ?廓涡 奁犒?棻.
|
||
local skillLevel = sq_GetSkillLevel(obj, SKILL_ICE_SWORD_EX);
|
||
if (skillLevel > 0)
|
||
{
|
||
local var = obj.getVar();
|
||
var.clear_vector();
|
||
var.push_vector(0);
|
||
}
|
||
}
|
||
|
||
|
||
function onEndCurrentAni_IceSword(obj)
|
||
{
|
||
if(!obj) return;
|
||
|
||
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
|
||
function onAttack_IceSword(obj, damager, boundingBox, isStuck)
|
||
{
|
||
if (!obj || !damager) return;
|
||
|
||
sq_EffectLayerAppendage(damager,sq_RGB(0,144,255),150,0,0,240);
|
||
}
|
||
|
||
|
||
function onKeyFrameFlag_IceSword(obj, flagIndex)
|
||
{
|
||
if(!obj) return true;
|
||
|
||
if (flagIndex == 1)
|
||
{
|
||
obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_ICE_SWORD);
|
||
// 钟帼瞪 蝶鉴击 瞳辨?棻.
|
||
obj.sq_SetApplyConversionSkill();
|
||
|
||
local damage = obj.sq_GetBonusRateWithPassive(SKILL_ICE_SWORD , STATE_ICE_SWORD, 0, 1.0);
|
||
obj.sq_SetCurrentAttackBonusRate(damage);
|
||
}
|
||
else if (flagIndex == 2)
|
||
{
|
||
//虞颤
|
||
obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_ICE_SWORD_LAST);
|
||
// 钟帼瞪 蝶鉴击 瞳辨?棻.
|
||
obj.sq_SetApplyConversionSkill();
|
||
|
||
local skill_level = sq_GetSkillLevel(obj, SKILL_ICE_SWORD);
|
||
local damage = obj.sq_GetBonusRateWithPassive(SKILL_ICE_SWORD , STATE_ICE_SWORD, 1, 1.0);
|
||
obj.sq_SetCurrentAttackBonusRate(damage);
|
||
|
||
local skill_level = sq_GetSkillLevel(obj, SKILL_ICE_SWORD);
|
||
local attackInfo = sq_GetCurrentAttackInfo(obj);
|
||
|
||
printc("attackInfo " + attackInfo);
|
||
if (!attackInfo) return;
|
||
|
||
// 0.1,2颤 奢问溘% 1.虞颤 奢问溘% 2.桧楼 马模 溯涟 3.桧楼马模 ?睦 4.桧楼马模 卫除
|
||
local ice_power = sq_GetLevelData(obj, SKILL_ICE_SWORD, 2, skill_level);
|
||
local ice_prob = sq_GetLevelData(obj, SKILL_ICE_SWORD, 3, skill_level);
|
||
local ice_time = sq_GetLevelData(obj, SKILL_ICE_SWORD, 4, skill_level);
|
||
|
||
sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_SLOW, ice_prob, ice_power, ice_time);
|
||
}
|
||
else if (flagIndex == 3)
|
||
{
|
||
// ?撩 蝶鉴击 嫔?
|
||
// 彩寥匐 鬼?蒂 栉?棻贼 3颤陛 蒙翕?虽 强坚, 1, 2颤蒂 ?廓涡 奁犒?棻.
|
||
local skillLevel = sq_GetSkillLevel(obj, SKILL_ICE_SWORD_EX);
|
||
if (skillLevel > 0)
|
||
{
|
||
// 念瘫潍缣怃朝 蒙翕?虽 强朝棻.
|
||
if (checkModuleType(MODULE_TYPE_PVP_TYPE))
|
||
return true;
|
||
|
||
obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_ICE_SWORD);
|
||
// 钟帼瞪 蝶鉴击 瞳辨?棻.
|
||
obj.sq_SetApplyConversionSkill();
|
||
|
||
local damage = obj.sq_GetBonusRateWithPassive(SKILL_ICE_SWORD , STATE_ICE_SWORD, 0, 1.0);
|
||
obj.sq_SetCurrentAttackBonusRate(damage);
|
||
|
||
// 0.1,2颤 奢问溘% 1.虞颤 奢问溘% 2.桧楼 马模 溯涟 3.桧楼马模 ?睦 4.桧楼马模 卫除
|
||
local skill_level = sq_GetSkillLevel(obj, SKILL_ICE_SWORD);
|
||
local attackInfo = sq_GetCurrentAttackInfo(obj);
|
||
local ice_power = sq_GetLevelData(obj, SKILL_ICE_SWORD, 2, skill_level);
|
||
local ice_prob = sq_GetLevelData(obj, SKILL_ICE_SWORD, 3, skill_level);
|
||
local ice_time = sq_GetLevelData(obj, SKILL_ICE_SWORD, 4, skill_level);
|
||
sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_SLOW, ice_prob, ice_power, ice_time);
|
||
|
||
|
||
local var = obj.getVar();
|
||
local flag = var.get_vector(0);
|
||
|
||
if (flag <= 0)
|
||
{ // 罗 ?溯歜戏煎 肾给萼棻.
|
||
local animation = sq_GetCurrentAnimation(obj);
|
||
obj.sq_SetCurrentTimeByFrame(animation, 0);
|
||
var.set_vector(0, 1);
|
||
}
|
||
else
|
||
{
|
||
// 蝶鉴击 谦猿卫监棻.
|
||
if (obj.isMyControlObject())
|
||
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
}
|
||
}
|
||
|
||
return true;
|
||
} |