Sqr/character/atmage/icesword/ice_sword.nut

163 lines
5.3 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.

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