What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

데몬버디를 고쳐쓰려고합니다

seedcon

New Member
Joined
Dec 29, 2016
Messages
20
최신버전 데몬버디 수도사 세팅을 사용하는데..xzjv 가 만든 Sunwuko Lashing Tail Kick 버전에 뭔가 아쉬운부분이 있어 수정하려합니다



수정사항 1.

현 버전에서 신단버프(자원 무제한)을 획득시 자원생성 기술(염화주먹)을 사용하지않고 자원소모기술만(반달차기)만 사용하게됩니다.

신단버프(자원무제한-> 이름이 뭔지모르겠음;;)를 얻으면 신단 지속시간동안 평타(WayOfTheHundredFists- 염화의주먹) 를 쓰지않으니

(자원생성 기술사용시 딜 50% 상승) <-집자 세트
(공력생성기술 사용시 받는피해40%감소)<- 공력보호대

이 두가지 버프를 못받으니 클리어타임이 많이 아쉬워지더군요

해서 sunwukoLTK 를보니.. TryPrimaryClosestTarget 쪽에 공력생성스킬에 가장 가까운적을 closestTarget 으로 정의하고 거리(30f이내-게임상의 미터 단위가아닌 실제 3cm 쯤 되는정의인듯..)

FistsOfThunder
DeadlyReach
CripplingWave
WayOfTheHundredFists (염화의 주먹) 오공반달에 저는 이걸쓰죠

유저가 착용하고있는 스킬중에 이 네가지 스킬중 하나라도 있으면 그 스킬을 Power 변수에 넣고 공력생성 공격을 실행하게되있던데..

아무래도 신단(Shirines) 획득시 공격패턴쪽에서 코드를 추가수정을 해야할듯한데.. 혼자 일일이 코딩 뒤집으려니 시간도 너무걸리네요 같이 코드 찾아볼 C# 할줄아는분이있으면 좋겠는데.. 주석만 좀 잘써놨으면 찾기수월할텐데.. 그닥 친절하게 주석이 달려있지않네요.. 까페쪽에 능력자분이 있을지모르겠습니다 까페가입좀 (퍽!)



수정사항2

클리어타임에 지대한 영향을 미치는 '눈동자반지' 요걸 추종자에게 착용시켜주면 몹이 죽을때 확률적으로 힘집중지역이 생겨서 엄청난 딜뻥이 가능해지죠 ㅎㅎ 하지만 우리 데몬버디 인공지능 로직은 단순무식 바보라 힘집중지역이 코앞에 생겨도 들어가 싸울생각을 안하는데요 찾아보니 데몬버디에서 케릭터 좌표를 Vector3 로 정의하고 이동하던데 눈동자 반지에의해 생성된 힘 집중지역 버프도 분명히 Vector3 좌표 위에 생성되고 Radius 로 반경 몇짜리의 원형... 이런식으로 되어있을텐데..

하나만 찾아내면 바로 제가 코딩해서 힘집중지역 버프생기면 거기로 진격타로 슝~ 들어가서 몹을 뚜까패는 패치를 만들수 있을텐데요....

1. 힘 집중지역 스킬에대한 변수(없다면 만들어야겠죠 ㅡ.ㅜ 정의안되어있다면이거난감.. 애초 힘집중지역 영문명 스킬이 뭔지도 모르는마당에.. 불가능하진않겠지만 ... 힘을합쳐 만들어보죠(퍽!))


사냥도중 PowerUpArea(힘집중지역-가칭) 이 스폰되면 해당 Vector로 진격타 이동후 버프가 사라질때까지 에어리어 Radius(버프 반경)안에서만 컴뱃을 실행.. 버프가 사라지면 자유이동 버프가 사라지지 않았더라도 주변에 몹이 존재하지않는다면 자유이동 가능 으로 로직을 짜면 될듯싶은데..

트리니티 어택알고리즘이 너무단순해서 혼자서는 예외처리하기 의외로 빡셀지도..;

만약 Power 변수에 아무것도 들어있지않다면 해당 타겟의Vector3 포지션으로 이동(근접이동)
위에 저 4가지 스킬중 해당스킬이 존재하면 Power 변수에 넣고 거리30f 이내 타겟이 있으면 공력생성공격실행
공력이 충분할때 공력소모기술 실행 끝.


뭐가됬든 네이버 캅에 들어가서 이런저런 의견을 나눌수있는 사람들이 필요행... 아몰랑 혼자하려니 귀찮앙...
하다못해 이 오공반달세팅 만든 xzjv 라는 사람의 메일 주소라도 알면 좋으련만.. 그분이랑 머리싸매고 파면 5분이면 나올거같은데... 쩝..

