Sqr/character/atmage/fallenblossoms/fallenblossoms.nut

468 lines
13 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 怃粽蝶才桧? 蒙机
}
}