Sqr/character/atmage/fallenblossoms/fallenblossoms.nut

468 lines
13 KiB
Plaintext
Raw Permalink Normal View History

2024-03-18 21:37:40 +08:00
SUB_STATE_FALLENBLOSSOMS_0 <- 0
SUB_STATE_FALLENBLOSSOMS_1 <- 1
SUB_STATE_FALLENBLOSSOMS_2 <- 2
SUB_STATE_FALLENBLOSSOMS_3 <- 3
SUB_STATE_FALLENBLOSSOMS_4 <- 4
//STATE_FALLENBLOSSOMS <- 40 // 奢鳝:钒?翱玺
//SKILL_FALLENBLOSSOMS <- 21 // 奢鳝:钒?翱玺
function checkExecutableSkill_FallenBlossoms(obj)
{
if(!obj) return false;
local b_useskill = obj.sq_IsUseSkill(SKILL_FALLENBLOSSOMS);
if(b_useskill)
{
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_FALLENBLOSSOMS_0); // substate撮?
obj.sq_AddSetStatePacket(STATE_FALLENBLOSSOMS, STATE_PRIORITY_IGNORE_FORCE, true);
return true;
}
return false;
}
function checkCommandEnable_FallenBlossoms(obj)
{
if(!obj) return false;
local state = obj.sq_GetState();
if(state == STATE_ATTACK)
{
// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20]
return obj.sq_IsCommandEnable(SKILL_FALLENBLOSSOMS); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_FALLENBLOSSOMS);
}
return true;
}
function createFallenBlossomsSpear(obj, disX, disY, disZ)
{
local ani = sq_CreateAnimation("","Character/Mage/Effect/Animation/ATFallenBlossoms/02/spear/01_lance_normal.ani");
local pooledObj = sq_CreatePooledObject(ani,true);
local posX = sq_GetDistancePos(obj.getXPos(), obj.getDirection(), disX);
pooledObj.setCurrentPos(posX,obj.getYPos() + disY,obj.getZPos() + disZ);
pooledObj.setCurrentDirection(obj.getDirection());
sq_moveWithParent(obj, pooledObj);
sq_AddObject(obj,pooledObj,2,false);
}
function createFallenBlossomsSpearEnd(obj, disX, disY, disZ)
{
local ani = sq_CreateAnimation("","Character/Mage/Effect/Animation/ATFallenBlossoms/02/spearEnd/01_lance_normal.ani");
local pooledObj = sq_CreatePooledObject(ani,true);
local posX = sq_GetDistancePos(obj.getXPos(), obj.getDirection(), disX);
pooledObj.setCurrentPos(posX,obj.getYPos() + disY,obj.getZPos() + disZ);
pooledObj.setCurrentDirection(obj.getDirection());
sq_moveWithParent(obj, pooledObj);
sq_AddObject(obj,pooledObj,2,false);
}
function createFallenBlossomsSpearExp(obj, disX, disY, disZ)
{
local ani = sq_CreateAnimation("","Character/Mage/Effect/Animation/ATFallenBlossoms/03/04_break_dodge.ani");
local pooledObj = sq_CreatePooledObject(ani,true);
local posX = sq_GetDistancePos(obj.getXPos(), obj.getDirection(), disX);
pooledObj.setCurrentPos(posX,obj.getYPos() + disY,obj.getZPos() + disZ);
pooledObj.setCurrentDirection(obj.getDirection());
sq_moveWithParent(obj, pooledObj);
sq_AddObject(obj,pooledObj,2,false);
}
function onSetState_FallenBlossoms(obj, state, datas, isResetTimer)
{
if(!obj) return;
local substate = obj.sq_GetVectorData(datas, 0);
obj.setSkillSubState(substate);
obj.sq_StopMove();
if(substate == SUB_STATE_FALLENBLOSSOMS_0) {
obj.sq_SetCurrentAnimation(CUSTOM_ANI_FALLENBLOSSOMS1);
obj.sq_PlaySound("MW_ICESPEAR");
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED,
SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_1)
{
obj.sq_SetCurrentAnimation(CUSTOM_ANI_FALLENBLOSSOMS2);
obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_FALLENBLOSSOMS);
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED,
SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
local sq_var = obj.getVar();
sq_var.clear_timer_vector();
sq_var.push_timer_vector();
local t = sq_var.get_timer_vector(0);
t.setParameter(60, -1);
t.resetInstant(0);
local particle = sq_var.GetparticleCreaterMap("FallenBlossomsP", "Character/Fighter/Particle/ATThrowWeb.ptl", obj);
obj.getVar().clear_vector();
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
obj.getVar().push_vector(0);
local len = obj.sq_GetIntData(SKILL_FALLENBLOSSOMS, 0); // 瞪霞剪葬
//local len = 250;
local pAttack = sq_GetCurrentAttackInfo(obj);
local attackRate = obj.sq_GetBonusRateWithPassive(SKILL_FALLENBLOSSOMS STATE_FALLENBLOSSOMS, 0, 1.0); //2.奢问溘(%)
sq_SetCurrentAttackBonusRate(pAttack, attackRate);
local posX = obj.getXPos();
//local delay = 480;
local ani = obj.sq_GetCurrentAni();
local delay = 0;
if(ani)
delay = ani.getDelaySum(false);
local skillLevel = sq_GetSkillLevel(obj, SKILL_FALLENBLOSSOMS);
local multiHit = sq_GetLevelData(obj, SKILL_FALLENBLOSSOMS, 1, skillLevel);
print(" multiHit:" + multiHit + " delay:" + delay);
print(delay / multiHit);
obj.sq_timer_.setParameter(delay / multiHit, multiHit - 1);
obj.sq_timer_.resetInstant(0);
obj.getVar("flag").clear_vector();
obj.getVar("flag").push_vector(posX);
obj.getVar("flag").push_vector(len);
obj.getVar("flag").push_vector(delay);
obj.getVar("flag").push_vector(0);
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_2) {
createFallenBlossomsSpearExp(obj, 0, 3, 70);
obj.sq_SetCurrentAnimation(CUSTOM_ANI_FALLENBLOSSOMS3);
obj.sq_SetStaticSpeedInfo(SPEED_TYPE_ATTACK_SPEED, SPEED_TYPE_ATTACK_SPEED,
SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0);
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_3) {
// SUB_STATE_FALLENBLOSSOMS_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_4) {
// SUB_STATE_FALLENBLOSSOMS_4 怃粽蝶才桧? 蒙机
}
}
function prepareDraw_FallenBlossoms(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
}
function onProc_FallenBlossoms(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
local pAni = obj.sq_GetCurrentAni();
local frmIndex = obj.sq_GetCurrentFrameIndex(pAni);
local currentT = sq_GetCurrentTime(pAni);
local posX = obj.getXPos();
local posY = obj.getYPos();
local posZ = obj.getZPos();
if(substate == SUB_STATE_FALLENBLOSSOMS_0) {
// SUB_STATE_FALLENBLOSSOMS_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_1) {
if(frmIndex >= 0)
{
if(!obj.getVar().get_vector(0))
{
createFallenBlossomsSpear(obj, 0, 1, 69);
obj.getVar().set_vector(0, 1);
}
}
if(frmIndex >= 1)
{
if(!obj.getVar().get_vector(1))
{
createFallenBlossomsSpear(obj, -12, -1, 85);
obj.getVar().set_vector(1, 1);
}
}
if(frmIndex >= 2)
{
if(!obj.getVar().get_vector(2))
{
createFallenBlossomsSpear(obj, -21, 2, 45);
obj.getVar().set_vector(2, 1);
}
}
if(frmIndex >= 4)
{
if(!obj.getVar().get_vector(3))
{
createFallenBlossomsSpearEnd(obj, 0, 3, 70);
obj.getVar().set_vector(3, 1);
}
}
//////
// 遗霜歜
local sq_var = obj.getVar("flag");
//obj.getVar("flag").clear_vector();
//obj.getVar("flag").push_vector(posX);
//obj.getVar("flag").push_vector(len);
//obj.getVar("flag").push_vector(delay);
local delayT = sq_var.get_vector(2); // 漱搅樯策蝶 2 识 桧翕卫除
local len = sq_var.get_vector(1);
local v = sq_GetAccel(0, len, currentT, delayT, true);
print(" delayT:" + delayT + " current:" + currentT);
local srcX = sq_var.get_vector(0); // 漱搅 樯策蝶 1
local dstX = sq_GetDistancePos(srcX, obj.getDirection(), v);
if(obj.isMovablePos(dstX, posY) && !sq_var.get_vector(3))
{ // 桧翕?楚斜谛 桧翕陛栋虽羲桧 赅舒 陛栋?捡 桧翕
sq_setCurrentAxisPos(obj, 0, dstX);
}
else
{ // 桧翕? 热 桡朝 虽羲击 虏陬棻..
sq_var.set_vector(3,1); // 桧翕 ?楚斜 樯策蝶 3 桧翕? 热 桡朝 虽羲击 虏陬击 阳 斜牖除 涡桧鼻 桧翕跤?棻..
local offset = dstX - posX;
if(offset != 0) {
if(offset < 0)
offset = -offset;
local totalLen = sq_var.get_vector(1);
sq_var.set_vector(1, totalLen - offset);
}
}
if (obj.sq_timer_.isOnEvent(currentT) == true)
obj.resetHitObjectList();
//////
// 试虽 ??赝 当撩
local t = obj.getVar().get_timer_vector(0);
if(t.isOnEvent(currentT) == true)
{
local particleCreater = sq_var.GetparticleCreaterMap("FallenBlossomsP", "Character/Fighter/Particle/ATThrowWeb.ptl", obj);
particleCreater.Restart(0);
local dstX = sq_GetDistancePos(posX, obj.getDirection(), -20);
particleCreater.SetPos(dstX, posY + 1, posZ + 5);
sq_AddParticleObject(obj, particleCreater);
}
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_2) {
// SUB_STATE_FALLENBLOSSOMS_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_3) {
// SUB_STATE_FALLENBLOSSOMS_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_4) {
// SUB_STATE_FALLENBLOSSOMS_4 怃粽蝶才桧? 蒙机
}
}
function onProcCon_FallenBlossoms(obj)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FALLENBLOSSOMS_0) {
// SUB_STATE_FALLENBLOSSOMS_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_1) {
// SUB_STATE_FALLENBLOSSOMS_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_2) {
// SUB_STATE_FALLENBLOSSOMS_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_3) {
// SUB_STATE_FALLENBLOSSOMS_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_4) {
// SUB_STATE_FALLENBLOSSOMS_4 怃粽蝶才桧? 蒙机
}
}
function onEndCurrentAni_FallenBlossoms(obj)
{
if(!obj) return;
if(!obj.isMyControlObject())
return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FALLENBLOSSOMS_0) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_FALLENBLOSSOMS_1); // substate撮?
obj.sq_AddSetStatePacket(STATE_FALLENBLOSSOMS, STATE_PRIORITY_IGNORE_FORCE, true);
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_1) {
obj.sq_IntVectClear();
obj.sq_IntVectPush(SUB_STATE_FALLENBLOSSOMS_2); // substate撮?
obj.sq_AddSetStatePacket(STATE_FALLENBLOSSOMS, STATE_PRIORITY_IGNORE_FORCE, true);
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_2) {
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_3) {
// SUB_STATE_FALLENBLOSSOMS_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_4) {
// SUB_STATE_FALLENBLOSSOMS_4 怃粽蝶才桧? 蒙机
}
}
function onKeyFrameFlag_FallenBlossoms(obj, flagIndex)
{
if(!obj) return false;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FALLENBLOSSOMS_0) {
// SUB_STATE_FALLENBLOSSOMS_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_1) {
// SUB_STATE_FALLENBLOSSOMS_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_2) {
// SUB_STATE_FALLENBLOSSOMS_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_3) {
// SUB_STATE_FALLENBLOSSOMS_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_4) {
// SUB_STATE_FALLENBLOSSOMS_4 怃粽蝶才桧? 蒙机
}
return false;
}
function onEndState_FallenBlossoms(obj, new_state)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FALLENBLOSSOMS_0) {
// SUB_STATE_FALLENBLOSSOMS_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_1) {
// SUB_STATE_FALLENBLOSSOMS_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_2) {
// SUB_STATE_FALLENBLOSSOMS_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_3) {
// SUB_STATE_FALLENBLOSSOMS_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_4) {
// SUB_STATE_FALLENBLOSSOMS_4 怃粽蝶才桧? 蒙机
}
}
function onAfterSetState_FallenBlossoms(obj, state, datas, isResetTimer)
{
if(!obj) return;
local substate = obj.getSkillSubState();
if(substate == SUB_STATE_FALLENBLOSSOMS_0) {
// SUB_STATE_FALLENBLOSSOMS_0 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_1) {
// SUB_STATE_FALLENBLOSSOMS_1 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_2) {
// SUB_STATE_FALLENBLOSSOMS_2 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_3) {
// SUB_STATE_FALLENBLOSSOMS_3 怃粽蝶才桧? 蒙机
}
else if(substate == SUB_STATE_FALLENBLOSSOMS_4) {
// SUB_STATE_FALLENBLOSSOMS_4 怃粽蝶才桧? 蒙机
}
}