What's new
  • Visit Rebornbuddy
  • Visit Resources
  • Visit API Documentation
  • Visit Downloads
  • Visit Portal
  • Visit Panda Profiles
  • Visit LLamamMagic

다발악사 스킬 자동관련 헬퍼처럼..

lovekim

New Member
Joined
Dec 25, 2017
Messages
7
Reaction score
0
헬퍼의 경우...정해진 시간마다 스킬을 자동으로 쓰게 하잖아요..
물론 데몬도 복수스킬 같은거 가끔 쓰기는 하던데...
전투준비/격려나 동료 같은건 안쓰는거 같더라구요....
가끔 마우스 우클릭 사용으로 증오도 생성하고 명료도 활성화 하면 더 좋구요...
아무튼 기존에 나와있는 헬퍼 기능을 추가로 넣을 수 있으면 좋겠습니다.
헬퍼처럼 완벽하게 하지는 못하더라도...전투중에는 적당한 시간에 한번씩 사용을 하게 조금 더 노력해주시면 좋겠습니다..
 
Last edited:
plugin>trinity>routines>demonhunter>demonhunterdefault.cs 또는 demonhunterbase.cs 또는 하고 있는 세팅파일을
를 수정하면 됩니다.
예를 들어 demonhunterunhallowed.cs에서
public TrinityPower GetBuffPower()
{
if (Skills.DemonHunter.Vengeance.CanCast())
return Vengeance(); //복수

if (ShouldShadowPower())
return ShadowPower(); //어둠의힘

if (ShouldSmokeScreen())
return SmokeScreen(); //연막

if (ShouldPreparation())
return Preparation(); //전투준비

if (ShouldCompanion())
return Companion(); //동료

return null;
}
이렇게 되어 있는데, demonhunterbase.cs에 보면 전투준비 부분이 이렇게 세팅되어 있습니다.
protected virtual bool ShouldPreparation()
{
if (!Skills.DemonHunter.Preparation.CanCast()) // 전투준비가 활성화 되지 않았으면 실행안함
return false;

if (!Runes.DemonHunter.Punishment.IsActive && Player.SecondaryResourcePct <= 0.5f) //처벌룬 세팅이 아니고 절제가 50% 미만이면 실행
return true;

if (Runes.DemonHunter.Punishment.IsActive && Player.PrimaryResourcePct <= 0.3f) //처벌룬세팅이고 증오가 30% 미만이면 실행
return true;

return false;
}
이 부분을
protected virtual bool ShouldPreparation()
{
if (Skills.DemonHunter.Preparation.CanCast())
return true;
return false;
}
이렇게 바꾸면 전투준비가 가능하면 바로 실행합니다.
 
Last edited:
헛.......감사합니다..
저녁에 퇴근하면 수정해서 적용해보겠습니다...너무너무 감사합니다...
 
헛...메모장에서 수정해서 적용하니 에러나네요....ㅠ
수정은 ...어떤 프로그램으로 해야 할까요?
 
음... 메모장에서 수정하면 되고요...
에러 날게 없는데...
if (Skills.DemonHunter.Preparation.CanCast()){
return true;
}
return false;
이렇게 바꿔보세요...
 
아...잘 됩니다....

제가 수정을 잘못해서 그런거였네요..
작성하신거 복사해서 붙여넣기 하니 잘 됩니다....
타이밍 돌아오면 자동으로 다시 전투준비를 하네요..
바쁘실텐데...여러모로 감사드립니다....^^
 
Last edited:
혹시나....

저는 마우스 좌클릭을 다발, 우클릭을 회피사격으로 해놨는데요..
명료가 발동 될려면 마우스 우클릭...즉 회피사격을 5초에 한번씩 나가게 하면 좋겠는데...
그건 방법이 없을까요?

protected virtual bool ShouldEvasiveFire(out TrinityActor target)
{
target = null;

if (!Skills.DemonHunter.EvasiveFire.CanCast())
return false;

target = TargetUtil.GetBestClusterUnit() ?? CurrentTarget;
return target != null;
}

요렇게 되어 있던데....아무튼 5초에 한번씩 회피사격을 날리고 싶습니다....명료 발동용으로요.....
바쁘시겠지만 시간나면 꼭 좀 부탁드립니다...
 
