202 lines
5.9 KiB
Plaintext
202 lines
5.9 KiB
Plaintext
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;
|
|
} |