122 lines
4.1 KiB
Plaintext
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);
|
|
}
|
|
}
|