1번은 혼자 어찌어찌 만들수있을거같지만 2번은.... xzjv라는분 도움없이는 힘들어보이기도하고.... 이래저래 주저리주저리..
 
Last edited:
최신버전 데몬버디 수도사 세팅을 사용하는데..xzjv 가 만든 Sunwuko Lashing Tail Kick 버전에 뭔가 아쉬운부분이 있어 수정하려합니다



//신단 버프획득시 실행구문루프
if (Core.Buffs.HasCastingShrine)
{
조건1 진격타 사용이 가능할때 및 마지막 진격타 사용명령이 실행되지 않았을때
if (Skills.Monk.DashingStrike.CanCast() && !Skills.Monk.DashingStrike.IsLastUsed)
// 현재 타겟에게 진격타를 사용한다
return DashingStrike(CurrentTarget.Position);

조건2 반달차기가 사용 가능할때(공력이 충분하고 사거리 내에 몹이 들어와있을때) - 공력 무한 신단먹으면 신단시간이 끝날때까지 컴뱃도는동안 무한루프로 이부분을 돌게되니 평타(염화주먹)을 안쓰게 되는거였네요 여기 조건문 하나만 추가해주면될듯..
if (Skills.Monk.LashingTailKick.CanCast())
//반달차기를 현재 타겟에 실행
return LashingTailKick(CurrentTarget);
}
 
Last edited:
완성

QUOTE=seedcon;2366292]
최신버전 데몬버디 수도사 세팅을 사용하는데..xzjv 가 만든 Sunwuko Lashing Tail Kick 버전에 뭔가 아쉬운부분이 있어 수정하려합니다

신단획득시 스킬사용으로인한 각종 버프들을 활용하는 버전이 완성됬습니다.
눈동자 반지 활성시 힘 집중지역 버프 안에 들어가 사냥하는 버전이 완성되면... 1인 기갱에 도움될듯싶네요


seedcon1.png
 
Last edited:
용자이시내...

QUOTE=seedcon;2366292]
최신버전 데몬버디 수도사 세팅을 사용하는데..xzjv 가 만든 Sunwuko Lashing Tail Kick 버전에 뭔가 아쉬운부분이 있어 수정하려합니다

신단획득시 스킬사용으로인한 각종 버프들을 활용하는 버전이 완성됬습니다.
눈동자 반지 활성시 힘 집중지역 버프 안에 들어가 사냥하는 버전이 완성되면... 1인 기갱에 도움될듯싶네요


seedcon1.png


실례가 안되면 악사꺼도 같이 연구좀 하고 싶습니다
 
하아... 악사는 저단 빠른 파밍용으로 해야겟네요... 수도는 잘 해결 하셧나요?


네 다행히 양키들이 예~~~전에 만든 트리니티중에 눈동자반지버프 발생 감지 메소드랑 호출부분을 찾아서 제 수도에 맞게 수정했습니다 ㅎㅎ

다만 트리니티 어택 루틴의 우선순위가 어떻게 도는지 알수가없어서.. 눈동자반지버프가 생성되면 100% 들어가는게 아니라 한 7~80% 정도밖에 들어가지않더라구요 예상되는 이유는 두가지가 있는데.. 이래저래 시도해봤지만 지금상황에서 Walk 으로 눈동자반지 어설프게 걸어들어가게 만들어 죽게만드는것보단 이대로 가는게 효율면에서 낫지않을까싶어 일단은 그냥저냥 쓰고있습니다 ㅎㅎ 구현은 됬으니까요

(진격타가 사용가능할때 + 눈동자버프가 생성되있을때) -> 진격타로 눈동자버프 정 중앙으로 이동 이렇게 설정을 해뒀지만

아마 루틴을 도는중 어택/무브/몹 거리체크등등 초당 행할수있는 명령을 체크를 cpu가 주루룩 훑는 사이에 조건이 안맞아 해당 메소드를 씹고 넘어가거나 조건이 맞아도 다른 (어택/무빙등) 명령을 수행하는 도중이라 눈깔버프위로 이동 명령이 씹히고 다른 진격타 사용가능 상황에의해 진격타가 쓰여버리고(진격타로 몹을 친다던지) .. 이런식으로 씹혀서 100%는 안들어가지는게 아닐까 생각이되네요

