// state蒂 撮??坚 籀挤戏煎 菟横螃啪 腌栖棻. 陕谦 葬模蝶蒂 撮??栖棻. function onSetState_AvengerAttack(obj, state, datas, isResetTimer) { if(!obj) return; if(isAvengerAwakenning(obj) == false) { obj.getVar().clear_vector(); obj.getVar().push_vector(0); // 0廓樯策蝶 obj.getVar().push_vector(0); // 1廓樯策蝶 obj.getVar().push_vector(0);// 2廓樯策蝶 obj.getVar().push_vector(0);// 3廓樯策蝶 obj.getVar().push_vector(0);// 4廓樯策蝶 if(obj.getAttackIndex() == 0) { obj.setAttackXVelocity(100); obj.setAttackXAccel(-300); obj.setAttackXVelocityFast(200); obj.setAttackXAccelFast(-300); } if(obj.getAttackIndex() == 1) { // obj.setAttackXVelocity(50); obj.setAttackXAccel(-300); obj.setAttackXVelocityFast(50); obj.setAttackXAccelFast(-300); } if(obj.getAttackIndex() == 2) { // obj.setAttackXVelocity(20); obj.setAttackXAccel(-300); obj.setAttackXVelocityFast(50); obj.setAttackXAccelFast(-30); } if(obj.getAttackIndex() == 3) { // } return; } obj.sq_stopMove(); local posX = obj.getXPos(); local posY = obj.getYPos(); local posZ = obj.getZPos(); local dir = sq_GetDirection(obj); obj.getVar().clear_vector(); obj.getVar().push_vector(0); obj.setAttackXVelocity(0); obj.setAttackXAccel(0); obj.setAttackXVelocityFast(0); obj.setAttackXAccelFast(0); } function onAfterSetState_AvengerAttack(obj, state, datas, isResetTimer) { if(!obj) return; if(isAvengerAwakenning(obj) == false) { return; } print(" onAfterSetState_AvengerAttack obj.getAttackIndex():" + obj.getAttackIndex()); // Awakening.skl 蝶鉴溯涟 才桧绾 //SL_PERFECT_CHANGE_HP <- 0 // (0) 谏瞪 渗褐羹 HP //SL_CHANGE_TIME <- 1 // (1) 虽楼卫除 //SL_DEF_INC <- 2 // (2) 寞横溘隶陛(+) //SL_ATK_SPD <- 3 // (3) 奢问楼紫(+) //SL_MOV_SPD <- 4 // (4) 桧翕楼紫(+) //SL_1_HIT_MAGIC_ATK <- 5 // (5) 1颤 葆彻奢问溘(+) //SL_2_HIT_MAGIC_ATK <- 6 // (6) 2颤 葆彻奢问溘(+) //SL_3_HIT_MAGIC_ATK <- 7 // (7) 3颤 葆彻奢问溘(+) //SL_DASH_MAGIC_ATK <- 8 // (8) 渠卫 葆彻奢问溘(+) //SL_JUMP_MAGIC_ATK <- 9 // (9) C(薄?) 葆彻奢问溘(+) local posX = obj.getXPos(); local posY = obj.getYPos(); local posZ = obj.getZPos(); local dir = sq_GetDirection(obj); local power = 0; if(obj.getAttackIndex() == 0) { // 陕撩 渗褐鼻鹧 晦狱 奢问 葆虽虞桧塭贼.. local v = 5; local dstX = sq_GetDistancePos(posX, obj.getDirection(), v); if(obj.isMovablePos(dstX, posY)) { obj.setCurrentPos(dstX, posY, posZ); } obj.setAttackXVelocity(50); obj.setAttackXAccel(-300); obj.setAttackXVelocityFast(100); obj.setAttackXAccelFast(-300); //print(" sqr_CreatePooledObject 4_dust_normal.ani"); sqr_CreatePooledObject(obj, "Effect/Animation/Awakening/attack/attack1/4_dust_normal.ani", posX, posY + 1, posZ, dir); } if(obj.getAttackIndex() == 1) { // 陕撩 渗褐鼻鹧 晦狱 奢问 葆虽虞桧塭贼.. obj.getVar().push_vector(0); obj.getVar().push_vector(0); obj.getVar().push_vector(0); //print(" sqr_CreatePooledObject 4_dust_normal_0.ani"); //print(" sqr_CreatePooledObject 4_dust_normal_1.ani"); sqr_CreatePooledObject(obj, "Effect/Animation/Awakening/attack/attack2/4_dust_normal_0.ani", posX, posY + 1, posZ, dir); sqr_CreatePooledObject(obj, "Effect/Animation/Awakening/attack/attack2/4_dust_normal_1.ani", posX, posY + 1, posZ, dir); } if(obj.getAttackIndex() == 2) { // 陕撩 渗褐鼻鹧 晦狱 奢问 葆虽虞桧塭贼.. obj.getVar().push_vector(0); obj.getVar().push_vector(0); obj.getVar().push_vector(0); } if(obj.getAttackIndex() == 3) { // 陕撩 渗褐鼻鹧 晦狱 奢问 葆虽虞桧塭贼.. obj.getVar().push_vector(0); obj.getVar().push_vector(0); // 2廓 ?楚斜 醱瞪酝樯虽 嬴棋虽 ?钦?朝 ?楚斜 obj.getVar().push_vector(0); } if(obj.getAttackIndex() == 4) { // 陕撩 渗褐鼻鹧 晦狱 奢问 葆虽虞桧塭贼.. obj.getVar().push_vector(0); obj.getVar().push_vector(0); // 2廓 ?楚斜 醱瞪酝樯虽 嬴棋虽 ?钦?朝 ?楚斜 obj.getVar().push_vector(0); } // 陕撩?卫粽 : 学跦(48溯涟) // 1. 陕撩 渗褐 翕寰 陕撩晦 奢问溘桧 隶陛? // 2. 等网 蝶?塭桧醴暧 学葆 啪桧虽 离朝榆 隶陛. // 陕撩?卫粽 学跦击 乾坚 毡朝虽 羹觼?坚 乾坚 毡棻贼 学葆 啪桧虽 离朝榆击 隶陛卫面怃 葬欐?栖棻.. if(obj.getAttackIndex() < 3) { obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_AW_ATTACK1 + obj.getAttackIndex()); // local rate = obj.sq_getPassiveAttackRate(0, state, 1.0); //print("sq_getPassiveAttackRate:" + rate.tofloat()); power = obj.sq_getBonusRateWithPassive(SKILL_AVENGER_AWAKENING, state, SL_1_HIT_MAGIC_ATK + obj.getAttackIndex(),1.0); //local before_power = obj.sq_getSkillPower(SKILL_AVENGER_AWAKENING, SL_1_HIT_MAGIC_ATK + obj.getAttackIndex()); //print("before CUSTOM_ATTACKINFO_AW_ATTACK1:" + before_power); //print("CUSTOM_ATTACKINFO_AW_ATTACK1:" + power); } if(obj.getAttackIndex() >= 4) { // 横渐荡 - 菸蝶陛蛤树 虞颤 奢问溘 醱瞪缣 评塭 离桧蒂 尔殓栖棻.. obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_AW_ATTACK4); //power = obj.sq_getSkillPower(SKILL_AVENGER_AWAKENING, SL_JUMP_MAGIC_ATK); //power = obj.sq_getPowerWithPassive(SKILL_AVENGER_AWAKENING,SL_1_HIT_MAGIC_ATK + obj.getAttackIndex(),-1,1.0); //print("CUSTOM_ATTACKINFO_AW_ATTACK4:" + power); /////////////////////////////////// local chargeTime = sq_GetIntData(obj, SKILL_AVENGER_AWAKENING, 0); //薄? 葆彻 奢问 譆渠 醱瞪卫除 //local level = sq_GetSkillLevel(obj, SKILL_AVENGER_AWAKENING); //local AtkAdd = sq_GetLevelData(obj, SKILL_AVENGER_AWAKENING, SL_JUMP_MAGIC_ATK, level); //local fullchargeAtkAdd = sq_GetLevelData(obj, SKILL_AVENGER_AWAKENING, SL_JUMP_FULLCHARGE_MAGIC_ATK, level); //local offset = fullchargeAtkAdd - AtkAdd; // ?醱瞪 奢问溘娄 晦狱 奢问溘 饵桧暧 offset高击 掘?鱼棻.. //local stateTimer = obj.getStateTimer(); local basePower = obj.sq_getBonusRateWithPassive(SKILL_AVENGER_AWAKENING, state, SL_JUMP_MAGIC_ATK,1.0); local maxPower = obj.sq_getBonusRateWithPassive(SKILL_AVENGER_AWAKENING, state, SL_JUMP_FULLCHARGE_MAGIC_ATK,1.0); local stateTimer = obj.sq_getVectorData(datas, 1); // 罗廓箪 substate殓栖棻.. local resultPower = sq_GetUniformVelocity(basePower, maxPower, stateTimer, chargeTime); // 醱瞪高 // ?姜溯涟 桧鼻橾唳办 鼠亵勒 裟蝶 ?表 if(obj.isOverSkillLevel(SKILL_AVENGER_AWAKENING, 3)) resultPower = maxPower; power = resultPower; //print("stateTimer:" + stateTimer + " chargeTime:" + chargeTime); print("basePower:" + basePower + " maxPower:" + maxPower + " resultPower:" + resultPower + " timer:" + stateTimer); ////////////////////////////////// local awakening_var = obj.getVar("awakening"); awakening_var.get_ct_vector(0).Reset(); awakening_var.get_ct_vector(0).Start(0,0); local cooltime = getLoadSkillEnableTime(obj, SKILL_AVENGER_AWAKENING, 1); // 蛤?? 藤颤歜 awakening_var.set_vector(0, cooltime); // 藤颤歜撮? } obj.sq_setCurrentAttackBonusRate(power); } // prepareDraw ?热 殓栖棻.. function prepareDraw_AvengerAttack(obj) { } // loop 睡碟殓栖棻 ismycontrol煎 马谆虽 强擎 翱念胀 赅苌 object菟桧 桧够击 剪纂啪腌栖棻. function onProc_AvengerAttack(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); if(obj.getAttackIndex() == 2) { // 撮廓箪 ?纂朝 楼紫蒂 觊 绪脑啪 if(!obj.getVar().get_vector(0)) { if(frmIndex >= 0 && frmIndex < 5) { local pA = obj.sq_getCurrentAni(); obj.sq_setAnimationSpeedRate(pA, 160.0); obj.getVar().set_vector(0, 1); } } if(!obj.getVar().get_vector(1)) { if(frmIndex >= 5) { local pA = obj.sq_getCurrentAni(); obj.sq_setAnimationSpeedRate(pA, 100.0); obj.getVar().set_vector(1, 1); } } if(frmIndex >= 6) { local dustFlag = obj.getVar().get_vector(3); if(!dustFlag) { obj.getVar().set_vector(3, 1); //print("size_vector:" + obj.getVar().size_vector()); //local dustN = obj.getVar().GetAnimationMap("15_dust_normal","Character/Priest/Effect/Animation/Awakening/attack/attack3/15_dust_normal.ani"); //pAni.addLayerAnimation(1, dustN, false); // 奢问 试虽 当撩 local dust_n_Ani = obj.sq_createCNRDAnimation("Effect/Animation/Awakening/attack/attack3/15_dust_normal.ani"); local dustObj = obj.sq_createCNRDPooledObject(dust_n_Ani, true); dustObj.setCurrentDirection(obj.getDirection()); dustObj.setCurrentPos(posX, posY + 2, 0); obj.sq_AddObject(dustObj); //print("dustFlag:" + dustFlag); } } } if(obj.getAttackIndex() == 3) { // 葆虽虞 顶溥镒晦 醱瞪 酝 // 撮廓箪 ?纂朝 楼紫蒂 觊 绪脑啪 local chargeTime = sq_GetIntData(obj, SKILL_AVENGER_AWAKENING, 0); //薄? 葆彻 奢问 譆渠 醱瞪卫除 local stateTimer = obj.sq_getStateTimer(); if(chargeTime <= stateTimer && !obj.getVar().get_vector(0)) { print("\n fullCharge"); local pfullChargeAni = obj.getVar().GetAnimationMap("Attack4_2", "Character/Priest/Animation/AvengerAwakening/Attack4_2.ani"); if(pfullChargeAni) { obj.setCurrentAnimation(pfullChargeAni); } obj.getVar().set_vector(0, 1); } } if(obj.getAttackIndex() == 4) { // 葆虽虞 顶溥镒晦 奢问 // 撮廓箪 ?纂朝 楼紫蒂 觊 绪脑啪 if(!obj.getVar().get_vector(1)) { local pA = obj.sq_getCurrentAni(); obj.sq_setAnimationSpeedRate(pA, 100.0); obj.getVar().set_vector(1, 1); } } } // loop 睡碟殓栖棻 ismycontrol ?蝶?陛 狱樯桧 object陛 桧够击 菟横骨栖棻. setstate 撮?桧釭 ?卫粽螃粽薛? 当撩 , 蛔蛔 籀葬?栖棻. function onProcCon_AvengerAttack(obj) { if(!obj) return; if(isAvengerAwakenning(obj) == false) { local pAni = obj.sq_getCurrentAni(); local bEnd = obj.sq_ani_IsEnd(pAni); local frmIndex = obj.sq_ani_GetCurrentFrameIndex(pAni); if(obj.getAttackIndex() == 2) // 虏擒 3颤 箪塭贼.. { // (梦姜谏噢 ?棚) if(frmIndex >= 5) // 6廓 ?溯歜 桧鼻桧塭贼. { if(obj.getVar().get_vector(2) == 0) { // 2廓 ?楚斜陛 0桧塭贼 obj.getVar().set_vector(2, 1); // 2廓?楚斜蒂 1煎 夥羞棻 谒傍?贼 词 ?廓虏 桧寰戏煎 菟横谛捡?晦阳侥缣.. //print("CUSTOM_ATTACKINFO_AVENGER_ATTACK_3_2:" + CUSTOM_ATTACKINFO_AVENGER_ATTACK_3_2); obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_AVENGER_ATTACK_3_2); // 镒晦 奢问击 嫔? } } } // 锰?朝匙击 礼棻.. if(obj.getAttackIndex() == 3) // 虏擒 4颤 箪塭贼.. { if(frmIndex >= 7) { if(obj.getVar().get_vector(3) == 0) { // 3廓 ?楚斜陛 0桧塭贼 // 横渐荡 ?虞颤 2廓箪 atk?橾击 撮??晦 嫔?桧棻.. 镒晦奢问戏煎 夥绂晦 嫔?怃殓栖棻.. //print("obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_AVENGER_ATTACK_4_2);"); obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_AVENGER_ATTACK_4_2); obj.getVar().set_vector(3, 1); // 2廓?楚斜蒂 1煎 夥羞棻 谒傍?贼 词 ?廓虏 桧寰戏煎 菟横谛捡?晦阳侥缣.. } } if(frmIndex >= 8) // 8廓 ?溯歜 桧鼻桧塭贼. { if(obj.getVar().get_vector(2) == 0) { // 2廓 ?楚斜陛 0桧塭贼 obj.sq_setShake(obj, 1, 200); // 虽霞击 橾戏监棻.. obj.getVar().set_vector(2, 1); // 2廓?楚斜蒂 1煎 夥羞棻 谒傍?贼 词 ?廓虏 桧寰戏煎 菟横谛捡?晦阳侥缣.. } } } 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 (obj.getAttackIndex() < obj.sq_getAttackCancelStartFrameSize() && //frmIndex >= obj.sq_getAttackCancelStartFrame(obj.getAttackIndex()) && //sq_IsEnterCommand(obj, 1) //) if(obj.getAttackIndex() == 2) { // 陕撩 渗褐鼻鹧 晦狱 奢问 葆虽虞桧塭贼.. if(frmIndex >= 5) { if(obj.getVar().get_vector(2) == 0) { obj.getVar().set_vector(2, 1); obj.sq_setShake(obj, 2, 500); } } } if(obj.getAttackIndex() < 3) { sq_SetKeyxEnable(obj, 1, true); local bCommand = sq_IsEnterCommand(obj, 1); if (bCommand) { local var_awakening = obj.getVar("awakening"); local t = var_awakening.get_ct_vector(0).Get(); //print("var_awakening.get_ct_vector(0).Get():" + t + "var_awakening.get_vector(0):" + var_awakening.get_vector(0)); if(var_awakening.get_ct_vector(0).Get() > var_awakening.get_vector(0)) { // 濠羹 藤颤歜 羹觼 obj.sq_IntVectClear(); obj.sq_IntVectPush(3); // substate撮? obj.sq_addSetStatePacket(STATE_ATTACK, STATE_PRIORITY_USER, true); } else { // 藤颤歜桧 测 腑棻.. obj.startCantUseSkillWarning(); if (obj.isMessage()) { sq_AddMessage(414); // 414>藤颤歜殓栖棻. } } return; } } local posX = obj.getXPos(); local posY = obj.getYPos(); local posZ = obj.getZPos(); if(obj.getAttackIndex() == 3) { local bDownKey = sq_IsDownKey(obj, 1, false); local chargeTime = sq_GetIntData(obj, SKILL_AVENGER_AWAKENING, 0) * 2; //薄? 葆彻 奢问 譆渠 醱瞪卫除 local stateTimer = obj.sq_getStateTimer(); print("\n chargeTime:" + chargeTime + " stateTimer:" + stateTimer); // 蹂羶饵? // 谏醱 ?缣 谏醱卫除虏踯 ?脑贼 濠翕戏煎 剩横骨栖棻.. if(!bDownKey || stateTimer >= chargeTime) { // 桨击 嗥历棻朝匙擎.. obj.sq_IntVectClear(); obj.sq_IntVectPush(4); // substate撮? obj.sq_IntVectPush(stateTimer); // 晦狱缣怃 跷陛 奢问溘 obj.sq_addSetStatePacket(STATE_ATTACK, STATE_PRIORITY_USER, true); return; } } }