HSS_SUB_STATE_READY <- 0 HSS_SUB_STATE_ATTACK_1 <- 1 HSS_SUB_STATE_ATTACK_2 <- 2 HSS_SUB_STATE_ATTACK_3 <- 3 HSS_SUB_STATE_ATTACK_4 <- 4 HSS_SUB_STATE_LAST <- 5 // 蝶鉴 撮睡嫦翕 亵勒击 虏菟横舆朝 ?热殓栖棻.. 嫦翕 亵勒 state朝 桧嘐 模蝶缣怃 掘?肾横 毡蝗栖棻. 桧够缣怃 useskill娄 setstate蒂 虽姜?舆贼 腌栖棻. function checkExecutableSkill_HighSpeedSlash(obj) { if(!obj) return false; local b_useskill = obj.sq_IsUseSkill(SKILL_HIGH_SPEED_SLASH); if(b_useskill) { obj.sq_IntVectClear(); obj.sq_IntVectPush(HSS_SUB_STATE_READY); // substate撮? obj.sq_addSetStatePacket(STATE_HIGH_SPEED_SPLASH, STATE_PRIORITY_IGNORE_FORCE, true); return true; } return false; } // 蝶鉴嬴桧夔 ?撩? 亵勒击 评虽朝 ?热殓栖棻. true蒂 葬欐?贼 蝶鉴 嬴桧夔桧 ?撩?陛 腌栖棻. (嫦翕亵勒 state朝 模蝶缣怃 籀葬腌栖棻.) function checkCommandEnable_HighSpeedSlash(obj) { if(!obj) return false; local state = obj.sq_GetSTATE(); if(state == STATE_ATTACK) { return obj.sq_IsCommandEnable(SKILL_HIGH_SPEED_SLASH); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_HIGH_SPEED_SLASH); } return true; } //------------------------------------------------------------------------------ function onProc_HighSpeedSlash(obj) { if(!obj) return; if(obj.isMyControlObject()) { obj.setSkillCommandEnable(SKILL_HIGH_SPEED_SLASH,true); local subState = obj.getSkillSubState(); if(subState >= HSS_SUB_STATE_ATTACK_1 && subState <= HSS_SUB_STATE_ATTACK_4) { local b_useskill = obj.sq_IsEnterSkill(SKILL_HIGH_SPEED_SLASH); if(b_useskill != -1) { local sq_var = obj.getVar(); sq_var.setBool(2,true); } } } } function onEndState_HighSpeedSlash(obj, newState) { if(!obj) return; if(newState != STATE_HIGH_SPEED_SPLASH) { obj.setCarryWeapon(true); } } function sendSubState_HighSpeedSlash(obj, subState) { if(!obj) return; if(obj.sq_isMyControlObject()) { obj.sq_IntVectClear(); obj.sq_IntVectPush(subState); // substate撮? obj.sq_addSetStatePacket(STATE_HIGH_SPEED_SPLASH, STATE_PRIORITY_USER, true); } } // state蒂 撮??坚 籀挤戏煎 菟横螃啪 腌栖棻. 陕谦 葬模蝶蒂 撮??栖棻. function onSetState_HighSpeedSlash(obj, state, datas, isResetTimer) { local sq_var = obj.getVar(); local subState = obj.sq_getVectorData(datas, 0); obj.setSkillSubState(subState); //奢鳝 瞳辨 obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_HIGH_SPEED_SLASH); if(subState == HSS_SUB_STATE_READY) { sq_var.setInt(0,0); // ?营暧 棻钦 ?? ?热 蟾晦? sq_var.setFloat(1,100.0); // 楼紫 隶陛徽 蟾晦? sq_var.setBool(2,false); // 郦殓溘 蟾晦? obj.sq_stopMove(); obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_READY); obj.sq_PlaySound("PR_FASTCUT_READY"); } else if(subState == HSS_SUB_STATE_ATTACK_1) { if(obj.isCarryWeapon()) obj.setCarryWeapon(false); obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_ATTACK_1); obj.sq_PlaySound("FASTCUT_SWISH"); } else if(subState == HSS_SUB_STATE_ATTACK_2) { obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_ATTACK_2); obj.sq_PlaySound("FASTCUT_SWISH"); } else if(subState == HSS_SUB_STATE_ATTACK_3) { obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_ATTACK_3); obj.sq_PlaySound("FASTCUT_SWISH"); } else if(subState == HSS_SUB_STATE_ATTACK_4) { obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_ATTACK_4); obj.sq_PlaySound("FASTCUT_SWISH"); } else if(subState == HSS_SUB_STATE_LAST) { obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_LAST); obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_HIGH_SPEED_SLASH_LAST); obj.sq_PlaySound("FASTCUT_WHOOSH"); obj.sq_PlaySound("PR_FASTCUT"); } if(subState >= HSS_SUB_STATE_ATTACK_1 && subState <= HSS_SUB_STATE_ATTACK_4) { local isKeyInput = sq_var.getBool(2); if(isKeyInput) { //郦殓溘桧 毡历棻. local speedUpRate = sq_var.getFloat(1); // 楼紫 隶陛徽 //楼紫 隶陛. local intDataSpeedUpRate = obj.sq_getIntData(0); local maxSpeedUpRate = obj.sq_getIntData(1); maxSpeedUpRate = maxSpeedUpRate.tofloat(); intDataSpeedUpRate = (intDataSpeedUpRate.tofloat() + 100.0) / 100; speedUpRate = speedUpRate * intDataSpeedUpRate.tofloat(); if(speedUpRate > maxSpeedUpRate) speedUpRate = maxSpeedUpRate; sq_var.setBool(2,false); sq_var.setFloat(1,speedUpRate); //?营 楼紫 侦褐 if(speedUpRate > 0) { local ani = obj.sq_getCurrentAni(); ani.setSpeedRate(speedUpRate); //print("subState" + subState + "speedUpRate : "+speedUpRate); } } //print("DelaySum : " + obj.sq_getDelaySum()); } obj.sq_setAttackPowerWithPassive(SKILL_HIGH_SPEED_SLASH, state, -1,1,1.0); } function onEndCurrentAni_HighSpeedSlash(obj) { local sq_var = obj.getVar(); local subStateIndex = obj.getSkillSubState(); local currentHitCount = sq_var.getInt(0); local maxHitCount = obj.sq_getLevelData(0); if(subStateIndex < HSS_SUB_STATE_LAST && currentHitCount >= maxHitCount){ sendSubState_HighSpeedSlash(obj,HSS_SUB_STATE_LAST); return; } sq_var.setInt(0,currentHitCount+1); //棻钦?? ?热 侦褐 if(subStateIndex == HSS_SUB_STATE_READY) sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_1); else if(subStateIndex == HSS_SUB_STATE_ATTACK_1) sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_2); else if(subStateIndex == HSS_SUB_STATE_ATTACK_2) sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_3); else if(subStateIndex == HSS_SUB_STATE_ATTACK_3) sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_4); else if(subStateIndex == HSS_SUB_STATE_ATTACK_4) sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_1); else if(subStateIndex == HSS_SUB_STATE_LAST){ obj.sq_addSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false); } } function onKeyFrameFlag_HighSpeedSlash(obj,flagIndex) { //if(flagIndex == 1) return true; }