그래도 몹들패다가 근처에 눈깔버프 원이 생기면 몹들 사이에 끼여서 한참 뚜두두두두 패고있을때 진격타 쿨 돌아오자마자 눈깔버프로 쏙! 들어가서 반달 쓰는거보면.. 뿌듯하네요 ㅎㅎ 어제 처음으로 86층 보스전에서 반달차기 한방에 2조 딜봤구요 ㅋ (공업신단버프+눈동자 버프 위에서) 보스순삭잼..

아침에 보니 디아20주년 업뎃되서 버디 접속안되던데.. 퇴근할때까지 데몬버디 업뎃 될지 모르겠지만 버디 업뎃되자마자 오공반달 수도 세팅부터 제 케릭에 맞게 바꿔야겠네요
 
Last edited:
아... 이런식으로도 가능한거군요... 혹시 소스좀 요청 드려도 될까요? 악사에 사용할수있는지 실험좀 해보려구요 악사도 많이 아쉬워서...

눈동자버프원안으로 도약해서 가면 시간좀 줄일수 있을꺼같은대... 근대 근처에 몹이 없을경우 그 버프안에서 안움직이진 않나요?
 
아... 이런식으로도 가능한거군요... 혹시 소스좀 요청 드려도 될까요? 악사에 사용할수있는지 실험좀 해보려구요 악사도 많이 아쉬워서...

눈동자버프원안으로 도약해서 가면 시간좀 줄일수 있을꺼같은대... 근대 근처에 몹이 없을경우 그 버프안에서 안움직이진 않나요?


지금 사무실이라... 퇴근하면 볼게요 그런데 악사로 제가 안하는이유가... 돌연사 의문사가 너무 잦아서... 효율이 매우 안좋더라구요 괜히 눈동자 들어간답시고 데스만 늘리지않을지싶습니다 ~_~

근처 몹이 없으면 기존 루틴의 이동 명령에의해 그냥 열심히 맵탐색을 하러가지 특정 조건문만 계속 반복하는게 아니니... 몹이없는데 눈깔버프생겼다고 그위에서 죽치고만 있는상황은 생기지 않아요 설사 제가위에 짠대로 실행된다쳐도 근처 몹을 후다닥 정리하고 마지막몹이 죽으면서 눈동자버프를 생성했다쳐도(마침 진격타 쿨이 돌아온상황) 눈동자 버프로 진격타로 휙! 날아가자마자 0,1초도 안되는 짧은사이에 바로 다음 메소드커맨드로 넘어가니 버프에 들어가는 즉시 다음몹을찾아 이동을 수행하겠죠 ㅎㅎ

쿨감버프라도 먹은상태라면 모를까.... 하지만 쿨감버프라도

쿨감 버프를 먹은상황에서의 진격타 수행 조건에 - 마지막으로 진격타 사용한 시간으로부터 2초 뒤에 진격타 재사용- 조건을 넣어줬기 때문에 마찬가지로 눈깔에 쏙! 들어갔다가 바로 다음몹을 찾아 이동하니 결과적으로 아무런 문제가 없어요 디아블로3 게임 특성상 2초안에 다음몹을 발견할 확률이 매우 높으니말이죠 ㅎㅎ 루틴이 해당 명령을 실행하지않는상황이라면 버프로 들어가는 상황조차 스킵하구요
 
Last edited:
지금 사무실이라... 퇴근하면 볼게요 그런데 악사로 제가 안하는이유가... 돌연사 의문사가 너무 잦아서... 효율이 매우 안좋더라구요 괜히 눈동자 들어간답시고 데스만 늘리지않을지싶습니다 ~_~

근처 몹이 없으면 기존 루틴의 이동 명령에의해 그냥 열심히 맵탐색을 하러가지 특정 조건문만 계속 반복하는게 아니니... 몹이없는데 눈깔버프생겼다고 그위에서 죽치고만 있는상황은 생기지 않아요 설사 제가위에 짠대로 실행된다쳐도 근처 몹을 후다닥 정리하고 마지막몹이 죽으면서 눈동자버프를 생성했다쳐도(마침 진격타 쿨이 돌아온상황) 눈동자 버프로 진격타로 휙! 날아가자마자 0,1초도 안되는 짧은사이에 바로 다음 메소드커맨드로 넘어가니 버프에 들어가는 즉시 다음몹을찾아 이동을 수행하겠죠 ㅎㅎ

쿨감버프라도 먹은상태라면 모를까.... 하지만 쿨감버프라도

