function checkExecutableSkill_WaterCannon(obj) { if (!obj) return false; local isUseSkill = obj.sq_IsUseSkill(SKILL_WATER_CANNON); if (isUseSkill) { } if (isUseSkill) { obj.sq_AddSetStatePacket(STATE_WATER_CANNON, STATE_PRIORITY_IGNORE_FORCE, false); return true; } return false; } function checkCommandEnable_WaterCannon(obj) { if(!obj) return false; local state = obj.sq_GetState(); if(state == STATE_ATTACK) { // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] return obj.sq_IsCommandEnable(SKILL_WATER_CANNON); } return true; } function onChangeSkillEffect_WaterCannon(obj, skillIndex, reciveData) { if(!obj) return; } function onSetState_WaterCannon(obj, state, datas, isResetTimer) { if (!obj) return; obj.sq_StopMove(); obj.sq_SetCurrentAnimation(CUSTOM_ANI_WATER_CANNON); //obj.sq_SetStaticSpeedInfo(SPEED_TYPE_CAST_SPEED, SPEED_TYPE_CAST_SPEED, // SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0); obj.sq_PlaySound("MW_WCANNON_READY"); addElementalChain_ATMage(obj, ENUM_ELEMENT_WATER); } function prepareDraw_WaterCannon(obj) { } function onProc_WaterCannon(obj) { if (!obj) return; } function onProcCon_WaterCannon(obj) { } function onEndCurrentAni_WaterCannon(obj) { if (!obj) return; if (!obj.isMyControlObject()) return; obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false); } function onKeyFrameFlag_WaterCannon(obj, flagIndex) { if (!obj) return false; if (!obj.sq_IsMyControlObject()) return false; // 僭渠? ?卫粽 螃粽薛? 当撩 local skill = sq_GetSkill(obj, SKILL_WATER_CANNON); // 蝶鉴 local skillLevel = sq_GetSkillLevel(obj, SKILL_WATER_CANNON); // 蝶鉴溯涟 local attackBonusRate = obj.sq_GetBonusRateWithPassive(SKILL_WATER_CANNON, STATE_WATER_CANNON, 0, 1.0); // 奢问溘(%) local sizeRate = sq_GetLevelData(obj, SKILL_WATER_CANNON, 1, skillLevel); // 僭渠?暧 觼晦 local xVelocityWaterCannon = sq_GetIntData(obj, SKILL_WATER_CANNON, 0); // 僭渠?暧 楼紫 local distance = sq_GetIntData(obj, SKILL_WATER_CANNON, 1); // 僭渠?暧 釭陛朝 剪葬 obj.sq_StartWrite(); obj.sq_WriteDword(attackBonusRate); obj.sq_WriteWord(sizeRate); obj.sq_WriteWord(xVelocityWaterCannon); obj.sq_WriteWord(distance); obj.sq_SendCreatePassiveObjectPacket(24217, 0, 68, 1, 70); local xVelocity = sq_GetIntData(obj, SKILL_WATER_CANNON, 2); local xAccel = sq_GetIntData(obj, SKILL_WATER_CANNON, 3); // 寞?郦蒂 奁渠煎 ?坚 毡朝虽 羹觼 local direction = obj.sq_GetInputDirection(0); if (obj.getDirection() == sq_GetOppositeDirection(direction)) { xVelocity = sq_GetIntData(obj, SKILL_WATER_CANNON, 4); xAccel = sq_GetIntData(obj, SKILL_WATER_CANNON, 5); } // 庵煎 尘溥釭朝 ?娄蒂 嫔? obj.sq_SetStaticMoveInfo(0, xVelocity, xVelocity, false, xAccel, true); obj.sq_SetStaticMoveInfo(1, 0, 0, false); obj.sq_SetMoveDirection(obj.getDirection(), ENUM_DIRECTION_NEUTRAL); return true; }