|
|
发表于 2025-9-10 15:19:13
|
显示全部楼层
function addSetStatePacket_Gunner(obj, state, datas) {
if (!obj) return -1;
switch (state) {
case STATE_STAND:
switch (obj.getState()) {
case STATE_AT_SOWALKER:
switch (obj.getSkillSubState()) {
case 4:
break;
case 5:
break;
default:
return 1;
}
case 6:
if (isAtSOWalkerOnBody(obj)) {
obj.sq_PlaySound("WALKER_RIDE_JUMP");
sq_CreateDrawOnlyObject(obj, "character/gunner/effect/animation/at_sowalker/atsowalkeralandingbottom_00.ani", ENUM_DRAWLAYER_BOTTOM, true);
sq_CreateDrawOnlyObject(obj, "character/gunner/effect/animation/at_sowalker/atsowalkeralandingeffect_00.ani", ENUM_DRAWLAYER_NORMAL, true);
sq_BinaryStartWrite();
sq_BinaryWriteDword(SKILL_AT_SOWALKER);
sq_BinaryWriteDword(3);
sq_BinaryWriteDword(obj.sq_GetBonusRateWithPassive(SKILL_AT_SOWALKER, STATE_AT_SOWALKER, 2, 1.0)); //攻?力
sq_SendCreatePassiveObjectPacket(obj, PASSIVEOBJ_GUNNER_ASSAULT_ID, 0, 0, 0, 0, obj.getDirection());
}
break;
}
break;
case STATE_JUMP_ATTACK:
if (isAtSOWalkerOnBody(obj)) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(5);
obj.sq_AddSetStatePacket(STATE_AT_SOWALKER, STATE_PRIORITY_USER, true);
return -1;
}
break;
case STATE_ATTACK:
local skillIndex = obj.getCurrentSkillIndex();
if (isAtSOWalkerOnBody(obj)) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(3);
obj.sq_AddSetStatePacket(STATE_AT_SOWALKER, STATE_PRIORITY_USER, true);
return -1;
} else if (sq_GetSkillLevel(obj, SKILL_ALTERATION) > 0 && obj.sq_GetVectorData(datas, 0) == 1 && skillIndex < 0 && obj.getWeaponSubType() == 1) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(0);
obj.sq_AddSetStatePacket(STATE_ASSAULTATTACK, STATE_PRIORITY_USER, true);
}
break;
case STATE_DASH_ATTACK:
if (isAtSOWalkerOnBody(obj)) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(3);
obj.sq_AddSetStatePacket(STATE_AT_SOWALKER, STATE_PRIORITY_USER, true);
return -1;
}
break;
case STATE_CROUCH_ATTACK:
if (isAtSOWalkerOnBody(obj)) {
return -1;
}
break;
}
return 1;
}
下边是调用ai了 大佬 你看看加在哪里
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|