591 lines
19 KiB
Plaintext
591 lines
19 KiB
Plaintext
|
||
// sub state
|
||
S_FASTMOVE_PLAY <- 0
|
||
S_FASTMOVE_LOOP <- 1
|
||
S_FASTMOVE_PRO <- 2
|
||
S_FASTMOVE_END <- 3
|
||
|
||
// 蝶鹧? 等桧颤 樯策蝶
|
||
FM_SI_C_TIME <- 0 // ?瞪 ? 体陈桧 谏瞪 当撩肾朝 卫除
|
||
FM_SI_MULTI_HIT_COUNT <- 1 // 棻钦?? 除问
|
||
FM_SI_MOVE_VEL <- 2 // 体陈 桧翕楼紫
|
||
FM_SI_Y_AXIS_MOVESPEED <- 3 // 体陈 鼻? 桧翕楼紫
|
||
|
||
// 溯涟樯? 樯策蝶
|
||
FM_LI_HIT_RATE <- 0 // 体陈 ?? 等嘐虽(%)
|
||
FM_LI_MOVE_LEN <- 1 // 桧翕剪葬 (px)
|
||
|
||
VECTOR_I_SRC_X <- 0 // 卫蒙虽薄击 荡潍? 漱搅 樯策蝶
|
||
|
||
|
||
|
||
// 蝶鉴 撮睡嫦翕 亵勒击 虏菟横舆朝 ?热殓栖棻.. 嫦翕 亵勒 state朝 桧嘐 模蝶缣怃 掘?肾横 毡蝗栖棻. 桧够缣怃 useskill娄 setstate蒂 虽姜?舆贼 腌栖棻.
|
||
function checkExecutableSkill_Fastmove(obj)
|
||
{
|
||
if(!obj) return false;
|
||
local b_useskill = obj.sq_IsUseSkill(SKILL_FASTMOVE);
|
||
if(b_useskill) {
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(S_FASTMOVE_PLAY); // substate撮?
|
||
obj.sq_addSetStatePacket(STATE_FASTMOVE, STATE_PRIORITY_IGNORE_FORCE, true);
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
// 蝶鉴嬴桧夔 ?撩? 亵勒击 评虽朝 ?热殓栖棻. true蒂 葬欐?贼 蝶鉴 嬴桧夔桧 ?撩?陛 腌栖棻. (嫦翕亵勒 state朝 模蝶缣怃 籀葬腌栖棻.)
|
||
function checkCommandEnable_Fastmove(obj)
|
||
{
|
||
if(!obj) return false;
|
||
|
||
local state = obj.sq_GetSTATE();
|
||
|
||
if(state == STATE_ATTACK) {
|
||
return obj.sq_IsCommandEnable(SKILL_FASTMOVE); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_FASTMOVE);
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
// state蒂 撮??坚 籀挤戏煎 菟横螃啪 腌栖棻. 陕谦 葬模蝶蒂 撮??栖棻.
|
||
function onSetState_fastmove(obj, state, datas, isResetTimer)
|
||
{
|
||
if(!obj) return;
|
||
local substate = obj.sq_getVectorData(datas, 0); // 罗廓箪 substate殓栖棻..
|
||
obj.setSkillSubState(substate); //set substate
|
||
|
||
|
||
local sq_var = obj.getVar();
|
||
sq_var.clear_vector();
|
||
sq_var.push_vector(0);
|
||
|
||
// 蝶鹧? 等桧颤 樯策蝶
|
||
//FM_SI_C_TIME <- 0 // ?瞪 ? 体陈桧 谏瞪 当撩肾朝 卫除
|
||
//FM_SI_MULTI_HIT_COUNT <- 1 // 棻钦?? 除问
|
||
|
||
// 溯涟樯? 樯策蝶
|
||
//FM_LI_HIT_RATE <- 0 // 体陈 ?? 等嘐虽(%)
|
||
//FM_LI_MOVE_LEN <- 1 // 桧翕剪葬 (px)
|
||
|
||
|
||
local posX = obj.getXPos();
|
||
local posY = obj.getYPos();
|
||
local posZ = obj.getZPos();
|
||
|
||
local particle = sq_var.GetparticleCreaterMap("FastMove", "Character/Priest/Effect/Particle/Fastmove.ptl", obj);
|
||
|
||
|
||
obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_FASTMOVE);
|
||
|
||
obj.sq_setAttackPowerWithPassive(SKILL_FASTMOVE, state, -1,FM_LI_HIT_RATE,1.0);
|
||
|
||
if(substate == S_FASTMOVE_PLAY) {
|
||
obj.sq_stopMove();
|
||
local time = obj.sq_getIntData(SKILL_FASTMOVE, FM_SI_C_TIME);
|
||
sq_var.push_vector(time);
|
||
sq_var.push_vector(0);
|
||
|
||
obj.sq_setCurrentAnimation(CUSTOM_ANI_FASTMOVE1);
|
||
}
|
||
else if(substate == S_FASTMOVE_LOOP) {
|
||
obj.sq_stopMove();
|
||
//obj.sq_var.push_vector(posZ);
|
||
//local pAni = obj.sq_getCurrentAni();
|
||
|
||
sq_var.push_vector(posZ); // index : 1 // srcZ
|
||
local jumpstate = 0;
|
||
|
||
//print("sq_GetVelocityZ:" + sq_GetVelocity(obj, 2));
|
||
//print("getDownDownFrame:" + obj.getDownDownFrame() + " getDownUpFrame:" + obj.getDownUpFrame() + " getDownBounceUpFrame:" + obj.getDownBounceUpFrame() + " getDownLieFrame:" + obj.getDownLieFrame());
|
||
//print("getJumpUpStartFrame:" + obj.getJumpUpStartFrame() + " getJumpDownStartFrame:" + obj.getJumpDownStartFrame() + " getJumpLandStartFrame:" + obj.getJumpLandStartFrame());
|
||
|
||
|
||
if(posZ > 0) {
|
||
//local frmIndex = obj.getDownUpFrame();
|
||
|
||
if(sq_GetVelocity(obj, 2) < 0) {
|
||
jumpstate = 2; // ?鬼酝
|
||
}
|
||
else {
|
||
jumpstate = 1; // 鼻蝓酝
|
||
}
|
||
}
|
||
sq_var.push_vector(jumpstate); // index : 2 // 薄??楚斜 0 : 裔阶缣 毡历击 阳 1 : 萤塭陞 阳 毡历击阳 2 : 顶溥陛朝 牖除 毡历击 阳
|
||
sq_var.push_vector(0); // index : 3 //
|
||
sq_var.push_vector(0); // index : 4 //
|
||
|
||
obj.sq_setCurrentAnimation(CUSTOM_ANI_FASTMOVE2);
|
||
}
|
||
else if(substate == S_FASTMOVE_PRO) {
|
||
//CUSTOM_ATTACKINFO_FASTMOVE
|
||
local max_break_v = obj.sq_getVectorData(datas, 1); // 舒廓箪 vector高擎 马楼 高
|
||
obj.sq_setCurrentAnimation(CUSTOM_ANI_FASTMOVE3);
|
||
sq_var.push_vector(posX); // 漱搅 樯策蝶 1
|
||
|
||
local pAni = obj.sq_getCurrentAni();
|
||
local initDelay = pAni.GetFrameStartTime(3);
|
||
|
||
//local vel = obj.sq_getIntData(SKILL_FASTMOVE, FM_SI_MOVE_VEL); // 桧翕楼紫
|
||
local vel = obj.sq_getIntData(SKILL_FASTMOVE, FM_SI_MOVE_VEL); // 桧翕楼紫
|
||
local d = obj.sq_getLevelData(SKILL_FASTMOVE, FM_LI_MOVE_LEN, 1);
|
||
|
||
//local moveT = (d * 10) / vel; // 桧翕 识 卫除 掘?晦
|
||
local v_rate;
|
||
if(!(sq_GetCurrentModuleType() == 4) && !(sq_GetCurrentModuleType() == 5)) //?营赅菊桧 pvp赅菊桧釭 fair_pvp赅菊橾 唳办
|
||
{
|
||
v_rate = (vel - max_break_v);
|
||
}
|
||
else
|
||
{
|
||
v_rate = vel;
|
||
}
|
||
|
||
if(v_rate <= 0)
|
||
{
|
||
v_rate = 1;
|
||
}
|
||
local moveT = (d * 800) / (v_rate); // 桧翕 识 卫除 掘?晦
|
||
|
||
sq_var.push_vector(moveT); // 桧翕 识 卫除 漱搅 樯策蝶 2
|
||
sq_var.push_vector(0); // 桧翕 ?楚斜 樯策蝶 3 桧翕? 热 桡朝 虽羲击 虏陬击 阳 斜牖除 涡桧鼻 桧翕跤?棻..
|
||
sq_var.push_vector(posY); // 樯策蝶4 夥煎 瞪 posY谢?蒂 荡潍?朝 睡碟殓栖棻.. 体陈奢问桧 鼻?煎 桧翕桧 陛栋?虽贼怃 桧翕?楚斜妇湿 籀葬蒂 亿照啪 ?捡?栖棻..
|
||
local len = obj.sq_getLevelData(SKILL_FASTMOVE, FM_LI_MOVE_LEN, 1);
|
||
//len = len - break_len; // 马楼胀 高击 梗朝棻..
|
||
sq_var.push_vector(len); // 樯策蝶5
|
||
sq_var.push_vector(0); // 樯策蝶6 饵遴萄 ?楚斜
|
||
|
||
local hitCnt = obj.sq_getIntData(SKILL_FASTMOVE, FM_SI_MULTI_HIT_COUNT); // 棻钦??
|
||
|
||
local term = moveT / hitCnt;
|
||
|
||
obj.sq_setShake(obj, 2, moveT);
|
||
//obj.sq_setShake(obj, 4, moveT);
|
||
// 赝葬?
|
||
sq_CurrentAnimationProc(pAni);
|
||
|
||
// local alsSpinNormal = obj.sq_getAutoLayerWorkAnimation(pAni, "2_sn");
|
||
// local alsSpinDodge = obj.sq_getAutoLayerWorkAnimation(pAni, "2_sd");
|
||
// if(alsSpinNormal)
|
||
// alsSpinNormal.setCustomClipArea(true, 0, 0, 10, 10, false);
|
||
|
||
//if(alsSpinDodge)
|
||
//alsSpinDodge.setCustomClipArea(true, 0, 0, 10, 10, false);
|
||
//
|
||
|
||
sq_var.clear_timer_vector();
|
||
sq_var.push_timer_vector();
|
||
|
||
local t = sq_var.get_timer_vector(0);
|
||
//t.setParameter(35, -1);
|
||
t.setParameter(60, -1);
|
||
t.resetInstant(0);
|
||
|
||
obj.sq_timer_.setParameter(term, hitCnt);
|
||
obj.sq_timer_.resetInstant(initDelay);
|
||
|
||
// 坚楼桧翕 y蹴 桧翕 陛栋?紫烟 热姜蒙机
|
||
// 蝶鹧? 等桧颤煎 鼻?桧翕 楼紫 跷陛
|
||
// FM_SI_Y_AXIS_MOVESPEED <- 3 // 体陈 鼻? 桧翕楼紫
|
||
local y_axis_movespeed = obj.sq_getIntData(SKILL_FASTMOVE, FM_SI_Y_AXIS_MOVESPEED);
|
||
//obj.sq_setMoveDirection(ENUM_DIRECTION_DOWN, ENUM_DIRECTION_DOWN);
|
||
//obj.setAxisMoveDirection(1, ENUM_DIRECTION_DOWN, true, true);
|
||
//obj.sq_setStaticMoveInfo(1, 263, 0, true, 0, 0);
|
||
//obj.sq_setStaticMoveInfo(1, 200, 0, true, 0, 0);
|
||
//obj.sq_setStaticSpeedInfo(1, 1);
|
||
//
|
||
obj.sq_setStaticMoveInfo(1,y_axis_movespeed,y_axis_movespeed,true);
|
||
obj.sq_setMoveDirection(obj.getDirection(), ENUM_DIRECTION_NEUTRAL);
|
||
//
|
||
}
|
||
else if(substate == S_FASTMOVE_END) {
|
||
obj.sq_stopMove();
|
||
sq_var.push_vector(posX); // 漱搅 樯策蝶 1
|
||
obj.sq_setCurrentAnimation(CUSTOM_ANI_FASTMOVE4);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
// prepareDraw ?热 殓栖棻..
|
||
function prepareDraw_fastmove(obj)
|
||
{
|
||
if(!obj) return;
|
||
// local substate = obj.getSkillSubState();
|
||
|
||
//if(substate == S_FASTMOVE_PRO) {
|
||
//local pAni = obj.sq_getCurrentAni();
|
||
|
||
//local alsSpinNormal = obj.sq_getAutoLayerWorkAnimation(pAni, "2_sn");
|
||
//local alsSpinDodge = obj.sq_getAutoLayerWorkAnimation(pAni, "2_sd");
|
||
|
||
//if(alsSpinNormal)
|
||
// alsSpinNormal.setCustomClipArea(true, 5, 5, 5, 5, false);
|
||
|
||
//if(alsSpinDodge)
|
||
// alsSpinDodge.setCustomClipArea(true, 0, 0, 0, 0, false);
|
||
// }
|
||
}
|
||
|
||
|
||
// loop 睡碟殓栖棻 ismycontrol煎 马谆虽 强擎 翱念胀 赅苌 object菟桧 桧够击 剪纂啪腌栖棻.
|
||
function onProc_fastmove(obj)
|
||
{
|
||
if(!obj) 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 sq_var = obj.getVar();
|
||
local currentT = sq_GetCurrentTime(pAni);
|
||
|
||
|
||
//S_FASTMOVE_PLAY <- 0
|
||
//S_FASTMOVE_LOOP <- 1
|
||
//S_FASTMOVE_PRO <- 2
|
||
//S_FASTMOVE_END <- 3
|
||
|
||
if(substate == S_FASTMOVE_PLAY) {
|
||
}
|
||
else if(substate == S_FASTMOVE_LOOP) {
|
||
local max_break_v = 0;
|
||
//local time = obj.sq_getIntData(SKILL_FASTMOVE, FM_SI_C_TIME);
|
||
local time = obj.sq_getIntData(SKILL_FASTMOVE, FM_SI_C_TIME); // 体陈桧 谏瞪 当撩肾朝 卫除..
|
||
|
||
if(obj.isMyControlObject()) {
|
||
if(sq_GetSkillLevel(obj, SKILL_FASTMOVE_EX) > 0) // 坚楼桧翕鬼? 妇湿 蒙机
|
||
{
|
||
local direction = obj.sq_getInputDirection(0);
|
||
|
||
if(direction == ENUM_DIRECTION_NEUTRAL) {
|
||
sq_var.set_vector(4, currentT); // 嬴鼠匙紫 寰扬毓击阳 卫除击 羹觼?棻..
|
||
}
|
||
|
||
if(direction == ENUM_DIRECTION_LEFT || direction == ENUM_DIRECTION_RIGHT) {
|
||
if(obj.getDirection() == ENUM_DIRECTION_LEFT || obj.getDirection() == ENUM_DIRECTION_RIGHT) {
|
||
if(direction != obj.getDirection()) {
|
||
//local max_break = 200;
|
||
local max_break = obj.sq_getIntData(SKILL_FASTMOVE_EX, 4); //替葬啪 桧翕?朝 绿徽 (0~300) // 0 戏煎 ?贼 晦襄 楼紫陛 釭螃啪 肾坚 高桧 棺横釭贼 楼紫陛 替溥喂栖棻..
|
||
local t = time - sq_var.get_vector(4);
|
||
local c_t = currentT - sq_var.get_vector(4);
|
||
local v = sq_GetUniformVelocity(0, max_break, c_t, t);
|
||
|
||
max_break_v = v;
|
||
//print("\n v:" + v + " c_t:" + c_t + " t:" + t);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//sq_var.push_vector(posZ); // index : 1 // srcZ
|
||
|
||
local srcZ = sq_var.get_vector(1); // 卫瞪 卫蒙 堪桧
|
||
local jumpstate = sq_var.get_vector(2); // jumpstate : 0 : 夥款 1 : 鼻蝓酝 2 : ?鬼酝
|
||
|
||
local up_t = time / 2;
|
||
local up_l = 20 + srcZ;
|
||
|
||
local move_l = 0;
|
||
|
||
//if(srcZ <= 0) {
|
||
|
||
if(jumpstate == 0) {
|
||
|
||
if(up_t > currentT) {
|
||
//move_l = sq_GetAccel(0, up_l, currentT, up_t, true);
|
||
move_l = sq_GetAccel(srcZ, up_l, currentT, up_t, true);
|
||
}
|
||
else {
|
||
move_l = sq_GetAccel(up_l, 0, currentT - up_t, up_t, false);
|
||
}
|
||
|
||
if(currentT >= time) {
|
||
obj.setCurrentPos(posX, posY, 0);
|
||
|
||
if(obj.isMyControlObject()) {
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(S_FASTMOVE_PRO);
|
||
obj.sq_IntVectPush(max_break_v);
|
||
obj.sq_addSetStatePacket(STATE_FASTMOVE, STATE_PRIORITY_USER, true);
|
||
}
|
||
}
|
||
else {
|
||
obj.setCurrentPos(posX, posY, move_l);
|
||
}
|
||
|
||
}
|
||
else if(jumpstate == 1) {
|
||
up_t = 100;
|
||
local down_t = 400;
|
||
up_l = 10 + srcZ;
|
||
|
||
move_l = 0;
|
||
|
||
//print("\n uprising");
|
||
|
||
|
||
if(up_t > currentT) {
|
||
move_l = sq_GetAccel(srcZ, up_l, currentT, up_t, true);
|
||
}
|
||
else {
|
||
move_l = sq_GetAccel(up_l, 0, currentT - up_t, down_t, false);
|
||
}
|
||
|
||
if(currentT >= (down_t + up_t) ) {
|
||
obj.setCurrentPos(posX, posY, 0);
|
||
|
||
if(obj.isMyControlObject()) {
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(S_FASTMOVE_PRO);
|
||
obj.sq_IntVectPush(max_break_v);
|
||
obj.sq_addSetStatePacket(STATE_FASTMOVE, STATE_PRIORITY_USER, true);
|
||
}
|
||
}
|
||
else {
|
||
obj.setCurrentPos(posX, posY, move_l);
|
||
}
|
||
}
|
||
else if(jumpstate == 2) { // ?鬼酝
|
||
up_t = 50;
|
||
local down_t = 400;
|
||
up_l = srcZ;
|
||
|
||
move_l = 0;
|
||
//print("\n downing");
|
||
|
||
if(up_t > currentT) {
|
||
move_l = sq_GetAccel(srcZ, up_l, currentT, up_t, true);
|
||
}
|
||
else {
|
||
move_l = sq_GetAccel(up_l, 0, currentT - up_t, down_t, false);
|
||
}
|
||
|
||
if(currentT >= (down_t + up_t) ) {
|
||
obj.setCurrentPos(posX, posY, 0);
|
||
|
||
if(obj.isMyControlObject()) {
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(S_FASTMOVE_PRO);
|
||
obj.sq_IntVectPush(max_break_v);
|
||
obj.sq_addSetStatePacket(STATE_FASTMOVE, STATE_PRIORITY_USER, true);
|
||
}
|
||
}
|
||
else {
|
||
obj.setCurrentPos(posX, posY, move_l);
|
||
}
|
||
}
|
||
}
|
||
else if(substate == S_FASTMOVE_PRO) {
|
||
//FM_LI_HIT_RATE <- 0 // 体陈 ?? 等嘐虽(%)
|
||
//FM_LI_MOVE_LEN <- 1 // 桧翕剪葬 (px)
|
||
local initDelay = pAni.GetFrameStartTime(2);
|
||
|
||
if(initDelay <= currentT) {
|
||
local delayT = sq_var.get_vector(2); // 漱搅樯策蝶 2 识 桧翕卫除
|
||
//print(delayT);
|
||
local len = sq_var.get_vector(5);
|
||
//print(len);
|
||
|
||
|
||
if(sq_var.get_vector(6) == 0) // 樯策蝶6 饵遴萄 ?楚斜
|
||
{
|
||
obj.sq_PlaySound("FMOVE_DASH_LOOP", 7575);
|
||
sq_var.set_vector(6, 1);
|
||
}
|
||
|
||
local v = sq_GetAccel(0, len, currentT - initDelay, delayT, false);
|
||
//local v = sq_GetUniformVelocity(0, len, currentT - initDelay, delayT);
|
||
|
||
local srcX = sq_var.get_vector(1); // 漱搅 樯策蝶 1
|
||
|
||
local dstX = sq_GetDistancePos(srcX, obj.getDirection(), v);
|
||
|
||
if(sq_var.get_vector(3)) { // 瞪?溯歜缣怃 桧翕? 热 桡朝 虽羲击 虏陬棻贼..
|
||
if(sq_var.get_vector(4) != posY) { // 瞪 posY谛 绿掖?瑭怃 殖塭螺棻贼..
|
||
sq_var.set_vector(3, 0); // 桧翕?楚斜蒂 off?鄹栖棻..
|
||
sq_var.set_vector(4, posY);
|
||
}
|
||
}
|
||
|
||
if(obj.isMovablePos(dstX, posY) && !sq_var.get_vector(3)) { // 桧翕?楚斜谛 桧翕陛栋虽羲桧 赅舒 陛栋?捡 桧翕
|
||
//obj.setCurrentPos(dstX, posY, posZ);
|
||
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(5);
|
||
sq_var.set_vector(5, totalLen - offset);
|
||
}
|
||
}
|
||
|
||
if (obj.sq_timer_.isOnEvent(currentT) == true)
|
||
obj.resetHitObjectList();
|
||
|
||
if(v >= len) { // 迹瞳虽缣 紫杂?击 阳 sub state蒂 夥羞棻..
|
||
obj.stopSound(7575);
|
||
if(obj.isMyControlObject()) {
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(S_FASTMOVE_END);
|
||
obj.sq_addSetStatePacket(STATE_FASTMOVE, STATE_PRIORITY_USER, true);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
// 坚楼桧翕 y蹴 桧翕 陛栋?紫烟 热姜蒙机
|
||
// 蝶鹧? 等桧颤煎 鼻?桧翕 楼紫 跷陛
|
||
|
||
// 试虽 ??赝 当撩
|
||
local t = sq_var.get_timer_vector(0);
|
||
|
||
if(t.isOnEvent(currentT) == true) {
|
||
//local dust_type = obj.getDustParticleType(LANDPARTICLE_MOVE);
|
||
//local particleCreater = sq_GetobjectParticleCreaters(dust_type);
|
||
//if(obj.getDirection() == ENUM_DIRECTION_LEFT)
|
||
//particleCreater.getParticleInfo().xFlip = true;
|
||
//else
|
||
//particleCreater.getParticleInfo().xFlip = false;
|
||
//OBJECT_VECTOR objects = chargeSpearParticleCreator_->createObjectParticle();
|
||
|
||
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 if(substate == S_FASTMOVE_END) {
|
||
local len = 40;
|
||
local delaySum = 400;
|
||
local v = sq_GetAccel(0, len, currentT, delaySum, false);
|
||
//local v = sq_GetUniformVelocity(0, len, currentT - initDelay, delayT);
|
||
|
||
local srcX = sq_var.get_vector(1); // 漱搅 樯策蝶 1
|
||
|
||
local dstX = sq_GetDistancePos(srcX, obj.getDirection(), v);
|
||
|
||
if(obj.isMovablePos(dstX, posY)) {
|
||
obj.setCurrentPos(dstX, posY, posZ);
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
|
||
// loop 睡碟殓栖棻 ismycontrol ?蝶?陛 狱樯桧 object陛 桧够击 菟横骨栖棻. setstate 撮?桧釭 ?卫粽螃粽薛? 当撩 , 蛔蛔 籀葬?栖棻.
|
||
function onProcCon_fastmove(obj)
|
||
{
|
||
if(!obj) 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(substate == S_FASTMOVE_PLAY) {
|
||
}
|
||
else if(substate == S_FASTMOVE_LOOP) {
|
||
}
|
||
else if(substate == S_FASTMOVE_PRO) {
|
||
}
|
||
else if(substate == S_FASTMOVE_END) {
|
||
}
|
||
|
||
|
||
if(bEnd) {
|
||
if(substate == S_FASTMOVE_PLAY) {
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(S_FASTMOVE_LOOP);
|
||
obj.sq_addSetStatePacket(STATE_FASTMOVE, STATE_PRIORITY_USER, true);
|
||
//obj.sq_addSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
else if(substate == S_FASTMOVE_LOOP) {
|
||
}
|
||
else if(substate == S_FASTMOVE_PRO) {
|
||
//obj.sq_addSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
else if(substate == S_FASTMOVE_END) {
|
||
obj.sq_addSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
}
|
||
}
|
||
|
||
// state谦猿谛 翕卫缣 ?廓 ?轿肾朝 ?热殓栖棻. oldstate陛 谦猿肾朝 state殓栖棻. 鼠树陛 嫦饵胀匙桧 毡剪釭 谦猿籀葬腆匙桧 毡棻贼 桧够缣怃 籀葬?栖棻.
|
||
function onEndState_fastmove(obj, new_state)
|
||
{
|
||
if(!obj) return;
|
||
if(new_state != STATE_FASTMOVE) {
|
||
obj.stopSound(7575);
|
||
}
|
||
}
|
||
|
||
|
||
// irdcharacter缣怃 setstate() -> IRDActiveObject::setState -> aftersetstate() 桧楛牖怃缣怃 葆虽虞 setstate殓栖棻. skill?撩缣 评塭怃 ?轿? ?蹂陛
|
||
// 毡棻贼 桧 ?热蒂 桧辨?栖棻.
|
||
|
||
function onAfterSetState_fastmove(obj, state, datas, isResetTimer)
|
||
{
|
||
if(!obj) return;
|
||
|
||
}
|
||
|
||
// onbeforeattack 属寥?热 殓栖棻
|
||
function onBeforeAttack_fastmove(obj, damager, boundingBox)
|
||
{
|
||
|
||
}
|
||
|
||
// onAttack 属寥?热 殓栖棻
|
||
function onAttack_fastmove(obj, damager, boundingBox)
|
||
{
|
||
|
||
}
|
||
|
||
// onAfterAttack 属寥?热 殓栖棻
|
||
function onAfterAttack_fastmove(obj, damager, boundingBox)
|
||
{
|
||
|
||
}
|
||
|
||
// onBeforeDamage 属寥?热 殓栖棻
|
||
function onBeforeDamage_fastmove(obj, attacker, boundingBox)
|
||
{
|
||
|
||
}
|
||
|
||
// onDamage 属寥?热 殓栖棻
|
||
function onDamage_fastmove(obj, attacker, boundingBox)
|
||
{
|
||
|
||
}
|
||
|
||
// onAfterDamage 属寥?热 殓栖棻
|
||
function onAfterDamage_fastmove(obj, attacker, boundingBox)
|
||
{
|
||
|
||
}
|
||
|
||
|
||
|