Skip to content
This repository has been archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
fix: changed the time to update CombatTime.
Browse files Browse the repository at this point in the history
This is for improving the accuracy of skill preselection
  • Loading branch information
ArchiDog1998 committed Mar 1, 2023
1 parent 2c30477 commit c2f6771
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 35 deletions.
5 changes: 2 additions & 3 deletions RotationSolver/Rotations/Tank/GNB/GNB_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ internal sealed class GNB_Default : GNB_Base
public override string RotationName => "Default";

protected override bool CanHealSingleSpell => false;

protected override bool CanHealAreaSpell => false;

private protected override bool GeneralGCD(out IAction act)
Expand Down Expand Up @@ -273,9 +274,7 @@ private bool CanUseBowShock(out IAction act)

//爆发期,无情中且音速破在冷却中
if (Player.HasStatus(true, StatusID.NoMercy) && SonicBreak.IsCoolingDown) return true;

}
return false;
}
}

}
33 changes: 6 additions & 27 deletions RotationSolver/Rotations/Tank/WAR/WAR_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,30 +41,22 @@ private protected override bool GeneralGCD(out IAction act)
//¸ã¸ã¹¥»÷
if (PrimalRend.CanUse(out act, mustUse: true) && !IsMoving)
{
if (PrimalRend.Target.DistanceToPlayer() < 1)
{
return true;
}
if (PrimalRend.Target.DistanceToPlayer() < 1) return true;
}

//兽魂输出
//钢铁旋风
if (SteelCyclone.CanUse(out act)) return true;
//原初之魂
if (InnerBeast.CanUse(out act)) return true;

//群体
if (MythrilTempest.CanUse(out act)) return true;
if (Overpower.CanUse(out act)) return true;

//单体
if (StormsEye.CanUse(out act)) return true;
if (StormsPath.CanUse(out act)) return true;
if (Maim.CanUse(out act)) return true;
if (HeavySwing.CanUse(out act)) return true;

//够不着,随便打一个吧。
if (RSCommands.SpecialType == SpecialCommandType.MoveForward && MoveForwardAbility(1, out act)) return true;

if (Tomahawk.CanUse(out act)) return true;

return false;
Expand All @@ -77,57 +69,44 @@ private protected override bool DefenceSingleAbility(byte abilitiesRemaining, ou
{
if (TargetUpdater.HostileTargets.Count() > 1)
{
//原初的直觉(减伤10%)
//10
if (RawIntuition.CanUse(out act)) return true;
}

//复仇(减伤30%)
//30
if (Vengeance.CanUse(out act)) return true;

//铁壁(减伤20%)
//20
if (Rampart.CanUse(out act)) return true;

//原初的直觉(减伤10%)
//10
if (RawIntuition.CanUse(out act)) return true;
}
//降低攻击
//雪仇
if (Reprisal.CanUse(out act)) return true;

act = null;
return false;
}

private protected override bool AttackAbility(byte abilitiesRemaining, out IAction act)
{
//爆发
if (!Player.WillStatusEndGCD(3, 0, true, StatusID.SurgingTempest) || !MythrilTempest.EnoughLevel)
{
//狂暴
if (!InnerRelease.IsCoolingDown && Berserk.CanUse(out act)) return true;
}

if (Player.GetHealthRatio() < 0.6f)
{
//战栗
if (ThrillofBattle.CanUse(out act)) return true;
//泰然自若 自奶啊!
if (Equilibrium.CanUse(out act)) return true;
}

//奶个队友啊。
if (!HasTankStance && NascentFlash.CanUse(out act)) return true;

//战嚎
if (Infuriate.CanUse(out act, emptyOrSkipCombo: true)) return true;

//普通攻击
//群山隆起
if (Orogeny.CanUse(out act)) return true;
//动乱
if (Upheaval.CanUse(out act)) return true;

//搞搞攻击
if (Onslaught.CanUse(out act, mustUse: true) && !IsMoving) return true;

return false;
Expand Down
7 changes: 3 additions & 4 deletions RotationSolver/Updaters/ActionUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,10 @@ internal unsafe static void UpdateActionInfo()
{
BluSlots[i] = ActionManager.Instance()->GetActiveBlueMageActionInSlot(i);
}
UpdateWeaponTime();
UPdateMPTimer();
}

