|
实现代码如下:
驳回状态函数:addSetStatePacket_Swordman(obj, state, datas)
判断state是否等于30
如果是,发送到新状态:obj.sq_AddSetStatePacket(196, STATE_PRIORITY_USER, false);
记的这个函数有返回值的,正常设置状态返回1,驳回状态返回-1
注册状态:
IRDSQRCharacter.pushState(ENUM_CHARACTERJOB_SWORDMAN, "character/swordman/upperslash/upperslashex.nut", "swordman_upperslashex", 196, -1);
然后直接写状态就行了,不需要额外其他判断,因为短剑精通已经判断完了,我们直接驳回了短剑精通的上挑二段,跳到了我们新状态里。
function onSetState_swordman_upperslashex(obj, state, datas, isResetTimer) {
if (!obj) return;
obj.sq_StopMove();
obj.sq_SetCurrentAnimation(16);
obj.sq_SetCurrentAttackInfo(19);
obj.sq_SetCurrentAttackBonusRate(obj.sq_GetBonusRateWithPassive(12, 196, 2, 1.0));
obj.sq_AddStateLayerAnimation(1, sq_CreateAnimation("", "character/swordman/effect/animation/shortswordmastery/shortweaponupperslashafter.ani"), 0, 0);
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED, SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
}
function onEndCurrentAni_swordman_upperslashex(obj) {
if (!obj) return;
if (!obj.sq_IsMyControlObject()) return;
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
} |
|