Skip to content

질문/답변

카운테스 myattack.killboss() 제발 도와주세요ㅠㅠ

조회 수 297 추천 수 0

카운테스 구경도못하고

타워5층 진입하고나서 바로

카운테스. myattack.killboss() 오류뜨고 포탈열고 마을로가버리네요ㅠㅠ

인터넷 여기저기 검색해보고 따라해봐도 어떻게해야될지 모르겠습니다.ㅠㅠ

제발 도와주세요ㅠ


제 이니설정된것 적어볼께요

도와주시면 복받으실껍니다 ㅠㅠ


    SorceressAttackPattern: function ()
    {
        var _maxIndex      = -1;
        var _maxSkill      = 0;
        var _avgSkillLevel = [
                Math.round((me.GetSkill(59, false) + me.GetSkill(39, false) + me.GetSkill(45, false) + me.GetSkill(55, false)) / 4),
                Math.round((me.GetSkill(53, false) + me.GetSkill(38, false) + me.GetSkill(48, false) + me.GetSkill(49, false)) / 4),
                Math.round((me.GetSkill(47, false) + me.GetSkill(36, false) + me.GetSkill(56, false) + me.GetSkill(64, false)) / 4),
                Math.round((me.GetSkill(47, false) + me.GetSkill(36, false) + me.GetSkill(56, false)) / 3),
                (me.GetSkill(47, false) < 10 && me.GetSkill(53, false) < 10 && me.GetSkill(59, false) < 10 && me.GetSkill(64, false) > 19) ?

777 : 0];

        for (var i = 0; i < _avgSkillLevel.length; i++)
        {
            if (_avgSkillLevel[i] > _maxSkill)
            {
                _maxIndex = i;
                _maxSkill = _avgSkillLevel[i];
            }
        }

        switch (_maxIndex)
        {
        case 0: // Blizzard
            MyConfig.AttackSkill[1] = [59, 25, 1, -1];
            MyConfig.AttackSkill[2] = [55, 25, 1, -1];
            MyConfig.AttackSkill[3] = [59, 25, 1, -1];
            MyConfig.AttackSkill[4] = [55, 25, 1, -1];
            break;
        case 1: // Chain Lightning
            MyConfig.AttackSkill[1] = [49, 25, 1, -1];
            MyConfig.AttackSkill[3] = [53, 25, 1, -1];
            break;
        case 2: // Fire Ball + Frozen Orb
            MyConfig.AttackSkill[1] = [56, 15, 1, -1];
            MyConfig.AttackSkill[2] = [47, 15, 1, -1];
            MyConfig.AttackSkill[3] = [64, 10, 1, -1];
            MyConfig.AttackSkill[4] = [47, 15, 1, -1];
            MyConfig.AttackSkill[5] = [64, 10, 1, -1];
            MyConfig.AttackSkill[6] = [47, 15, 1, -1];
            MyConfig.AttackSkill[7] = [64, 10, 1, -1];
            MyConfig.AttackSkill[8] = [47, 10, 1, -1];
            break;
        case 3: // Fire Ball + Meteor
            MyConfig.AttackSkill[1] = [56, 25, 1, -1];
            MyConfig.AttackSkill[2] = [47, 25, 1, -1];
            MyConfig.AttackSkill[3] = [56, 25, 1, -1];
            MyConfig.AttackSkill[4] = [47, 25, 1, -1];
            break;
        case 4: // Frozen Orb
            MyConfig.AttackSkill[1] = [64, 15, 1, -1];
            MyConfig.AttackSkill[2] = [55, 15, 1, -1];
            MyConfig.AttackSkill[3] = [64, 15, 1, -1];
            MyConfig.AttackSkill[4] = [55, 15, 1, -1];
            break;
        }

        return (MyConfig.AttackSkill[1][0] > -1 && MyConfig.AttackSkill[3][0] > -1);
    },

    SorceressCast: function (target, isBoss, index, maxAttacks, conviction, position, player)
    {
        var _iAttack = 0;
        var _iRetry  = 0;
        var _attacks = isBoss ? 8 : (MyConfig.AttackSkill[index][0] == 64) ? 2 : (MyConfig.AttackSkill[index][0] == 47 || MyConfig.AttackSkill

[index][0] == 53) ? 3 : 4;
        var _option1 = {
                target: target,
                boss: isBoss,
                index: index,
                position: position,
                flying: !isBoss && MyUnit.IsFlying(target),
                vulture: !isBoss && MyUnit.IsVulture(target),
                defense: MyConfig.UseMerc[1] && MyConfig.AttackSkill[index][1] > MyConfig.MercDefense[1] && MyConfig.MercDefense[0][me.diff] &&

(MyConfig.MercDefense[3] || MyConfig.MercDefense[4].indexOf(target.classid) != -1 || MyConfig.MercDefense[4].indexOf(target.name) != -1) &&

me.GetMerc(),
                escape: MyConfig.AttackSkill[index][1] >= 60,
                paladin: null };
        var _option2 = {
                target: target,
                boss: false,
                index: index + 1,
                position: position,
                flying: _option1.flying,
                vulture: _option1.vulture,
                defense: MyConfig.UseMerc[1] && MyConfig.AttackSkill[index + 1][1] > MyConfig.MercDefense[1] && MyConfig.MercDefense[0]

[me.diff] && (MyConfig.MercDefense[3] || MyConfig.MercDefense[4].indexOf(target.classid) != -1 || MyConfig.MercDefense[4].indexOf(target.name)

!= -1) && me.GetMerc(),
                escape: false,
                paladin: null };
        var _targetHp = target.hp;
        var _skill    = MyConfig.AttackSkill[index][0];
        var _static   = MyConfig.SorceressStaticUse[isBoss ? 0 : 1];

        while (MyUnit.CheckLife(target))
        {
            if (MyUnit.CheckCowKing() || (_iAttack > maxAttacks && maxAttacks > 0) || (player && !MyUnit.CheckDistance(player.player,

player.distance)) || ((_iAttack % 5) == 0 && !this.CheckWeapon()))
                return _Finish(0, index, _skill, isBoss ? 0 : 1, _static);

            if (maxAttacks != -1)
            {
                if (MyConfig.AttackSkill[index][0] != 42)
                {
                    if (!this.Collision(_option1))
                        return _Finish(0, index, _skill, isBoss ? 0 : 1, _static);
                }
            }
            else
                this.CheckHostileXy(target, MyConfig.AttackSkill[index][1]);

            if ((_iAttack % 3) == 0)
                MyPrecast.CheckPrecast(1);

            if (!this.CheckConviction(2, target, index, conviction, _iAttack > 2))
                return _Finish(0, index, _skill, isBoss ? 0 : 1, _static);

            if (_iAttack == 0 && index > 0)
            {
                _ChainLightning(target, index, isBoss ? 0 : 1);
                this.SorceressStaticField(target, MyConfig.AttackSkill[index][2] - 1, MyConfig.SorceressStaticKeep[isBoss ? 0 : 1],

MyConfig.SorceressStaticSkip[isBoss ? 0 : 1], MyConfig.SorceressStaticUse[isBoss ? 0 : 1]);
            }

            if (!MyUnit.CheckLife(target))
                return _Finish(1, index, _skill, isBoss ? 0 : 1, _static);
            if (!this.ChangeSkillMana(1, index))
                return _Finish(-1, index, _skill, isBoss ? 0 : 1, _static);

            if (MyConfig.AttackSkill[index][0] != 42)
            {
                this.SwapWeapons(MyConfig.AttackSkill[index][2] - 1);
                MyMove.CastSkill(MyConfig.AttackSkill[index][0], this.skillHand[index], target);
            }
            else
                this.SorceressStaticField(target, MyConfig.AttackSkill[index][2] - 1, MyConfig.SorceressStaticKeep[isBoss ? 0 : 1],

MyConfig.SorceressStaticSkip[isBoss ? 0 : 1], MyConfig.SorceressStaticSkill, (index > 0) ? 65535 : 1);

            if (index == 0)
                return (MyUnit.CheckLife(target) ? 0 : 1);

            if (MyConfig.AttackSkill[index + 1][0] > -1 && this.CheckResistance(target, this.skillDamage[index + 1]))
            {
                if (MyConfig.AttackSkill[index + 1][0] != 42)
                {
                    while (me.GetSkillStatus(MyConfig.AttackSkill[index][0]) == 8 || (MyConfig.SorceressStaticSkill > 0 &&

MyConfig.AttackSkill[index][0] == 42 && Math.round(target.hp * 100 / target.hpmax) <= MyConfig.SorceressStaticSkill))
                    {
                        if (!MyUnit.CheckLife(target))
                            return _Finish(1, index, _skill, isBoss ? 0 : 1, _static);

                        if (!this.Collision(_option2))
                            break;

                        if (me.GetSkillStatus(MyConfig.AttackSkill[index + 1][0]) != 8 && this.ChangeSkillMonster(target, index + 1) &&

this.ChangeSkillMana(2, index + 1))
                        {
                            this.SwapWeapons(MyConfig.AttackSkill[index + 1][2] - 1);
                            MyMove.CastSkill(MyConfig.AttackSkill[index + 1][0], this.skillHand[index + 1], target);
                        }
                        else
                            Delay(MyMove_DELAY_FRAME);
                    }
                }
                else
                    this.SorceressStaticField(target, MyConfig.AttackSkill[index + 1][2] - 1, MyConfig.SorceressStaticKeep[isBoss ? 0 : 1],

MyConfig.SorceressStaticSkip[isBoss ? 0 : 1], MyConfig.SorceressStaticSkill, 65535, MyConfig.AttackSkill[index][0]);
            }

            while (me.GetSkillStatus(MyConfig.AttackSkill[index][0]) == 8)
            {
                if (!MyUnit.CheckLife(target))
                    return _Finish(1, index, _skill, isBoss ? 0 : 1, _static);

                Delay(MyMove_DELAY_FRAME);
            }

            if ((++_iAttack % _attacks) == 0 && maxAttacks > 0)
            {
                if (target.hp == 0 || target.hp < _targetHp)
                    _targetHp = target.hp;
                else if (_iRetry++ < (isBoss ? 2 : 1))
                {
                    if (!MyMove.MoveTo({ to: target }))
                        return _Finish(0, index, _skill, isBoss ? 0 : 1, _static);
                }
                else
                    return _Finish(0, index, _skill, isBoss ? 0 : 1, _static);
            }
        }

        return _Finish(1, index, _skill, isBoss ? 0 : 1, _static);


        function _ChainLightning(target, indexSkill, indexStatic)
        {
            if (MyConfig.SorceressChainLightning[0] && MyConfig.AttackSkill[indexSkill][0] == 53)
            {
                var _result = -1;

                if (MyConfig.SorceressChainLightning[1][0].indexOf(target.classid) != -1 || MyConfig.SorceressChainLightning[1][0].indexOf

(target.name) != -1)
                    _result = MyConfig.SorceressChainLightning[1][1];
                else if (MyConfig.SorceressChainLightning[2][0] < 100 && target.GetStat(41) >= MyConfig.SorceressChainLightning[2][0])
                    _result = MyConfig.SorceressChainLightning[2][1];
                else if (MyConfig.SorceressChainLightning[3][0] > 0 && MyUnit.CountMonster(me, MyConfig.SorceressChainLightning[3][0],

MyConfig.SorceressChainLightning[3][1] + 1) <= MyConfig.SorceressChainLightning[3][1])
                    _result = MyConfig.SorceressChainLightning[3][2];

                if (_result != -1)
                {
                    MyConfig.AttackSkill[indexSkill][0]      = 49;
                    MyConfig.SorceressStaticUse[indexStatic] = _result;
                }
            }
        }

        function _Finish(result, indexSkill, skill, indexStatic, static)
        {
            MyConfig.AttackSkill[indexSkill][0]      = skill;
            MyConfig.SorceressStaticUse[indexStatic] = static;

            return result;
        }
    },

    SorceressStaticField: function (target, swapWeapon, keepList, skipList, castStatic, attackCount, checkSkill)
    {
        var _iAttack, _targetHp, _staticLevel, _staticRange, _staticPos, _staticX, _staticY;

        switch (arguments.length)
        {
        case 5:
            attackCount = 65535;
        case 6:
            checkSkill = -1;
            break;
        }

        _staticLevel = this.GetSkillLevel(42);
        if (!_staticLevel || castStatic > 99 || !this.CheckResistance(target, MyAttack_DAMAGE_LIGHTNING))
            return false;

        if (keepList.length > 0)
        {
            if (keepList.indexOf(target.classid) == -1 && keepList.indexOf(target.name) == -1)
                return false;
        }
        else if (skipList.length > 0 && (skipList.indexOf(target.classid) != -1 || skipList.indexOf(target.name) != -1))
            return false;

        _staticRange = Math.round((5 + _staticLevel - 1) * 2 / 3);
        _iAttack     = 0;
        _targetHp    = target.hp;

        while (attackCount-- && (checkSkill == -1 || me.GetSkillStatus(checkSkill) == 8) && MyUnit.CheckLife(target) && Math.round(target.hp *

100 / target.hpmax) > castStatic)
        {
            if (GetDistance(me, target) > _staticRange || !CheckCollision(me, target, 6))
            {
                _staticPos = me.GetOptimalAttackPos(target.areaid, target.x, target.y, _staticRange, 6);
                _staticPos ? MyMove.MoveTo({ areaid: target.areaid, x: _staticPos[0], y: _staticPos[1] }) : MyMove.MoveTo({ to: target });
            }

            _staticX = (target.x < me.x) ? (me.x - 1) : (target.x > me.x) ? (me.x + 1) : me.x;
            _staticY = (target.y < me.y) ? (me.y - 1) : (target.y > me.y) ? (me.y + 1) : me.y;

            if (!CheckCollision(target.areaid, _staticX, _staticY, 1))
            {
                _staticX = me.x;
                _staticY = me.y;
            }

            this.SwapWeapons(swapWeapon);
            MyMove.CastSkill(42, MyMove_HAND_RIGHT, _staticX, _staticY);

            if ((++_iAttack % 4) == 0)
            {
                if (target.hp == 0 || target.hp < _targetHp)
                    _targetHp = target.hp;
                else
                    return false;
            }
        }

        return true;
    },

    SwapWeapons: function (tab)
    {
        if (arguments.length > 0 && me.weaponstab == tab)
            return true;

        MyCommon.DelayPing(MyConfig.SwapWeaponsDelay);

        if (!MyUnit.WaitIdleMode())
            return false;

        return me.SwapWeapons();
    },

    TownHostile: function (name, isMakePortal)
    {
        if (isMakePortal)
        {
            if (!MyMove.CheckAct())
                MyCommon.ExitRoom("ÿc1" + MyCommon.GetNTConfigName(0) + " : MyMove.CheckAct() " + LANGUAGE1_6_ + " (" + MyUnit.GetAreaName() +

")");
        }
        else if (!MyMove.UsePortal({ owner: me.charname }))
            MyCommon.ExitRoom("ÿc1" + MyCommon.GetNTConfigName(0) + " : MyMove.UsePortal() " + LANGUAGE1_6_ + " (" + MyUnit.GetAreaName() +

")");

        Say(MyConfig.CheckHostile[4].replace(/%H/, name));

        if (MyConfig.ExitHalt[0] > 0)
            MyLog.SendMsgToScript("NTToolsThread.ntj", "ScriptMessage_ExitHalt/0/0");

        while (MyUnit.GetPlayer(name))
            Delay(1000);

        if (MyConfig.ExitHalt[0] > 0)
            MyLog.SendMsgToScript("NTToolsThread.ntj", "ScriptMessage_ExitHalt/0/" + MyConfig.ExitHalt[0]);
        if (!MyMove.UsePortal({ owner: me.charname, telekinesis: true }))
            MyCommon.ExitRoom("ÿc1" + MyCommon.GetNTConfigName(0) + " : MyMove.UsePortal() " + LANGUAGE1_6_ + " (" + MyUnit.GetAreaName() +

")");
        if (MyConfig.PublicMode)
            MyMove.OpenTownPortal();
    },

    Whirlwind: function (target, isBoss, index, maxAttacks, min, max, xyPathCount, position, player, sentryIndex)
    {
        var _targetHp, _nMonsters, _sentryClassId, _sentryCount;
        var _iAttack    = 0;
        var _attacks    = isBoss ? 8 : 2;
        var _isSwitch   = false;
        var _isAssassin = me.classid == MyTown_CHAR_ASSASSIN;
        var _option     = {
                target: target,
                boss: isBoss,
                index: index,
                position: position,
                flying: !isBoss && MyUnit.IsFlying(target),
                vulture: !isBoss && MyUnit.IsVulture(target),
                defense: null,
                escape: false,
                paladin: null };
        var _swapWeapon = (MyConfig.BarbarianWhirlwind[1] == 0 || this.CheckResistance(target, MyAttack_DAMAGE_PHYSICAL)) ?

(MyConfig.AttackSkill[index][2] - 1) : (MyConfig.BarbarianWhirlwind[1] - 1);
        var _whirlwind  = { x: 0, y: 0 };

        if (sentryIndex)
            _sentryClassId = { 261: 411, 262: 410, 271: 412, 272: 415, 276: 416 }[MyConfig.AttackSkill[sentryIndex][0]];

        _nMonsters = min + Math.round(MyUnit.CountMonster(target, max) / 3);
        _nMonsters = (_nMonsters > max) ? max : _nMonsters;
        _targetHp  = target.hp;

        while (MyUnit.CheckLife(target))
        {
            if (MyUnit.CheckCowKing() || (_iAttack > maxAttacks && maxAttacks > 0) || (player && !MyUnit.CheckDistance(player.player,

player.distance)) || (_isAssassin && target.GetState(53)) || !this.Collision(_option))
                break;

            if (!this.GetWhirlwindXy(_whirlwind, target, _nMonsters, xyPathCount))
            {
                if (this.GetSkillLevel(54) > 0 || this.GetSkillLevel(132) < 1)
                {
                    if (!MyMove.MoveTo({ to: target }))
                        break;
                }
                else if (!MyMove.LeapTo(target.areaid, target.x, target.y))
                    break;

                if (!this.GetWhirlwindXy(_whirlwind, target, _nMonsters, xyPathCount))
                    break;
            }

            if (!_isSwitch)
            {
                MyUnit.SwitchRunWalk(0);

                _isSwitch = true;
            }

            if ((_iAttack % 3) == 0)
                MyPrecast.CheckPrecast(1);

            if (!MyUnit.CheckLife(target) || (_isAssassin && target.GetState(53)))
                break;

            _DrinkPotion(_iAttack == 0);
            this.SwapWeapons(_swapWeapon);

            this.CastWhirlwind(_whirlwind.x, _whirlwind.y);

            if (_sentryClassId)
            {
                _sentryCount = MyUnit.IsClass(_sentryClassId, true);

                if (MyConfig.AttackSkill[sentryIndex][0] == 271 && MyConfig.AssassinLightningSentry < 5)
                    _sentryCount += MyUnit.IsClass(416, true);

                if (_sentryCount < 5)
                    break;
            }

            if ((++_iAttack % _attacks) == 0 && maxAttacks > 0)
            {
                if (target.hp == 0 || target.hp < _targetHp)
                    _targetHp = target.hp;
                else if (MyTown.CheckRepair(0))
                {
                    if (!MyTown.TownManager({ simple: true }))
                        break;
                }
                else
                    break;
            }
        }

        MyUnit.SwitchRunWalk(1);

        return !MyUnit.CheckLife(target);


        function _DrinkPotion(reset)
        {
            if (reset)
            {
                MyUnit.GetMaxHpMp(me, 0);
                MyUnit.GetMaxHpMp(me, 1);
            }

            if ((MyConfig.DrinkPotion[1] > 0 && Math.round(me.hp * 100 / MyUnit.maxHpChar) < MyConfig.DrinkPotion[1]) ||
                (MyConfig.DrinkPotion[3] > 0 && Math.round(me.mp * 100 / MyUnit.maxMpChar) < MyConfig.DrinkPotion[3]))
            {
                if (!MyAttack.DrinkPotion(2, this.drinkPotion))
                {
                    if (MyConfig.DrinkPotion[0] > 0 && Math.round(me.hp * 100 / MyUnit.maxHpChar) < MyConfig.DrinkPotion[0])
                        MyAttack.DrinkPotion(0, this.drinkPotion);
                    if (MyConfig.DrinkPotion[2] > 0 && Math.round(me.mp * 100 / MyUnit.maxMpChar) < MyConfig.DrinkPotion[2])
                        MyAttack.DrinkPotion(1, this.drinkPotion);
                }
            }
            else
            {
                if (MyConfig.DrinkPotion[0] > 0 && Math.round(me.hp * 100 / MyUnit.maxHpChar) < MyConfig.DrinkPotion[0])
                    MyAttack.DrinkPotion(0, this.drinkPotion);
                if (MyConfig.DrinkPotion[2] > 0 && Math.round(me.mp * 100 / MyUnit.maxMpChar) < MyConfig.DrinkPotion[2])
                    MyAttack.DrinkPotion(1, this.drinkPotion);
            }
        }
    }
};