private static unsafe void UpdateWeaponTime()
internal static unsafe void UpdateWeaponTime()
{
var player = Service.ClientState.LocalPlayer;
if (player == null) return;
Expand All @@ -118,8 +117,8 @@ private static unsafe void UpdateWeaponTime()

//确认能力技的相关信息
var interval = Service.Configuration.AbilitiesInterval;
var checkRemain = WeaponRemain + 0.1f - Service.Configuration.ActionAhead;
var checkElapsed = WeaponElapsed - 0.1f + Service.Configuration.ActionAhead;
var checkRemain = WeaponRemain;
var checkElapsed = WeaponElapsed;
if (checkRemain < interval || WeaponElapsed == 0)
{
AbilityRemain = 0;
Expand Down
3 changes: 3 additions & 0 deletions RotationSolver/Updaters/MajorUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ private static void FrameworkUpdate(Framework framework)
SocialUpdater.UpdateSocial();
PreviewUpdater.UpdatePreview();
ActionUpdater.DoAction();

//Late for update weapon time.
Task.Run(ActionUpdater.UpdateWeaponTime);
MacroUpdater.UpdateMacro();
}

Expand Down
18 changes: 17 additions & 1 deletion docs/ChineseServer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,20 @@

首先,我还是简要讲述一下我自己。我是普通一本的建筑学专业本科毕业生,目前从事有关建筑的研究。学可视化编程以及写代码均为我的业余爱好,别问我建筑生是怎么有这么多时间的。大概在2021年9月或者10月,受到了考研的压力和事实的打击后,以寻求释放压力为目的,室友推荐为索引,入坑了FF14国服。我获得了短暂快乐,但因为游戏水平不足惨遭出警,并自行寻找相关插件却并没有一个让我满意的后,`Auto Attack(以下简称AA)`在次年三月诞生了。这也是我第一次,尝试着结合各方面的知识的一个结果。那时候也刚刚好开始尝试阅读一些软工的书,就顺便以试验的方式用在了这个插件上。直到2022年10月份,我才开始愿意接受大家的Feedback以及PR。所以这款插件的开发时间应该不下于我的游戏时长,超过1000小时。

关键词:`业余``试验`
关键词:`业余``试验`

## 插件性质

这部分内容我认为是`常识`,但是为了拉平大家的认知,不得不写一下。

开源社区的软件运作和公司的运作有着非常大的不同。公司是有雇主雇佣雇员完成项目的,雇员付出劳动力,雇主利用这些劳动力创造价值并承担风险。可以说雇员就是打工仔,没有决策权,要好好办事。

开源社区的几乎所有的产品都是由开发者自发的组成群体,并完成某项特定的工作。所以不存在雇佣关系,任何人也不能妨碍别的人做自由的开发工作。我记得之前和别的作者发生理念冲突的时候,我多次提出自己fork然后自己开发,就是说如果觉得我主导的仓库不好,就自己弄一个嘛,我的插件免费开源,随便搞的。不过都被拒绝了,所以还是愿意让我当主导的。

用一个通俗易懂的方式来讲述吧:公司的模式赚钱但不自由,开源社区的模式自由但不赚钱。可以理解为开源社区的项目就是一种自我娱乐,和下班放学了回家打游戏没有性质上的区别。

所以如果我是雇佣的形式的话,那么插件肯定要收费了,并且我也可以通过强制力要求员工完成某项工作,不愿意做就不给钱。但是我不想这样,我更希望大家能自主的进行创作,所以就是大家都是免费的劳动力,而我是最大的那个免费劳动力。

后话:我退出了,由别人主导了以后AA是什么样,相信大家都知道。

另外,开源社区的无私奉献精神,也会招来很多蛀虫,就是只索取不贡献的。虽然这种行为没有问题或错误,但是我觉得不道德。

0 comments on commit c2f6771

Please sign in to comment.