// setCustomData function setCustomData_po_summoners(obj, receiveData) { if(!obj) return; local sqrChr = sq_GetCNRDObjectToSQRCharacter(obj.getTopCharacter()); local skillIndex = receiveData.readDword(); local subtype = receiveData.readDword(); obj.getVar("skillIndex").clear_vector(); obj.getVar("skillIndex").push_vector(skillIndex); obj.getVar("subtype").clear_vector(); obj.getVar("subtype").push_vector(subtype); switch(skillIndex){ case 25://hodor switch(subtype){ case 1://嚙踝蕭嚙踝蕭怐 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 0)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/hodor/attack1.ani"); obj.setCurrentAnimation(ani); break; case 3://嚙踝蕭怐 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 1)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local level = sq_GetSkillLevel(sqrChr, 174) + 20; local skill_level = sq_GetSkillLevel(sqrChr, 25); local prob = sqrChr.sq_GetLevelData(25, 11, skill_level) / 10; local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_STUN, prob, level, 2000); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/hodor/chargeattack.ani"); obj.setCurrentAnimation(ani); break; case 4://嚙踝蕭嚙踝蕭嚙踝蕭嚙? case 5://3盓嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sub = receiveData.readDword(); obj.getVar("custom").setInt(10, sub); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 6)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local aniPath1 = "passiveobject/madeby_k_k/animation/hodor/" local aniPath2 = "throwstone.ani"; if(sub > 0){ local randomnumber = sq_getRandom(1,8); print("subtype = "+subtype+" , randomnumber:"+randomnumber+" , sub = "+sub); switch(randomnumber){ case 1: aniPath2 = "throwobject/barrel1.ani"; break; case 2: aniPath2 = "throwobject/barrel2.ani"; break; case 3: aniPath2 = "throwobject/box.ani"; break; case 4: aniPath2 = "throwobject/brick.ani"; break; case 5: aniPath2 = "throwobject/ladder.ani"; break; case 6: aniPath2 = "throwobject/nipper.ani"; break; case 7: aniPath2 = "throwobject/pipeline.ani"; break; case 8: aniPath2 = "throwobject/wagon.ani"; break; } } local ani = sq_CreateAnimation("", aniPath1 + aniPath2); obj.setCurrentAnimation(ani); //?嚙踝蕭ptl obj.sq_SetMoveParticle("particle/hodor/throwstone.ptl", 0.0, 0.0); if(sub > 0) sq_SetSpeedToMoveParticle(obj, 2, -100); break; case 6://嚙踝蕭艉嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sub = receiveData.readDword(); obj.getVar("custom").setInt(10, sub); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 6)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local aniPath1 = "passiveobject/madeby_k_k/animation/hodor/" local aniPath2 = "throwstone.ani"; if(sub > 0){ local randomnumber = sq_getRandom(1,8); print("subtype = "+subtype+" , randomnumber:"+randomnumber+" , sub = "+sub); switch(randomnumber){ case 1: aniPath2 = "throwobject/barrel1.ani"; break; case 2: aniPath2 = "throwobject/barrel2.ani"; break; case 3: aniPath2 = "throwobject/box.ani"; break; case 4: aniPath2 = "throwobject/brick.ani"; break; case 5: aniPath2 = "throwobject/ladder.ani"; break; case 6: aniPath2 = "throwobject/nipper.ani"; break; case 7: aniPath2 = "throwobject/pipeline.ani"; break; case 8: aniPath2 = "throwobject/wagon.ani"; break; } } local ani = sq_CreateAnimation("", aniPath1 + aniPath2); obj.setCurrentAnimation(ani); //?嚙踝蕭ptl local direction = receiveData.readDword(); switch(direction){ case 0: obj.sq_SetMoveParticle("particle/hodor/throwstone.ptl", 0.0, 0.0); break; case 1: obj.sq_SetMoveParticle("particle/hodor/throwstoneup1.ptl", 0.0, 0.0); break; case 2: obj.sq_SetMoveParticle("particle/hodor/throwstoneup2.ptl", 0.0, 0.0); break; case 3: obj.sq_SetMoveParticle("particle/hodor/throwstonedown1.ptl", 0.0, 0.0); break; case 4: obj.sq_SetMoveParticle("particle/hodor/throwstonedown2.ptl", 0.0, 0.0); break; } if(sub > 0) sq_SetSpeedToMoveParticle(obj, 2, -100); break; case 7://嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local totalDamage2 = receiveData.readDword(); local moveX = receiveData.readDword(); local moveY = receiveData.readDword(); obj.getVar("totalDamage").clear_vector(); obj.getVar("totalDamage").push_vector(totalDamage2); obj.getVar("move").clear_vector(); obj.getVar("move").push_vector(obj.getXPos()); obj.getVar("move").push_vector(obj.getYPos()); obj.getVar("move").push_vector(moveX); obj.getVar("move").push_vector(moveY); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 4)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 8://旓?1?茷 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 2)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local level = sq_GetSkillLevel(sqrChr, 174) + 20; local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_STUN, 100, level, 4000); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/hodor/skilla.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭?? local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local parentObj = sq_GetObject(sqrChr, group, uniqueId); sq_moveWithParent(parentObj, obj); break; case 9://旓?2?茷 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 3)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local level = sq_GetSkillLevel(sqrChr, 174) + 60; local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_STUN, 100, level, 8000); local substate = receiveData.readDword(); switch(substate){ case 1: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/hodor/skillb_01.ani"); obj.setCurrentAnimation(ani); break; case 2: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/hodor/skillb_02.ani"); obj.setCurrentAnimation(ani); local sizeRate = receiveData.readDword(); sizeRate = sizeRate.tofloat() / 100.0; local pAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(pAni, sizeRate, sizeRate, sizeRate); break; } break; } break; case 44://sandor switch(subtype){ case 1: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 80)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/newsandor/nsandorattack_nsandor_b.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); if(aniDelay > 0){ for(local i = 0;i < 3; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } //?嚙踝蕭?? local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local parentObj = sq_GetObject(sqrChr, group, uniqueId); sq_moveWithParent(parentObj, obj); break; case 2: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 81)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/newsandor/nsandorpierce_nsandor_b.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); if(aniDelay > 0){ for(local i = 0;i < 3; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } //?嚙踝蕭?? local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local parentObj = sq_GetObject(sqrChr, group, uniqueId); sq_moveWithParent(parentObj, obj); break; case 4: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 82)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/newsandor/skilleffa.ani"); obj.setCurrentAnimation(ani); //PTL obj.sq_SetMoveParticle("particle/newsandor/swordforce.ptl", 0.0, 0.0); local aniDelay = receiveData.readDword(); local speed = 54 / aniDelay * 1000; sq_SetSpeedToMoveParticle(obj,0,speed); obj.setTimeEvent(0,600,1,false); local sizeRate = receiveData.readDword(); local pAni = obj.getCurrentAnimation(); sizeRate = sizeRate.tofloat() / 100.0; pAni.setImageRateFromOriginal(sizeRate, sizeRate);//增加ani ?度跟高度率 pAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate);//增加ani als附加 ani大小比例 sq_SetAttackBoundingBoxSizeRate(pAni, sizeRate, sizeRate, sizeRate);//攻?框,x y z比率 break; } break; case 45://auxo switch(subtype){ case 1://嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 13)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterflower/attack1.ani"); obj.setCurrentAnimation(ani); break; case 2://?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 15)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterflower/auxoroot.ani"); obj.setCurrentAnimation(ani); break; case 3://堋?嚙踝蕭嚙踝蕭?堋? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 16)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterflower/attackbox.ani"); obj.setCurrentAnimation(ani); sq_CreateParticle("passiveobject/monster/monsterflower/particle/poisonbug.ptl", obj, 0, 0, 40, true, 15, 0, 40);//?嚙踝蕭 sq_CreateParticle("passiveobject/common/particle/confusegas.ptl", obj, 0, 0, 40, false, 10, 0, 40);//嚙踝蕭??? //?嚙踝蕭嚙踝蕭?嚙踝蕭嚙踝蕭 local skill_level = sqrChr.sq_GetSkillLevel(45); local level = 40 + skill_level * 2; local poisonbug_damage = sq_GetLevelData(sqrChr, 45, 18, skill_level); local poisonbug_prob = sq_GetLevelData(sqrChr, 45, 15, skill_level); local poisonbug_time = sq_GetLevelData(sqrChr, 45, 17, skill_level); local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_POISON, poisonbug_prob, level, poisonbug_time, poisonbug_damage); break; case 4://嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 14)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterflower/root_1.ani"); obj.setCurrentAnimation(ani); sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 5://嚙踝蕭? case 15://嚙踝蕭? obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 11://茩嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 18)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/ani/summonauxoawakeningrootshort_front.ani"); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(-10,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/ani/summonauxoawakeningrootshort_bottom.ani"),true); break; case 12://?嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 18)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/ani/summonauxoawakeningrootlong_front.ani"); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(-10,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/ani/summonauxoawakeningrootlong_bottom.ani"),true); break; case 13://嚙踝蕭? local totalDamage = receiveData.readDword(); local state = receiveData.readDword(); //local group = receiveData.readDword(); //local uniqueId = receiveData.readDword(); //local targetObj = sq_GetObject(sqrChr, group, uniqueId); //if(targetObj){ //obj.getVar("targetObj").clear_obj_vector(); //obj.getVar("targetObj").push_obj_vector(targetObj); //} sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 20)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(state, null, STATE_PRIORITY_AUTO, false, ""); break; case 14://?嚙踝蕭?? local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); obj.getVar().setInt(10, sizeRate); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 17)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 100://?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭? local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterflower/overgrowthgrowupmonsterflower_attack.ani"); obj.setCurrentAnimation(ani); local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 14)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; } break; case 46://luis switch(subtype){ case 1://嚙踝蕭嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 21)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/attack.ani"); obj.setCurrentAnimation(ani); break; case 2://???嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local etcSub = receiveData.readDword(); obj.getVar("custom").setInt(10, etcSub); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 23)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local level = sq_GetSkillLevel(sqrChr, 174) + 20; local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_FREEZE, 5, level, 1000); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_iceniddle/luisiceniddlegroup.ani"); obj.setCurrentAnimation(ani); if(etcSub > 0){ local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(200.0); } break; case 3://嚙踝蕭牊 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local etcSub = receiveData.readDword(); obj.getVar("custom").setInt(10, etcSub); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 22)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/fireball.ani"); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); local sizeRate = 1.3; if(etcSub > 0) sizeRate = 2.6; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); obj.setTimeEvent(0,160,1,false); break; case 4://嚙??嚙? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local etcSub = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 24)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local level = sq_GetSkillLevel(sqrChr, 174) + 20; local attackInfo = sq_GetCurrentAttackInfo(obj); local skill_level = sq_GetSkillLevel(sqrChr, 46); local prob = sqrChr.sq_GetLevelData(46, 15, skill_level) / 10; local time = sqrChr.sq_GetLevelData(46, 17, skill_level); // sqrChr.getVar("Debug_SubState").set_vector(8,prob); // sqrChr.getVar("Debug_SubState").set_vector(9,time); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_FREEZE, prob, level, time); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_icefield/icefieldnormal1.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); local speedRate = 150.0; if(etcSub > 0) speedRate = 300.0; pAni.setSpeedRate(speedRate); break; case 5://?嚙踝蕭嚙踝蕭嚙踝蕭嚙? local totalDamage = receiveData.readDword(); local number = receiveData.readDword(); local etcSub = receiveData.readDword(); local bonusRate = receiveData.readDword(); obj.getVar("custom").setInt(11, bonusRate); obj.getVar("custom").setInt(10, etcSub); if(number > 1){ obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); } else{ obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); } break; case 6://?嚙? local totalDamage = receiveData.readDword(); local totalDamage2 = receiveData.readDword(); local etcSub = receiveData.readDword(); obj.getVar().clear_vector(); obj.getVar().push_vector(totalDamage); obj.getVar().push_vector(totalDamage2); obj.getVar().push_vector(etcSub); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 10: local sub = receiveData.readDword(); local lifeTime = receiveData.readDword(); local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(obj, group, uniqueId); obj.getVar("tar").clear_obj_vector(); obj.getVar("tar").push_obj_vector(targetObj); obj.getVar("custom").setInt(10, sub); local ani = sq_CreateAnimation("","character/mage/effect/animation/blacklunatic/blacklunaticwing"+sub.tostring()+"loop_00.ani"); obj.setCurrentAnimation(ani); obj.setTimeEvent(0, lifeTime, 1, false); obj.setTimeEvent(1, 20, -1, true); // sq_moveWithParent(targetObj, obj); break; } break; case 47://echeverra switch(subtype){ case 1: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 26)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/attack.ani"); obj.setCurrentAnimation(ani); break; case 2: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 29)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/grandwave1.ani"); obj.setCurrentAnimation(ani); //嚙踝蕭嚙踝蕭嚙踝蕭??? obj.setTimeEvent(0,400,-1,false); obj.setTimeEvent(1,250,1,true); break; case 4: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/dummy.ani"); obj.setCurrentAnimation(ani); local animation = obj.getCurrentAnimation(); sq_SetFrameDelayTime(animation, 0, 100); sq_SetFrameDelayTime(animation, 1, 800); obj.setTimeEvent(0,100,7,true); break; case 5: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 30)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/dummy2.ani"); obj.setCurrentAnimation(ani); //嚙踝蕭嚙踝蕭嚙踝蕭??? local hitnumber = receiveData.readDword(); local time = 50; if(hitnumber > 5) time = 5; obj.setTimeEvent(0,time,hitnumber - 0,false); obj.setTimeEvent(2,50*hitnumber,1,false); break; case 8: local totalDamage = receiveData.readDword(); local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(sqrChr, group, uniqueId);//嚙踝蕭嚙踝蕭?嚙踝蕭 obj.getVar().clear_obj_vector(); obj.getVar().push_obj_vector(targetObj); local Delay = receiveData.readDword(); obj.getVar("Delay").clear_vector(); obj.getVar("Delay").push_vector(Delay); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 9: local parentObj = obj.getParent(); parentObj.getVar("kingsobj").clear_obj_vector(); parentObj.getVar("kingsobj").push_obj_vector(obj); if(sqrChr.getVar("kingsobj").get_obj_vector_size() < 1){ sqrChr.getVar("kingsobj").clear_obj_vector(); sqrChr.getVar("kingsobj").push_obj_vector(obj); } if(!sqrChr.getVar("kingsobj").is_obj_vector(obj)) sqrChr.getVar("kingsobj").push_obj_vector(obj); local totalDamage = receiveData.readDword(); local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(sqrChr, group, uniqueId);//嚙踝蕭嚙踝蕭?嚙踝蕭 obj.getVar().clear_obj_vector(); obj.getVar().push_obj_vector(targetObj); local Delay = receiveData.readDword(); obj.getVar("Delay").clear_vector(); obj.getVar("Delay").push_vector(Delay); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 41: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local eclipsehive_bonus = sqrChr.getVar("eclipsehive_bonus").getInt(10).tofloat() / 100.0; local totalDamage = sq_GetBonusRateWithPassive(sqrChr, 47, 47, 11, eclipsehive_bonus) + 100; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 28)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 51: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 30)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/newlaser/uhdlaserbombmagicsquare.ani"); obj.setCurrentAnimation(ani); obj.setTimeEvent(0,80,7,false); sq_ChangeDrawLayer(obj, ENUM_DRAWLAYER_BOTTOM); break; } break; case 76://spiritdarkhigher switch(subtype){ case 1://嚙踝蕭嚙踝蕭?嚙踝蕭?? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 39)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/attack1.ani"); obj.setCurrentAnimation(ani); break; case 2://嚙踝蕭嚙踝蕭?嚙踝蕭嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 40)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/attack2.ani"); obj.setCurrentAnimation(ani); break; case 3://嚙踝蕭嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 41)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); // local time = receiveData.readDword(); obj.setTimeEvent(0,time,1,false); sq_CreateParticle("passiveobject/monster/spirit/particle/belzebuite_overskill_dark_for_deadmulker.ptl", obj, 0, 0, 0, true, 200, time, 200); obj.sq_PlaySound("KALA_THROW"); break; case 4://嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 42)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/blackfog/attackbox.ani"); obj.setCurrentAnimation(ani); obj.sq_PlaySound("KALA_SUMMON"); // local time = receiveData.readDword(); obj.setTimeEvent(0,time,1,false); obj.setTimeEvent(1,480,-1,false); //嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local sub = receiveData.readDword(); if(sub == 2){ obj.getVar("attack").setBool(0,true); local attackInfo = sq_GetCurrentAttackInfo(obj); local level = sq_GetSkillLevel(sqrChr, 174) + 20; if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_STUN, 100, level, 4000); } createPassiveObject_k_k(sqrChr,obj,SKILL_BYKK_SUMMONSPIRITDARKHIGHER,41,-150,0,0,0,time,sub,0,0); createPassiveObject_k_k(sqrChr,obj,SKILL_BYKK_SUMMONSPIRITDARKHIGHER,41,0,-75,0,0,time,sub,0,0); createPassiveObject_k_k(sqrChr,obj,SKILL_BYKK_SUMMONSPIRITDARKHIGHER,41,0,0,0,0,time,sub,0,0); createPassiveObject_k_k(sqrChr,obj,SKILL_BYKK_SUMMONSPIRITDARKHIGHER,41,0,75,0,0,time,sub,0,0); createPassiveObject_k_k(sqrChr,obj,SKILL_BYKK_SUMMONSPIRITDARKHIGHER,41,150,0,0,0,time,sub,0,0); break; case 41: local totalDamage = receiveData.readDword(); local time = receiveData.readDword(); obj.setTimeEvent(0,time - 280,1,false); local sub = receiveData.readDword(); if(sub == 2){ sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/blackfog/blackfog_00.ani",0,0,0); } else{ sq_CreateParticle("passiveobject/monster/spirit/particle/belzebuite_overskill_dark_for_deadmulker.ptl", obj, 0, 0, 0, true, 200, time, 200); } obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 61: case 62: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 42)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); local time = receiveData.readDword(); obj.getVar("time").clear_vector(); obj.getVar("time").push_vector(time); obj.setTimeEvent(0,time,1,false); if(subtype == 61) sq_flashScreen(obj,693,time - 693,500,180, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM); break; case 63: local totalDamage = receiveData.readDword(); local time = receiveData.readDword(); obj.setTimeEvent(4,time,1,false); //?? local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); if(group != 0 || uniqueId != 0){ local targetObj = sq_GetObject(sqrChr, group, uniqueId);//嚙踝蕭嚙踝蕭?嚙踝蕭 obj.getVar().clear_obj_vector(); obj.getVar().push_obj_vector(targetObj); } obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; } break; case 77://spiritlighthigher switch(subtype){ case 1: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 48)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 2: local number = receiveData.readDword(); obj.setTimeEvent(0,100,number,true); local animation = obj.getCurrentAnimation(); sq_SetFrameDelayTime(animation, 0, 100); sq_SetFrameDelayTime(animation, 1, 100 * number); break; case 21: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 49)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 41: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 52)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 42: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 53)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 9: local totalDamage = receiveData.readDword(); local number = receiveData.readDword(); // print("number = "+number); obj.setTimeEvent(0,100,number,true); local animation = obj.getCurrentAnimation(); sq_SetFrameDelayTime(animation, 0, 100); sq_SetFrameDelayTime(animation, 1, 100 * number); break; case 10: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 50)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/lightning/0_lightningbase.ani"); obj.setCurrentAnimation(ani); // local level = sq_GetSkillLevel(sqrChr, 174) + 20; local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_LIGHTNING, 20, level, 4000); obj.setTimeEvent(0,180,5,false); break; } break; case 78://spiritwaterhigher switch(subtype){ case 1: obj.setTimeEvent(0,10,3,true); local animation = obj.getCurrentAnimation(); sq_SetFrameDelayTime(animation, 0, 100); sq_SetFrameDelayTime(animation, 1, 300); break; case 2: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 58)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local level = sq_GetSkillLevel(sqrChr, 174) + 20; local skill_level = sq_GetSkillLevel(sqrChr, 78); local prob = sqrChr.sq_GetLevelData(78, 8, skill_level) / 10; local time = sqrChr.sq_GetLevelData(78, 16, skill_level); local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_FREEZE, prob, level, time); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/attack2.ani"); obj.setCurrentAnimation(ani); local aniDelay = receiveData.readDword(); if(aniDelay > 0){ local animation = obj.getCurrentAnimation(); for(local i = 0;i < 5; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } break; case 3: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 55));//58嚙踝蕭?? sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local level = sq_GetSkillLevel(sqrChr, 174) + 20; local skill_level = sq_GetSkillLevel(sqrChr, 78); local prob = sqrChr.sq_GetLevelData(78, 17, skill_level) / 10; local time = sqrChr.sq_GetLevelData(78, 16, skill_level); local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_FREEZE, prob, level, time); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 4: obj.setTimeEvent(0,80,7,true); local animation = obj.getCurrentAnimation(); sq_SetFrameDelayTime(animation, 0, 100); sq_SetFrameDelayTime(animation, 1, 600); break; case 11: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 56)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local time = receiveData.readDword(); obj.setTimeEvent(1,100 * time + 300, 1, false); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 41: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 55));//58嚙踝蕭?? sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local level = sq_GetSkillLevel(sqrChr, 174) + 20; local skill_level = sq_GetSkillLevel(sqrChr, 78); local prob = sqrChr.sq_GetLevelData(78, 17, skill_level) / 10; local time = sqrChr.sq_GetLevelData(78, 16, skill_level); local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo) sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_FREEZE, prob, level, time); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/icestrike/icestrikeprojectilefront_00.ani"); obj.setCurrentAnimation(ani); //嚙踝蕭嚙? local sizeRate_num = receiveData.readDword(); local sizeRate = 1.0 + 0.08 * sizeRate_num; local pooledObj = sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/icestrike/icestrikeprojectileback_03.ani",0,0,0); local plAni = pooledObj.getCurrentAnimation(); plAni.setImageRateFromOriginal(sizeRate, sizeRate); plAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); local currentAni = obj.getCurrentAnimation(); currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 9: local number = receiveData.readDword(); obj.setTimeEvent(0,100,number,true); local animation = obj.getCurrentAnimation(); sq_SetFrameDelayTime(animation, 0, 100); sq_SetFrameDelayTime(animation, 1, 100 * number); break; case 10: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 57)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local time = receiveData.readDword(); obj.setTimeEvent(0,time, 1, false); obj.setTimeEvent(1,300, -1, false); obj.getVar("move").clear_vector(); obj.getVar("move").push_vector(obj.getXPos()); obj.getVar("move").push_vector(300); // obj.sq_SetMoveParticle("particle/ramos/targetingmove.ptl", 0.0, 0.0); // sq_SetSpeedToMoveParticle(obj,0,100); local parentObj = obj.getParent(); CNSquirrelAppendage.sq_RemoveAppendage(parentObj, "character/mage/k_k_made/appendage/aptomonster/skill_ap/ap_waterhigherspirit_skill.nut"); obj.getVar().setBool(0,true); obj.sq_PlaySound("BERIAS_TORNADO_LOOP"); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; } break; case 79://spiritfirehigher switch(subtype){ case 1: case 2: case 21: case 31: case 32: case 33: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local atkindex = 44; if(subtype == 2 || subtype == 21) atkindex = 45; if(subtype == 31 || subtype == 32 || subtype == 33) atkindex = 46; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, atkindex)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local aniPath = "passiveobject/madeby_k_k/animation/spirit/firehigherspirit/attack1.ani" if(subtype == 2) aniPath = "passiveobject/madeby_k_k/animation/spirit/firehigherspirit/attack2.ani" if(subtype == 21) aniPath = "passiveobject/madeby_k_k/animation/spirit/firehigherspirit/element_fire_fire_wave.ani" if(subtype == 31) aniPath = "passiveobject/madeby_k_k/animation/spirit/firehigherspirit/attack3_1.ani" if(subtype == 32) aniPath = "passiveobject/madeby_k_k/animation/spirit/firehigherspirit/attack3_2.ani" if(subtype == 33) aniPath = "passiveobject/madeby_k_k/animation/spirit/firehigherspirit/attack3_3.ani" local ani = sq_CreateAnimation("",aniPath); obj.setCurrentAnimation(ani); //?? if(subtype == 31 || subtype == 32 || subtype == 33){ local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(sqrChr, group, uniqueId);//嚙踝蕭嚙踝蕭?嚙踝蕭 sq_moveWithParent(targetObj, obj); } break; case 4: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 47)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/firehigherspirit/firestorm/firestorm_00.ani"); obj.setCurrentAnimation(ani); obj.setTimeEvent(0,300,-1,false); monsterpulled_bykkkkkkk(sqrChr,obj,0,0,0); break; case 6: local number = receiveData.readDword(); obj.setTimeEvent(0,100,number,true); local animation = obj.getCurrentAnimation(); sq_SetFrameDelayTime(animation, 0, 100); sq_SetFrameDelayTime(animation, 1, 100 * number); local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local parentObj = sq_GetObject(sqrChr, group, uniqueId); local eclipsehive_bonus = sqrChr.getVar("eclipsehive_bonus").getInt(10).tofloat() / 100.0; for(local i = 0; i < number; i++){ local totalDamage = sq_GetBonusRateWithPassive(sqrChr, SKILL_BYKK_SUMMONSPIRITFIREHIGHER, SKILL_BYKK_SUMMONSPIRITFIREHIGHER, 7, eclipsehive_bonus) + 100; local group = sq_GetGroup(parentObj);//? local uniqueId = sq_GetUniqueId(parentObj);//嚙踝蕭嚙踝蕭ID createPassiveObject_k_k(sqrChr,obj,SKILL_BYKK_SUMMONSPIRITFIREHIGHER,61,0,0,0,totalDamage,number,i + 1,group,uniqueId); } break; case 61: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 48)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local time = sq_GetBonusRateWithPassive(sqrChr, SKILL_BYKK_SUMMONSPIRITFIREHIGHER, SKILL_BYKK_SUMMONSPIRITFIREHIGHER, 28, 1.0) + 100; obj.setTimeEvent(0,time, 1, false); local sub_all = receiveData.readDword(); local sub = receiveData.readDword(); obj.getVar("sub").clear_vector(); obj.getVar("sub").push_vector(sub); obj.getVar("sub").push_vector(sub_all); obj.setTimeEvent(1,960, -1, false); obj.setTimeEvent(3,50, -1, false); local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local parentObj = sq_GetObject(sqrChr, group, uniqueId); obj.getVar("parentObj").clear_obj_vector(); obj.getVar("parentObj").push_obj_vector(parentObj); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; } break; case 80://babydragon switch(subtype){ case 1://?嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 7)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/attackbite.ani"); obj.setCurrentAnimation(ani); break; case 2://?嚙踝蕭2 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 9)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/attacknearbite.ani"); obj.setCurrentAnimation(ani); break; case 3://嚙踝蕭牊 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 11)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/serfire3_normal.ani"); obj.setCurrentAnimation(ani); // local currentAni = obj.getCurrentAnimation(); sizeRate = sizeRate.tofloat() / 100.0; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); //?嚙踝蕭ptl obj.sq_SetMoveParticle("particle/babydragon/fireball.ptl", 0.0, 0.0); if(sq_GetIntData(sqrChr, SKILL_BYKK_ECLIPSEHIVE, 27) > 0) sq_SetSpeedToMoveParticle(obj, 0, 1400); break; case 4://嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 8)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/attackfirebreath.ani"); obj.setCurrentAnimation(ani); break; case 5://嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local etcSub = receiveData.readDword(); local sizeRate = receiveData.readDword(); obj.getVar("custom").setInt(10, etcSub); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 12)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/stone_niddle_normal.ani"); obj.setCurrentAnimation(ani); // local currentAni = obj.getCurrentAnimation(); sizeRate = sizeRate.tofloat() / 100.0; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); //?嚙踝蕭ptl obj.sq_SetMoveParticle("particle/babydragon/niddle.ptl", 0.0, 0.0); if(sq_GetIntData(sqrChr, SKILL_BYKK_ECLIPSEHIVE, 27) > 0) sq_SetSpeedToMoveParticle(obj, 0, 1200); break; case 6://旓? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭totalDamage,delay,sizeRate,hittime local totalDamage = receiveData.readDword(); local delay = receiveData.readDword(); local sizeRate = receiveData.readDword(); local hittime = receiveData.readDword(); obj.getVar("custom").setInt(10, hittime); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 10)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/communionskill_body.ani"); obj.setCurrentAnimation(ani); // local currentAni = obj.getCurrentAnimation(); sizeRate = sizeRate.tofloat() / 100.0; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); // local speedRate = 6000.0 / delay.tofloat(); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(speedRate); local currentAni = obj.getCurrentAnimation(); local delaySum = currentAni.getDelaySum(0, 7); obj.setTimeEvent(10, delaySum, 1, false); break; case 11: case 12: case 13: local totalDamage = receiveData.readDword(); local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(obj, group, uniqueId); if(targetObj){ obj.getVar("target").clear_obj_vector(); obj.getVar("target").push_obj_vector(targetObj); } obj.getVar("custom").setInt(10, totalDamage); if(subtype == 11){ sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 98)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); } obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 121: case 131: local totalDamage = receiveData.readDword(); local attackIndex = 99; if(subtype == 131) attackIndex = 100; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, attackIndex)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; } break; case 81://SummonMonsterReckless local totalDamage = receiveData.readDword(); local Delay = receiveData.readDword(); obj.setTimeEvent(0,Delay,1,false); break; case 82://casillas switch(subtype){ case 1: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 60)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/casillas/attack1.ani"); obj.setCurrentAnimation(ani); break; case 2: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 61)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/casillas/attack2.ani"); obj.setCurrentAnimation(ani); break; case 3: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 62)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/casillas/attack3.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭?? local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local parentObj = sq_GetObject(sqrChr, group, uniqueId); sq_moveWithParent(parentObj, obj); break; case 41: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 64)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/casillas/moveslashmove.ani"); obj.setCurrentAnimation(ani); break; case 42: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 64)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/casillas/moveslashafter.ani"); obj.setCurrentAnimation(ani); //嚙踝蕭? local aniDelay = receiveData.readDword(); if(aniDelay > 0){ local animation = obj.getCurrentAnimation(); for(local i = 0;i < 10; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } // obj.getVar().clear_vector(); obj.getVar().push_vector(1); break; case 100: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 63)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/casillas/skill/slash.ani"); obj.setCurrentAnimation(ani); sq_SetCustomRotate(obj, sq_ToRadian(sq_getRandom(0,90).tofloat())); break; } break; case 118://sandorex break; case 119://heilrom break; case 120://spiritfireex break; case 121://kruta switch(subtype){ case 1://?嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 32)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/kruta/normalatk_body.ani"); obj.setCurrentAnimation(ani); // sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 2://?嚙踝蕭嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 33)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/kruta/dash02_body.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); sq_SetFrameDelayTime(pAni, 0, 600); //?? local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(sqrChr, group, uniqueId);//嚙踝蕭嚙踝蕭?嚙踝蕭 sq_moveWithParent(targetObj, obj); //嚙踝蕭嚙踝蕭嚙踝蕭? obj.setTimeEvent(0,150,-1,false); local sizeRate = receiveData.readDword(); // sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 3://嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 34)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/kruta/cry_body.ani"); obj.setCurrentAnimation(ani); // sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 41://嚙踝蕭嚙踝蕭?嚙踝蕭1 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 35)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/kruta/rage01_body.ani"); obj.setCurrentAnimation(ani); // sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 42://嚙踝蕭嚙踝蕭?嚙踝蕭2 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 36)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/kruta/rage03_body.ani"); obj.setCurrentAnimation(ani); // sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 51://?硉 : ?嚙踝蕭嚙踝蕭嚙踝蕭1 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 39)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/kruta/howl_body.ani"); obj.setCurrentAnimation(ani); // sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 52://?硉 : ?嚙踝蕭嚙踝蕭嚙踝蕭2 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 37)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/kruta/atkaxeeffect_body.ani"); obj.setCurrentAnimation(ani); // sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 53://?硉 : ?嚙踝蕭嚙踝蕭嚙踝蕭3 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 38)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/kruta/finishaxeeffect_body.ani"); obj.setCurrentAnimation(ani); // sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 6://嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 38)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/kruta/kurutaattack_body.ani"); obj.setCurrentAnimation(ani); // sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; case 10://嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 //?嚙踝蕭ANI local ani = sq_CreateAnimation("","monster/character/mage/madeby_k_k/kruta/animation/talisman/krutaready_eff_00.ani"); obj.setCurrentAnimation(ani); local time = receiveData.readDword(); obj.setTimeEvent(0,time,1,false); break; } break; case 122://ramos switch(subtype){ case 1://嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 78)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/appearramos_04.ani"); obj.setCurrentAnimation(ani); break; case 21://嚙踝蕭嚙踝蕭1 case 32: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 66)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/punchattack1_01.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); local aniDelay2 = receiveData.readDword(); if(aniDelay > 0){ for(local i = 0;i < 3; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } if(aniDelay2 > 0) sq_SetFrameDelayTime(animation, 3, aniDelay2); break; case 22://嚙踝蕭嚙踝蕭2 case 33: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 67)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/punchattack2_02.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); local aniDelay2 = receiveData.readDword(); local aniDelay3 = receiveData.readDword(); if(aniDelay > 0) sq_SetFrameDelayTime(animation, 0, aniDelay); if(aniDelay2 > 0){ for(local i = 1;i < 4; i++){ sq_SetFrameDelayTime(animation, i, aniDelay2); } } if(aniDelay3 > 0) sq_SetFrameDelayTime(animation, 4, aniDelay3); break; case 31://嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 75)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/punchmove_01.ani"); obj.setCurrentAnimation(ani); //?? local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(sqrChr, group, uniqueId);//嚙踝蕭嚙踝蕭?嚙踝蕭 sq_moveWithParent(targetObj, obj); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); local aniDelay2 = receiveData.readDword(); if(aniDelay > 0){ for(local i = 0;i < 2; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } if(aniDelay2 > 0) sq_SetFrameDelayTime(animation, 2, aniDelay2); break; case 41://嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local totalDamage2 = receiveData.readDword(); obj.getVar("bonusrate").clear_vector(); obj.getVar("bonusrate").push_vector(totalDamage2); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 77)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local hittime = receiveData.readDword(); local pAnidelay = receiveData.readDword(); hittime = (pAnidelay.tofloat() / 72.0 * hittime).tointeger(); obj.setTimeEvent(0,hittime,-1,false); obj.getVar("delay").clear_vector(); obj.getVar("delay").push_vector(pAnidelay); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 42://嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local pAnidelay = receiveData.readDword(); obj.getVar("delay").clear_vector(); obj.getVar("delay").push_vector(pAnidelay); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 5://?嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 68)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/gatherattack_09.ani"); obj.setCurrentAnimation(ani); local pooledObj = sq_AddDrawOnlyAniFromParent(obj,"monster/character/mage/madeby_k_k/ramos/animation/gather/gathereffect_03.ani",0,0,0); //sq_AddDrawOnlyAniFromParent(obj,"monster/character/mage/madeby_k_k/ramos/animation/gather/gathereffectdown_03.ani",0,0,0); local hittime = receiveData.readDword(); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); if(aniDelay > 0){ for(local i = 0;i < 15; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } local pAni = pooledObj.getCurrentAnimation(); local speedRate = 1960.0 / (aniDelay * 28).tofloat() * 100; hittime = (aniDelay.tofloat() / 63.0 * hittime).tointeger(); pAni.setSpeedRate(speedRate); obj.setTimeEvent(0,hittime,-1,false); obj.setTimeEvent(1,500,-1,false); break; case 6://嚙踝蕭嚙? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 79)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/disappear_01.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); if(aniDelay > 0){ for(local i = 0;i < 9; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } break; case 71://嚙?嚙踝蕭嚙踝蕭嚙? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 72)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/1up_08.ani"); obj.setCurrentAnimation(ani); local hittime = receiveData.readDword(); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); local aniDelay2 = receiveData.readDword(); local aniDelay3 = receiveData.readDword(); if(aniDelay > 0) sq_SetFrameDelayTime(animation, 0, aniDelay); if(aniDelay2 > 0){ for(local i = 1;i < 15; i++){ sq_SetFrameDelayTime(animation, i, aniDelay2); } } if(aniDelay3 > 0) sq_SetFrameDelayTime(animation, 15, aniDelay3); hittime = (aniDelay.tofloat() / 72.0 * hittime).tointeger(); obj.setTimeEvent(0,hittime,-1,false); break; case 72://嚙?嚙踝蕭?嚙踝蕭嚙踝蕭? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 69)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/4start_46.ani"); obj.setCurrentAnimation(ani); local pooledObj1 = sq_CreateDrawOnlyObject(obj, "monster/character/mage/madeby_k_k/ramos/animation/meal/4start_backgound_00.ani", ENUM_DRAWLAYER_BOTTOM, true); local pooledObj2 = sq_CreateDrawOnlyObject(obj, "monster/character/mage/madeby_k_k/ramos/animation/meal/4start_41.ani", ENUM_DRAWLAYER_COVER, true); local hittime = receiveData.readDword(); local aniDelay = receiveData.readDword(); if(aniDelay > 0){ local animation = obj.getCurrentAnimation(); for(local i = 0;i < 8; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } hittime = (aniDelay.tofloat() / 72.0 * hittime).tointeger(); obj.setTimeEvent(0,hittime,-1,false); local speedRate = (72.0 / aniDelay.tofloat() * 100.0); local pAni1 = pooledObj1.getCurrentAnimation(); local pAni2 = pooledObj2.getCurrentAnimation(); pAni1.setSpeedRate(speedRate); pAni2.setSpeedRate(speedRate); break; case 73://嚙?晡嚙踝蕭嚙? //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 71)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/4end_46.ani"); obj.setCurrentAnimation(ani); sq_CreateDrawOnlyObject(obj, "monster/character/mage/madeby_k_k/ramos/animation/meal/4end_07.ani", ENUM_DRAWLAYER_COVER, true); sq_CreateDrawOnlyObject(obj, "monster/character/mage/madeby_k_k/ramos/animation/meal/4end_bottom_69.ani", ENUM_DRAWLAYER_BOTTOM, true); sq_CreateDrawOnlyObject(obj, "monster/character/mage/madeby_k_k/ramos/animation/meal/4end_backgound_00.ani", ENUM_DRAWLAYER_BOTTOM, true); local aniDelay = receiveData.readDword(); if(aniDelay > 0){ local animation = obj.getCurrentAnimation(); for(local i = 0; i < 3; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } break; case 74: sqrChr.getVar("RamosEffect1").clear_obj_vector(); sqrChr.getVar("RamosEffect1").push_obj_vector(obj); local ani = sq_CreateAnimation("","monster/character/mage/madeby_k_k/ramos/animation/meal/3background_30.ani"); obj.setCurrentAnimation(ani); break; case 75: sqrChr.getVar("RamosEffect2").clear_obj_vector(); sqrChr.getVar("RamosEffect2").push_obj_vector(obj); local ani = sq_CreateAnimation("","monster/character/mage/madeby_k_k/ramos/animation/meal/3front_12.ani"); obj.setCurrentAnimation(ani); break; case 200: obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; } break; case SKILL_BYKK_SUMMONSPIRITCOMMON: switch(subtype){ case 101://嚙踝蕭1 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 85)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/spirit/dark/attack1.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); local aniDelay2 = receiveData.readDword(); if(aniDelay > 0) sq_SetFrameDelayTime(animation, 0, aniDelay); if(aniDelay2 > 0) sq_SetFrameDelayTime(animation, 1, aniDelay2); break; case 102://嚙踝蕭2 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 86)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/spirit/dark/attack2.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); obj.setTimeEvent(0,4 * aniDelay,-1,false); if(aniDelay > 0){ for(local i = 0;i < 11; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } break; case 201://嚙踝蕭1 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 87)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/spirit/fire/attack1.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); if(aniDelay > 0) sq_SetFrameDelayTime(animation, 0, aniDelay); break; case 202://嚙踝蕭2/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 88)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/spirit/fire/attack2loop.ani"); obj.setCurrentAnimation(ani); // local time = receiveData.readDword(); obj.setTimeEvent(0,time,1,false); obj.setTimeEvent(1,300,-1,false); //?? local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(sqrChr, group, uniqueId);//嚙踝蕭嚙踝蕭?嚙踝蕭 sq_moveWithParent(targetObj, obj); break; case 301://嚙踝蕭1 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 89)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/spirit/light/attack1.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); local aniDelay2 = receiveData.readDword(); if(aniDelay > 0){ sq_SetFrameDelayTime(animation, 0, aniDelay);sq_SetFrameDelayTime(animation, 1, aniDelay); } if(aniDelay2 > 0){sq_SetFrameDelayTime(animation, 2, aniDelay2);sq_SetFrameDelayTime(animation, 3, aniDelay2);sq_SetFrameDelayTime(animation, 4, aniDelay2);} break; case 302://嚙踝蕭2 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 90)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/spirit/light/attack2.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); obj.setTimeEvent(0,aniDelay * 5,1,false); if(aniDelay > 0){ for(local i = 0;i < 9; i++){ sq_SetFrameDelayTime(animation, i, aniDelay); } } break; case 401://?1 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 91)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/spirit/water/attack1.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭嚙踝蕭? local animation = obj.getCurrentAnimation(); local aniDelay = receiveData.readDword(); local aniDelay2 = receiveData.readDword(); if(aniDelay > 0) sq_SetFrameDelayTime(animation, 0, aniDelay); if(aniDelay2 > 0) sq_SetFrameDelayTime(animation, 1, aniDelay2); break; case 402://?2 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 92)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/spirit/water/icewave1.ani"); obj.setCurrentAnimation(ani); break; case 1001://嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); local sub = receiveData.readDword(); obj.getVar("sizeRate").clear_vector(); obj.getVar("sizeRate").push_vector(sizeRate); obj.getVar("sizeRate").push_vector(sub); local anipath; switch(sub){ case 1: anipath = "passiveobject/common/animation/darkexplosion.ani"; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 93)); break; case 2: anipath = "passiveobject/common/animation/fireexplosion.ani"; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 94)); break; case 3: anipath = "passiveobject/common/animation/lightexplosion.ani"; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 95)); break; case 4: anipath = "passiveobject/common/animation/icefireexplosion.ani"; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 96)); break; } sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("",anipath); obj.setCurrentAnimation(ani); //嚙踝蕭嚙? local currentAni = obj.getCurrentAnimation();//嚙踝蕭嚙踝蕭?嚙踝蕭ani sizeRate = sizeRate.tofloat() / 100.0; sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate);//嚙踝蕭??嚙踝蕭x y z嚙踝蕭嚙踝蕭 obj.sq_PlaySound("B_FIRE_EXPLOSION"); local prob = receiveData.readDword(); local time = receiveData.readDword(); local level = sq_GetSkillLevel(sqrChr, 174) + 20; local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo){ switch(sub){ case 1: sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_CURSE, prob, level, time); break; case 2: sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_BURN, prob, level, time); break; case 3: sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_LIGHTNING, prob, level, time); break; case 4: sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_FREEZE, prob, level, time); break; } } obj.setTimeEvent(1, 200, 2, true); obj.setTimeEvent(2, 50, 4, true); obj.setTimeEvent(3, 15, 8, true); obj.setTimeEvent(4, 100, 2, true); break; case 1002://嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); local sub = receiveData.readDword(); obj.getVar("sizeRate").clear_vector(); obj.getVar("sizeRate").push_vector(sizeRate); obj.getVar("sizeRate").push_vector(sub); local anipath; switch(sub){ case 1: anipath = "passiveobject/madeby_k_k/animation/spirit/spirit/darkexplosion.ani"; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 93)); break; case 2: anipath = "passiveobject/madeby_k_k/animation/spirit/spirit/fireexplosion.ani"; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 94)); break; case 3: anipath = "passiveobject/madeby_k_k/animation/spirit/spirit/lightexplosion.ani"; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 95)); break; case 4: anipath = "passiveobject/madeby_k_k/animation/spirit/spirit/icefireexplosion.ani"; sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 96)); break; } sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("",anipath); obj.setCurrentAnimation(ani); //嚙踝蕭嚙? local currentAni = obj.getCurrentAnimation();//嚙踝蕭嚙踝蕭?嚙踝蕭ani sizeRate = sizeRate.tofloat() / 100.0; sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate);//嚙踝蕭??嚙踝蕭x y z嚙踝蕭嚙踝蕭 obj.sq_PlaySound("B_FIRE_EXPLOSION"); local prob = receiveData.readDword(); local time = receiveData.readDword(); local level = sq_GetSkillLevel(sqrChr, 174) + 20; local attackInfo = sq_GetCurrentAttackInfo(obj); if(attackInfo){ switch(sub){ case 1: sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_CURSE, prob, level, time); break; case 2: sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_BURN, prob, level, time); break; case 3: sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_LIGHTNING, prob, level, time); break; case 4: sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_FREEZE, prob, level, time); break; } } break; case 2001: local totalDamage = receiveData.readDword(); local sizeRate = receiveData.readDword(); print("test:" + totalDamage); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 101)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local anipath = "passiveobject/madeby_k_k/animation/spirit/spirit/allexplosion.ani"; local ani = sq_CreateAnimation("",anipath); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); sizeRate = sizeRate.tofloat() / 100.0; sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; } break; case SKILL_BYKK_MOONSHADOW: switch(subtype){ case 1://嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); local time = receiveData.readDword(); // obj.setTimeEvent(0,time,1,false); obj.getVar("custom").setInt(0, time); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); //?? local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(sqrChr, group, uniqueId);//嚙踝蕭嚙踝蕭?嚙踝蕭 sq_moveWithParent(targetObj, obj); obj.setMapFollowParent(sqrChr); obj.setMapFollowType(1); if(sqrChr.getVar("moonshadow").get_obj_vector_size() > 0){ sqrChr.getVar("moonshadow").push_obj_vector(obj); } else{ sqrChr.getVar("moonshadow").clear_obj_vector(); sqrChr.getVar("moonshadow").push_obj_vector(obj); } return; break; case 2://嚙踝蕭嚙踝蕭 //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = receiveData.readDword(); print("totalDamage = "+totalDamage); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 97)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/moonshadow/moonshadow_blackexplosion.ani"); obj.setCurrentAnimation(ani); break; case 3: local hitMax = receiveData.readDword(); obj.setTimeEvent(1, 75, hitMax, false); local group = receiveData.readDword(); local uniqueId = receiveData.readDword(); local targetObj = sq_GetObject(obj, group, uniqueId); if(targetObj){ obj.getVar("tar").clear_obj_vector(); obj.getVar("tar").push_obj_vector(targetObj); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 102)); } else sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_BYKK_BLACKLUNATIC: switch(subtype){ case 1://月蚀长矛103 local totalDamage = receiveData.readDword(); local angle = receiveData.readDword(); local moveX = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 103)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); sq_SetCustomRotate(obj, sq_ToRadian(270.0-angle.tofloat())); obj.getVar("custom").setInt(10, sq_GetXPos(obj)); obj.getVar("custom").setInt(11, sq_GetZPos(obj)); obj.getVar("custom").setInt(12, moveX); obj.addSetStatePacket(20, null, STATE_PRIORITY_AUTO, false, ""); break; case 2://月空破碎104 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 104)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.sq_PlaySound("R_BLACK_LUNATIC_MOONBREAK"); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_blacklunatic/moonbrakeattack_00.ani"); obj.setCurrentAnimation(ani); sq_AddDrawOnlyAniFromParent(obj, "character/mage/effect/animation/blacklunatic/moonbrakeattackbottom_00.ani", 0, -1, 0); break; case 3://月光追击105 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 105)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.sq_PlaySound("R_BLACK_LUNATIC_MOONLIGHT"); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_blacklunatic/moonlightattack_00.ani"); obj.setCurrentAnimation(ani); sq_AddDrawOnlyAniFromParent(obj, "character/mage/effect/animation/blacklunatic/moonlightattackbottom_00.ani", 0, -1, 0); break; case 4://黑暗闪电106 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 106)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); obj.sq_PlaySound("R_BLACK_LUNATIC_MOONLIGHT"); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_blacklunatic/darklightningattack_00.ani"); obj.setCurrentAnimation(ani); sq_AddDrawOnlyAniFromParent(obj, "character/mage/effect/animation/blacklunatic/darklightningattackbottom_00.ani", 0, -1, 0); break; case 5://施放时蚀爆炸106 local totalDamage = receiveData.readDword(); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 106)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_blacklunatic/darkmoonattack_00.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); print(pAni.getDelaySum(false)); break; } break; case 150: switch(subtype){ case 1: local totalDamage = receiveData.readDword(); local holdTime = receiveData.readDword(); obj.getVar("custom").setInt(0, totalDamage); obj.getVar("custom").setInt(1, holdTime); local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/throwstickytrap/throwglue_bottle01.ani"); obj.setCurrentAnimation(ani); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 109)); // sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); if(sq_GetDirection(obj) == ENUM_DIRECTION_RIGHT) sq_SetVelocity(obj, 0, 800.0); else sq_SetVelocity(obj, 0, -800.0); break; case 2: local totalDamage = receiveData.readDword(); local holdTime = receiveData.readDword(); obj.getVar("custom").setInt(1, holdTime); local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/throwstickytrap/throwglue_explosion01.ani"); obj.setCurrentAnimation(ani); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 110)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); break; case 3: // break; } break; case SKILL_BYKK_HIGHESTECHEVERRA: switch(subtype){ case 1: local totalDamage = receiveData.readDword(); local hitMax = receiveData.readDword(); local speedRate = receiveData.readDword(); local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/highestecheverra/hitdummy1.ani"); obj.setCurrentAnimation(ani); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 108)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(speedRate.tofloat()); local currentAni = obj.getCurrentAnimation(); print("delay = "+currentAni.getDelaySum(false)); print("hitMax = "+hitMax); obj.setTimeEvent(1, currentAni.getDelaySum(false) / (hitMax + 2), hitMax, true); break; case 2: local totalDamage = receiveData.readDword(); local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/highestecheverra/explosionbottom_08.ani"); obj.setCurrentAnimation(ani); local aniPath = "character/mage/animation/summoner_bykk/effect/highestecheverra/explosionfront_08.ani"; sq_AddDrawOnlyAniFromParent(obj, aniPath, 0, 1, 0); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 108)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); sq_ChangeDrawLayer(obj, ENUM_DRAWLAYER_BOTTOM); break; case 3: local speedRate = receiveData.readDword(); local ani = sq_CreateAnimation("","character/mage/animation/summoner_bykk/effect/highestecheverra/highestecheverrac_08.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.addLayerAnimation(6,sq_CreateAnimation("","character/mage/animation/summoner_bykk/effect/highestecheverra/highestecheverrab_00.ani"),true); pAni.addLayerAnimation(10,sq_CreateAnimation("","character/mage/animation/summoner_bykk/effect/highestecheverra/highestecheverrad_07.ani"),true); pAni.setImageRateFromOriginal(0.9, 0.9); pAni.setAutoLayerWorkAnimationAddSizeRate(0.9); pAni.setSpeedRate(speedRate.tofloat()); obj.sq_PlaySound("HIGHEST_ECHEVERRA_SUMMON"); break; } break; } 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); local attackInfo = sq_GetCurrentAttackInfo(obj); if(!attackInfo) return; 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); if(sqrChr.getVar("eclipsehive_select").getBool(0) == false){ local hitdelayRate = 100.0; if(skillIndex > 75 && skillIndex < 80 && sq_GetIntData(sqrChr, SKILL_BYKK_ECLIPSEHIVE, 26) > 0) hitdelayRate = 120.0; sq_SetAttackInfoHitDelayRateDamager(attackInfo, hitdelayRate); } } function setState_po_summoners(obj, state, datas) { if (!obj) return; local sqrChr = sq_GetCNRDObjectToSQRCharacter(obj.getTopCharacter()); local skillIndex = obj.getVar("skillIndex").get_vector(0); local subtype = obj.getVar("subtype").get_vector(0); obj.getVar("state").clear_vector(); obj.getVar("state").push_vector(state); switch(skillIndex){ case 25://hodor switch(subtype){ case 7://嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/hodor/bombfly.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭PTL obj.sq_SetMoveParticle("particle/hodor/hodorbomb.ptl", 0.0, 0.0); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/hodor/bombland.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(300.0); //嚙踝蕭PTL obj.sq_RemoveMoveParticle(); break; case 22: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = obj.getVar("totalDamage").get_vector(0); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 5)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/hodor/bombsub.ani"); obj.setCurrentAnimation(ani); sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/hodor/earthquake.ani", 0, 0, 0); sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/hodor/earthquakering.ani", 0, 0, 0); sq_CreateParticle("common/hiteffect/particle/firehitparticle.ptl", obj, 0, 0, 0, true, 30, 0, 2); sq_CreateParticle("common/hiteffect/particle/firehitparticlelight.ptl", obj, 0, 0, 0, true, 30, 0, 2); break; case 23: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = obj.getVar("totalDamage").get_vector(0); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 5)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/hodor/bombsub.ani"); obj.setCurrentAnimation(ani); sq_CreateParticle("common/hiteffect/particle/firehitparticle.ptl", obj, 0, 0, 0, true, 30, 0, 2); sq_CreateParticle("common/hiteffect/particle/firehitparticlelight.ptl", obj, 0, 0, 0, true, 30, 0, 2); break; } break; } break; case 44://sandor break; case 45://auxo switch(subtype){ case 5: case 15: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterflower/overgrowthseed.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭PTL obj.sq_SetMoveParticle("particle/auxo/overgrowthseed.ptl", sq_getRandom(-30,30).tofloat(), sq_getRandom(-10,10).tofloat()); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterflower/overgrowthgrowupmonsterflower.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(200.0); //嚙踝蕭PTL obj.sq_RemoveMoveParticle(); break; case 22: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/summonauxoawakeningout_body.ani"); obj.setCurrentAnimation(ani); //嚙踝蕭PTL obj.sq_RemoveMoveParticle(); break; } break; case 13: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/spit/summonauxoawakeningspit_sik.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭ptl sq_SetCustomRotate(obj, sq_ToRadian(-30.0)); obj.sq_SetMoveParticle("particle/monsterfower/monsterlunaflowerspit.ptl", 0.0, 0.0); break; case 21: sq_SetCustomRotate(obj, sq_ToRadian(0.0)); obj.sq_RemoveMoveParticle(); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/spit/summonauxoawakeningspit_boom.ani"); obj.setCurrentAnimation(ani); //嚙踝蕭眳 // local objmg = obj.getObjectManager(); //嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭庢嚙踝蕭嚙踝蕭 // for(local i= 0; i < objmg.getCollisionObjectNumber(); i++){ // local object = objmg.getCollisionObject(i); //嚙踝蕭嚙踝蕭嚙踝蕭嚙論橘蕭嚙踝蕭嚙? // if(object && obj.isEnemy(object) && object.isObjectType(OBJECTTYPE_ACTIVE) && sq_Abs(object.getXPos() - obj.getXPos()) <= 400 && sq_Abs(object.getYPos() - obj.getYPos()) <= 200){ // local activeObj = sq_GetCNRDObjectToActiveObject(object); // sq_SendHitObjectPacket(obj,activeObj,0,0,sq_GetObjectHeight(activeObj) / 2); // //createPassiveObject_k_k(sqrChr,obj,45,13,0,0,0,0,22,sq_GetGroup(activeObj),sq_GetUniqueId(activeObj), 0); // } // } break; case 22: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/spit/summonauxoawakeningspit_sikloop.ani"); obj.setCurrentAnimation(ani); break; case 23: break; } break; case 14: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/bomit/summonauxoawakeningbomit_sik.ani"); obj.setCurrentAnimation(ani); sq_SetCustomRotate(obj, sq_ToRadian(5.0)); //?嚙踝蕭ptl obj.sq_SetMoveParticle("particle/monsterfower/monsterlunaflowerbomit.ptl", 0.0, 0.0); break; case 21: sq_SetCustomRotate(obj, sq_ToRadian(0.0)); obj.sq_RemoveMoveParticle(); // local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/monsterlunaflower/bomit/summonauxoawakeningbomit_boom.ani"); obj.setCurrentAnimation(ani); local sizeRate = obj.getVar().getInt(10); sizeRate = sizeRate.tofloat() / 100.0; local currentAni = obj.getCurrentAnimation(); currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); break; } break; } break; case 46://luis switch(subtype){ case 5: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/common/animation/magictargetwarningterrible.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); local fireT = pAni.getDelaySum(false); obj.setTimeEvent(0,fireT / 3, 1, false); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/common/animation/magictargetwarningterrible.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); local fireT = pAni.getDelaySum(false); obj.setTimeEvent(2,fireT / 3, 1, false); break; case 22: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/dummy.ani"); obj.setCurrentAnimation(ani); break; } break; case 6: switch(state){ case 20: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = obj.getVar().get_vector(0); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 25)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_meteor/luis_meteor_rock_eff01.ani"); obj.setCurrentAnimation(ani); //?嚙踝蕭ptl obj.sq_SetMoveParticle("particle/luis/luis_meteor.ptl", 0.0, 0.0); if(obj.getVar().get_vector(2) > 0){ sq_SetSpeedToMoveParticle(obj, 0, 2400); sq_SetSpeedToMoveParticle(obj, 2, -4800); } break; case 21: //?嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 local totalDamage = obj.getVar().get_vector(1); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 26)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); //嚙踝蕭PTL obj.sq_RemoveMoveParticle(); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_meteor/luis_meteor_explosion_back.ani"); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(-1001,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_meteor/luis_meteor_explosion_floor01.ani"),true); break; } break; } break; case 47://echeverra switch(subtype){ case 8: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/newskill/soundshockfloor_startwave.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); local Delay = obj.getVar("Delay").get_vector(0); local speedRate = 136000.0 / Delay.tofloat(); pAni.setSpeedRate(speedRate); sq_ChangeDrawLayer(obj, ENUM_DRAWLAYER_BOTTOM); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/newskill/soundshockfloor_end01.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(150.0); break; } break; case 9: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/newskill/charge_loop/sarpozanormalattackcasting_01.ani"); obj.setCurrentAnimation(ani); sq_setCurrentAxisPos(obj, 2, -60); local pAni = obj.getCurrentAnimation(); local Delay = obj.getVar("Delay").get_vector(0); local speedRate = 148500.0 / Delay.tofloat(); pAni.setSpeedRate(speedRate * 1.2); obj.sq_PlaySound("SARPOZA_ELEMENTAL_STRIKE_DARK_CAST_01",1001); break; case 21: obj.stopSound(1001); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/newskill/charge_end/sarpozanormalattackcasting_05.ani"); obj.setCurrentAnimation(ani); break; case 22: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/newskill/tell/sarpozateleportfront_00.ani"); obj.setCurrentAnimation(ani); sq_setCurrentAxisPos(obj, 0, sq_GetDistancePos(obj.getXPos(), obj.getDirection(), 100)); sq_setCurrentAxisPos(obj, 2, 100); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(150.0); pAni.setImageRateFromOriginal(0.5, 0.5); pAni.setAutoLayerWorkAnimationAddSizeRate(0.5); obj.sq_PlaySound("R_SARPOZA_N_MAGIC_DARK_FIRING",1003); break; case 23: local targetObj = sq_GetCNRDObjectToActiveObject(obj.getVar().get_obj_vector(0)); sq_setCurrentAxisPos(obj, 0, targetObj.getXPos()); sq_setCurrentAxisPos(obj, 1, targetObj.getYPos() + 1); sq_setCurrentAxisPos(obj, 2, 70); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/newskill/tell/sarpozateleportfront_00.ani"); obj.setCurrentAnimation(ani); switch(targetObj.getCollisionObjectIndex()){ case MONSTER_ID_DARKHIGHERSPIRIT: sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spikeking/newskill/buff_animation/end_element_00.ani",0,0,-50); break; case MONSTER_ID_FIREHIGHERSPIRIT: sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spikeking/newskill/buff_animation/end_red_00.ani",0,0,-50); break; case MONSTER_ID_LIGHTHIGHERSPIRIT: sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spikeking/newskill/buff_animation/end_green_00.ani",0,0,-50); break; case MONSTER_ID_WATERHIGHERSPIRIT: sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spikeking/newskill/buff_animation/end_blue_00.ani",0,0,-50); break; } local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(150.0); pAni.setImageRateFromOriginal(0.5, 0.5); pAni.setAutoLayerWorkAnimationAddSizeRate(0.5); obj.sq_PlaySound("R_SARPOZA_N_MAGIC_DARK_FIRING",1003); break; } break; case 41: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/darksteellightning/magictargetwarning.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(140.0); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/darksteellightning/darksteellightning.ani"); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); local sizeRate = 1.3; currentAni.setImageRateFromOriginal(sizeRate, sizeRate); currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate); sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate); obj.setTimeEvent(1,200,1,false); break; } break; } break; case 76://spiritdarkhigher switch(subtype){ case 3: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/star.ani"); obj.setCurrentAnimation(ani); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/loop.ani"); obj.setCurrentAnimation(ani); sq_CreateParticle("passiveobject/monster/spirit/particle/belzebuite_overskill_dark_for_deadmulker.ptl", obj, 0, 0, 0, true, 200, 4000, 200); break; case 22: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/end.ani"); obj.setCurrentAnimation(ani); break; } break; case 41: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/blackfog/belzebuite_overskill_circle_of_magic_1.ani"); obj.setCurrentAnimation(ani); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/blackfog/belzebuite_overskill_circle_of_magic_2.ani"); obj.setCurrentAnimation(ani); break; case 22: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/blackfog/belzebuite_overskill_circle_of_magic_3.ani"); obj.setCurrentAnimation(ani); break; } break; case 61: switch(state){ case 20: sq_SetMyShake(obj,2,80); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/cylinder/cylinder150/cylinderstart_01.ani"); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(1,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/blackfogstart.ani"),true); sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/circleb.ani",0,0,0); currentAni.setSpeedRate(150.0); obj.sq_PlaySound("DESCHAMPS_SHOCKWAVE"); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/cylinder/cylinder150/cylinderloop_00.ani"); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(1,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/blackfogloop.ani"),true); local time = (obj.getVar("time").get_vector(0) - 693) / 3; obj.setTimeEvent(2, time, 3, true); break; case 22: sq_SetMyShake(obj,3,100); obj.resetHitObjectList(); local bonusRate = sq_GetCurrentAttackBonusRate(obj) * 2; sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), bonusRate); //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/cylinder/cylinder150/cylinderend_00.ani"); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(1,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/blackfogend.ani"),true); currentAni.setSpeedRate(180.0); obj.sq_PlaySound("DESCHAMPS_METAL_EXP"); break; } break; case 62: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/circle/magiccirclestart_00.ani"); obj.setCurrentAnimation(ani); sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/cylinderstartbottom_01.ani",0,0,0); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/circle/magiccircleloop_01.ani"); obj.setCurrentAnimation(ani); break; case 22: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/animation/circle/magiccircleend_00.ani"); obj.setCurrentAnimation(ani); break; } sq_ChangeDrawLayer(obj, ENUM_DRAWLAYER_BOTTOM); break; case 63: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/dummy.ani"); obj.setCurrentAnimation(ani); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/darkhigherspirit/darkskill/test/holding_start_dodge.ani"); obj.setCurrentAnimation(ani); sq_ChangeDrawLayer(obj, ENUM_DRAWLAYER_COVER); //?? local activeObj = sq_GetCNRDObjectToActiveObject(obj.getVar().get_obj_vector(0)); if(activeObj){ //local x = activeObj.getXPos(); //local y = activeObj.getYPos(); //local z = activeObj.getObjectHeight()/2 + CRI_UPPER_HEIGHT; //local dieHardAppendage = CNSquirrelAppendage.sq_GetAppendage(activeObj,"ui/ap/ap_monster.nut"); local hp = activeObj.getHp(); //applyNomalDamage(dieHardAppendage,hp,x+20,y,z); activeObj.setHp(0, null, true); sq_SetMyShake(obj,3,180); } break; } break; } break; case 77://spiritlighthigher switch(subtype){ case 1: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/darksteellightning/magictargetwarning.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(200.0); break; case 21: case 22: case 23: case 24: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/magelighthigherspiritthunder"+(state - 20).tostring()+".ani"); obj.setCurrentAnimation(ani); sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/magelighthigherspiritthundersplash.ani",0,0,0); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(150.0); break; } break; case 21: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spikeking/darksteellightning/magictargetwarning.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(200.0); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/thunderbolt.ani"); obj.setCurrentAnimation(ani); break; } break; case 41: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/lightsoul/thunder_warning02.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(130.0); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/lightsoul/thunder_pang.ani"); obj.setCurrentAnimation(ani); monsterpulled_bykkkkkkk(sqrChr,obj,0,0,0); break; } break; case 42: switch(state){ case 20: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/lightsoul/thunder_warning02.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(130.0); break; case 21: //?嚙踝蕭ANI local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/lightsoul/thunderstrike_lightning01.ani"); obj.setCurrentAnimation(ani); monsterpulled_bykkkkkkk(sqrChr,obj,0,0,0); break; } break; } break; case 78://spiritwaterhigher switch(subtype){ case 3: switch(state){ case 20: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/summon_water_ice_spear_front_dodge.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(200.0); break; case 21: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/element_water_ice_spear_dodge.ani"); obj.setCurrentAnimation(ani); obj.sq_SetMoveParticle("particle/spirit/water_spirit_higher_ice_spear_move.ptl", 0.0, 0.0); break; case 22: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/element_water_ice_spear_broken_normal.ani"); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); currentAni.addLayerAnimation(-1,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/element_water_ice_spear_broken_dodge.ani"),true); break; } break; case 11: switch(state){ case 20: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/element_water_ice_appear_none.ani"); obj.setCurrentAnimation(ani); break; case 21: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/element_water_ice_normal_none.ani"); obj.setCurrentAnimation(ani); break; case 22: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/element_water_ice_break_ldodge.ani"); obj.setCurrentAnimation(ani); sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/element_water_ice_break_none.ani"0,-1,-1); break; } break; case 10: switch(state){ case 20: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/water_firewater/start/watertornado_start_04.ani"); obj.setCurrentAnimation(ani); break; case 21: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/water_firewater/loop/watertornado_loop_03.ani"); obj.setCurrentAnimation(ani); local parentObj = obj.getParent(); local appendage = CNSquirrelAppendage.sq_AppendAppendage(parentObj, obj, SKILL_BYKK_SUMMONSPIRITWATERHIGHER, false, "character/mage/k_k_made/appendage/aptomonster/skill_ap/ap_waterhigherspirit_skill.nut", false); if(appendage){ appendage.sq_SetValidTime(3000); CNSquirrelAppendage.sq_Append(appendage, parentObj, obj); local auraAppendage = appendage.sq_getAuraMaster("wtornadoAura"); if(!auraAppendage) auraAppendage = appendage.sq_AddAuraMaster("wtornadoAura",parentObj, obj, 1200, 18, 5, 0); if(auraAppendage) auraAppendage.setAttractionInfo(300, 300, 600, 100); } break; case 22: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/waterhigherspirit/water_firewater/end/watertornado_end_03.ani"); obj.setCurrentAnimation(ani); break; } local currentAni = obj.getCurrentAnimation();//嚙踝蕭嚙踝蕭?嚙踝蕭ani local sizeRate = 0.65;//??搣嚙踝蕭??蓱 currentAni.setImageRateFromOriginal(sizeRate, sizeRate);//嚙踝蕭吤ani ?嚙踝蕭?嚙踝蕭嚙踝蕭嚙踝蕭 currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate);//嚙踝蕭吤ani als旓吤 ani嚙踝蕭嚙踝蕭嚙踝蕭嚙? sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate);//嚙踝蕭??嚙踝蕭x y z嚙踝蕭嚙踝蕭 break; } break; case 79://spiritfirehigher switch(subtype){ case 61: switch(state){ case 20: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/firehigherspirit/fire/roulettefiretornado_start_tornadostart.ani"); obj.setCurrentAnimation(ani); obj.setTimeEvent(2,480,1,false); break; case 21: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/firehigherspirit/fire/roulettefiretornado_loop_tornadoloop.ani"); obj.setCurrentAnimation(ani); break; case 22: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/spirit/firehigherspirit/fire/roulettefiretornado_end_tornadoend.ani"); obj.setCurrentAnimation(ani); obj.stopTimeEvent(3); break; } local currentAni = obj.getCurrentAnimation();//嚙踝蕭嚙踝蕭?嚙踝蕭ani local sizeRate = 0.55;//??搣嚙踝蕭??蓱 currentAni.setImageRateFromOriginal(sizeRate, sizeRate);//嚙踝蕭吤ani ?嚙踝蕭?嚙踝蕭嚙踝蕭嚙踝蕭 currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate);//嚙踝蕭吤ani als旓吤 ani嚙踝蕭嚙踝蕭嚙踝蕭嚙? sq_SetAttackBoundingBoxSizeRate(currentAni, sizeRate, sizeRate, sizeRate);//嚙踝蕭??嚙踝蕭x y z嚙踝蕭嚙踝蕭 break; } break; case 80://babydragon switch(subtype){ case 11: switch(state){ case 20: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/disaster/standing/disaster_standingbody_astrab.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.addLayerAnimation(1,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/disaster/standing/disaster_standingbody_astraf.ani"),true); sq_AddDrawOnlyAniFromParent(obj, "passiveobject/madeby_k_k/animation/babydragon/newskill/disaster/standing/disaster_standingeffectback_01.ani", 0, -1, 0); sq_AddDrawOnlyAniFromParent(obj, "passiveobject/madeby_k_k/animation/babydragon/newskill/disaster/standing/disaster_standingeffecttop_05.ani", 0, 1, 0); obj.sq_PlaySound("DISASTER_SUMMON"); break; case 21: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/disaster/charge/disaster_charge_astrab.ani"); obj.setCurrentAnimation(ani); obj.setTimeEvent(1, 150, 10, true); break; case 22: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/disaster/breathstart/disaster_breathe_astrab.ani"); obj.setCurrentAnimation(ani); obj.sq_PlaySound("DISASTER_THUNDER_BREATH"); break; case 23: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/disaster/breathloop/disaster_breathe_astrab.ani"); obj.setCurrentAnimation(ani); obj.setTimeEvent(1, 150, 10, true); break; case 24: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/disaster/breathend/disaster_breathe_astrab.ani"); obj.setCurrentAnimation(ani); obj.sq_PlaySound("STORM_BREATH_DISAPPEAR"); break; } break; case 12: case 13: local aniPath1 = "passiveobject/madeby_k_k/animation/babydragon/newskill/"; switch(state){ case 20: local aniPath2 = "participation/participationhowlingstartdragonback_01.ani"; if(subtype == 13) aniPath2 = "stormbreath/start/stormbreath_start_astra_back.ani"; local ani = sq_CreateAnimation("", aniPath1 + aniPath2); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); if(subtype == 12) currentAni.addLayerAnimation(1,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/participation/participationhowlingstartdragonfront_01.ani"),true); else currentAni.addLayerAnimation(1,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/stormbreath/start/stormbreath_start_astra_front.ani"),true); break; case 21: local aniPath2 = "participation/participationhowlingloop_astraback.ani"; if(subtype == 13) aniPath2 = "stormbreath/loop/stormbreath_loop_astra_back.ani"; local ani = sq_CreateAnimation("", aniPath1 + aniPath2); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); if(subtype == 12) currentAni.addLayerAnimation(1,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/participation/participationhowlingloop_astrafront.ani"),true); else currentAni.addLayerAnimation(1,sq_CreateAnimation("","passiveobject/madeby_k_k/animation/babydragon/newskill/stormbreath/loop/stormbreath_loop_astra_front.ani"),true); obj.setTimeEvent(2, 100, 1, true); if(subtype == 12) obj.setTimeEvent(3, 2350, 1, false); else obj.setTimeEvent(3, 2000, 1, false); break; case 22: local aniPath2 = "participation/participationhowlingchange_01.ani"; if(subtype == 13) aniPath2 = "stormbreath/end/stormbreath_end_small_eff07.ani"; local ani = sq_CreateAnimation("", aniPath1 + aniPath2); obj.setCurrentAnimation(ani); local currentAni = obj.getCurrentAnimation(); break; } break; case 121: case 131: local aniPath1 = "passiveobject/madeby_k_k/animation/babydragon/newskill/"; switch(state){ case 20: local aniPath2 = "participation/participationhowling01_01.ani"; if(subtype == 121){ local ani = sq_CreateAnimation("", aniPath1 + aniPath2); obj.setCurrentAnimation(ani); } else{ aniPath2 = "stormbreath/start/stormbreath_start_breatheff02.ani"; obj.setTimeEvent(4, 120, 1, false); // local pooledObj = sq_AddDrawOnlyAniFromParent(obj, aniPath1 + aniPath2, -150, 0, 275); // local pAni = pooledObj.getCurrentAnimation(); // pAni.setSpeedRate(200.0); } break; case 21: local aniPath2 = "participation/participationhowling02_01.ani"; if(subtype == 131) aniPath2 = "stormbreath/loop/stormbreath_loop_breatheff_a01.ani"; local ani = sq_CreateAnimation("", aniPath1 + aniPath2); obj.setCurrentAnimation(ani); obj.setTimeEvent(1, 150, 10, true); break; case 22: local aniPath2 = "participation/participationhowling03_02.ani"; if(subtype == 131) aniPath2 = "stormbreath/end/stormbreath_end_breatheff03.ani"; local ani = sq_CreateAnimation("", aniPath1 + aniPath2); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); if(subtype == 121) pAni.setSpeedRate(200.0); else pAni.setSpeedRate(150.0); break; } break; } break; case 82://casillas break; case 118://sandorex break; case 119://heilrom break; case 120://spiritfireex break; case 121://kruta break; case 122://ramos switch(subtype){ case 41: switch(state){ case 20: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/absorb/gluttonyhand_01.ani"); obj.setCurrentAnimation(ani); local delay = obj.getVar("delay").get_vector(0); local speedRate = 72.0 / delay.tofloat() * 120.0; local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(speedRate.tofloat()); obj.getVar("move").clear_vector(); obj.getVar("move").push_vector(obj.getXPos()); obj.getVar("move").push_vector(150); break; case 21: obj.stopTimeEvent(0); local totalDamage = obj.getVar("bonusrate").get_vector(0); sq_SetCurrentAttackInfo(obj, sq_GetCustomAttackInfo(obj, 76)); sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage); local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/absorb/gluttonyhandattack_07.ani"); obj.setCurrentAnimation(ani); break; } break; case 42: switch(state){ case 20: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/absorb/gluttonysoulmultiplehit_02.ani"); obj.setCurrentAnimation(ani); local delay = obj.getVar("delay").get_vector(0); local speedRate = 72.0 / delay.tofloat() * 175.0; local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(speedRate.tofloat()); break; case 21: local dstX = sq_GetDistancePos(obj.getXPos(), obj.getDirection(), 50); sq_setCurrentAxisPos(obj, 0, dstX); local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/absorb/gluttonysoulsuction_02.ani"); obj.setCurrentAnimation(ani); local delay = obj.getVar("delay").get_vector(0); local speedRate = 72.0 / delay.tofloat() * 120.0; local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(speedRate.tofloat()); break; } break; case 200: switch(state){ case 20: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/summon/targeting_start.ani"); obj.setCurrentAnimation(ani); break; case 21: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/summon/targeting_move.ani"); obj.setCurrentAnimation(ani); obj.getVar("move").clear_vector(); obj.getVar("move").push_vector(obj.getXPos()); obj.getVar("move").push_vector(200); break; case 22: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/ramos/summon/targeting_end01.ani"); obj.setCurrentAnimation(ani); break; case 23: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/dummy.ani"); obj.setCurrentAnimation(ani); local pooledObj = sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/ramos/summon/startmoon_28.ani", 0, 0, 80 + obj.getYPos()); obj.setTimeEvent(1, 1000, 1, false); break; } break; } break; case SKILL_BYKK_SUMMONSPIRITCOMMON: break; case SKILL_BYKK_MOONSHADOW: switch(subtype){ case 1: switch(state){ case 20: local ani = sq_CreateAnimation("","character/mage/effect/animation/moonshadow/moonshadow_start_falling_normal.ani"); obj.setCurrentAnimation(ani); break; case 21: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/moonshadow/moonshadow_start_ground_normal.ani"); obj.setCurrentAnimation(ani); sq_ChangeDrawLayer(obj, ENUM_DRAWLAYER_BOTTOM); break; case 22: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/moonshadow/moonshadow_loop_ground_normal.ani"); obj.setCurrentAnimation(ani); break; case 23: local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/moonshadow/moonshadow_end_ground_normal.ani"); obj.setCurrentAnimation(ani); break; } local currentAni = obj.getCurrentAnimation();//嚙踝蕭嚙踝蕭?嚙踝蕭ani local sizeRate = 0.35;//??搣嚙踝蕭??蓱 if(state == 20) sizeRate = 0.6; currentAni.setImageRateFromOriginal(sizeRate, sizeRate);//嚙踝蕭吤ani ?嚙踝蕭?嚙踝蕭嚙踝蕭嚙踝蕭 currentAni.setAutoLayerWorkAnimationAddSizeRate(sizeRate);//嚙踝蕭吤ani als旓吤 ani嚙踝蕭嚙踝蕭嚙踝蕭嚙? return; break; case 2: break; } break; case SKILL_BYKK_BLACKLUNATIC: switch(subtype){ case 1://月蚀长矛 switch(state){ case 20://start local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_blacklunatic/eclipesspearstart_00.ani"); obj.setCurrentAnimation(ani); local pAni = obj.getCurrentAnimation(); pAni.setSpeedRate(200.0); break; case 21://loop local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_blacklunatic/eclipesspearloop_00.ani"); obj.setCurrentAnimation(ani); obj.setTimeEvent(0, 200, 1, false); break; case 22://attack local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_blacklunatic/eclipesspearattack_00.ani"); obj.setCurrentAnimation(ani); obj.setTimeEvent(1, 5, 30, false); break; case 23://hit local ani = sq_CreateAnimation("","passiveobject/madeby_k_k/animation/luis/luis_blacklunatic/eclipesspearhit_00.ani"); obj.setCurrentAnimation(ani); obj.sq_PlaySound("BLACK_LUNATIC_SPEAR_MULTIPLE"); break; } break; } break; } 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); local attackInfo = sq_GetCurrentAttackInfo(obj); if(!attackInfo) return; 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); if(sqrChr.getVar("eclipsehive_select").getBool(0) == false){ local hitdelayRate = 100.0; if(skillIndex > 75 && skillIndex < 80 && sq_GetIntData(sqrChr, SKILL_BYKK_ECLIPSEHIVE, 26) > 0) hitdelayRate = 120.0; sq_SetAttackInfoHitDelayRateDamager(attackInfo, hitdelayRate); } } function onEndCurrentAni_po_summoners(obj) { if(!obj) return; local sqrChr = sq_GetCNRDObjectToSQRCharacter(obj.getTopCharacter()); local skillIndex = obj.getVar("skillIndex").get_vector(0); local subtype = obj.getVar("subtype").get_vector(0); local state = obj.getVar("state").get_vector(0); switch(skillIndex){ case 25://hodor switch(subtype){ case 1://嚙踝蕭嚙踝蕭怐 sq_SendDestroyPacketPassiveObject(obj); break; case 3://嚙踝蕭怐 sq_SendDestroyPacketPassiveObject(obj); break; case 4://嚙踝蕭嚙踝蕭嚙踝蕭嚙? break; case 5://3盓嚙踝蕭 break; case 6://嚙踝蕭艉嚙踝蕭 break; case 7://嚙踝蕭嚙踝蕭嚙踝蕭嚙踝蕭 switch(state){ case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 8://旓?1?茷 sq_SendDestroyPacketPassiveObject(obj); break; case 9://旓?2?茷 sq_SendDestroyPacketPassiveObject(obj); break; } break; case 44://sandor sq_SendDestroyPacketPassiveObject(obj); break; case 45://auxo switch(subtype){ case 1: case 2: case 3: case 4: case 11: case 12: case 14: case 100: sq_SendDestroyPacketPassiveObject(obj); break; case 5: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 13: switch(state){ case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 46://luis switch(subtype){ case 1: case 2: case 3: case 4: sq_SendDestroyPacketPassiveObject(obj); break; case 5: switch(state){ case 20: case 22: sq_SendDestroyPacketPassiveObject(obj); break; case 21: obj.addSetStatePacket(22, null, STATE_PRIORITY_AUTO, false, ""); break; } break; case 6: switch(state){ case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 47://echeverra switch(subtype){ case 1: case 2: case 4: case 5: case 51: sq_SendDestroyPacketPassiveObject(obj); break; case 41: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 8: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; } break; case 9: switch(state){ case 22: obj.addSetStatePacket(23, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: local activeObj = sq_GetCNRDObjectToActiveObject(obj.getVar().get_obj_vector(0)); //monsterattack_ksk(activeObj,6); local AddAppendage = CNSquirrelAppendage.sq_AppendAppendage(activeObj, sqrChr, -1, false, "character/mage/k_k_made/appendage/aptomonster/skill_ap/ap_spikeking_grant.nut", true); local monster_id = activeObj.getCollisionObjectIndex(); AddAppendage.getVar().clear_vector(); AddAppendage.getVar().push_vector(monster_id); AddAppendage.sq_SetValidTime(30000); sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 76://spiritdarkhigher switch(subtype){ case 1: case 2: case 63: sq_SendDestroyPacketPassiveObject(obj); break; case 3: case 41: case 61: case 62: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 77://spiritlighthigher switch(subtype){ case 1: switch(state){ case 20: case 21: case 22: case 23: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 24: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: case 10: sq_SendDestroyPacketPassiveObject(obj); break; case 21: case 41: case 42: switch(state){ case 20: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 78://spiritwaterhigher switch(subtype){ case 1: case 2: case 4: case 41: case 9: sq_SendDestroyPacketPassiveObject(obj); break; case 3: case 11: switch(state){ case 20: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 10: switch(state){ case 20: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: local parentObj = obj.getParent(); CNSquirrelAppendage.sq_RemoveAppendage(parentObj, "character/mage/k_k_made/appendage/aptomonster/skill_ap/ap_waterhigherspirit_skill.nut"); sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 79://spiritfirehigher switch(subtype){ case 1: case 2: case 21: case 31: case 32: case 33: case 4: case 6: sq_SendDestroyPacketPassiveObject(obj); break; case 61: switch(state){ case 20: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 80://babydragon switch(subtype){ case 1: case 2: case 3: case 4: case 5: case 6: sq_SendDestroyPacketPassiveObject(obj); break; case 11: switch(state){ case 20: case 21: case 22: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 24: local targetObj = obj.getVar("target").get_obj_vector(0); if(targetObj){ local activeObj = sq_GetCNRDObjectToActiveObject(targetObj); sq_SendCreatePassiveObjectPacketPos(activeObj, 1008605, 0, 0, 0, 233); activeObj.sendStateOnlyPacket(STATE_STAND); sq_AddDrawOnlyAniFromParent(obj, "passiveobject/madeby_k_k/animation/babydragon/newskill/stormbreath/astractransform_endeff05.ani", 0, 0, 0); } sq_SendDestroyPacketPassiveObject(obj); break; } break; case 12: case 13: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: local targetObj = obj.getVar("target").get_obj_vector(0); if(targetObj){ local activeObj = sq_GetCNRDObjectToActiveObject(targetObj); sq_SendCreatePassiveObjectPacketPos(activeObj, 1008605, 0, 0, 0, 233); activeObj.sendStateOnlyPacket(STATE_STAND); sq_AddDrawOnlyAniFromParent(obj, "passiveobject/madeby_k_k/animation/babydragon/newskill/stormbreath/astractransform_endeff05.ani", 0, 0, -295); } sq_SendDestroyPacketPassiveObject(obj); break; } break; case 121: case 131: switch(state){ case 20: obj.addSetStatePacket(21, null, STATE_PRIORITY_AUTO, false, ""); break; case 22: sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 82://casillas sq_SendDestroyPacketPassiveObject(obj); break; case 118://sandorex break; case 119://heilrom break; case 120://spiritfireex break; case 121://kruta sq_SendDestroyPacketPassiveObject(obj); break; case 122://ramos switch(subtype){ case 1: case 21: case 22: case 31: case 32: case 33: case 5: case 6: case 71: case 72: case 73: case 74: case 75: sq_SendDestroyPacketPassiveObject(obj); break; case 41: case 42: switch(state){ case 20: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 21: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 200: switch(state){ case 20: case 22: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; } break; } break; case SKILL_BYKK_SUMMONSPIRITCOMMON: switch(subtype){ case 101: case 102: case 201: case 301: case 302: case 401: case 402: case 1001: case 1002: case 2001: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_BYKK_MOONSHADOW: switch(subtype){ case 1: switch(state){ case 20: case 21: obj.addSetStatePacket(state + 1, null, STATE_PRIORITY_AUTO, false, ""); break; case 23: local loadSlot = sqrChr.sq_GetSkillLoad(SKILL_BYKK_MOONSHADOW); if(loadSlot) sqrChr.sq_RemoveSkillLoad(SKILL_BYKK_MOONSHADOW); sq_SendDestroyPacketPassiveObject(obj); break; } break; case 2: sq_SendDestroyPacketPassiveObject(obj); break; case 3: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_BYKK_BLACKLUNATIC: switch(subtype){ case 1: switch(state){ case 20: 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; case 4: sq_SendDestroyPacketPassiveObject(obj); break; case 5: sq_SendDestroyPacketPassiveObject(obj); break; } break; case 150: switch(subtype){ case 1: case 2: sq_SendDestroyPacketPassiveObject(obj); break; } break; case SKILL_BYKK_HIGHESTECHEVERRA: if(subtype == 3){ obj.sq_PlaySound("HIGHEST_ECHEVERRA_DISAPPEAR"); sq_AddDrawOnlyAniFromParent(obj, "character/mage/animation/summoner_bykk/effect/highestecheverra/highestecheverra_echeverraend.ani", 0, 0, 0); // sq_AddDrawOnlyAniFromParent(obj, "character/mage/animation/summoner_bykk/effect/highestecheverra/highestecheverrae_08.ani", 0, 0, 0); obj.setTimeEvent(2, 500, 1, false); break; } sq_SendDestroyPacketPassiveObject(obj); break; } } function onKeyFrameFlag_po_summoners(obj, flagIndex) { if (!obj) return false; local sqrChr = sq_GetCNRDObjectToSQRCharacter(obj.getTopCharacter()); local skillIndex = obj.getVar("skillIndex").get_vector(0); local subtype = obj.getVar("subtype").get_vector(0); local state = obj.getVar("state").get_vector(0); switch(skillIndex){ case 25://hodor break; case 44://sandor break; case 45://auxo switch(subtype){ case 5: switch(flagIndex){ case 1001: local monster_level = sq_GetSkillLevel(sqrChr, 174); local monster_time = 3600000; // local destX_01 = obj.getXPos() - sqrChr.getXPos(); // local destY_01 = obj.getYPos() - sqrChr.getYPos(); // if(obj.getDirection() == ENUM_DIRECTION_LEFT) destX_01 = sqrChr.getXPos() - obj.getXPos(); //summonmonster_mage(sqrChr,destX_01,destY_01,0,0,MONSTER_ID_AUXOOLD,monster_time,monster_level,0); summonmonster_mage_plus_Kwk(sqrChr,obj,0,0,0,0,MONSTER_ID_AUXOOLD,monster_time,monster_level,0); sq_SendDestroyPacketPassiveObject(obj); break; } break; case 15: switch(flagIndex){ case 1001: local monster_level = sq_GetSkillLevel(sqrChr, 174); local monster_time = 3600000; summonmonster_mage_plus_Kwk(sqrChr,obj,0,0,0,0,MONSTER_ID_AUXO,monster_time,monster_level,0); sq_SendDestroyPacketPassiveObject(obj); break; } break; } break; case 46://luis break; case 47://echeverra switch(subtype){ case 51: local anipath = ["passiveobject/madeby_k_k/animation/spikeking/newlaser/uhdlaserbomblaiserblue_00.ani","passiveobject/madeby_k_k/animation/spikeking/newlaser/uhdlaserbomblaiserpurple_00.ani","passiveobject/madeby_k_k/animation/spikeking/newlaser/uhdlaserbomblaiserred_00.ani","passiveobject/madeby_k_k/animation/spikeking/newlaser/uhdlaserbomblaiseryellow_00.ani"]; switch(flagIndex){ case 101: local pooledObj_01 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], 0, 10, 0); local pooledObj_02 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], -140, -40, 0); break; case 102: sq_SetMyShake(obj,2,800); break; case 103: local pooledObj_01 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], -112, -70, 0); local pooledObj_02 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], 28, 40, 0); break; case 104: //obj.resetHitObjectList(); break; case 105: local pooledObj_01 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], 112, 0, 0); local pooledObj_02 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], 168, -60, 0); break; case 107: local pooledObj_01 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], -28, -20, 0); local pooledObj_02 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], 56, -30, 0); break; case 109: local pooledObj_01 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], -168, 20, 0); local pooledObj_02 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], 84, 70, 0); break; case 111: local pooledObj_01 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], -56, -50, 0); local pooledObj_02 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], 196, -10, 0); break; case 113: local pooledObj_01 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], 140, 60, 0); local pooledObj_02 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], -196, 30, 0); break; case 115: local pooledObj_01 = sq_AddDrawOnlyAniFromParent(obj, anipath[sq_getRandom(0,3)], -84, 50, 0); break; } break; } break; case 76://spiritdarkhigher switch(flagIndex){ case 4002: obj.resetHitObjectList(); break; } break; case 77://spiritlighthigher switch(flagIndex){ case 5002: sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/lightsoul/thunderstrike_floor.ani",0,0,0); sq_AddDrawOnlyAniFromParent(obj,"passiveobject/madeby_k_k/animation/spirit/lighthigherspirit/lightsoul/thunderstrike_hit01.ani",0,0,0); break; case 101: obj.resetHitObjectList(); obj.sq_PlaySound("R_REDWITCH_LIGHTNING"); break; } break; case 78://spiritwaterhigher break; case 79://spiritfirehigher break; case 80://babydragon switch(flagIndex){ case 1001: obj.sq_PlaySound("STORM_BREATH_SUMMON"); break; case 1002: obj.sq_PlaySound("YOUNGSKASA_WING");obj.sq_PlaySound("YOUNGSKASA_WIND_LOOP"); break; case 1003: obj.sq_PlaySound("STORM_BREATH_DISAPPEAR"); break; case 1101: obj.sq_PlaySound("PARTICIPATION_CHANGE"); break; case 1102: obj.sq_PlaySound("PARTICIPATION_SCREAM"); break; case 1103: obj.sq_PlaySound("PARTICIPATION_SMASH"); break; } break; case 82://casillas switch(flagIndex){ case 1: obj.resetHitObjectList(); break; case 2: local xpos = obj.getVar().get_vector(0); for(local i = 0; i < 4; i++){ local zpos = 20; if(i == 0) zpos = 60; local pooledObj_01 = sq_AddDrawOnlyAniFromParent(obj,"monster/character/mage/madeby_k_k/casillas/animation/moveslash/slash"+(i+1).tostring()+".ani", -400 + xpos * 50, 0, zpos); sq_SetCustomRotate(pooledObj_01, sq_ToRadian(sq_getRandom(10,45).tofloat())); } obj.getVar().set_vector(0,xpos + 1); // local pooledObj_03 = sq_AddDrawOnlyAniFromParent(parentObj,"monster/character/mage/madeby_k_k/casillas/animation/moveslash/slash3.ani", -270, 0, 20); // sq_SetCustomRotate(pooledObj_03, sq_ToRadian(25.0)); // local currentAni_03 = pooledObj_03.getCurrentAnimation(); // currentAni_03.setImageRateFromOriginal(1.3, 1.3); // local pooledObj_02 = sq_AddDrawOnlyAniFromParent(parentObj,"monster/character/mage/madeby_k_k/casillas/animation/moveslash/slash2.ani", -280, 0, 20); // local pooledObj_04 = sq_AddDrawOnlyAniFromParent(parentObj,"monster/character/mage/madeby_k_k/casillas/animation/moveslash/slash4.ani", -250, 0, 20); // sq_SetCustomRotate(pooledObj_04, sq_ToRadian(25.0)); // local currentAni_04 = pooledObj_04.getCurrentAnimation(); // currentAni_04.setImageRateFromOriginal(1.5, 1.5); break; } break; case 118://sandorex break; case 119://heilrom break; case 120://spiritfireex break; case 121://kruta break; case 122://ramos break; case SKILL_BYKK_SUMMONSPIRITCOMMON: break; case SKILL_BYKK_MOONSHADOW: break; case SKILL_BYKK_BLACKLUNATIC: switch(flagIndex){ case 101: sq_SetMyShake(obj, 6, 350); break; case 102: sq_SetMyShake(obj, 3, 300); break; } break; } return true; }