쿨감 버프를 먹은상황에서의 진격타 수행 조건에 - 마지막으로 진격타 사용한 시간으로부터 2초 뒤에 진격타 재사용- 조건을 넣어줬기 때문에 마찬가지로 눈깔에 쏙! 들어갔다가 바로 다음몹을 찾아 이동하니 결과적으로 아무런 문제가 없어요 디아블로3 게임 특성상 2초안에 다음몹을 발견할 확률이 매우 높으니말이죠 ㅎㅎ 루틴이 해당 명령을 실행하지않는상황이라면 버프로 들어가는 상황조차 스킵하구요

와 잘짜셧네요.. 그저 능력이 부럽습니다 아무리 들여다봐도 전 힘들던대... 그냥 짜여진것 숫자나바꾸는 정도라...

시간나시면 한번 부탁드리겠습니다 !
 
1

TargetUtil.cs 에

대충 internal static 메소드들 있는곳에

//눈깔버프가 생성됬는지 Bool값 체크
internal static bool OculusBuffInRange(float range = 25f)
{

var objects = ZetaDia.Actors.GetActorsOfType<DiaObject>()
.Where(o => o.ActorSnoId == 433966 && CurrentTarget.Position.Distance(o.Position) < range)
.OrderBy(o => CurrentTarget.Position.Distance(o.Position));

bool result = false;
foreach (DiaObject o in objects)
{
if (o == null || !o.IsValid) continue;
result = true;
}
return result;
}


//호출을 위해 눈깔버프를 DiaObject에 넣는다
internal static DiaObject GetOculusBuffDiaObject(float range = 25f)
{
var objects = ZetaDia.Actors.GetActorsOfType<DiaObject>()
.Where(o => o.ActorSnoId == 433966 && CurrentTarget.Position.Distance(o.Position) < range)
.OrderBy(o => CurrentTarget.Position.Distance(o.Position));

foreach (DiaObject o in objects)
{
if (o == null || !o.IsValid) continue;
return o;
}
return null;
}


이 코드를 붙여넣고 저장하시고




////여기서부터 눈깔버프 실행구문 ////
if (Skills.Monk.DashingStrike.CanCast() && TargetUtil.OculusBuffInRange()/* && Skills.Monk.DashingStrike.TimeSinceUse > 500*/)
{

Vector3 nunGGalPos;
if (TargetUtil.OculusBuffInRange())
{

DiaObject ocul = TargetUtil.GetOculusBuffDiaObject();
nunGGalPos.X = ocul.Position.X;
nunGGalPos.Y = ocul.Position.Y;
nunGGalPos.Z = Player.Position.Z;
Logger.Log("눈깔버프 좌표 :"+ nunGGalPos.X +","+ nunGGalPos.Y+","+ nunGGalPos.Z + " \n현재 케릭터 좌표 :" + Player.Position);


if (Player.Position.Distance(nunGGalPos) <= 70f && Skills.Monk.DashingStrike.TimeSinceUse > 1000&&Skills.Monk.DashingStrike.CanCast()
) {
Logger.Log("눈깔버프와의 거리가 70보다 작습니다 진격타 사용! ");
return DashingStrike(nunGGalPos);
}
else
{
Logger.Log("눈깔버프와의 거리가 70보다 떨어져있습니다!!! 진격타 사용! ");
return DashingStrike(nunGGalPos);
}
}
}
////여기까지 눈깔버프 실행구문 ////



이 눈깔버프로 이동 실행구문을 자신의 설정cs 파일의 public TrinityPower GetOffensivePower()

메소드 안에 넣어주심됩니다 물론 이 코드는 수도사(바닥에 눈깔버프생성여부 + 진격타스킬 사용가능여부 + 마지막으로 진격타사용한시점으로부터 1초 가 지났는지) 조건을 넣었기때문에 타직업이 그대로 복붙해서 쓰면 에러나니 자신의 케릭터스킬들로 바꿔쓰면됩니다 잘모르겠음 저 두꺼운 글씨부분만 지우고 해보세요 아마 되긴될거같네요


아 마지막으로 자신이 쓸 cs 파일안에 using Logger = Trinity.Framework.Helpers.Logger; 선언해주세요(최 상단)
 
Last edited:
TargetUtil.cs 에

대충 internal static 메소드들 있는곳에

//눈깔버프가 생성됬는지 Bool값 체크
internal static bool OculusBuffInRange(float range = 25f)
{

var objects = ZetaDia.Actors.GetActorsOfType<DiaObject>()
.Where(o => o.ActorSnoId == 433966 && CurrentTarget.Position.Distance(o.Position) < range)
.OrderBy(o => CurrentTarget.Position.Distance(o.Position));

bool result = false;
foreach (DiaObject o in objects)
{
if (o == null || !o.IsValid) continue;
result = true;
}
return result;
}