여러정보 얻으로 왔습니다^^
 
잘부탁드립니다^^
 
제가 아는 정보는 공유할게요 ㅎ

질문/답변

댓글을 추천하시면 답변으로 채택됩니다.

댓글을 추천하면 글 작성자와 댓글 작성자 둘 다 경험치를 획득합니다.

자세한 내용은 업데이트 공지를 참고해주시기 바랍니다.

번호 분류 제목 글쓴이 날짜 조회
공지   게시판 푸시 알림 / 통합 앱 서비스 36 file 트디개발자 2023.09.20 965.6k
공지   댓글이 도움되었다면 댓글을 추천 해주세요. 28 트디개발자 2021.04.16 86.4k
공지   [주의사항] 원격제어를 받으시면 시디키가 유출됩니다. 131 [버스&인첸방] 2017.04.17 97.7k
공지   정확한 답변을 받으려면 본문에 캡쳐를 첨부해주세요. 45 우녕자 2014.12.16 98.6k
공지   맨땅 초보자 가이드 621 file 뮤리아 2020.10.16 1018.9k
공지   카카오톡 1:1 채팅방 만드는 법 108 트디개발자 2018.05.20 431.4k
7215   재실행 오류가 자꾸 뜹니다.. 낙뢰 2016.12.03 262
7214   차암이니 설정좀 봐주세요. 뭐가 잘못된건지좀 알려주세요. 헬레쮸 2016.12.03 86
7213   골드를 창고에 보관하고 싶습니다. 2 mangchi 2016.12.03 520
7212   d2nt 맵핵 질문좀 드릴게요 1 영구없다ㅋㅋ 2016.12.03 910
7211   방마다 시디키교체 타이밍좀 알고 싶습니다 향수병걸린 2016.12.03 369
7210   디아런 쫄봇관련 질문좀드릴게요.. StoK 2016.12.02 240
7209   에러가 나서 질문드립니다... 1 허보디 2016.12.02 725
7208   2주를 헤매이고 온갖 정보를 알아봤지만.. 1 poseidon 2016.12.02 156
7207   버큐용 갑옷을 룻 하고 싶어요. 이니를 어떻게 하면 될까요? mangchi 2016.12.02 138
7206   레어링 관련 이니작성 문의드립니다. 디아추억돌이 2016.12.02 198
7205   이니 궁금한게 있습니다 1 가나다라린 2016.12.02 151
7204   윈10 d2nt 간단한 도움 부탁드립니다~ 디투2se 2016.12.02 470
7203   보석 큐빙관련 질문드립니다. ppolppol 2016.12.02 152
7202   버전을 확인할수 없다는데 어떻게 해야되져? 뽀롱e 2016.12.02 126
7201   래더초기에 오토 어케 돌리나요 ? 윙톤 2016.12.02 323
7200   체라소서로 헬 디아런 돌리고싶은데 roome 2016.12.02 120
>   카운테스 myattack.killboss() 제발 도와주세요ㅠㅠ Congratulations 2016.12.02 297
7198   맵핵 어디서 다운 받나요..? 짱이땅이 2016.12.01 98
7197   맨땅캐릭 뭐가좋나요? 후덜덜 2016.12.01 133
7196   아이템 로그에 고급룬이 안떠요 루노아 2016.12.01 138