104 lines
3.4 KiB
Plaintext
104 lines
3.4 KiB
Plaintext
|
|
function checkExecutableSkill_IceOrbEx(obj)
|
|
{
|
|
if (!obj) return false;
|
|
|
|
local useSkill = obj.sq_IsUseSkill(SKILL_ICE_ORB_EX);
|
|
if (useSkill) {
|
|
obj.sq_AddSetStatePacket(STATE_ICE_ORB_EX, STATE_PRIORITY_IGNORE_FORCE, false);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function checkCommandEnable_IceOrbEx(obj)
|
|
{
|
|
if(!obj) return false;
|
|
local state = obj.sq_GetState();
|
|
|
|
if(state == STATE_ATTACK) {
|
|
// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20]
|
|
return obj.sq_IsCommandEnable(SKILL_ICE_ORB_EX);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function onSetState_IceOrbEx(obj, state, datas, isResetTimer)
|
|
{
|
|
if(!obj) return;
|
|
|
|
obj.sq_StopMove();
|
|
obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICE_ORB_EX);
|
|
obj.sq_PlaySound("MW_ICEORB");
|
|
}
|
|
|
|
function onEndCurrentAni_IceOrbEx(obj)
|
|
{
|
|
if(!obj) return;
|
|
|
|
local substate = obj.getSkillSubState();
|
|
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false); // 拥栖 部釭贼 蝶鼹萄煎.
|
|
}
|
|
|
|
function onKeyFrameFlag_IceOrbEx(obj, flagIndex)
|
|
{
|
|
|
|
if(!obj) return false;
|
|
|
|
local substate = obj.getSkillSubState();
|
|
local level = sq_GetSkillLevel(obj, SKILL_ICE_ORB_EX);
|
|
|
|
if(flagIndex == 1) {
|
|
// ?卫粽 嫦饵.
|
|
if(obj.isMyControlObject())
|
|
{
|
|
local distance = sq_GetIntData(obj, SKILL_ICE_ORB_EX, 0); // 0. 鼠殓溘 剪葬
|
|
|
|
|
|
local leftPress = sq_IsKeyDown(OPTION_HOTKEY_MOVE_LEFT, ENUM_SUBKEY_TYPE_ALL);
|
|
local rightPress = sq_IsKeyDown(OPTION_HOTKEY_MOVE_RIGHT, ENUM_SUBKEY_TYPE_ALL);
|
|
|
|
if(leftPress && rightPress) // 翕卫缣 寰扬毓击阳 籀葬. 翕卫缣 扬毓击 隆 酝除戏煎.
|
|
{
|
|
//蛤?? 高桧晦缣 嬴鼠匙紫 ?虽强挤.
|
|
}
|
|
else if((sq_GetDirection(obj) == ENUM_DIRECTION_RIGHT && rightPress) // 伪擎 寞?击 扬毓击阳.
|
|
|| (sq_GetDirection(obj) == ENUM_DIRECTION_LEFT && leftPress))
|
|
{
|
|
distance = sq_GetIntData(obj, SKILL_ICE_ORB_EX, 1); // STATIC 1. 姜寞? 剪葬
|
|
}
|
|
else if(leftPress || rightPress) // ?釭塭紫 殓溘 腑棻贼 羲寞?
|
|
{
|
|
distance = sq_GetIntData(obj, SKILL_ICE_ORB_EX, 2); // STATIC 2. 羲寞? 剪葬
|
|
}
|
|
|
|
|
|
local speed = sq_GetIntData(obj, SKILL_ICE_ORB_EX, 3);// STATIC 3. 掘羹 嫦饵 楼紫
|
|
|
|
local level = sq_GetSkillLevel(obj, SKILL_ICE_ORB_EX);
|
|
local gap = sq_GetIntData(obj, SKILL_ICE_ORB_EX, 4); // STATIC 4. 陛卫 当撩 卫除 除问
|
|
local pricklePower = obj.sq_GetBonusRateWithPassive(SKILL_ICE_ORB_EX , STATE_ICE_ORB_EX, 0, 1.0); // LEVEL 0. 陛卫 奢问溘
|
|
local lastPower = obj.sq_GetBonusRateWithPassive(SKILL_ICE_ORB_EX , STATE_ICE_ORB_EX, 1, 1.0); // LEVEL 1. 虞颤 奢问溘
|
|
local maxCount = sq_GetLevelData(obj, SKILL_ICE_ORB_EX, 2, level); // LEVEL 2. 陛卫 当撩 ?热
|
|
local direction = sq_GetDirection(obj);
|
|
local targetPos = sq_GetDistancePos(obj.getXPos(), direction, distance);
|
|
|
|
// 卫除 = 剪葬/楼溘
|
|
obj.sq_StartWrite();
|
|
obj.sq_WriteDword(speed); // 陈嬴陛朝 楼紫.
|
|
obj.sq_WriteDword(gap);
|
|
obj.sq_WriteFloat(pricklePower.tofloat()); //挤热橾热紫 毡晦阳侥缣 float?戏煎 尔鱼棻. sqr缣摹 DWORD ?击 濠翕戏煎 int?戏煎 夥脯 舆韩 强晦 阳侥.
|
|
obj.sq_WriteFloat(lastPower.tofloat());
|
|
obj.sq_WriteDword(maxCount);
|
|
obj.sq_WriteWord(direction);
|
|
obj.sq_WriteDword(targetPos);
|
|
|
|
obj.sq_SendCreatePassiveObjectPacket(24235, 0, 100, 0, 50); // 橡挤掘 当撩, 100,50暧 谢?缣 当撩
|
|
}
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|