POI_MAX_KEYFRAME_INDEX <-8; function checkExecutableSkill_PieceOfIce(obj) { if (!obj) return false; local useSkill = obj.sq_IsUseSkill(SKILL_PIECE_OF_ICE); if (useSkill) { //obj.sq_IntVectClear(); //obj.sq_IntVectPush(SUB_STATE_ICEROAD_0); // substate撮? obj.sq_AddSetStatePacket(STATE_PIECE_OF_ICE, STATE_PRIORITY_IGNORE_FORCE, false); return true; } return false; } function checkCommandEnable_PieceOfIce(obj) { if(!obj) return false; local state = obj.sq_GetState(); if(state == STATE_ATTACK) { // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] return obj.sq_IsCommandEnable(SKILL_PIECE_OF_ICE); } return true; } function onSetState_PieceOfIce(obj, state, datas, isResetTimer) { if(!obj) return; obj.sq_StopMove(); obj.sq_SetCurrentAnimation(CUSTOM_ANI_PIECE_OF_ICE); obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0); } function onProc_PieceOfIce(obj) { if(!obj) return; local substate = obj.getSkillSubState(); } function onEndCurrentAni_PieceOfIce(obj) { if(!obj) return; local substate = obj.getSkillSubState(); obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false); } function onKeyFrameFlag_PieceOfIce(obj, flagIndex) { if(!obj) return false; local substate = obj.getSkillSubState(); local level = sq_GetSkillLevel(obj, SKILL_PIECE_OF_ICE); if(flagIndex == 1) { if(obj.isMyControlObject()) { obj.sq_StartWrite(); obj.sq_WriteBool(false); local x = sq_GetIntData(obj, SKILL_PIECE_OF_ICE, 0); local z = sq_GetIntData(obj, SKILL_PIECE_OF_ICE, 1); obj.sq_SendCreatePassiveObjectPacket(24224, 0, x, 0, z); } } else if(flagIndex >= 2 ) { local iceCoreObj = obj.getMyPassiveObject(24224,0); if(iceCoreObj) { if(iceCoreObj.isMyControlObject()) { iceCoreObj.sendStatePacket(PIECE_OF_ICE_CORE_STATE_DAMAGE, flagIndex); } local randMin = sq_GetIntData(obj, SKILL_PIECE_OF_ICE, 2); local randMax = sq_GetIntData(obj, SKILL_PIECE_OF_ICE, 3); local randNum = sq_getRandom(randMin, randMax); for(local i=0;i 360) hAngleRange = 360; local horizonAngle = sq_getRandom(0,hAngleRange) -(hAngleRange/2); local verticalAngle = sq_getRandom(0,vAngleRange); // ?溯歜桧 虽陈热烟 当撩 谢?陛 薄薄 寰戏煎 菟横陛啪莠 local startPosY = (40 * (8-flagIndex)/POI_MAX_KEYFRAME_INDEX) * (vAngleRange == 0 ? 1 : horizonAngle/(hAngleRange/2)); local lifeTime = sq_GetIntData(obj, SKILL_PIECE_OF_ICE, 4); local iceParticle = sq_CreateDrawOnlyObject(iceCoreObj, "PassiveObject/Character/Mage/Animation/ATPieceOfIce/08_ice_shard1_dodge.ani",ENUM_DRAWLAYER_NORMAL,true); sq_SetCustomRotate(iceParticle,sq_ToRadian(-horizonAngle.tofloat())); obj.sq_StartWrite(); obj.sq_WriteWord(sq_getRandom(0,5)); obj.sq_WriteFloat(horizonAngle.tofloat()); // 热? 彰嫔 obj.sq_WriteFloat(verticalAngle.tofloat()); // 热霜 彰嫔 obj.sq_WriteWord(lifeTime); obj.sq_SendCreatePassiveObjectPacket(24223, 0, 60, startPosY, 75); } } } } return true; } function onDamage_PieceOfIce(obj, attacker, boundingBox) { if(!obj) return; local iceCoreObj = obj.getMyPassiveObject(24224,0); if(iceCoreObj) iceCoreObj.sendStateOnlyPacket(PIECE_OF_ICE_CORE_STATE_END); }