667 lines
18 KiB
Plaintext
667 lines
18 KiB
Plaintext
|
||
SUB_STATE_BROKENARROW_0 <- 0
|
||
SUB_STATE_BROKENARROW_1 <- 1
|
||
SUB_STATE_BROKENARROW_2 <- 2
|
||
SUB_STATE_BROKENARROW_3 <- 3
|
||
SUB_STATE_BROKENARROW_4 <- 4
|
||
|
||
BrokenArrow_state_0 <- 10
|
||
BrokenArrow_state_1 <- 11
|
||
BrokenArrow_state_2 <- 12
|
||
|
||
function checkExecutableSkill_BrokenArrow(obj)
|
||
{
|
||
|
||
if(!obj) return false;
|
||
|
||
//local targetObj = sq_GetObjectByObjectId(obj, BROKENARROW_UNIQUE_ID);
|
||
local flag = obj.getVar("brokenarrow").get_vector(VECTOR_FLAG_0);
|
||
local targetObj = sq_GetPassiveObjectByState(obj, 24250, BrokenArrow_state_1); // 24250 `Character/Mage/ATBrokenArrow.obj` // 陴彻饵 - 粽煎赎拥煎办 (?髦)
|
||
|
||
local expTime = obj.sq_GetIntData(SKILL_BROKENARROW, 1); // 1. 颤问 撩奢卫 渠莲晦栋击 饵辨? 热 毡朝 卫除 (?髦桧 笮?毡朝 卫除)
|
||
|
||
// 觼煎栖赝 嬴桧蛊 蒙机.. 颤问 撩奢卫 渠莲晦栋击 饵辨? 热 毡朝 卫除 (?髦桧 笮?毡朝 卫除)
|
||
// 0塭贼 渠莲蒂 ?虽 强朝棻..
|
||
|
||
if(!targetObj || flag == 0 || expTime == 0)
|
||
{
|
||
local b_useskill = obj.sq_IsUseSkill(SKILL_BROKENARROW);
|
||
|
||
if(b_useskill) {
|
||
obj.getVar("arrow").clear_vector();
|
||
obj.getVar("arrow").push_vector(0);
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(SUB_STATE_BROKENARROW_0); // substate撮?
|
||
obj.sq_AddSetStatePacket(STATE_BROKENARROW, STATE_PRIORITY_IGNORE_FORCE, true);
|
||
return true;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
print( " checkExecutableSkill_BrokenArrow targetObj:" + targetObj);
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(SUB_STATE_BROKENARROW_2); // substate撮?
|
||
|
||
local group = sq_GetGroup(targetObj);
|
||
local uniqueId = sq_GetUniqueId(targetObj);
|
||
|
||
obj.sq_IntVectPush(group); // substate撮?
|
||
obj.sq_IntVectPush(uniqueId); // substate撮?
|
||
obj.sq_AddSetStatePacket(STATE_BROKENARROW, STATE_PRIORITY_IGNORE_FORCE, true);
|
||
return true;
|
||
}
|
||
|
||
|
||
|
||
return false;
|
||
|
||
}
|
||
|
||
|
||
//local arr=["one","two","three"]
|
||
//
|
||
//::print("FOREACH\n");
|
||
//
|
||
//foreach(i,val in arr)
|
||
//{
|
||
//::print("index ["+i+"]="+val+"\n");
|
||
//}
|
||
//
|
||
//::print("FOR\n");
|
||
//
|
||
//for(local i=0;i<arr.len();i+=1)
|
||
//{
|
||
//::print("index ["+i+"]="+arr[i]+"\n");
|
||
//}
|
||
//
|
||
//::print("WHILE\n");
|
||
//
|
||
//local i=0;
|
||
//while(i<arr.len())
|
||
//{
|
||
//::print("index ["+i+"]="+arr[i]+"\n");
|
||
//i+=1;
|
||
//}
|
||
//::print("DO WHILE\n");
|
||
//
|
||
//local i=0;
|
||
//do
|
||
//{
|
||
//::print("index ["+i+"]="+arr[i]+"\n");
|
||
//i+=1;
|
||
//}while(i<arr.len());
|
||
|
||
|
||
function checkCommandEnable_BrokenArrow(obj)
|
||
{
|
||
|
||
if(!obj) return false;
|
||
|
||
local state = obj.sq_GetState();
|
||
|
||
if(state == STATE_ATTACK)
|
||
{
|
||
// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20]
|
||
return obj.sq_IsCommandEnable(SKILL_BROKENARROW); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_BROKENARROW);
|
||
}
|
||
|
||
|
||
return true;
|
||
|
||
}
|
||
|
||
function onChangeSkillEffect_BrokenArrow(obj, skillIndex, reciveData)
|
||
{
|
||
if(!obj)
|
||
return;
|
||
}
|
||
|
||
function onSetState_BrokenArrow(obj, state, datas, isResetTimer)
|
||
{
|
||
|
||
if(!obj) return;
|
||
|
||
local substate = obj.sq_GetVectorData(datas, 0);
|
||
obj.setSkillSubState(substate);
|
||
obj.sq_StopMove();
|
||
|
||
local arrowLauchNum = obj.sq_GetIntData(SKILL_BROKENARROW, 0); // 0. ?髦 偎热
|
||
|
||
obj.getVar().clear_vector();
|
||
obj.getVar().push_vector(arrowLauchNum);
|
||
obj.getVar().push_vector(0);
|
||
obj.getVar().push_vector(0);
|
||
|
||
obj.getVar("flag").clear_vector();
|
||
obj.getVar("flag").push_vector(0);
|
||
|
||
local posX = obj.getXPos();
|
||
local posY = obj.getYPos();
|
||
local posZ = obj.getZPos();
|
||
|
||
if(substate == SUB_STATE_BROKENARROW_0) {
|
||
if(obj.getVar("brokenarrow").size_vector() == 0)
|
||
{
|
||
obj.sq_PlaySound("MW_BARROW");
|
||
obj.getVar("brokenarrow").clear_vector();
|
||
obj.getVar("brokenarrow").push_vector(1);
|
||
}
|
||
else
|
||
obj.getVar("brokenarrow").set_vector(VECTOR_FLAG_0, 1);
|
||
|
||
// 渠莲?楚斜
|
||
obj.getVar("dash").clear_vector();
|
||
obj.getVar("dash").push_vector(0);
|
||
|
||
obj.sq_SetCurrentAnimation(CUSTOM_ANI_BROKENARROW1);
|
||
local pAni = obj.sq_GetCurrentAni();
|
||
pAni.setSpeedRate(200.0);
|
||
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_1) {
|
||
obj.sq_SetCurrentAnimation(CUSTOM_ANI_BROKENARROW_LOOP1);
|
||
local pAni = obj.sq_GetCurrentAni();
|
||
pAni.setSpeedRate(200.0);
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_2) {
|
||
// 渠莲1
|
||
obj.getVar("brokenarrow").set_vector(VECTOR_FLAG_0, 0); // ?廓 ?溥耀棻贼..棻卫 葬掸桧 腌栖棻.
|
||
|
||
local group = obj.sq_GetVectorData(datas, 1);
|
||
local uniqueId = obj.sq_GetVectorData(datas, 2);
|
||
|
||
local targetObj = sq_GetObject(obj, group, uniqueId);
|
||
|
||
obj.getVar().push_vector(posX); // ?营 x : i: 3
|
||
obj.getVar().push_vector(posY); // ?营 y : i: 4
|
||
|
||
if(targetObj) {
|
||
local disX = sq_Abs(targetObj.getXPos() - posX);
|
||
local disY = targetObj.getYPos() - posY;
|
||
|
||
if(targetObj.getXPos() > posX)
|
||
{
|
||
obj.setDirection(ENUM_DIRECTION_RIGHT);
|
||
}
|
||
else
|
||
{
|
||
obj.setDirection(ENUM_DIRECTION_LEFT);
|
||
}
|
||
|
||
disX = disX - 60;
|
||
|
||
if(disX <= 0)
|
||
disX = 0;
|
||
|
||
obj.getVar().push_vector(disX); // x蹴 桧翕剪葬 : i: 5
|
||
obj.getVar().push_vector(disY); // y蹴 桧翕剪葬 : i: 6
|
||
}
|
||
else { // 蛤?? 桧翕剪葬
|
||
local defaultDistance = obj.sq_GetIntData(SKILL_BLUEDRAGONWILL, 1); // 除蕾 奢问 (虽霞 ?渠徽) (100~)
|
||
obj.getVar().push_vector(defaultDistance); // x蹴 桧翕剪葬
|
||
obj.getVar().push_vector(0); // y蹴 桧翕剪葬
|
||
}
|
||
|
||
obj.sq_SetCurrentAnimation(CUSTOM_ANI_BROKENARROW_DASH1);
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_3) {
|
||
obj.sq_SetCurrentAttackInfo(CUSTOM_ATTACK_INFO_AT_MAGE_BROKENARROW);
|
||
obj.sq_SetCurrentAnimation(CUSTOM_ANI_BROKENARROW_DASH2);
|
||
|
||
obj.sq_PlaySound("MW_BARROW_FIN");
|
||
|
||
local atk = sq_GetCurrentAttackInfo(obj);
|
||
local attackRate = obj.sq_GetBonusRateWithPassive(SKILL_BROKENARROW, STATE_BROKENARROW, 1, 1.0); //1.?萃楝纂晦 奢问溘(%)
|
||
sq_SetCurrentAttackBonusRate(atk, attackRate);
|
||
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_4) {
|
||
// SUB_STATE_BROKENARROW_4 怃粽蝶才桧? 蒙机
|
||
}
|
||
}
|
||
|
||
function prepareDraw_BrokenArrow(obj)
|
||
{
|
||
|
||
if(!obj) return;
|
||
|
||
local substate = obj.getSkillSubState();
|
||
|
||
if(substate == SUB_STATE_BROKENARROW_0) {
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_1) {
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_2) {
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_3) {
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_4) {
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
function getAngleArrow(obj, pTargetChr)
|
||
{
|
||
if(!obj) return;
|
||
if(!pTargetChr) return;
|
||
|
||
local offsetX = 58; // ?践朝 嫔纂
|
||
local offsetZ = 75; // ?践朝 嫔纂
|
||
|
||
|
||
local X = obj.getXPos() + sq_GetDistancePos(0, obj.getDirection(), offsetX);
|
||
local Y = obj.getYPos();
|
||
local Z = obj.getZPos() + offsetZ;
|
||
|
||
local posX = pTargetChr.getXPos();
|
||
local posY = pTargetChr.getYPos();
|
||
local posZ = pTargetChr.getZPos() + (sq_GetObjectHeight(pTargetChr) / 2);
|
||
|
||
local offset = posX - X;
|
||
|
||
local distance = sq_GetDistance( X, Y - Z, posX, posY - posZ, true);
|
||
|
||
local w = posX - X;
|
||
if(w < 0) w = -w;
|
||
// ?贼鼻暧 陕紫蒂 掘?怃 桧??蒂 赁紫釭 给溥捡 肾朝虽 掘?棻.
|
||
|
||
local h = (posY - posZ) - (Y - Z);
|
||
local width = sq_Abs(posX - X);
|
||
local angle = sq_Atan2( h.tofloat(), width.tofloat());
|
||
|
||
//if((posY - posZ) < (Y - Z))
|
||
{
|
||
angle = -angle;
|
||
}
|
||
|
||
local nRevision = distance;
|
||
|
||
local cos = nRevision.tofloat() * sq_Cos(angle);
|
||
local sin = nRevision.tofloat() * sq_Sin(angle);
|
||
|
||
local nX = sq_Abs( cos.tointeger() );
|
||
local nY = sq_Abs( sin.tointeger() );
|
||
|
||
return angle;
|
||
//sq_SetfRotateAngle(pAni, angle);
|
||
|
||
}
|
||
|
||
|
||
function onProc_BrokenArrow(obj)
|
||
{
|
||
|
||
if(!obj) return;
|
||
|
||
local substate = obj.getSkillSubState();
|
||
|
||
local pAni = obj.sq_GetCurrentAni();
|
||
local frmIndex = obj.sq_GetCurrentFrameIndex(pAni);
|
||
local sq_var = obj.getVar();
|
||
local currentT = sq_GetCurrentTime(pAni);
|
||
|
||
local posX = sq_GetXPos(obj);
|
||
local posY = sq_GetYPos(obj);
|
||
local posZ = sq_GetZPos(obj);
|
||
|
||
if(substate == SUB_STATE_BROKENARROW_0) {
|
||
// SUB_STATE_BROKENARROW_0 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_1) {
|
||
// SUB_STATE_BROKENARROW_1 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_2) {
|
||
local dash_t = pAni.getDelaySum(false); //
|
||
//obj.getVar().push_vector(posX); // ?营 x : i: 3
|
||
//obj.getVar().push_vector(posY); // ?营 y : i: 4
|
||
|
||
local srcX = obj.getVar().get_vector(3); // 卫蒙x
|
||
local srcY = obj.getVar().get_vector(4); // 卫蒙y
|
||
|
||
local dis_x_len = sq_var.get_vector(5); // 识 桧翕剪葬
|
||
local dis_y_len = obj.getVar().get_vector(6) + 1; // y蹴 桧翕剪葬
|
||
|
||
local v = sq_GetAccel(0, dis_x_len, currentT, dash_t, true);
|
||
|
||
local my = sq_GetUniformVelocity(0, dis_y_len, currentT, dash_t);
|
||
|
||
local dstX = sq_GetDistancePos(srcX, obj.getDirection(), v);
|
||
local dstY = srcY + my;
|
||
|
||
if(sq_var.get_vector(1))
|
||
{ // 瞪?溯歜缣怃 桧翕? 热 桡朝 虽羲击 虏陬棻贼..
|
||
if(sq_var.get_vector(2) != posY)
|
||
{ // 瞪 posY谛 绿掖?瑭怃 殖塭螺棻贼..
|
||
sq_var.set_vector(1, 0); // 桧翕?楚斜蒂 off?鄹栖棻..
|
||
sq_var.set_vector(2, posY);
|
||
}
|
||
}
|
||
|
||
if(obj.isMovablePos(dstX, dstY) && !sq_var.get_vector(1))
|
||
{ // 桧翕?楚斜谛 桧翕陛栋虽羲桧 赅舒 陛栋?捡 桧翕
|
||
sq_setCurrentAxisPos(obj, 0, dstX);
|
||
sq_setCurrentAxisPos(obj, 1, dstY);
|
||
}
|
||
else
|
||
{ // 桧翕? 热 桡朝 虽羲击 虏陬棻..
|
||
sq_var.set_vector(1,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);
|
||
}
|
||
}
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_3) {
|
||
// SUB_STATE_BROKENARROW_3 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_4) {
|
||
// SUB_STATE_BROKENARROW_4 怃粽蝶才桧? 蒙机
|
||
}
|
||
|
||
|
||
}
|
||
|
||
function onProcCon_BrokenArrow(obj)
|
||
{
|
||
|
||
if(!obj) return;
|
||
|
||
local substate = obj.getSkillSubState();
|
||
|
||
if(substate == SUB_STATE_BROKENARROW_0 || substate == SUB_STATE_BROKENARROW_1)
|
||
{
|
||
local pAni = obj.getCurrentAnimation();
|
||
local frmIndex = obj.sq_GetCurrentFrameIndex(pAni);
|
||
|
||
//local x_range = obj.sq_GetIntData(SKILL_BLUEDRAGONWILL, 3); // 晦遴 醱瞪卫除
|
||
//local y_range = obj.sq_GetIntData(SKILL_BLUEDRAGONWILL, 4); // 晦遴 醱瞪卫除
|
||
//local z_range = obj.sq_GetIntData(SKILL_BLUEDRAGONWILL, 5); // 晦遴 醱瞪卫除
|
||
|
||
if(frmIndex >= 3)
|
||
{
|
||
if(obj.getVar("flag").get_vector(0) == 0)
|
||
{
|
||
local x_range = 400; // 匐仪彰嫔 x
|
||
local y_range = 200; // 匐仪彰嫔 y
|
||
local z_range = 50; // 匐仪彰嫔 z
|
||
|
||
x_range = obj.sq_GetIntData(SKILL_BROKENARROW, 3); // 3. x彰嫔
|
||
y_range = obj.sq_GetIntData(SKILL_BROKENARROW, 4); // 4. y彰嫔
|
||
z_range = obj.sq_GetIntData(SKILL_BROKENARROW, 5); // 5. z彰嫔
|
||
|
||
local x = sq_GetXPos(obj);
|
||
local y = sq_GetYPos(obj);
|
||
local z = sq_GetZPos(obj);
|
||
|
||
local attackRate = obj.sq_GetBonusRateWithPassive(SKILL_BROKENARROW, STATE_BROKENARROW, 0, 1.0); //2.奢问溘(%)
|
||
|
||
local expTime = obj.sq_GetIntData(SKILL_BROKENARROW, 1); // 1. 颤问 撩奢卫 渠莲晦栋击 饵辨? 热 毡朝 卫除 (?髦桧 笮?毡朝 卫除)
|
||
local stunTime = obj.sq_GetIntData(SKILL_BROKENARROW, 2); // 2. 瞳 唳霜卫除
|
||
|
||
local targetObj = sq_FindTarget(obj, 80, x_range, y_range, z_range);
|
||
|
||
|
||
//local my = sq_GetUniformVelocity(0, dis_y_len, currentT, dash_t);
|
||
local xLen = 400;
|
||
local yLen = 0;
|
||
local zLen = 75;
|
||
local angle = -1.0;
|
||
|
||
if(targetObj)
|
||
{
|
||
xLen = obj.getXDistance(targetObj);
|
||
yLen = sq_GetYPos(targetObj) - sq_GetYPos(obj);
|
||
zLen = sq_GetZPos(targetObj) + (sq_GetObjectHeight(targetObj) / 2);
|
||
|
||
angle = getAngleArrow(obj, targetObj);
|
||
|
||
print(" angle:" + angle);
|
||
}
|
||
|
||
//local fireOffsetX = 56;
|
||
|
||
if(obj.isMyControlObject())
|
||
{
|
||
local fireOffsetX = 65;
|
||
local fireOffsetY = 0;
|
||
local fireOffsetZ = 73;
|
||
|
||
sq_BinaryStartWrite();
|
||
sq_BinaryWriteDword(xLen); //
|
||
sq_BinaryWriteDword(yLen); //
|
||
sq_BinaryWriteDword(zLen); //
|
||
sq_BinaryWriteDword(attackRate); //
|
||
sq_BinaryWriteDword(expTime); //
|
||
sq_BinaryWriteDword(stunTime); //
|
||
sq_BinaryWriteFloat(angle); //
|
||
obj.sq_SendCreatePassiveObjectPacket(24250, 0, fireOffsetX, fireOffsetY + 1, fireOffsetZ); // ?髦
|
||
}
|
||
|
||
obj.getVar("flag").set_vector(0, 1);
|
||
}
|
||
}
|
||
|
||
if(obj.getVar("dash").get_vector(0) == 0)
|
||
{
|
||
obj.setSkillCommandEnable(SKILL_BROKENARROW, true);
|
||
|
||
local iEnterSkill = obj.sq_IsEnterSkill(SKILL_BROKENARROW);
|
||
|
||
if(iEnterSkill != -1)
|
||
{
|
||
obj.getVar("dash").set_vector(0, 1);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
//local particleCreater = null;
|
||
|
||
//particleCreater = obj.getVar().GetparticleCreaterMap("BrokenArrowDownAttack", "Character/Mage/Particle/BrokenArrowDownAttack.ptl", obj);
|
||
//
|
||
//particleCreater = obj.getVar().GetparticleCreaterMap("BrokenArrowUpAttack", "Character/Mage/Particle/BrokenArrowUpAttack.ptl", obj);
|
||
//
|
||
//particleCreater.Restart(0);
|
||
//particleCreater.SetPos(x + dx, y + dy, z + dz);
|
||
//
|
||
//sq_AddParticleObject(obj, particleCreater);
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_2) {
|
||
// SUB_STATE_BROKENARROW_2 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_3) {
|
||
// SUB_STATE_BROKENARROW_3 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_4) {
|
||
// SUB_STATE_BROKENARROW_4 怃粽蝶才桧? 蒙机
|
||
}
|
||
|
||
|
||
}
|
||
|
||
function onEndCurrentAni_BrokenArrow(obj)
|
||
{
|
||
|
||
if(!obj) return;
|
||
|
||
local substate = obj.getSkillSubState();
|
||
|
||
if(!obj.isMyControlObject()) {
|
||
return;
|
||
}
|
||
|
||
local arrowNum = obj.getVar().get_vector(0);
|
||
|
||
if(substate == SUB_STATE_BROKENARROW_0 || substate == SUB_STATE_BROKENARROW_1)
|
||
{
|
||
|
||
local arrowIndex = obj.getVar("arrow").get_vector(0);
|
||
|
||
arrowIndex = arrowIndex + 1;
|
||
|
||
obj.getVar("arrow").set_vector(0, arrowIndex);
|
||
|
||
if(arrowIndex < arrowNum)
|
||
{
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(SUB_STATE_BROKENARROW_1); // substate撮?
|
||
obj.sq_AddSetStatePacket(STATE_BROKENARROW, STATE_PRIORITY_IGNORE_FORCE, true);
|
||
}
|
||
else
|
||
{
|
||
local expTime = obj.sq_GetIntData(SKILL_BROKENARROW, 1); // 1. 颤问 撩奢卫 渠莲晦栋击 饵辨? 热 毡朝 卫除 (?髦桧 笮?毡朝 卫除)
|
||
|
||
// 觼煎栖赝 嬴桧蛊 蒙机.. 颤问 撩奢卫 渠莲晦栋击 饵辨? 热 毡朝 卫除 (?髦桧 笮?毡朝 卫除)
|
||
// 0塭贼 渠莲蒂 ?虽 强朝棻..
|
||
|
||
if(obj.getVar("dash").get_vector(0) == 1 && expTime > 0)
|
||
{
|
||
local targetObj = sq_GetPassiveObjectByState(obj, 24250, BrokenArrow_state_1); // 24250 `Character/Mage/ATBrokenArrow.obj` // 陴彻饵 - 粽煎赎拥煎办 (?髦)
|
||
|
||
|
||
if(!targetObj)
|
||
{
|
||
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
else
|
||
{
|
||
local group = sq_GetGroup(targetObj);
|
||
local uniqueId = sq_GetUniqueId(targetObj);
|
||
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(SUB_STATE_BROKENARROW_2); // substate撮?
|
||
obj.sq_IntVectPush(group); // substate撮?
|
||
obj.sq_IntVectPush(uniqueId); // substate撮?
|
||
|
||
obj.sq_AddSetStatePacket(STATE_BROKENARROW, STATE_PRIORITY_IGNORE_FORCE, true);
|
||
}
|
||
|
||
}
|
||
else
|
||
{
|
||
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
|
||
//obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_2)
|
||
{
|
||
obj.sq_IntVectClear();
|
||
obj.sq_IntVectPush(SUB_STATE_BROKENARROW_3); // substate撮?
|
||
obj.sq_AddSetStatePacket(STATE_BROKENARROW, STATE_PRIORITY_IGNORE_FORCE, true);
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_3)
|
||
{
|
||
obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_4) {
|
||
// SUB_STATE_BROKENARROW_4 怃粽蝶才桧? 蒙机
|
||
}
|
||
|
||
|
||
}
|
||
|
||
function onKeyFrameFlag_BrokenArrow(obj, flagIndex)
|
||
{
|
||
|
||
if(!obj) return false;
|
||
|
||
local substate = obj.getSkillSubState();
|
||
|
||
if(substate == SUB_STATE_BROKENARROW_0) {
|
||
// SUB_STATE_BROKENARROW_0 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_1) {
|
||
// SUB_STATE_BROKENARROW_1 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_2) {
|
||
// SUB_STATE_BROKENARROW_2 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_3) {
|
||
// SUB_STATE_BROKENARROW_3 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_4) {
|
||
// SUB_STATE_BROKENARROW_4 怃粽蝶才桧? 蒙机
|
||
}
|
||
|
||
|
||
return false;
|
||
|
||
}
|
||
|
||
function onEndState_BrokenArrow(obj, new_state)
|
||
{
|
||
|
||
if(!obj) return;
|
||
|
||
local substate = obj.getSkillSubState();
|
||
|
||
if(substate == SUB_STATE_BROKENARROW_0) {
|
||
// SUB_STATE_BROKENARROW_0 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_1) {
|
||
// SUB_STATE_BROKENARROW_1 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_2) {
|
||
// SUB_STATE_BROKENARROW_2 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_3) {
|
||
// SUB_STATE_BROKENARROW_3 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_4) {
|
||
// SUB_STATE_BROKENARROW_4 怃粽蝶才桧? 蒙机
|
||
}
|
||
|
||
|
||
}
|
||
|
||
function onAfterSetState_BrokenArrow(obj, state, datas, isResetTimer)
|
||
{
|
||
|
||
if(!obj) return;
|
||
|
||
local substate = obj.getSkillSubState();
|
||
|
||
if(substate == SUB_STATE_BROKENARROW_0) {
|
||
// SUB_STATE_BROKENARROW_0 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_1) {
|
||
// SUB_STATE_BROKENARROW_1 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_2) {
|
||
// SUB_STATE_BROKENARROW_2 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_3) {
|
||
// SUB_STATE_BROKENARROW_3 怃粽蝶才桧? 蒙机
|
||
}
|
||
else if(substate == SUB_STATE_BROKENARROW_4) {
|
||
// SUB_STATE_BROKENARROW_4 怃粽蝶才桧? 蒙机
|
||
}
|
||
|
||
|
||
}
|
||
|
||
function onAttack_BrokenArrow(obj, damager, boundingBox, isStuck)
|
||
{
|
||
if(!obj) return;
|
||
|
||
local substate = obj.getSkillSubState();
|
||
|
||
if(substate == SUB_STATE_BROKENARROW_3)
|
||
{
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|