ENUM_ICE_CRASH_SUBSTATE_START <-0 ; //嫦翕 ENUM_ICE_CRASH_SUBSTATE_LOOP <-1 ; //?瞪 ENUM_ICE_CRASH_SUBSTATE_LOOP_ATTACKING <-2 ; //?瞪?贼怃 奢问酝 ENUM_ICE_CRASH_SUBSTATE_END <-3 ; //虞颤 ENUM_ICE_CRASH_TIMER_SPIN <- 0; ENUM_ICE_CRASH_MULTI_HIT <- 1; VAR_ICE_CRASH <-0 function checkExecutableSkill_IceCrash(obj) { if(!obj) return false; local b_useskill = obj.sq_IsUseSkill(SKILL_ICE_CRASH); if(b_useskill) { obj.sq_IntVectClear(); obj.sq_IntVectPush(ENUM_ICE_CRASH_SUBSTATE_START); // substate撮? obj.sq_AddSetStatePacket(STATE_ICE_CRASH , STATE_PRIORITY_USER, true); return true; } return false; } function checkCommandEnable_IceCrash(obj) { if(!obj) return false; local state = obj.sq_GetState(); if(state == STATE_ATTACK) { // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] return obj.sq_IsCommandEnable(SKILL_ICE_CRASH); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_ICE_CRASH); } return true; } function onEndState_IceCrash(obj, newState) { if(!obj) return; if(newState != STATE_ICE_CRASH) { removeAllIceCrashAppendage(obj); sq_RemoveParticle("Character/Mage/Particle/IceCrashIceDust.ptl",obj); } } function onSetState_IceCrash(obj, state, datas, isResetTimer) { if(!obj) return; local level = sq_GetSkillLevel(obj, SKILL_ICE_CRASH); local spinDistance = sq_GetIntData(obj, SKILL_ICE_CRASH, 0, level); // ?瞪?貊 陈嬴陛朝 剪葬 local spinSpeed = sq_GetIntData(obj, SKILL_ICE_CRASH, 1, level); // ?瞪?貊 陈嬴陛朝 卫除 local spinTime = (spinDistance.tofloat()/spinSpeed.tofloat()) * 1000.0; local multiHitGap = sq_GetLevelData(obj, SKILL_ICE_CRASH, 0, level); local subState = sq_GetVectorData(datas, 0); obj.setSkillSubState(subState); if(subState == ENUM_ICE_CRASH_SUBSTATE_START) { local attackPower = obj.sq_GetBonusRateWithPassive(SKILL_ICE_CRASH , STATE_ICE_CRASH, 1, 1.0); local var = obj.getVar(); var.setBool(VAR_ICE_CRASH,true); obj.sq_StopMove(); obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICE_CRASH_START); obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_ICE_CRASH); local currentAttackInfo = sq_GetCurrentAttackInfo(obj); sq_SetCurrentAttackBonusRate(currentAttackInfo, attackPower); sq_SetCurrentAttackeHitStunTime(currentAttackInfo, 0); obj.sq_PlaySound("MW_ICECRASH"); } else if(subState == ENUM_ICE_CRASH_SUBSTATE_LOOP) { obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICE_CRASH_LOOP); obj.setTimeEvent(ENUM_ICE_CRASH_TIMER_SPIN,spinTime.tointeger(),1,false); obj.setTimeEvent(ENUM_ICE_CRASH_MULTI_HIT,multiHitGap,9999,false); } else if(subState == ENUM_ICE_CRASH_SUBSTATE_LOOP_ATTACKING) { //颤桧该陛 嬴霜 寰给嬴 陛坚 毡击阳 : ENUM_ICE_CRASH_SUBSTATE_LOOP蒂 剪纂虽 强击阳 if(!obj.isExistTimeEvent(ENUM_ICE_CRASH_TIMER_SPIN)) { obj.setTimeEvent(ENUM_ICE_CRASH_TIMER_SPIN,spinTime.tointeger(),1,false); obj.setTimeEvent(ENUM_ICE_CRASH_MULTI_HIT,multiHitGap,9999,false); } obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICE_CRASH_LOOP_ATTACK); } else if(subState == ENUM_ICE_CRASH_SUBSTATE_END) { obj.sq_StopMove(); obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICE_CRASH_END); obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_ICE_CRASH_LAST); sq_RemoveParticle("Character/Mage/Particle/IceCrashIceDust.ptl",obj); local attackPower = obj.sq_GetBonusRateWithPassive(SKILL_ICE_CRASH , STATE_ICE_CRASH, 2, 1.0); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), attackPower); sq_SetMyShake(obj,2,120); } } function onTimeEvent_IceCrash(obj, timeEventIndex, timeEventCount) { if(!obj) return false; if(!obj.isMyControlObject()) return false; if(timeEventIndex == ENUM_ICE_CRASH_TIMER_SPIN) { obj.sq_IntVectClear(); obj.sq_IntVectPush(ENUM_ICE_CRASH_SUBSTATE_END); // substate撮? obj.sq_AddSetStatePacket(STATE_ICE_CRASH , STATE_PRIORITY_USER, true); return true; // true贼 属寥 酝钦 } else if( timeEventIndex == ENUM_ICE_CRASH_MULTI_HIT ) { if(obj.getSkillSubState() == ENUM_ICE_CRASH_SUBSTATE_END) return true; // true贼 属寥 酝钦 // 葬蝶?鼻暧 赅苌 螃粽薛? ?才 棻钦?? 尔卤 local sq_var = obj.getVar(); local i=0; local objectsSize = sq_var.get_obj_vector_size(); obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_ICE_CRASH); local attackPower = obj.sq_GetBonusRateWithPassive(SKILL_ICE_CRASH , STATE_ICE_CRASH, 1, 1.0); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), attackPower); for(;i 0) { obj.sq_IntVectClear(); obj.sq_IntVectPush(ENUM_ICE_CRASH_SUBSTATE_LOOP_ATTACKING); // substate撮? obj.sq_AddSetStatePacket(STATE_ICE_CRASH , STATE_PRIORITY_USER, true); } } function onKeyFrameFlag_IceCrash(obj, flagIndex) { if(!obj) return true; if(flagIndex == 1) { obj.sq_SetStaticMoveInfo(0, 200, 100, false); obj.sq_SetMoveDirection(obj.getDirection(), ENUM_DIRECTION_NEUTRAL); } else if(flagIndex == 2) { local level = sq_GetSkillLevel(obj, SKILL_ICE_CRASH); local speed = sq_GetIntData(obj, SKILL_ICE_CRASH, 1, level); obj.sq_SetStaticMoveInfo(0, speed, speed, false); obj.sq_SetMoveDirection(obj.getDirection(), ENUM_DIRECTION_NEUTRAL); sq_CreateParticle("Character/Mage/Particle/IceCrashIceDust.ptl",obj,0,0,50,true,100,500,100); } else if(flagIndex == 3) { removeAllIceCrashAppendage(obj); } return true; }