ENUM_AMP_SUBSTATE_GRAB <-0 ; // 濩晦 ENUM_AMP_SUBSTATE_PUSH <-1 ; // 尘晦 ENUM_AMP_SUBSTATE_RELEASE <-2; // ?薯 VAR_AMP_IS_GRAB <-0 //濩擎 跪桧 毡朝虽 羹觼 VAR_AMP_HOLD_REALSE <-1 //濩擎剪 ?薯 VAR_AMP_HOLD_REALSE_COMPLETE <-2 //?薯 谏猿 function checkExecutableSkill_PushOut(obj) { if(!obj) return false; local b_useskill = obj.sq_IsUseSkill(SKILL_PUSH_OUT); if(b_useskill) { obj.sq_IntVectClear(); obj.sq_IntVectPush(ENUM_AMP_SUBSTATE_GRAB); // substate撮? obj.sq_AddSetStatePacket(STATE_PUSH_OUT , STATE_PRIORITY_USER, true); return true; } return false; } function checkCommandEnable_PushOut(obj) { if(!obj) return false; local state = obj.sq_GetState(); if(state == STATE_ATTACK) { // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] return obj.sq_IsCommandEnable(SKILL_PUSH_OUT); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_PUSH_OUT); } return true; } function onEndState_PushOut(obj, newState) { if(newState != STATE_PUSH_OUT) { removeAllPushOutAppendage(obj,true); } return 0; } function onProc_PushOut(obj) { if(!obj) return; local var = obj.getVar(); local objectsSize = var.get_obj_vector_size(); for(local i=0;i 0) { local x = sq_GetDistancePos(obj.getXPos(), obj.getDirection(), 86); damager.setCurrentPos(x, obj.getYPos()-1, z); } } else if(obj.isCurrentCutomAniIndex(CUSTOM_ANI_PUSH_OUT)) { local x = 46; if(currentAniIndex == 0) { x = -10; } if(currentAniIndex == 1) { x = -20; } x = sq_GetDistancePos(obj.getXPos(), obj.getDirection(), x); damager.setCurrentPos(x, obj.getYPos()-1, z); } } } } function onSetState_PushOut(obj, state, datas, isResetTimer) { if(!obj) return; local subState = sq_GetVectorData(datas, 0); local var = obj.getVar(); obj.setSkillSubState(subState); if(subState == ENUM_AMP_SUBSTATE_GRAB) { //渗热 蟾晦? var.setBool(VAR_AMP_IS_GRAB,false); var.setBool(VAR_AMP_HOLD_REALSE,false); var.setBool(VAR_AMP_HOLD_REALSE_COMPLETE,false); obj.sq_StopMove(); obj.sq_SetCurrentAnimation(CUSTOM_ANI_PUSH_OUT_GRAB); obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_PUSH_OUT_GRAB); // 钟帼瞪 蝶鉴击 瞳辨?棻. obj.sq_SetApplyConversionSkill(); } else if(subState == ENUM_AMP_SUBSTATE_PUSH) { local group = sq_GetVectorData(datas, 1); local uniqueId = sq_GetVectorData(datas, 2); local damager = sq_GetObject(obj, group, uniqueId); if (damager) { if(CNSquirrelAppendage.sq_IsAppendAppendage(damager,"Character/ATMage/PushOut/ap_PushOut.nut")) { sq_RemoveAppendage(damager,"Character/ATMage/PushOut/ap_PushOut.nut"); } local masterAppendage = CNSquirrelAppendage.sq_AppendAppendage(damager, obj, SKILL_PUSH_OUT, true, "Character/ATMage/PushOut/ap_PushOut.nut", true); if(masterAppendage) { var.push_obj_vector(damager); } } obj.sq_SetCurrentAnimation(CUSTOM_ANI_PUSH_OUT); obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_PUSH_OUT); // 钟帼瞪 蝶鉴击 瞳辨?棻. obj.sq_SetApplyConversionSkill(); local level = sq_GetSkillLevel(obj, SKILL_PUSH_OUT); local pushingAttackPower = obj.sq_GetBonusRateWithPassive(SKILL_PUSH_OUT , STATE_PUSH_OUT, 0, 1.0);// 尘横顶朝 奢问溘 local attackInfo = sq_GetCurrentAttackInfo(obj); local pushingPower = sq_GetLevelData(obj, SKILL_PUSH_OUT, 1, level); // 尘横顶朝 ?. sq_SetCurrentAttacknBackForce(attackInfo,pushingPower); sq_SetCurrentAttackBonusRate(attackInfo,pushingAttackPower); } else if(subState == ENUM_AMP_SUBSTATE_RELEASE) { obj.sq_SetCurrentAnimation(CUSTOM_ANI_PUSH_OUT_ATTACK); } if(subState != ENUM_AMP_SUBSTATE_GRAB) obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0); } function onTimeEvent_PushOut(obj, timeEventIndex, timeEventCount) { return false; } function removeAllPushOutAppendage(obj,isListClear) { if(!obj) return; local var = obj.getVar(); local objectsSize = var.get_obj_vector_size(); for(local i=0;i