헬퍼의 경우...정해진 시간마다 스킬을 자동으로 쓰게 하잖아요.. 물론 데몬도 복수스킬 같은거 가끔 쓰기는 하던데... 전투준비/격려나 동료 같은건 안쓰는거 같더라구요.... 가끔 마우스 우클릭 사용으로 증오도 생성하고 명료도 활성화 하면 더 좋구요... 아무튼 기존에 나와있는 헬퍼 기능을 추가로 넣을 수 있으면 좋겠습니다. 헬퍼처럼 완벽하게 하지는 못하더라도...전투중에는 적당한 시간에 한번씩 사용을 하게 조금 더 노력해주시면 좋겠습니다..
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; } 이렇게 바꾸면 전투준비가 가능하면 바로 실행합니다.
음... 메모장에서 수정하면 되고요... 에러 날게 없는데... if (Skills.DemonHunter.Preparation.CanCast()){ return true; } return false; 이렇게 바꿔보세요...
아...잘 됩니다.... 제가 수정을 잘못해서 그런거였네요.. 작성하신거 복사해서 붙여넣기 하니 잘 됩니다.... 타이밍 돌아오면 자동으로 다시 전투준비를 하네요.. 바쁘실텐데...여러모로 감사드립니다....^^
혹시나.... 저는 마우스 좌클릭을 다발, 우클릭을 회피사격으로 해놨는데요.. 명료가 발동 될려면 마우스 우클릭...즉 회피사격을 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; .........(생략).... } 넣으면 되긴 할텐데... 이동중 사격하는거라 효율적이진 않을거 같네요... 그냥 공격할때만 넣는게 좋을듯...