//호출을 위해 눈깔버프를 DiaObject에 넣는다
internal static DiaObject GetOculusBuffDiaObject(float range = 25f)
{
var objects = ZetaDia.Actors.GetActorsOfType<DiaObject>()
.Where(o => o.ActorSnoId == 433966 && CurrentTarget.Position.Distance(o.Position) < range)
.OrderBy(o => CurrentTarget.Position.Distance(o.Position));

foreach (DiaObject o in objects)
{
if (o == null || !o.IsValid) continue;
return o;
}
return null;
}


이 코드를 붙여넣고 저장하시고




////여기서부터 눈깔버프 실행구문 ////
if (Skills.Monk.DashingStrike.CanCast() && TargetUtil.OculusBuffInRange()/* && Skills.Monk.DashingStrike.TimeSinceUse > 500*/)
{

Vector3 nunGGalPos;
if (TargetUtil.OculusBuffInRange())
{

DiaObject ocul = TargetUtil.GetOculusBuffDiaObject();
nunGGalPos.X = ocul.Position.X;
nunGGalPos.Y = ocul.Position.Y;
nunGGalPos.Z = Player.Position.Z;
Logger.Log("눈깔버프 좌표 :"+ nunGGalPos.X +","+ nunGGalPos.Y+","+ nunGGalPos.Z + " \n현재 케릭터 좌표 :" + Player.Position);


if (Player.Position.Distance(nunGGalPos) <= 70f && Skills.Monk.DashingStrike.TimeSinceUse > 1000&&Skills.Monk.DashingStrike.CanCast()
) {
Logger.Log("눈깔버프와의 거리가 70보다 작습니다 진격타 사용! ");
return DashingStrike(nunGGalPos);
}
else
{
Logger.Log("눈깔버프와의 거리가 70보다 떨어져있습니다!!! 진격타 사용! ");
return DashingStrike(nunGGalPos);
}
}
}
////여기까지 눈깔버프 실행구문 ////



이 눈깔버프로 이동 실행구문을 자신의 설정cs 파일의 public TrinityPower GetOffensivePower()

메소드 안에 넣어주심됩니다 물론 이 코드는 수도사(바닥에 눈깔버프생성여부 + 진격타스킬 사용가능여부 + 마지막으로 진격타사용한시점으로부터 1초 가 지났는지) 조건을 넣었기때문에 타직업이 그대로 복붙해서 쓰면 에러나니 자신의 케릭터스킬들로 바꿔쓰면됩니다 잘모르겠음 저 두꺼운 글씨부분만 지우고 해보세요 아마 되긴될거같네요


아 마지막으로 자신이 쓸 cs 파일안에 using Logger = Trinity.Framework.Helpers.Logger; 선언해주세요(최 상단)

좋은 정보 감사합니다

두가지 질문드립니다

1.눈동자 버프에 들어가면 진격타 못쓰게 하려면 어떻게 하나요?
2.70보다 멀리 떨어진 눈동자 버프는 무시하게 하려면 어찌 하나요?
 
좋은 정보 감사합니다

두가지 질문드립니다

1.눈동자 버프에 들어가면 진격타 못쓰게 하려면 어떻게 하나요?
2.70보다 멀리 떨어진 눈동자 버프는 무시하게 하려면 어찌 하나요?



1. 지금 저설정이 눈동자 버프에 들어가고나서 1초동안은 진격타 재사용 금지. 설정이라.. 들어가자마자 바로 나가는일은 없을겁니다(쿨이 돌아왔더라도 최소 1초 대기시간은 채우고나서 재사용..)

2. 멀리있는 눈동자 무시는

else
{
Logger.Log("눈깔버프와의 거리가 70보다 떨어져있습니다!!! 진격타 사용! ");
return DashingStrike(nunGGalPos);
}

이부분 삭제...
 
1. 지금 저설정이 눈동자 버프에 들어가고나서 1초동안은 진격타 재사용 금지. 설정이라.. 들어가자마자 바로 나가는일은 없을겁니다(쿨이 돌아왔더라도 최소 1초 대기시간은 채우고나서 재사용..)

2. 멀리있는 눈동자 무시는

else
{
Logger.Log("눈깔버프와의 거리가 70보다 떨어져있습니다!!! 진격타 사용! ");
return DashingStrike(nunGGalPos);
}

이부분 삭제...

답변 감사합니다^^
 
Back
Top