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

2388 lines
106 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}