아마 trinity>routine>demonhunter>DemonHunterUnhallowed.cs에
protected override bool ShouldEvasiveFire(out TrinityActor target)
{
target = null;

//회피사격이 가능하지 않으면 작동안함
if (!Skills.DemonHunter.EvasiveFire.CanCast())
return false;

//증오가 세팅된 수치보다 크면 작동안함
if (!ShouldRefreshBastiansGenerator && Player.PrimaryResource > PrimaryEnergyReserve)
return false;
//주변(120f)에 몹이 없으면 작동안함
if (!TargetUtil.AnyMobsInRange(120f))
return false;
//이건 어떤 몹을 타겟팅할것인가입니다.
target = TargetUtil.GetBestClusterUnit() ?? CurrentTarget;
return target != null;
}
이렇게 되어 있을겁니다. 주석을 달아 보겠습니다.

간단하게 원하시는 5초마다 회피사격을 날리는 코드를 넣어 보겠습니다.
protected override bool ShouldEvasiveFire(out TrinityActor target)
{
target = null;

if (!Skills.DemonHunter.EvasiveFire.CanCast())
return false;
//회피사격을 발사하고 5초가 지나지 않았으면 작동안함
if (Skills.DemonHunter.EvasiveFire.TimeSinceUse < 5000)
return false;
target = TargetUtil.GetBestClusterUnit() ?? CurrentTarget;
return target != null;
}
 
음... 근데 이게 공격할때만 해당되겠네요...
이동중에도 하게 하려면

public TrinityPower GetMovementPower(Vector3 destination)
{
if (!Player.IsInTown && AllowedToUse(Settings.Vault, Skills.DemonHunter.Vault) && CanVaultTo(destination))
return Vault(destination);

return Walk(destination);
}

이 부분을
public TrinityPower GetMovementPower(Vector3 destination)
{
if (TryPrimaryPower(out power))
return power;

if (!Player.IsInTown && AllowedToUse(Settings.Vault, Skills.DemonHunter.Vault) && CanVaultTo(destination))
return Vault(destination);

return Walk(destination);
}
요렇게 해 놓으면 됩니다. 이동중엔 필요없으면 안해도 되고요
 
감사합니다...
바쁘실텐데...신경써주셔서 감사합니다..
년초 결산관련 잔업이 많아서 요며칠 제대로 못했는데...
이거 적용해서 테스트 해봐야겠습니다...
좋은 날 되세요....
 
public TrinityPower GetMovementPower(Vector3 destination)
{
if (TryPrimaryPower(out power))
return power;

if (!Player.IsInTown && AllowedToUse(Settings.Vault, Skills.DemonHunter.Vault) && CanVaultTo(destination))
return Vault(destination);

return Walk(destination);
}

이렇게 수정하고 데몬을 실행하니...


Compiler Error: C:\DemonbuddyBETA 1.1.707\Plugins\Trinity\Routines\DemonHunter\DemonHunterUnhallowed.cs(120,25) : error CS0103: The name 'power' does not exist in the current context
Compiler Error: C:\DemonbuddyBETA 1.1.707\Plugins\Trinity\Routines\DemonHunter\DemonHunterUnhallowed.cs(121,20) : error CS0103: The name 'power' does not exist in the current context

요런 메세지가...ㅠㅠ나오네요..

그리고 계속 데몬을 실행시키니..
System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
위치: Zeta.Bot.ProfileOrderManager.‬‬‍‭‌‭‪‍‭‫‫‫‪‌‭‌‭‪‪‬‌‭‍‪‌‎‬‮(ProfileBehavior , Boolean )
위치: Zeta.Bot.ProfileOrderManager.‌‏‭‌‪‌‪‪‬‭‪‮‮‫‌‬‎‬‍‌‏‭‏‮(Boolean )
위치: Zeta.Bot.ProfileOrderManager.‌‮‮‬‌‎‫‎‌‍‪‎‎‎‎‪‍‏‪‌‌‮(Object , EventArgs )
위치: Zeta.Bot.GameEvents.‭‍‭‭‫‪‮‏‫‌‍‍‪‍‫‭‍‌‎‬‫‌‭‬‪‮[](EventHandler`1 , Object , )
이렇게 나오구요...
 
음... 그러면 쉽게
public TrinityPower GetBuffPower()
{
if (TryPrimaryPower(out power))
return power;
.........(생략)....
}
넣으면 되긴 할텐데... 이동중 사격하는거라 효율적이진 않을거 같네요... 그냥 공격할때만 넣는게 좋을듯...
 
Back
Top