Rindro-Sqr/user/114.66.51.249/3_atswordman_3.c

2388 lines
106 KiB
C
Raw Normal View History

2025-11-08 12:21:06 +08:00
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;
}
}