function setState_po_atswordman_bykk_kak(obj, state, datas) { if(!obj) return; local sqrChr = sq_GetCNRDObjectToSQRCharacter(obj.getTopCharacter()); local job = obj.getVar("job").getInt(0); local skillIndex = obj.getVar("skillIndex").getInt(0); local subtype = obj.getVar("subtype").getInt(0); obj.getVar("state").setInt(0,state); switch(job){ case 0: switch(skillIndex){ case 34: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/common/atexecution/start_md.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 190)); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(-1,sq_CreateAnimation("","passiveobject/atswordman_bykk/common/atexecution/haze_create_haze2.ani"),true); break; case 21: local aniPath = "passiveobject/atswordman_bykk/common/atexecution/loop_md.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(-1,sq_CreateAnimation("","passiveobject/atswordman_bykk/common/atexecution/haze_loop_haze2.ani"),true); break; case 22: local aniPath = "passiveobject/atswordman_bykk/common/atexecution/end_md.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(-1,sq_CreateAnimation("","passiveobject/atswordman_bykk/common/atexecution/haze_destroy_haze2.ani"),true); break; } break; } break; case 1: switch(skillIndex){ case SKILL_SWORDMASTER_BYKK_ATFLASH://瞬影三絕斬 break; case SKILL_SWORDMASTER_BYKK_BLADESOUL://斬魂術 break; case SKILL_SWORDMASTER_BYKK_BREAKSWORDDANCE://極 · 馭劍術 (破劍陣) switch(subtype){ case 1: switch(state){ case 20: case 21: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atbreaksworddance/atbreaksworddance_magic_circle_3.ani"; if(state == 21) aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atbreaksworddance/atbreaksworddance_magic_circle_end_1.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; case 2: switch(state){ case 20: case 21: local sub = obj.getVar("custom").getInt(10); local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atbreaksworddance/atbreaksworddance_casting_sword"+sub.tostring()+"_4.ani"; if(state == 21) aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atbreaksworddance/atbreaksworddance_disappear.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); if(state == 20) currentAni.addLayerAnimation(-1,sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atbreaksworddance/atbreaksworddance_bottom_2.ani"),true); else currentAni.addLayerAnimation(-1,sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atbreaksworddance/atbreaksworddance_disappear_2.ani"),true); break; } break; } break; case SKILL_SWORDMASTER_BYKK_CHANGESWORD://魔劍降臨 switch(subtype){ case 0: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atelementaleffect/thunder_dodge.ani";// switch(state){ case 100: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atelementalsword/fire/fireswordstart_01.ani";obj.getVar("custom").setInt(10, 0); break; case 110: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atelementalsword/fire/fireswordloop_01.ani";obj.getVar("custom").setInt(10, 0); break; case 101: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atelementalsword/ice/iceswordstart_01.ani";obj.getVar("custom").setInt(10, 1); break; case 111: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atelementalsword/ice/iceswordloop_01.ani";obj.getVar("custom").setInt(10, 1); break; case 102: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atelementalsword/dark/darkswordstart_01.ani";obj.getVar("custom").setInt(10, 2); break; case 112: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atelementalsword/dark/darkswordloop_01.ani";obj.getVar("custom").setInt(10, 2); break; case 103: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atelementalsword/light/lightswordstart_01.ani";obj.getVar("custom").setInt(10, 3); break; case 113: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atelementalsword/light/lightswordloop_01.ani";obj.getVar("custom").setInt(10, 3); break; } local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(state == 110 || state == 111 || state == 112 || state == 113){ if(!obj.isExistTimeEvent(10)) obj.setTimeEvent(10, 15, -1, true); } break; } break; case SKILL_SWORDMASTER_BYKK_DEVILSLASH://惡即斬 break; case SKILL_SWORDMASTER_BYKK_DRAGONUPEX://裂刃天衝 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atdragonup/newdragonup/up_4sword.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); local delay = currentAni.getDelaySum(0, 6); obj.setTimeEvent(1, delay, 1, false); break; case 21: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atdragonup/newdragonup/blast_blast_normal.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); sq_SetShake(obj, 16, 200); local totalDamage = obj.getVar("custom").getInt(12); local sizeRate = obj.getVar("custom").getInt(13); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 118)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local currentAni = obj.getCurrentAnimation(); sizeRate = sizeRate.tofloat() / 100.0; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; } break; case 3: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atdragonup/casting_start_sword_0.ani"; switch(state){ case 21: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atdragonup/casting_start_sword_1.ani"; break; case 22: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atdragonup/casting_start_sword_2.ani"; break; case 23: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atdragonup/casting_start_sword_disapear.ani"; break; } local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; case SKILL_SWORDMASTER_BYKK_EXCALIBUR://雷鳴千軍破 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/sword_start_dust1.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local element = obj.getVar("custom").getInt(11); local currentAni = obj.getCurrentAnimation(); switch(element){ case 0: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_start_fire_fire_glow.ani"),true); break; case 1: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_start_ice_ice_glow.ani"),true); break; case 2: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_start_dark_dark_glow.ani"),true); break; case 3: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_start_light_light_glow.ani"),true); break; case 4: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_start_mu_mu_glow.ani"),true); break; } local totalDamage = obj.getVar("custom").getInt(13); local sub = obj.getVar("custom").getInt(14); local sizeRate = obj.getVar("custom").getInt(15); cearteSkillPassiveObj_AtSwordMan_bykk(sqrChr,obj,PASSIVEOBJECT_BYKK_SWORDMASTER,0,0,0,obj.getDirection(),1,SKILL_SWORDMASTER_BYKK_EXCALIBUR,2,totalDamage,sub,sizeRate,0,0,0,0,0,1); break; case 21: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_loop_saberglowa.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local element = obj.getVar("custom").getInt(11); local currentAni = obj.getCurrentAnimation(); switch(element){ case 0: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_loop_fire_fire_glow.ani"),true); break; case 1: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_loop_ice_ice_glow.ani"),true); break; case 2: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_loop_dark_dark_glow.ani"),true); break; case 3: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_loop_light_light_glow.ani"),true); break; case 4: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_loop_mu_mu_glow.ani"),true); break; } obj.setTimeEvent(1, obj.getVar("custom").getInt(12), 1, false); break; case 22: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_exp_attack.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local element = obj.getVar("custom").getInt(11); local currentAni = obj.getCurrentAnimation(); switch(element){ case 0: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_bottom_normal.ani"),true); currentAni.addLayerAnimation(1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_fire_ex_saberboom_fire.ani"),true); break; case 1: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_bottom_normal.ani"),true); currentAni.addLayerAnimation(1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_ice_ex_saberboom_ice.ani"),true); break; case 2: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_bottom_normal.ani"),true); currentAni.addLayerAnimation(1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_dark_ex_saberboom_dark.ani"),true); break; case 3: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_bottom_normal.ani"),true); currentAni.addLayerAnimation(1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_light_ex_saberboom_light.ani"),true); break; case 4: currentAni.addLayerAnimation(-1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_bottom_normal.ani"),true); currentAni.addLayerAnimation(1, sq_CreateAnimation("","passiveobject/atswordman_bykk/swordmaster/animation/atexcalibur/excalibur_sword_end_mu_ex_saberboom_mu.ani"),true); break; } local totalDamage = obj.getVar("custom").getInt(10); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 119)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local currentAni = obj.getCurrentAnimation(); local delay = currentAni.getDelaySum(false); sq_SetMyShake(obj, 4, delay); local sizeRate = 1.5; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; } break; } break; case SKILL_SWORDMASTER_BYKK_FUSIONBLADE://極詣 · 馭劍術 : 聚魔劍 switch(subtype){ case 3: local element = obj.getVar("custom").getInt(10); local aniSet = [["passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummonfirestart_00.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummonicestart_00.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummondarkstart_00.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummonlightningstart_00.ani"], ["passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummonfireloop_00.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummoniceloop_00.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummondarkloop_00.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummonlightningloop_00.ani"], ["passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummonfireend_00.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummoniceend_00.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummondarkend_00.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atfusionblade/atfusionbladesummonlightningend_00.ani"]]; local ani = sq_CreateAnimation("",aniSet[state - 20][element]); obj.setCurrentAnimation(ani); if(state == 20) obj.setTimeEvent(1, obj.getVar("custom").getInt(11), 1, false); else if(state == 22){ local totalDamage = obj.getVar("custom").getInt(13); cearteSkillPassiveObj_AtSwordMan_bykk(sqrChr,obj,PASSIVEOBJECT_BYKK_SWORDMASTER,0,0,75,obj.getDirection(),1,SKILL_SWORDMASTER_BYKK_FUSIONBLADE,2,totalDamage,0,0,0,0,0,0,0,1); } break; } break; case SKILL_SWORDMASTER_BYKK_HALFMOON://破軍旋舞斬 break; case SKILL_SWORDMASTER_BYKK_ILLUSIONBLADE://幻劍術 switch(subtype){ case 1: local aniPath = ""; switch(state){ case 20: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atillusionblade/illusion_move1.ani"; break; case 21: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atillusionblade/illusion_attack1.ani"; break; case 22: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atillusionblade/illusion_attack2.ani"; break; case 23: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atillusionblade/illusion_attack3.ani"; break; } local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(state > 20){ sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, state + 104)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), obj.getVar("custom").getInt(10)); } else obj.setTimeEvent(1, 10, 35, true); local speedRate = obj.getVar("custom").getInt(15); local currentAni = obj.getCurrentAnimation(); currentAni.setSpeedRate(speedRate.tofloat()); break; case 2: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atillusionblade/illusion_move1.ani"; if(state == 21) aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atillusionblade/illusion_attack3.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(state == 21){ sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 127)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), obj.getVar("custom").getInt(10)); } else obj.setTimeEvent(1, 10, 35, true); local speedRate = obj.getVar("custom").getInt(17); local currentAni = obj.getCurrentAnimation(); currentAni.setSpeedRate(speedRate.tofloat()); break; } break; case SKILL_SWORDMASTER_BYKK_JACKCATCH://極 · 馭劍術 (幻劍陣) switch(subtype){ case 1: case 4: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/circle_start_circle1.ani"; switch(state){ case 21: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/circle_loop_circle2.ani"; break; case 22: aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/circle_end_circle2.ani"; break; } local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(subtype == 4 && state == 21){ obj.setTimeEvent(1, obj.getVar("custom").getInt(10), 1, false); } if(state == 22) obj.stopTimeEvent(4); if(subtype == 1 && state == 20){ local pAni = obj.getCurrentAnimation(); local speedRate = obj.getVar("custom").getInt(11); pAni.setSpeedRate(speedRate.tofloat()); } break; case 2: local aniPath1 = "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/";// local aniPath2 = [["firesword_start_fire_appear_8.ani", "icesword_start_ice_appear_8.ani", "darksword_start_dark_appear_8.ani", "lightsword_start_light_appear_8.ani"], ["circleglow_loop_circle_fire.ani", "circleglow_loop_circle_ice.ani", "circleglow_loop_circle_dark.ani", "circleglow_loop_circle_light.ani"], ["circleglow_end_circle_fire.ani", "circleglow_end_circle_ice.ani", "circleglow_end_circle_dark.ani", "circleglow_end_circle_light.ani"]] local element = obj.getVar("custom").getInt(10); local aniPath = aniPath1 + aniPath2[state - 20][element]; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(state == 21){ local currentAni = obj.getCurrentAnimation(); currentAni.setLoop(true); local aniPath = ["passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/firesword_fire_sword_3.ani","passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/icesword_ice_sword3.ani","passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/darksword_dark_sword3.ani","passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/lightsword_light_sword3.ani"]; currentAni.addLayerAnimation(1,sq_CreateAnimation("",aniPath[element]),true); } else if(state == 22){ local currentAni = obj.getCurrentAnimation(); local aniPath = ["passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/firesword_end_fire_sword_3.ani","passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/icesword_end_ice_sword3.ani","passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/darksword_end_dark_sword3.ani","passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/lightsword_end_light_sword3.ani"]; currentAni.addLayerAnimation(1,sq_CreateAnimation("",aniPath[element]),true); } else if(state == 20){ local pAni = obj.getCurrentAnimation(); local speedRate = obj.getVar("custom").getInt(11); pAni.setSpeedRate(speedRate.tofloat()); } break; case 5: local aniPath = [["passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/firesword_start_fire_appear_8.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/icesword_start_ice_appear_8.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/darksword_start_dark_appear_8.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/lightsword_start_light_appear_8.ani"], ["passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/new_atjackcatch/fire/magicswordshot_shoot_loop_fire.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/new_atjackcatch/ice/magicswordshot_shoot_loop_frozen.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/new_atjackcatch/dark/magicswordshot_shoot_loop_shadow.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/new_atjackcatch/light/magicswordshot_shoot_loop_light.ani"], ["passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/new_atjackcatch/fire/magicswordshot_explosion_fire.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/new_atjackcatch/ice/magicswordshot_explosion_frozen.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/new_atjackcatch/dark/magicswordshot_explosion_shadow.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/new_atjackcatch/light/magicswordshot_explosion_light.ani"]]; local element = obj.getVar("custom").getInt(11); local ani = sq_CreateAnimation("",aniPath[state - 20][element]); obj.setCurrentAnimation(ani); local delay = [1300,1600,1900,1000]; switch(state){ case 20: obj.setTimeEvent(2, delay[element], 1, false); local effPath = ["passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/firesword_fire_sword_3.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/icesword_ice_sword3.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/darksword_dark_sword3.ani", "passiveobject/atswordman_bykk/swordmaster/animation/atjackcatch/lightsword_light_sword3.ani"]; local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(1,sq_CreateAnimation("",effPath[element]),true); break; case 21: obj.setTimeEvent(3, 5, 20, false); obj.getVar("custom").setInt(14, sq_GetXPos(obj)); obj.getVar("custom").setInt(15, sq_GetYPos(obj)); switch(element){ case 0: sq_SetCustomRotate(obj, sq_ToRadian(90.0)); break; case 1: sq_SetCustomRotate(obj, sq_ToRadian(180.0)); break; case 3: sq_SetCustomRotate(obj, sq_ToRadian(270.0)); break; } break; case 22: local totalDamage = obj.getVar("custom").getInt(10); local atkIndex = [131,132,130,133]; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, atkIndex[element])); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local currentAni = obj.getCurrentAnimation(); local sizeRate = 1.3; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; } break; } break; case SKILL_SWORDMASTER_BYKK_LAEVATEINN://誓約之劍 : 雷沃汀 break; case SKILL_SWORDMASTER_BYKK_MAGICSWORDSHOOT://颶風魔劍 switch(subtype){ case 1: local element = obj.getVar("custom").getInt(11); local aniPath = [["passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordshoot/fire/magicswordshot_shoot_loop_fire.ani","passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordshoot/ice/magicswordshot_shoot_loop_frozen.ani","passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordshoot/dark/magicswordshot_shoot_loop_shadow.ani","passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordshoot/light/magicswordshot_shoot_loop_light.ani"],["passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordshoot/fire/magicswordshot_explosion_fire.ani","passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordshoot/ice/magicswordshot_explosion_frozen.ani","passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordshoot/dark/magicswordshot_explosion_shadow.ani","passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordshoot/light/magicswordshot_explosion_light.ani"]]; local atkIndex = [[136,138,134,140],[137,139,135,141]]; local bonus = [10,12]; local ani = sq_CreateAnimation("",aniPath[state - 20][element]); obj.setCurrentAnimation(ani); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, atkIndex[state - 20][element])); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), obj.getVar("custom").getInt(bonus[state - 20])); if(state == 21){ if(obj.getVar("move").getBool(0)) obj.sq_RemoveMoveParticle(); } break; } break; case SKILL_SWORDMASTER_BYKK_MAGICSWORDUP://魔劍奧義 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordup/p_ice_lance_00.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(300.0); break; case 21: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordup/p_ice_lance_end_01.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; case 3: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordup/p_light_on_01.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/atmagicswordup/p_light_expl.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; } break; case SKILL_SWORDMASTER_BYKK_THUNDERSLASH://穿雲破空劍 break; case SKILL_SWORDMASTER_BYKK_TIMESLASH://極 · 馭劍術 (時空斬) switch(subtype){ case 1: switch(state){ case 20: case 21: local aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/attimeslash/start_timeslash_ground.ani"; if(state == 21) aniPath = "passiveobject/atswordman_bykk/swordmaster/animation/attimeslash/slash_timeslash_ground.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; } break; case SKILL_SWORDMASTER_BYKK_UPPERSLASH://升龍劍 break; case SKILL_SWORDMASTER_BYKK_WEAPONCOMBO://帝國劍術 break; } break; case 2: switch(skillIndex){ case SKILL_DEMONSLAYER_BLOODDANCE://血飲狂舞 break; case SKILL_DEMONSLAYER_BLOODDEMONSWORD://汲血魔劍 break; case SKILL_DEMONSLAYER_BLOODOCTOPUSSWORD://蛇舞血輪劍 break; case SKILL_DEMONSLAYER_BLOODSEAL://喚魔 : 封之印 switch(subtype){ case 2: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atbloodseal/bloodseal_deb_b_00.ani"; switch(state){ case 20: obj.setTimeEvent(4, obj.getVar("custom").getInt(10), 1, false); obj.setTimeEvent(5, obj.getVar("custom").getInt(13), 1, false); obj.setTimeEvent(6, obj.getVar("custom").getInt(20), -1, false); break; case 21: obj.removeAllTimeEvent(); aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atbloodseal/blood_finish_12.ani"; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 67)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), obj.getVar("custom").getInt(12)); break; } local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(state == 20){ local currentAni = obj.getCurrentAnimation(); local sizeRate = 2.0; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); } break; case 3: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atbloodseal/blood_drop_01.ani"; switch(state){ case 20: obj.getVar("move").setInt(10, sq_GetZPos(obj)); obj.setTimeEvent(1, 15, 20, false); break; case 21: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atbloodseal/blood_droptotile_blood_tile_00.ani"; break; case 22: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atbloodseal/blood_tile_00.ani"; obj.setTimeEvent(2, obj.getVar("custom").getInt(21), 1, false); obj.setTimeEvent(3, obj.getVar("custom").getInt(24), -1, false); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 66)); sq_SetCurrentAttackPower(sq_GetCurrentAttackInfo(obj), obj.getVar("custom").getInt(22)); break; case 23: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atbloodseal/blood_tile_off_00.ani"; break; } local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(state != 20){ local sizeRate = obj.getVar("custom").getInt(23).tofloat() / 1000.0; local pAni = obj.getCurrentAnimation(); pAni.setImageRateFromOriginal(sizeRate, sizeRate); pAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(pAni, sizeRate, sizeRate, sizeRate); } break; } break; case SKILL_DEMONSLAYER_CLAWBLADE://蛇腹劍 : 纏 switch(subtype){ case 2: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atclawblade/devilswordtech/atclawblade_devilswordtechforce.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atclawblade/devilswordtech/atclawblade_devilswordtechboom7.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(11) * 3; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 69)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; } break; } break; case SKILL_DEMONSLAYER_DARKSTRIKE://喚魔 : 塔莫斯之襲 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atdarkstrike/create/2_daimus.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); sq_AddDrawOnlyAniFromParent(obj, "passiveobject/atswordman_bykk/demonslayer/animation/atdarkstrike/create/dust.ani", 0, 0, -sq_GetZPos(obj)); break; case 21: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atdarkstrike/loop/2_daimus_back.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.addLayerAnimation(1, sq_CreateAnimation("","passiveobject/atswordman_bykk/demonslayer/animation/atdarkstrike/loop/2_daimus.ani"), true); local totalDamage = obj.getVar("custom").getInt(10); local hitMax = obj.getVar("custom").getInt(11); local hitTime = obj.getVar("custom").getInt(12); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 70)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.setTimeEvent(1, hitTime, hitMax - 1, false); break; case 22: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atdarkstrike/end/2_daimus_back.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.addLayerAnimation(1,sq_CreateAnimation("","passiveobject/atswordman_bykk/demonslayer/animation/atdarkstrike/end/2_daimus.ani"), true); local totalDamage = obj.getVar("custom").getInt(15); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 71)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; } local currentAni = obj.getCurrentAnimation(); local sizeRate = obj.getVar("custom").getInt(13).tofloat() / 100.0; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; } break; case SKILL_DEMONSLAYER_GIGABLADE://空絕斬 : 仟刃 break; case SKILL_DEMONSLAYER_GIGASLASH://空絕斬 : 地裂 break; case SKILL_DEMONSLAYER_GREED://貪欲之燔祭 break; case SKILL_DEMONSLAYER_GROUPDANCE://群魔亂舞 switch(subtype){ case 1: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance/stay.ani"; switch(state){ case 20: break; case 21: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance/dash.ani"; break; case 22: switch(obj.getVar("custom").getInt(11)){ case 0: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_whipswordbal/whipswordbal1.ani"; break; case 1: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_snakedance/snakedance1.ani"; break; case 2: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_pikesword/pikesword.ani"; break; case 3: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_wildwhip/wildwhip1.ani"; break; case 4: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_blooddance/blooddancestart.ani"; break; } break; case 23: switch(obj.getVar("custom").getInt(11)){ case 0: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_whipswordbal/whipswordbal2.ani"; break; case 1: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_snakedance/snakedance2.ani"; break; case 2: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_pikesword/pikesworddrag.ani"; break; case 3: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_wildwhip/wildwhip2.ani"; break; case 4: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_blooddance/blooddanceloop.ani"; obj.setTimeEvent(1, 1010, 1, false); obj.setTimeEvent(2, 25, 40, true); break; } break; case 24: switch(obj.getVar("custom").getInt(11)){ case 0: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_whipswordbal/whipswordbal3.ani"; break; case 1: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_snakedance/snakedance3.ani"; break; case 2: break; case 3: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_wildwhip/wildwhip3.ani"; break; case 4: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance_blooddance/blooddancefinish.ani"; break; } break; } local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(state == 21){ local currentAni = obj.getCurrentAnimation(); currentAni.setSpeedRate(150.0); local pAni = obj.getCurrentAnimation(); local delaySum = pAni.getDelaySum(false); obj.setTimeEvent(3, delaySum / 10, 8, false); local drawObj = createOnlyDrawObject_AtSwordMan_bykk(obj, "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance/dance_move_dodge.ani", true, obj.getDirection(), sq_GetXPos(obj), sq_GetYPos(obj), 0, ENUM_DRAWLAYER_BOTTOM); sq_moveWithParent(obj, drawObj); local targetObj = obj.getVar("target").get_obj_vector(0); if(targetObj) setGroupdance_AtSwordman_bykk(obj, drawObj, targetObj); sq_SetCurrentDirection(obj, obj.getVar("move").getInt(13)); } break; } break; case SKILL_DEMONSLAYER_PHNOM://喚魔 : 逆天之普諾 switch(subtype){ case 1: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atphnom/boom1_phnom_smallboom_normal.ani"; switch(state){ case 21: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atphnom/boom2_phnom_smallboom_normal.ani"; break; case 22: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atphnom/boom3_phnom_smallboom_normal.ani"; break; case 23: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atphnom/boom4_phnom_smallboom_normal.ani"; break; case 24: aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atphnom/finish_phnomexplosion.ani"; break; } local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); local speedRate = obj.getVar("custom").getInt(14); local pAni = obj.getCurrentAnimation(); local totalDamage = obj.getVar("custom").getInt(10); local attackIndex = 75; if(state == 24){ totalDamage = obj.getVar("custom").getInt(11); attackIndex = 77; local sizeRate = obj.getVar("custom").getInt(13).tofloat() / 100.0; pAni.setImageRateFromOriginal(sizeRate, sizeRate); pAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(pAni, sizeRate, sizeRate, sizeRate); } pAni.setSpeedRate(speedRate.tofloat()); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, attackIndex)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; case 2: break; } break; case SKILL_DEMONSLAYER_PIKESWORD://蛇腹劍 : 刺 break; case SKILL_DEMONSLAYER_PREDATORGALOA://貪食者迦羅亞 switch(subtype){ case 1: switch(state){ case 20://普通 local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atpredatorgaloa/g_eater_main_body.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); obj.getVar("tar").clear_obj_vector(); local sub = obj.getVar("custom").getInt(16); obj.setTimeEvent(2, obj.getVar("custom").getInt(13) + sub * 100, 1, false); break; case 21://EAT01 case 26: local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atpredatorgaloa/g_eater_eat_a_normal.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); obj.getVar("move").setInt(10, sq_GetXPos(obj)); obj.getVar("move").setInt(11, sq_GetYPos(obj)); obj.getVar("move").setInt(12, sq_GetZPos(obj)); break; case 22://EAT02 local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atpredatorgaloa/g_eater_eat_b_normal.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); break; case 23://EAT03 local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atpredatorgaloa/g_eater_eat_c_normal.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); break; case 24://附上 local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atpredatorgaloa/g_eater_attach_body.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); local targetObj = obj.getVar("tar").get_obj_vector(0); sq_setCurrentAxisPos(obj, 2, sq_GetZPos(targetObj) + sq_GetObjectHeight(targetObj)); local totalDamage = obj.getVar("custom").getInt(10); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 79)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local hitTime = obj.getVar("custom").getInt(15); local hitMax = obj.getVar("custom").getInt(13); obj.setTimeEvent(3, hitTime, hitMax, true); break; case 25://結束 obj.removeAllTimeEvent(); local aniPath = "passiveobject/atswordman_bykk/demonslayer/animation/atpredatorgaloa/g_eater_finish_29.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(11); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 80)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local targetObj = sq_GetCNRDObjectToActiveObject(obj.getVar("tar").get_obj_vector(0)); if(targetObj) targetObj.getVar("predatorgaloa").setBool(0, false); break; } if(state == 21 || state == 22 || state == 23 || state == 26){ local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(200.0); } break; } break; case SKILL_DEMONSLAYER_RAGNAROK://弒神劍 : 諸神獻祭 break; case SKILL_DEMONSLAYER_SNAKEDANCE://蛇腹劍 : 舞 break; case SKILL_DEMONSLAYER_ULTIMATEBLADE://弒神劍 : 極 break; case SKILL_DEMONSLAYER_WHIPSWORDBAL://蛇腹劍 : 破 break; case SKILL_DEMONSLAYER_WILDWHIP://蛇腹劍 : 滅 break; } local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo && sq_GetSkillLevel(sqrChr, SKILL_DEMONSLAYER_CALLDAIMUS) > 0){ local bleedingProb = sq_GetLevelData(sqrChr, SKILL_DEMONSLAYER_CALLDAIMUS, 0, sq_GetSkillLevel(sqrChr, SKILL_DEMONSLAYER_CALLDAIMUS)); local bleedingTime = sq_GetLevelData(sqrChr, SKILL_DEMONSLAYER_CALLDAIMUS, 1, sq_GetSkillLevel(sqrChr, SKILL_DEMONSLAYER_CALLDAIMUS)); local bleedingDamage = sq_GetLevelData(sqrChr, SKILL_DEMONSLAYER_CALLDAIMUS, 2, sq_GetSkillLevel(sqrChr, SKILL_DEMONSLAYER_CALLDAIMUS)); sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_BLEEDING,bleedingProb,sq_GetSkillLevel(sqrChr, 174) + 10, bleedingTime, bleedingDamage); } break; case 3://vagabond switch(skillIndex){ case SKILL_VAGABOND_BIGJANG://如來神掌 switch(subtype){ case 1: case 2: local aniPath1 = "passiveobject/atswordman_bykk/vagabond/animation/atbigjang/skillcustomizing/"; switch(state){ case 20: local aniPath = aniPath1 + "normal_throw_hand.ani"; if(subtype == 2) aniPath = "passiveobject/atswordman_bykk/vagabond/animation/atbigjang/jump_throw_hand.ani"; print("aniPath = "+aniPath); local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); local delaySum = pAni.getDelaySum(false); local timeIndex = 1; if(subtype == 2){timeIndex = 2; delaySum = 150;} obj.setTimeEvent(timeIndex, delaySum / 20, 20, false); break; case 21: local aniPath = aniPath1 + "normal_throw_hand.ani"; if(subtype == 2) aniPath = aniPath1 + "jump_bomb_hand.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 22: obj.removeAllTimeEvent(); local aniPath = aniPath1 + "normal_bomb_d.ani"; if(subtype == 2) aniPath = aniPath1 + "jump_bomb_a.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(20); local attackIndex = 43; if(subtype == 2) attackIndex = 41; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, attackIndex)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; } local currentAni = obj.getCurrentAnimation(); local sizeRate = obj.getVar("custom").getInt(13) / 100.0; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; } break; case SKILL_VAGABOND_BLASTSWORD://回天璇鳴劍 break; case SKILL_VAGABOND_COALBAN://遊龍掌 break; case SKILL_VAGABOND_COMETBLADE://花舞仟魂殺 break; case SKILL_VAGABOND_DUALWEAPON://兩儀功 break; case SKILL_VAGABOND_EARTHPRESSURE://碎巖裂地掌 break; case SKILL_VAGABOND_FATALFLOWER://花開寒影 break; case SKILL_VAGABOND_FISTOFEXPLOSION://湮烈掌 switch(subtype){ case 2: switch(state){ case 20: local aniPath = "character/swordman/effect/animation/atfistofexplosion/hit01.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "character/swordman/effect/animation/atfistofexplosion/hit02loop.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local lifeTime = obj.getVar("custom").getInt(11); local hitMax = obj.getVar("custom").getInt(12); obj.setTimeEvent(1, lifeTime, 1, false); if(obj.getVar("custom").getInt(13) < 1) obj.setTimeEvent(2, lifeTime / (hitMax + 2), hitMax, false); break; case 22: local aniPath = "character/swordman/effect/animation/atfistofexplosion/hit03explosion.ani"; if(obj.getVar("custom").getInt(13) > 0) aniPath = "character/swordman/effect/animation/atfistofexplosion/talisman/atfistofexplosiontalismaneffect_04.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(10); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 60)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); if(obj.getVar("custom").getInt(13) > 0){ local currentAni = obj.getCurrentAnimation(); local sizeRate = 1.5; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); } break; } break; } break; case SKILL_VAGABOND_FLOWERBLADEDANCE://蓮花劍舞 break; case SKILL_VAGABOND_GONEWITHTHEPETAL://落英驚鴻掌 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "character/swordman/effect/animation/atgonewiththepetal/blockedforce.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "character/swordman/effect/animation/atgonewiththepetal/blockedforceend.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 22: // sq_setCurrentAxisPos(obj, 2, 0); local aniPath = "passiveobject/atswordman_bykk/vagabond/animation/atgonewiththepetal/explosiona2_02.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(10); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 51)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); sq_AddDrawOnlyAniFromParent(obj, "passiveobject/atswordman_bykk/vagabond/animation/atgonewiththepetal/explosionb_01.ani", 0, -2, 0); local aniPath = "passiveobject/atswordman_bykk/vagabond/animation/atgonewiththepetal/explosionc_00.ani"; createOnlyDrawObject_AtSwordMan_bykk(obj, aniPath, true, obj.getDirection(), sq_GetXPos(obj), sq_GetYPos(obj), 0, ENUM_DRAWLAYER_BOTTOM); break; } break; } break; case SKILL_VAGABOND_HERMITTRIPLESTEP://櫻花劫 break; case SKILL_VAGABOND_INHALATION://四象引 break; case SKILL_VAGABOND_MOONLIGHTSLASH://飛花逐月 break; case SKILL_VAGABOND_NEARBLOW://圓舞斬 break; case SKILL_VAGABOND_OVERBLOWSLASH://亂花葬 break; case SKILL_VAGABOND_RAPIDSTEP://一花渡江 break; case SKILL_VAGABOND_REVOLVINGSWORD://輪回劍 break; case SKILL_VAGABOND_SOARCUT://櫻落斬 break; case SKILL_VAGABOND_THREESIDE://三連斬 switch(subtype){ case 1: break; case 2: break; } break; case SKILL_VAGABOND_ZWEIVOLTAGEEX://嘯空十字斬 switch(subtype){ case 1: case 2: local aniPath1 = "passiveobject/atswordman_bykk/vagabond/animation/atzweivoltage/cross/"; switch(state){ case 20: local aniPath = aniPath1 + "zweivoltage_cross_b_start_leaf_d.ani"; if(subtype == 2) aniPath = aniPath1 + "zweivoltage_crossstart_leaf_d.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = aniPath1 + "zweivoltage_cross_b_loop_00.ani"; if(subtype == 2) aniPath = aniPath1 + "zweivoltage_crossloop_00.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(subtype == 1) obj.setTimeEvent(1, obj.getVar("custom").getInt(11) / 2, 1, false); if(obj.getVar("custom").getInt(12) > 0) obj.setTimeEvent(1, obj.getVar("custom").getInt(11), 1, false); break; case 22: local aniPath = aniPath1 + "zweivoltage_cross_c_loop_00.ani"; if(subtype == 2) aniPath = aniPath1 + "zweivoltage_cross_d_loop_00.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 23: local aniPath = aniPath1 + "zweivoltage_cross_b_end_d.ani"; if(subtype == 2) aniPath = aniPath1 + "zweivoltage_crossend_d.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; } break; } break; case 4: switch(skillIndex){ case SKILL_DARKEMPLER_BLACKMIRROR://魔鏡幻影陣 switch(subtype){ case 2: local aniPath1 = "passiveobject/atswordman_bykk/darktempler/animation/atblackmirror/mirror0"; local sub = obj.getVar("custom").getInt(0); if(sub > 9) aniPath1 = "passiveobject/atswordman_bykk/darktempler/animation/atblackmirror/mirror"; switch(state){ case 20://start local aniPath = aniPath1+sub.tostring()+"_start_09.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21://loop local aniPath = aniPath1+sub.tostring()+"_loop_05.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); obj.setTimeEvent(1,500,1,false); break; case 22://attack local aniPath = aniPath1+sub.tostring()+"_attack_05.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(1); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 0)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; case 23://end local aniPath = aniPath1+sub.tostring()+"_end_00.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; } break; case SKILL_DARKEMPLER_BUCKSHOT://釋魂飛彈 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atbuckshot/buckshot_bulletdummy.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); obj.setTimeEvent(3,10,-1,true); obj.setTimeEvent(2,600,1,false); break; case 22: obj.removeAllTimeEvent(); local targetObj = obj.getVar().get_obj_vector(0); if(targetObj && targetObj.getState() != STATE_DIE){ sq_setCurrentAxisPos(obj, 1, sq_GetYPos(targetObj) + 1); } else{ sq_SendDestroyPacketPassiveObject(obj); break; } local randomnumber = sq_getRandom(1,100),aniPath = ""; if(randomnumber > 55) aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atbuckshot/buckshot_expl_a_eff_01.ani"; else if(randomnumber > 10 && randomnumber <= 55) aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atbuckshot/buckshot_expl_b_eff_02.ani"; else aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atbuckshot/buckshot_expl_c_eff_08.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(10); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 3)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; } break; } break; case SKILL_DARKEMPLER_DEADLYCAPE://暗影囚殺 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdeadlycape/mass_start.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdeadlycape/mass_loop.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 22: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdeadlycape/mass_end.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 23: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdeadlycape/mass_fail.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; } break; case SKILL_DARKEMPLER_DESTROYER://暗影盛宴 switch(subtype){ case 2: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdestroyer/exray/spherestart_06.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local delay = obj.getVar("custom").getInt(11); local speedRate = 12000.0 / delay.tofloat(); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(speedRate); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdestroyer/exray/sphereloop1_06.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); sq_AddDrawOnlyAniFromParent(obj,"passiveobject/atswordman_bykk/darktempler/animation/atdestroyer/exray/spherecharge1_06.ani",0,0,0); break; case 22: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdestroyer/exray/exrayexplosoin_05.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(6,sq_CreateAnimation("","passiveobject/atswordman_bykk/darktempler/animation/atdestroyer/exray/exrayexplosoin.ani"),true); local totalDamage = obj.getVar("custom").getInt(10); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 6)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); sq_SetMyShake(obj, 5, 300); break; } break; } break; case SKILL_DARKEMPLER_DEUSEXRAY://天罰死光 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdeusexray/spherestart_06.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdeusexray/sphereloop1_06.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 22: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdeusexray/sphereloop2_09.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 23: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdeusexray/spherecharge1_06.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; } break; case SKILL_DARKEMPLER_DOOMSDAY://末日殺戮 switch(subtype){ case 2: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdoomsday/beginningup_01.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdoomsday/domeloopup_01.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 22: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdoomsday/domeboom_06.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; case 3: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdoomsday/beginningdown_02.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atdoomsday/domeloopdown_01.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; } break; case SKILL_DARKEMPLER_EVOLVE://汲魂之力 break; case SKILL_DARKEMPLER_HIDDENBLADE://影刃 break; case SKILL_DARKEMPLER_IMMOLATION://死亡獻祭 switch(subtype){ case 2: switch(state){ case 20: local aniPath = "character/swordman/effect/animation/atimmolation/cast222_05.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "character/swordman/effect/animation/atimmolation/loop_02.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 22: local aniPath = "character/swordman/effect/animation/atimmolation/end_magiccircle_01.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; case 3: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atimmolation/alter/start_03.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.addLayerAnimation(-1,sq_CreateAnimation("","character/swordman/effect/animation/atimmolation/cast222_05.ani"),true); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atimmolation/alter/loop_02.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.addLayerAnimation(-1,sq_CreateAnimation("","character/swordman/effect/animation/atimmolation/loop_02.ani"),true); local lifeTime = obj.getVar("custom").getInt(11); local delaySum = pAni.getDelaySum(false); if(delaySum < lifeTime) sq_SetFrameDelayTime(pAni, 0, lifeTime); break; case 22: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atimmolation/alter/end_03.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.addLayerAnimation(-1,sq_CreateAnimation("","character/swordman/effect/animation/atimmolation/end_magiccircle_01.ani"),true); local delaySum = pAni.getDelaySum(0,2); obj.setTimeEvent(2, delaySum, 1, false); // if(!sqrChr) break; // CNSquirrelAppendage.sq_RemoveAppendage(sqrChr, "character/atswordman/4_darktempler/shadowharvest/ap_shadowharvest.nut"); break; } break; } break; case SKILL_DARKEMPLER_JIHAD://天罰之劍 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atjihad/jihad_startmagiccircle_a.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atjihad/jihad_magiccircleloop_a.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(10); cearteSkillPassiveObj_AtSwordMan_bykk(obj,obj,PASSIVEOBJECT_BYKK_DARKEMPLER,0,0,0,ENUM_DIRECTION_RIGHT,4,SKILL_DARKEMPLER_JIHAD,2,totalDamage,0,0,0,0,0,0,0,0); break; case 22: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atjihad/jihad_magiccircleend_a.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; case 2: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atjihad/jihad_summon_a.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); sq_setCurrentAxisPos(obj, 2, 350); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atjihad/jihad_attack_sword.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); sq_flashScreen(obj, 0, 80, 480, 255, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM); sq_setCurrentAxisPos(obj, 2, 0); local pAni = obj.getCurrentAnimation(); local delaySum = pAni.getDelaySum(0,0); obj.setTimeEvent(1, delaySum, 1, false); break; } break; } break; case SKILL_DARKEMPLER_LACERTHORNS://暗影綻放:死亡荊棘 break; case SKILL_DARKEMPLER_LOYALSLAVE://靈魂傀儡 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atloyalslave/loyalservant_start_body.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atloyalslave/loyalservant_repeat_body.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local lifeTime = obj.getVar("custom").getInt(10); local hitTime = obj.getVar("custom").getInt(11); obj.setTimeEvent(1, lifeTime, 1, false); obj.setTimeEvent(2, hitTime, -1, true); break; case 22: obj.removeAllTimeEvent(); local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atloyalslave/loyalservant_end_body.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } break; } break; case SKILL_DARKEMPLER_MADNESS://釋魂狂怒 switch(subtype){ case 2: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atmadness/madness_laser_02.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); obj.setTimeEvent(10, 3, -1, true); obj.setTimeEvent(11, 240 / obj.getVar("custom").getInt(10) * 100, 1, false); break; case 21: obj.removeAllTimeEvent(); local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atmadness/madness_explo_a.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); sq_SetCustomRotate(obj, sq_ToRadian(-45.0)); break; } break; case 3: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atmadness/explosion.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 23)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), obj.getVar("custom").getInt(11)); local currentAni = obj.getCurrentAnimation(); local sizeRate = obj.getVar("custom").getInt(12).tofloat() / 112.5; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); print("test = "+ obj.getVar("custom").getInt(11)); print("test2 = "+ obj.getVar("custom").getInt(12)); break; } break; } break; case SKILL_DARKEMPLER_PUNISHMENT://神罰·滅世裁決 break; case SKILL_DARKEMPLER_SCAFFOLD://暗影禁錮 local aniPath1 = "passiveobject/atswordman_bykk/darktempler/animation/atscaffold/"; switch(subtype){ case 1: switch(state){ case 20: local aniPath = aniPath1 + "marble_00.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); obj.sq_SetMoveParticle("particle/scaffold.ptl", 0.0, 0.0); // sq_SetSpeedToMoveParticle(obj,0,1200); // sq_SetSpeedToMoveParticle(obj,2,-1200); break; case 21: local aniPath = aniPath1 + "up_00.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(0); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 25)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; } break; case 2: switch(state){ case 20: local aniPath = aniPath1 + "newcatchmarble_06.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); local lifeTime = obj.getVar("custom").getInt(1); obj.setTimeEvent(1, lifeTime, 1, false); break; case 21: local aniPath = aniPath1 + "boom_11.ani"; local ani = sq_CreateAnimation("", aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(0); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 24)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; } break; } break; case SKILL_DARKEMPLER_SHADOWBINDING://暗影纏襲 switch(subtype){ case 1: local aniPath1 = "passiveobject/atswordman_bykk/darktempler/animation/atshadowbinding/"; switch(state){ case 20: local aniPath = aniPath1+"casting_shadowbinding_shadow.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = aniPath1+"loop_shadowbinding_shadow.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local lifeTime = obj.getVar("custom").getInt(2); obj.setTimeEvent(1,lifeTime,1,false); local totalDamage = obj.getVar("custom").getInt(0); obj.getVar("targetObj").clear_obj_vector(); local objectManager = obj.getObjectManager(); local objectNumber = objectManager.getCollisionObjectNumber(); for(local i = 0; i < objectNumber; i++){ local object = objectManager.getCollisionObject(i); if(object && object.isObjectType(OBJECTTYPE_ACTIVE) && obj.isEnemy(object)){ local activeObj = sq_GetCNRDObjectToActiveObject(object); if(sq_Abs(sq_GetYPos(activeObj) - sq_GetYPos(obj)) <= 15 && isFrontObject(obj,activeObj)){ local AddAppendage = CNSquirrelAppendage.sq_AppendAppendage(activeObj, obj, -1, false, "character/atswordman/4_darktempler/shadowbinding/ap_shadowbinding.nut", true); sq_HoldAndDelayDie(activeObj, obj, true, true, true, 0, 20, ENUM_DIRECTION_NEUTRAL , AddAppendage); local uniqueId = sq_GetObjectId(activeObj); obj.getVar("targetObj").push_obj_vector(activeObj); cearteSkillPassiveObj_AtSwordMan_bykk(obj,activeObj,PASSIVEOBJECT_BYKK_DARKEMPLER,0,0,0,obj.getDirection(),4,SKILL_DARKEMPLER_SHADOWBINDING,2,totalDamage,uniqueId,0,0,0,0,0,0,1); } } } break; case 22: local aniPath = aniPath1+"end_shadowbinding_shadow.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; } local pAni = obj.getCurrentAnimation(); local sizeRate = obj.getVar("custom").getInt(3).tofloat() / 100.0; pAni.setImageRateFromOriginal(sizeRate, 1.0); break; } break; case SKILL_DARKEMPLER_SHADOWHARVEST://暗影旋渦 local aniPath1 = "passiveobject/atswordman_bykk/darktempler/animation/atshadowharvest/"; switch(subtype){ case 1: switch(state){ case 20://fly local aniPath = aniPath1+"flyingkal_shadowharvest_flyingkal_normal.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); obj.sq_SetMoveParticle("particle/shadowharvest.ptl", 0.0, 0.0); sq_SetSpeedToMoveParticle(obj,0,1200); sq_SetSpeedToMoveParticle(obj,2,-1200); break; case 21://start sq_SetMyShake(obj,5,100); obj.sq_RemoveMoveParticle(); local aniPath = aniPath1+"startcircle_shadowharvestrenewal_sword.ani"; if(obj.getVar("custom").getInt(10) > 0) aniPath = aniPath1+"lv95passive/startcircle_shadowharvestlv95passive_sword.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(0); local range = obj.getVar("custom").getInt(1); local lifeTime = obj.getVar("custom").getInt(2); local hitTime = obj.getVar("custom").getInt(3); local isSeal = obj.getVar("custom").getInt(4); cearteSkillPassiveObj_AtSwordMan_bykk(sqrChr,obj,PASSIVEOBJECT_BYKK_DARKEMPLER,0,0,0,obj.getDirection(),4,SKILL_DARKEMPLER_SHADOWHARVEST,2,totalDamage,range,lifeTime,hitTime,isSeal,0,0,0,1); obj.setTimeEvent(1, lifeTime, 1, false); break; case 22://loop local aniPath = aniPath1+"loopcircle_shadowharvestrenewal_sword.ani"; if(obj.getVar("custom").getInt(10) > 0) aniPath = aniPath1+"lv95passive/loopcircle_shadowharvestlv95passive_sword.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 23://end local aniPath = aniPath1+"endcircle_shadowharvestrenewal_sword.ani"; if(obj.getVar("custom").getInt(10) > 0) aniPath = aniPath1+"lv95passive/endcircle_shadowharvestlv95passive_end_sword.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 24://explosion local aniPath = aniPath1+"lv95passive/explosion_shadowharvestlv95passive_explosion.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(5); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 28)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; } break; case 2: switch(state){ case 20://start local aniPath = aniPath1+"startcircle_shadowharvest_magiccircle_normal.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21://loop local aniPath = aniPath1+"loopcircle_shadowharvest_magiccircle_normal.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(0); local lifeTime = obj.getVar("custom").getInt(2); local hitTime = obj.getVar("custom").getInt(3); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 30)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.setTimeEvent(1, lifeTime, 1, false); obj.setTimeEvent(2, hitTime, -1, false); local isSeal = obj.getVar("custom").getInt(4); if(isSeal > 0){ if(!sqrChr) break; local appendage = CNSquirrelAppendage.sq_AppendAppendage(sqrChr, obj, -1, false, "character/atswordman/4_darktempler/shadowharvest/ap_shadowharvest.nut", false); if(appendage){ CNSquirrelAppendage.sq_Append(appendage, sqrChr, obj); local auraAppendage = appendage.sq_getAuraMaster("auraMaster"); if(!auraAppendage) auraAppendage = appendage.sq_AddAuraMaster("auraMaster", sqrChr, obj, 1200, 18, 5, 0); local range = obj.getVar("custom").getInt(1); if(auraAppendage) auraAppendage.setAttractionInfo(100, 100, range, 100); } } break; case 22://end local aniPath = aniPath1+"endcircle_shadowharvest_magiccircle_normal.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(!sqrChr) break; CNSquirrelAppendage.sq_RemoveAppendage(sqrChr, "character/atswordman/4_darktempler/shadowharvest/ap_shadowharvest.nut"); break; } local range = obj.getVar("custom").getInt(1); local currentAni = obj.getCurrentAnimation();//得到當前ani local sizeRate = range.tofloat() / 170.0;//轉換浮點數運算 currentAni.setImageRateFromOriginal(sizeRate, sizeRate);//增加ani 寬度跟高度率 currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate);//增加ani als附加 ani大小比例 sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate);//攻擊框,x y z比率 break; } break; case SKILL_DARKEMPLER_SHADOWLANCER://暗影之矛 break; case SKILL_DARKEMPLER_SHADOWPUPPET://魅影暗魂斬 switch(subtype){ case 2: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atshadowpuppet/summon_shadowpuppet_puppet.ani"; if(obj.getVar("custom").getInt(4) > 0) aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atshadowpuppet/lv95passive/shadowpuppetbody_00.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atshadowpuppet/puppetdash_shadowpuppet_puppet.ani"; if(obj.getVar("custom").getInt(4) > 0) aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atshadowpuppet/lv95passive/shadowpuppetdisappear_00.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); if(obj.getVar("custom").getInt(4) < 1){ sq_AddDrawOnlyAniFromParent(obj,"passiveobject/atswordman_bykk/darktempler/animation/atshadowpuppet/puppetdash_shadowpuppet_dash.ani",-250,0,20); sq_AddDrawOnlyAniFromParent(obj,"passiveobject/atswordman_bykk/darktempler/animation/atshadowpuppet/puppetdash_shadowpuppet_dust.ani",0,0,0); } break; } break; } break; case SKILL_DARKEMPLER_SOULDRAIN://靈魂攝取 switch(subtype){ case 1: local aniPath1 = "passiveobject/atswordman_bykk/darktempler/animation/atsouldrain/"; switch(state){ case 20: local aniPath = aniPath1 + "start_03.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); break; case 21: local aniPath = aniPath1 + "loop_02.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local lifeTime = obj.getVar("custom").getInt(1); local hitTime = obj.getVar("custom").getInt(5); obj.setTimeEvent(1, lifeTime, 1, false); obj.setTimeEvent(2, hitTime, -1, true); obj.getVar("targetObj").clear_obj_vector(); break; case 22: obj.removeAllTimeEvent(); local aniPath = aniPath1 + "end_03.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local size = obj.getVar("targetObj").get_obj_vector_size(); local number = obj.getVar("custom").getInt(6); if(size < 1) break; for(local i = 0; i < size; i++){ local targetObj = obj.getVar("targetObj").get_obj_vector(i); if(targetObj){ local activeObj = sq_GetCNRDObjectToActiveObject(targetObj); activeObj.getVar("hit").setInt(number,0); } } break; } break; } break; case SKILL_DARKEMPLER_STARFALL://魔影轟殺 switch(subtype){ case 1: switch(state){ case 20: local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atstarfall/rush_01.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local targetObj = obj.getVar("target").get_obj_vector(0); if(targetObj) obj.getVar("custom").setInt(12, sq_Abs(sq_GetXPos(targetObj) - sq_GetXPos(obj))); obj.setTimeEvent(1,5,-1,false); local pAni = obj.getCurrentAnimation(); sq_ClearAttackBox(pAni); break; case 21: obj.removeAllTimeEvent(); local aniPath = "passiveobject/atswordman_bykk/darktempler/animation/atstarfall/floor.ani"; local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); local totalDamage = obj.getVar("custom").getInt(10); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 24)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; } break; } break; } break; } local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo){ local element_kk_fire = sqrChr.getVar("element_kk").getInt(0); local element_kk_water = sqrChr.getVar("element_kk").getInt(1); local element_kk_dark = sqrChr.getVar("element_kk").getInt(2); local element_kk_light = sqrChr.getVar("element_kk").getInt(3); if(!attackInfo.isValidElement(ENUM_ELEMENT_FIRE) && element_kk_fire > 0) attackInfo.setElement(ENUM_ELEMENT_FIRE); if(!attackInfo.isValidElement(ENUM_ELEMENT_WATER) && element_kk_water > 0) attackInfo.setElement(ENUM_ELEMENT_WATER); if(!attackInfo.isValidElement(ENUM_ELEMENT_DARK) && element_kk_dark > 0) attackInfo.setElement(ENUM_ELEMENT_DARK); if(!attackInfo.isValidElement(ENUM_ELEMENT_LIGHT) && element_kk_light > 0) attackInfo.setElement(ENUM_ELEMENT_LIGHT); } } function onEndCurrentAni_po_atswordman_bykk_kak(obj) { if(!obj) return; local sqrChr = sq_GetCNRDObjectToSQRCharacter(obj.getTopCharacter()); local job = obj.getVar("job").getInt(0); local skillIndex = obj.getVar("skillIndex").getInt(0); local subtype = obj.getVar("subtype").getInt(0); local state = obj.getVar("state").getInt(0); switch(job){ case 0: switch(skillIndex){ case 94: sq_SendDestroyPacketPassiveObject(obj); break; case 87: sq_SendDestroyPacketPassiveObject(obj); break; case 34: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 1: switch(skillIndex){ case SKILL_SWORDMASTER_BYKK_ATFLASH://瞬影三絕斬 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_SWORDMASTER_BYKK_BLADESOUL://斬魂術 break; case SKILL_SWORDMASTER_BYKK_BREAKSWORDDANCE://極 · 馭劍術 (破劍陣) switch(subtype){ case 1: case 2: if(state == 21) sq_SendDestroyPacketPassiveObject(obj); break; case 10: sq_SendDestroyPacketPassiveObject(obj); break; case 11: sq_SendDestroyPacketPassiveObject(obj); break; case 20: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_SWORDMASTER_BYKK_CHANGESWORD://魔劍降臨 switch(subtype){ case 0: switch(state){ case 100: case 101: case 102: case 103: obj.addSetStatePacket(state + 10, null, STATE_PRIORITY_AUTO, false, ""); break; } break; case 1: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_SWORDMASTER_BYKK_DEVILSLASH://惡即斬 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_SWORDMASTER_BYKK_DRAGONUPEX://裂刃天衝 switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 3: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: obj.addSetStatePacket(23, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: case 4: if(subtype == 2){ local totalDamage = obj.getVar("custom").getInt(12); local sizeRate = obj.getVar("custom").getInt(13); cearteSkillPassiveObj_AtSwordMan_bykk(obj,obj,PASSIVEOBJECT_BYKK_SWORDMASTER,125,0,25,obj.getDirection(),1,SKILL_SWORDMASTER_BYKK_DRAGONUPEX,4,totalDamage,sizeRate,0,0,0,0,0,0,1); } sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_SWORDMASTER_BYKK_EXCALIBUR://雷鳴千軍破 switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; case 3: sq_SendDestroyPacketPassiveObject(obj); break; case 10: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_SWORDMASTER_BYKK_FUSIONBLADE://極詣 · 馭劍術 : 聚魔劍 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; case 3: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_SWORDMASTER_BYKK_HALFMOON://破軍旋舞斬 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_SWORDMASTER_BYKK_ILLUSIONBLADE://幻劍術 switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: case 22: if(obj.getVar("custom").getInt(14) >= obj.getVar("custom").getInt(11) - 2){ obj.addSetStatePacket(23, null, STATE_PRIORITY_AUTO, false, ""); } else{ obj.getVar("custom").setInt(14, obj.getVar("custom").getInt(14) + 1); local addstate = 22; if(state == 22) addstate = 21; obj.addSetStatePacket(addstate, null, STATE_PRIORITY_AUTO, false, ""); } break; case 23: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: if(obj.getVar("custom").getInt(14) >= obj.getVar("custom").getInt(11) - 1) sq_SendDestroyPacketPassiveObject(obj); else{ obj.getVar("custom").setInt(14, obj.getVar("custom").getInt(14) + 1); obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); } break; } break; case 3: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_SWORDMASTER_BYKK_JACKCATCH://極 · 馭劍術 (幻劍陣) switch(subtype){ case 1: case 4: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 3: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_SWORDMASTER_BYKK_LAEVATEINN://誓約之劍 : 雷沃汀 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_SWORDMASTER_BYKK_MAGICSWORDSHOOT://颶風魔劍 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_SWORDMASTER_BYKK_MAGICSWORDUP://魔劍奧義 switch(subtype){ case 0: case 2: sq_SendDestroyPacketPassiveObject(obj); break; case 1: // switch(state){ // case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; // case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; // case 22: sq_SendDestroyPacketPassiveObject(obj); break; // } // break; case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_SWORDMASTER_BYKK_THUNDERSLASH://穿雲破空劍 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_SWORDMASTER_BYKK_TIMESLASH://極 · 馭劍術 (時空斬) switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; case 3: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_SWORDMASTER_BYKK_UPPERSLASH://升龍劍 break; case SKILL_SWORDMASTER_BYKK_WEAPONCOMBO://帝國劍術 sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: switch(skillIndex){ case SKILL_DEMONSLAYER_BLOODDANCE://血飲狂舞 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_DEMONSLAYER_BLOODDEMONSWORD://汲血魔劍 break; case SKILL_DEMONSLAYER_BLOODOCTOPUSSWORD://蛇舞血輪劍 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_DEMONSLAYER_BLOODSEAL://喚魔 : 封之印 switch(subtype){ case 2: switch(state){ case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 3: switch(state){ case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DEMONSLAYER_CLAWBLADE://蛇腹劍 : 纏 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: if(state == 21) sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_DEMONSLAYER_DARKSTRIKE://喚魔 : 塔莫斯之襲 switch(subtype){ case 1: switch(state){ case 20: if(obj.getVar("custom").getInt(14) > 0)obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); else obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DEMONSLAYER_GIGABLADE://空絕斬 : 仟刃 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_DEMONSLAYER_GIGASLASH://空絕斬 : 地裂 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_DEMONSLAYER_GREED://貪欲之燔祭 break; case SKILL_DEMONSLAYER_GROUPDANCE://群魔亂舞 switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: obj.addSetStatePacket(23, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: if(obj.getVar("custom").getInt(11) == 2){ sq_AddDrawOnlyAniFromParent(obj, "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance/disappear_dance_fog.ani", 0, 0, 0); sq_SendDestroyPacketPassiveObject(obj); } else obj.addSetStatePacket(24, null, STATE_PRIORITY_AUTO, false, ""); break; case 24: sq_AddDrawOnlyAniFromParent(obj, "passiveobject/atswordman_bykk/demonslayer/animation/atgroupdance/disappear_dance_fog.ani", 0, 0, 0); sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DEMONSLAYER_PHNOM://喚魔 : 逆天之普諾 switch(subtype){ case 1: if(state < 24){ if(obj.getVar("custom").getInt(15) + 1 == obj.getVar("custom").getInt(12)) obj.addSetStatePacket(24, null, STATE_PRIORITY_AUTO, false, ""); else{ obj.getVar("custom").setInt(15, obj.getVar("custom").getInt(15) + 1); switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: obj.addSetStatePacket(23, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; } } } else sq_SendDestroyPacketPassiveObject(obj); break; case 2: break; } break; case SKILL_DEMONSLAYER_PIKESWORD://蛇腹劍 : 刺 break; case SKILL_DEMONSLAYER_PREDATORGALOA://貪食者迦羅亞 switch(subtype){ case 1: switch(state){ case 21: obj.setTimeEvent(1, 10, 20, true); break; case 22: case 23: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 25: sq_SendDestroyPacketPassiveObject(obj); break; case 26: obj.setTimeEvent(6, 10, 20, true); break; } break; } break; case SKILL_DEMONSLAYER_RAGNAROK://弒神劍 : 諸神獻祭 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_DEMONSLAYER_SNAKEDANCE://蛇腹劍 : 舞 break; case SKILL_DEMONSLAYER_ULTIMATEBLADE://弒神劍 : 極 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_DEMONSLAYER_WHIPSWORDBAL://蛇腹劍 : 破 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_DEMONSLAYER_WILDWHIP://蛇腹劍 : 滅 sq_SendDestroyPacketPassiveObject(obj); break; } break; case 3://vagabond switch(skillIndex){ case SKILL_VAGABOND_BIGJANG://如來神掌 switch(subtype){ case 1: switch(state){ case 20: //obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: switch(state){ case 20: break; case 21: case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_VAGABOND_BLASTSWORD://回天璇鳴劍 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_VAGABOND_COALBAN://遊龍掌 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_VAGABOND_COMETBLADE://花舞仟魂殺 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_VAGABOND_DUALWEAPON://兩儀功 break; case SKILL_VAGABOND_EARTHPRESSURE://碎巖裂地掌 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_VAGABOND_FATALFLOWER://花開寒影 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_VAGABOND_FISTOFEXPLOSION://湮烈掌 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } } break; case SKILL_VAGABOND_FLOWERBLADEDANCE://蓮花劍舞 break; case SKILL_VAGABOND_GONEWITHTHEPETAL://落英驚鴻掌 switch(subtype){ case 1: switch(state){ case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_VAGABOND_HERMITTRIPLESTEP://櫻花劫 break; case SKILL_VAGABOND_INHALATION://四象引 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_VAGABOND_MOONLIGHTSLASH://飛花逐月 break; case SKILL_VAGABOND_NEARBLOW://圓舞斬 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_VAGABOND_OVERBLOWSLASH://亂花葬 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_VAGABOND_RAPIDSTEP://一花渡江 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_VAGABOND_REVOLVINGSWORD://輪回劍 break; case SKILL_VAGABOND_SOARCUT://櫻落斬 break; case SKILL_VAGABOND_THREESIDE://三連斬 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_VAGABOND_ZWEIVOLTAGEEX://嘯空十字斬 switch(subtype){ case 1: case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: if(subtype == 2){ local size = sqrChr.getVar("zwei_tar").get_obj_vector_size(); if(size > 0){ for(local i = 0; i < size; i++){ local targetObj = sqrChr.getVar("zwei_tar").get_obj_vector(i); if(targetObj){ local activeObj = sq_GetCNRDObjectToActiveObject(targetObj); CNSquirrelAppendage.sq_RemoveAppendage(activeObj, "character/atswordman/3_vagabond/zweivoltageex/ap_zweivoltageex.nut"); local totalDamage = obj.getVar("custom").getInt(10); cearteSkillPassiveObj_AtSwordMan_bykk(obj, activeObj, PASSIVEOBJECT_BYKK_VAGABOND, 0, 0, sq_GetObjectHeight(activeObj) / 2, obj.getDirection(), 3, SKILL_VAGABOND_ZWEIVOLTAGEEX, 3, totalDamage, 0, 0, 0, 0, 0, 0, 0, 0); } } } } obj.addSetStatePacket(23, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: local size = sqrChr.getVar("zwei_tar").get_obj_vector_size(); if(size > 0){ for(local i = 0; i < size; i++){ local targetObj = sqrChr.getVar("zwei_tar").get_obj_vector(i); if(targetObj){ local activeObj = sq_GetCNRDObjectToActiveObject(targetObj); CNSquirrelAppendage.sq_RemoveAppendage(activeObj, "character/atswordman/3_vagabond/zweivoltageex/ap_zweivoltageex.nut"); } } } sq_SendDestroyPacketPassiveObject(obj); break; } break; case 3: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 4: switch(skillIndex){ case SKILL_DARKEMPLER_BLACKMIRROR://魔鏡幻影陣 switch(subtype){ case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DARKEMPLER_BUCKSHOT://釋魂飛彈 switch(subtype){ case 1: switch(state){ case 22: sq_SendDestroyPacketPassiveObject(obj); } break; case 3: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_DARKEMPLER_DEADLYCAPE://暗影囚殺 switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: case 23: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_DARKEMPLER_DESTROYER://暗影盛宴 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: switch(state){ case 20: case 21: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } } break; case SKILL_DARKEMPLER_DEUSEXRAY://天罰死光 switch(subtype){ case 1: switch(state){ case 20: case 21: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; case 3: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_DARKEMPLER_DOOMSDAY://末日殺戮 switch(subtype){ case 1: local hitMax = obj.getVar("custom").getInt(10); obj.setTimeEvent(1,80,hitMax - 1, true); break; case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 3: if(state == 20) obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; break; } break; case SKILL_DARKEMPLER_EVOLVE://汲魂之力 break; case SKILL_DARKEMPLER_HIDDENBLADE://影刃 break; case SKILL_DARKEMPLER_IMMOLATION://死亡獻祭 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 3: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DARKEMPLER_JIHAD://天罰之劍 switch(subtype){ case 1: switch(state){ case 20: case 21: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: switch(state){ case 20: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DARKEMPLER_LACERTHORNS://暗影綻放:死亡荊棘 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_DARKEMPLER_LOYALSLAVE://靈魂傀儡 switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: local targetObj = obj.getVar().get_obj_vector(0); if(targetObj){ local activeObj = sq_GetCNRDObjectToActiveObject(targetObj); local timer = activeObj.getVar("loyalslave").get_ct_vector(0); timer.Reset(); timer.Start(10000,0); activeObj.getVar("loyalslave").setBool(0, false); } sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DARKEMPLER_MADNESS://釋魂狂怒 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 3: switch(state){ case 20: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DARKEMPLER_PUNISHMENT://神罰·滅世裁決 switch(subtype){ case 1: sq_SendDestroyPacketPassiveObject(obj); break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; case 3: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_DARKEMPLER_SCAFFOLD://暗影禁錮 switch(subtype){ case 1: case 2: if(state == 21) sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_DARKEMPLER_SHADOWBINDING://暗影纏襲 switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: local size = obj.getVar("targetObj").get_obj_vector_size(); for(local i = 0; i < size; i++){ local activeObj = sq_GetCNRDObjectToActiveObject(obj.getVar("targetObj").get_obj_vector(i)); if(activeObj){ CNSquirrelAppendage.sq_RemoveAppendage(activeObj, "character/atswordman/4_darktempler/shadowbinding/ap_shadowbinding.nut"); } } sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DARKEMPLER_SHADOWHARVEST://暗影旋渦 switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: if(obj.getVar("custom").getInt(10) > 0){obj.addSetStatePacket(24, null, STATE_PRIORITY_AUTO, false, "");break;} sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DARKEMPLER_SHADOWLANCER://暗影之矛 sq_SendDestroyPacketPassiveObject(obj); break; case SKILL_DARKEMPLER_SHADOWPUPPET://魅影暗魂斬 switch(subtype){ case 2: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case SKILL_DARKEMPLER_SOULDRAIN://靈魂攝取 switch(subtype){ case 1: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: case 3: case 4: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_DARKEMPLER_STARFALL://魔影轟殺 switch(subtype){ case 1: switch(state){ case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; } break; } }