Sqr/character/priest/dashattack.nut

194 lines
5.2 KiB
Plaintext
Raw Permalink 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.

// state蒂 撮??坚 籀挤戏煎 菟横螃啪 腌栖棻. 陕谦 葬模蝶蒂 撮??栖棻.
function onSetState_DashAttack(obj, state, datas, isResetTimer)
{
if(!obj) return;
if(isAvengerAwakenning(obj) == false) {
return;
}
obj.sq_stopMove();
local posX = obj.getXPos();
local posY = obj.getYPos();
local posZ = obj.getZPos();
local v = 450;
local dstX = sq_GetDistancePos(posX, obj.getDirection(), v);
obj.getVar().clear_vector();
obj.getVar().push_vector(posX); // 卫蒙薄 0
obj.getVar().push_vector(dstX); // 紫杂薄 1
obj.getVar().push_vector(posX); // 渠莲部薄 2
obj.getVar().push_vector(0); // 渠莲桧翕 ?楚斜 3 - 桧翕碳陛虽羲击 虏陬击 阳 涡桧鼻 桧翕击 跤?紫烟 ?晦 嫔?殓栖棻..
obj.sq_setShake(obj, 1, 1600);
local sq_var = obj.getVar();
local particle = sq_var.GetparticleCreaterMap("FastMove", "Character/Priest/Effect/Particle/Fastmove.ptl", obj);
// 试虽??赝 颤桧该 撮?
sq_var.clear_timer_vector();
sq_var.push_timer_vector(); // 0廓樯策蝶 试虽??赝 颤桧该
sq_var.push_timer_vector(); // 1廓樯策蝶 棻钦?? 颤桧该
local t = sq_var.get_timer_vector(0);
t.setParameter(60, -1);
t.resetInstant(0);
//棻钦?? 热姜
local dashFrm = 13;
local pAni = obj.sq_getCurrentAni();
local dashT = pAni.getDelaySum(0, dashFrm); //
local hitCnt = obj.sq_getIntData(SKILL_AVENGER_AWAKENING, 2); // 渠卫奢问 棻钦?? 譆渠 ?热
local term = 1;
if(hitCnt > 0) {
term = dashT / hitCnt;
}
local multiT = sq_var.get_timer_vector(1);
multiT.setParameter(term, hitCnt);
multiT.resetInstant(0);
//
}
// prepareDraw ?热 殓栖棻..
function prepareDraw_DashAttack(obj)
{
if(!obj) return;
}
// loop 睡碟殓栖棻 ismycontrol煎 马谆虽 强擎 翱念胀 赅苌 object菟桧 桧够击 剪纂啪腌栖棻.
function onProc_DashAttack(obj)
{
if(!obj) return;
if(isAvengerAwakenning(obj) == false) {
return;
}
local substate = obj.getSkillSubState();
local posX = obj.getXPos();
local posY = obj.getYPos();
local posZ = obj.getZPos();
local pAni = obj.sq_getCurrentAni();
local frmIndex = obj.sq_ani_GetCurrentFrameIndex(pAni);
local currentT = sq_GetCurrentTime(pAni);
local dashFrm = 13;
local dashT = pAni.getDelaySum(0, dashFrm); //
if(frmIndex <= dashFrm) {
local srcX = obj.getVar().get_vector(0); // 卫蒙薄
local dstX = obj.getVar().get_vector(1); // 紫杂薄
//local currentX = sq_GetUniformVelocity(srcX, dstX, currentT, dashT);
local currentX = sq_GetAccel(srcX, dstX, currentT, dashT, true);
if(obj.isMovablePos(currentX, posY) && !obj.getVar().get_vector(3)) {
obj.setCurrentPos(currentX, posY, posZ);
}
else {
obj.getVar().set_vector(3, 1); // 渠莲桧翕 ?楚斜 3 - 桧翕碳陛虽羲击 虏陬击 阳 涡桧鼻 桧翕击 跤?紫烟 ?晦 嫔?殓栖棻..
}
obj.getVar().set_vector(2, posX); // 紫杂薄
}
else {
//local delayT = 240;
//local len = 50;
//local srcX = obj.getVar().get_vector(2); // 卫蒙薄
//
////local v = sq_GetAccel(0, len, currentT - dashT, delayT, true);
//local v = sq_GetUniformVelocity(0, len, currentT - dashT, delayT);
//
//local currentX = sq_GetDistancePos(srcX, obj.getDirection(), v);
//
//if(obj.isMovablePos(currentX, posY)) {
//obj.setCurrentPos(currentX, posY, posZ);
//}
}
// 试虽 ??赝 当撩
local sq_var = obj.getVar();
local t = sq_var.get_timer_vector(0);
//print( "t:" + t);
if(t)
{
if(t.isOnEvent(currentT) == true) {
local particleCreater = sq_var.GetparticleCreaterMap("FastMove", "Character/Priest/Effect/Particle/Fastmove.ptl", obj);
particleCreater.Restart(0);
//particleCreater.SetPos(posX, posY, posZ-1);
local dstX = sq_GetDistancePos(posX, obj.getDirection(), -20);
particleCreater.SetPos(dstX, posY, posZ+28);
sq_AddParticleObject(obj, particleCreater);
}
}
else
{
sq_var.push_timer_vector();
sq_var.push_timer_vector();
local ti = sq_var.get_timer_vector(0)
ti.setParameter(60, -1);
ti.resetInstant(0);
}
// 棻钦?? 扑姜
local multiT = sq_var.get_timer_vector(1);
if (multiT.isOnEvent(currentT) == true)
obj.resetHitObjectList();
}
// loop 睡碟殓栖棻 ismycontrol ?蝶?陛 狱樯桧 object陛 桧够击 菟横骨栖棻. setstate 撮?桧釭 ?卫粽螃粽薛? 当撩 , 蛔蛔 籀葬?栖棻.
function onProcCon_DashAttack(obj)
{
if(!obj) return;
if(isAvengerAwakenning(obj) == false) {
return;
}
local pAni = obj.sq_getCurrentAni();
local bEnd = obj.sq_ani_IsEnd(pAni);
local frmIndex = obj.sq_ani_GetCurrentFrameIndex(pAni);
local substate = obj.getSkillSubState();
if(bEnd) {
}
}
function onAfterSetState_DashAttack(obj, state, datas, isResetTimer)
{
if(!obj) return;
if(isAvengerAwakenning(obj) == false) {
return;
}
obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_AW_DASHATTACK);
local power = obj.sq_getBonusRateWithPassive(SKILL_AVENGER_AWAKENING, state, SL_DASH_MAGIC_ATK,1.0);
obj.sq_setCurrentAttackBonusRate(power);
}