Sqr/character/atmage/atmage_throw.nut

122 lines
4.1 KiB
Plaintext

function onAfterSetState_ElementalChange(obj, state, datas, isResetTimer)
{
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_CAST_SPEED, SPEED_TYPE_CAST_SPEED,
SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
local throwState = obj.getThrowState();
if (throwState == 1)
{
// 楼撩嫦翕 appendage 勘横舆晦
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, SKILL_ELEMENTAL_CHANGE, false, "Character/ATMage/ElementalChange/ap_ATMage_Elemental_Change.nut", false);
local skillLevel = sq_GetSkillLevel(obj, SKILL_ELEMENTAL_CHANGE);
local validTime = sq_GetLevelData(obj, SKILL_ELEMENTAL_CHANGE, 0, skillLevel);
if (appendage != null)
{
// 帼? UI 轿溘 横?萄蒂 勘横舆晦 瞪缣 ?轿肾横捡 ?栖棻.
appendage.setAppendCauseSkill(BUFF_CAUSE_SKILL, sq_getJob(obj), SKILL_ELEMENTAL_CHANGE, skillLevel);
appendage.sq_SetValidTime(validTime);
appendage.setBuffIconImage(55);
appendage.setEnableIsBuff(true);
CNSquirrelAppendage.sq_AppendAppendageID(appendage, obj, obj, APID_SKILL_ELEMENTAL_CHANGE, false);
}
// 楼撩 尔?暧 楼撩击 夥脯 遽棻.
local skillLevel = sq_GetSkillLevel(obj, SKILL_ELEMENTAL_SHIELD);
if(skillLevel > 0)
{
sq_RemoveChangeStatus(obj, APID_AT_MAGE_ELEMENT_SHIELD);
local elementalType = obj.getThrowElement();
local upValue = sq_GetIntData(obj, SKILL_ELEMENTAL_SHIELD, 0);
local ap = sq_CreateChangeStatus(CHANGE_STATUS_TYPE_ELEMENT_TOLERANCE_FIRE + elementalType, false, upValue.tofloat() , 0);
if (ap)
{
ap.getAppendageInfo().setValidTime(validTime);
ap.sq_Append(obj, obj, APID_AT_MAGE_ELEMENT_SHIELD, 0, null);
}
}
local element = obj.getThrowElement();
local x = obj.getXPos();
local y = obj.getYPos() + 1;
local z = obj.getZPos();
if (element == ENUM_ELEMENT_FIRE)
createAnimationPooledObject(obj, "Character/Mage/Effect/Animation/ATElementalChange/00_fire_dodge.ani", true, x, y, z);
else if (element == ENUM_ELEMENT_WATER)
createAnimationPooledObject(obj, "Character/Mage/Effect/Animation/ATElementalChange/00_ice_dodge.ani", true, x, y, z);
else if (element == ENUM_ELEMENT_DARK)
createAnimationPooledObject(obj, "Character/Mage/Effect/Animation/ATElementalChange/01_dark_dodge.ani", true, x, y, z);
else if (element == ENUM_ELEMENT_LIGHT)
createAnimationPooledObject(obj, "Character/Mage/Effect/Animation/ATElementalChange/00_light_dodge.ani", true, x, y, z);
}
else if (throwState == 3)
{
obj.sq_PlaySound("PCHANGE");
}
}
function onAfterSetState_ManaBurst(obj, state, datas, isResetTimer)
{
local throwState = obj.getThrowState();
if (throwState == 1)
{
obj.sq_PlaySound("MW_FLOODMANA");
obj.sq_PlaySound("FLOODMANA_CAST");
// 葆釭?舆
local skillLevel = obj.sq_GetSkillLevel(SKILL_MANABURST);
local change_time = sq_GetLevelData(obj, SKILL_MANABURST, SKL_LVL_COLUMN_IDX_2, skillLevel);
local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, SKILL_MANABURST, false,
"Character/ATMage/ManaBurst/ap_ATMage_ManaBurst.nut", false);
appendage.setAppendCauseSkill(BUFF_CAUSE_SKILL, sq_getJob(obj), SKILL_MANABURST, skillLevel);
appendage.sq_SetValidTime(change_time); // 横?蛤虽 颤歜 撮?
// 罹晦怃 append 蒙机
//CNSquirrelAppendage.sq_Append(appendage, obj, obj);
CNSquirrelAppendage.sq_Append(appendage, obj, obj, true); // 帼?蚂
}
}
function onAfterSetState_Throw(obj, state, datas, isResetTimer)
{
local skillIndex = obj.getThrowIndex();
if (skillIndex == SKILL_ELEMENTAL_CHANGE)
{
onAfterSetState_ElementalChange(obj, state, datas, isResetTimer);
if (obj.getThrowState() == 0)
{
// 醴蝶签 UI蒂 ?撩? 卫监棻.
obj.setIsCustomSelectSkill(true);
}
else if (obj.getThrowState() == 1)
{
obj.sq_PlaySound("PCHANGE_SELECT");
if (obj.isMyControlObject())
{
sq_BinaryStartWrite();
sq_BinaryWriteByte(obj.getThrowElement());
sq_SendChangeSkillEffectPacket(obj, SKILL_ELEMENTAL_CHANGE);
}
}
}
else if(skillIndex == SKILL_MANABURST)
{
onAfterSetState_ManaBurst(obj, state, datas, isResetTimer);
}
}