Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

plugin: delete fishing code and overlay #5919

Merged
merged 1 commit into from
Nov 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/scripts/auto-label.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ const regexLabelMap = {
'^ui/raidboss/raidboss_config': ['config', 'raidboss'],
'^ui/dps/': ['dps'],
'^ui/eureka/': ['eureka'],
'^ui/fisher/': ['fishing🎣'],
'^ui/jobs/': ['jobs'],
'^ui/oopsyraidsy/': ['oopsy'],
'^ui/pullcounter/': ['pullcounter'],
Expand Down
1 change: 0 additions & 1 deletion .github/scripts/lint-pr-title.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ const validScope = [
'config',
'dps',
'eureka',
'fisher',
'jobs',
'oopsy',
'pullcounter',
Expand Down
2 changes: 0 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,6 @@
Bundled projects with different licenses:
* FFXIVPluginHelper.cs (custom license allowing sublicensing)
https://github.com/xtuaok/ACT_EnmityPlugin/
* FF14 fish tracker app (MIT license)
https://github.com/icykoneko/ff14-fish-tracker-app
* resources/ffxiv: art from Final Fantasy XIV (FINAL FANTASY® XIV Materials Usage License)
reused non-commercially via https://support.na.square-enix.com/rule.php?id=5382
FINAL FANTASY is a registered trademark of Square Enix Holdings Co., Ltd.
Expand Down
17 changes: 0 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,6 @@ cactbot provides these modules:

![eureka screenshot](screenshots/promo_eureka.png)

* fisher: Fishing cast time tracking

![fisher screenshot](screenshots/promo_fishing.png)

* radar: hunt mob directions, puller notifications

![radar screenshot](screenshots/promo_radar.png)
Expand Down Expand Up @@ -436,19 +432,6 @@ See the `cactbot/user/radar-example.js` for more options.

![radar screenshot](screenshots/promo_radar.png)

### [fisher](ui/fisher) module

To use this module,
point cactbot at **ui/fisher/fisher.html** or use the `Cactbot Fisher` preset.

When you cast your line at a fishing hole, this module keeps track of when you reel in particular fish so that you know what you might be getting when you hook it.

![fishing screenshot](screenshots/promo_fishing.png)

Cast times are currently only logged as you fish, so there won't be any data until you've caught each fish. Green bars represent light tugs, yellow is a medium tug and red bars are legendary/heavy tugs.

Check [here](docs/FAQ-Troubleshooting.md#fisher-module) for common troubleshooting tips.

### [dps](ui/dps) meters

cactbot can be used with any dps meter overlay designed for OverlayPlugin's miniparse
Expand Down
26 changes: 0 additions & 26 deletions docs/FAQ-Troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
1. [General FFXIV ACT Troubleshooting](#general-ffxiv-act-troubleshooting)
1. [Problems using Cactbot](#problems-using-cactbot)
1. [Problems during Cactbot installation](#problems-during-cactbot-installation)
1. [Fisher Module](#fisher-module)
1. [Places to Get Help](#places-to-get-help)
1. [How To Find A Network Log](#how-to-find-a-network-log)

Expand Down Expand Up @@ -49,31 +48,6 @@ If triggers or pieces of the UI do not work, ensure that "Disable Parsing from N

If you are using cactbot for dps parsing and you don't get any data, make sure that the `DPS update interval seconds` is set to a number higher than zero in your `OverlayPlugin.dll` -> `MiniParse Event Source` config. Setting it to 3 is a good default.

## Fisher Module

### I can't see the overlay

The overlay is hidden by default until you cast your line at a fishing hole.

### It doesn't show up when fishing

If the overlay doesn't register your casting/catches/reeling in your rod there are a few options you need to check:

- **Ingame chat log filter**

![image](images/troubleshooting_chatlogfilter.png)

You need to have at least one chat log set to show `Own Gathering Messages` You can find this option in
`Character Configuration` -> `Log Window Settings` -> `Log Filters 1/2/3/4` -> `Announcements`

- **ACT FFXIV Plugin options**

![image](images/troubleshooting_hidechatlog.png)

You must have the `Hide Chat Log (for privacy)` option disabled.

You will need to restart ACT after you change parser language.

## Places To Get Help

- ask in the [FFXIV ACT discord](https://discord.gg/ahFKcmx) #troubleshooting channel
Expand Down
10 changes: 0 additions & 10 deletions docs/PatchUpdateChecklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ Run all of these scripts in any order and then commit the result.
python util/gen_zone_id_and_info.py
python util/gen_weather_rate.py
python util/gen_hunt_data.py
python util/gen_fisher_data.py

ts-node util/gen_effect_id.ts
ts-node util/gen_world_ids.ts
Expand Down Expand Up @@ -193,7 +192,6 @@ There are four signatures, which all live in [FFXIVProcessIntl.cs](https://githu
- Charmap (information about your character)
- Job Data (gauge info for your job)
- In Combat (whether the game thinks you are in combat)
- Bait (what bait you are using when fishing)

OverlayPlugin also duplicates the charmap and in combat signatures,
so if cactbot is broken please update those as well.
Expand Down Expand Up @@ -264,14 +262,6 @@ The `game: no` should switch to `game: yes`.
Reset your aggro, it should switch back to `game: no`.
If the FFXIV plugin hasn't been updated, it will likely say `act: no`.

#### Verify Bait

Switch to fisher.
The bait field is not sent unless the job is currently fisher.
(If this signature or offset ever breaks, consider deleting the fisher overlay.)
Two baits that you can get from the ocean fishing vendor are
ragworm (29714) and versatile lure (29717).

### Verify Job data

Job data only infrequently changes (during a job rework or at each expansion).
Expand Down
2 changes: 1 addition & 1 deletion docs/RemoteCactbot.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ load your own user directory, but not currently.
Not all overlays are able to be run remotely.
cactbot, oopsy, pullcounter, and dps overlays are supported.

radar, jobs, and fisher will not work
radar and jobs will not work
as they require more information about your player.

## HALP
Expand Down
22 changes: 0 additions & 22 deletions docs/ko-KR/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,6 @@ cactbot은 다음 모듈을 제공합니다:

![eureka 스크린샷](../../screenshots/promo_eureka.png)

* fisher: 낚시 캐스팅 시간 트래커

![fisher 스크린샷](../../screenshots/promo_fishing.png)

* radar: 마물 방향, 첫 어글자 알림

![radar 스크린샷](../../screenshots/promo_radar.png)
Expand Down Expand Up @@ -412,24 +408,6 @@ oopsy에 경고(:warning:)나 실패(:no_entry_sign:) 로그가 찍혀서 무엇

![radar 스크린샷](../../screenshots/promo_radar.png)

### [fisher](../../ui/fisher) 모듈

이 모듈을 사용하려면,
**ui/fisher/fisher.html** 파일을 URL 부분에서 선택하거나 `Cactbot Fisher` 프리셋을 사용하세요.

낚싯터에서 낚시를 하면, 이 모듈이 사용자가 낚은 물고기를 추적합니다. 이를 통해 사용자가 물고기를 낚을 때 어떤 물고기를 낚게 될지 예상할 수 있게 해줍니다.

![fishing 스크린샷](../../screenshots/promo_fishing.png)

물고기가 잡히는 낚시 캐스팅 시간 정보는 사용자가 직접 물고기를 낚을 때 기록됩니다.
따라서 각 물고기를 낚기 전에는 아무런 데이터가 없을 것입니다.
초록색 바는 입질이 약한 물고기(섬세한 낚아채기 사용)를 의미하며,
노란색 바는 입질이 중간인 물고기를 의미하고,
빨간색 바는 전설 물고기 또는 입질이 강한 물고기를 의미합니다.
*번역자가 낚시에 대해 잘 알지 못해 물고기 종류에 대해 번역을 잘못했을 수 있음*

일반적인 문제 해결 팁은 [여기](../FAQ-Troubleshooting.md#fisher-module)를 확인하세요.

### [dps](../../ui/dps) 미터기

cactbot은 오버레이 플러그인의 MiniParse의 애드온에 맞게 제작된 그 어떤 미터기 오버레이와 함께 사용할 수 있습니다.
Expand Down
16 changes: 0 additions & 16 deletions docs/zh-CN/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,6 @@ cactbot 提供以下模块:

![优雷卡屏幕截图](../../screenshots/promo_eureka.png)

* fisher: 捕鱼垂钓时间监控

![捕鱼人屏幕截图](../../screenshots/promo_fishing.png)

* radar: 通知狩猎怪方向及开怪信息

![雷达屏幕截图](../../screenshots/promo_radar.png)
Expand Down Expand Up @@ -355,18 +351,6 @@ ThirdParty

![雷达屏幕截图](../../screenshots/promo_radar.png)

### [fisher](../../ui/fisher) 模块

要使用该模块,定位到 cactbot 下面的 **ui/fisher/fisher.html** 或使用 `Cactbot Fisher` 预设。

当您在一个渔场投出鱼线时,该模块会一直追踪您何时钓到了什么鱼,以便您日后知道提钩时将会钓到什么鱼。

![捕鱼人屏幕截图](../../screenshots/promo_fishing.png)

目前该模块仅会记录您的钓鱼记录,因此只有在您钓到了鱼时才会有数据。绿色的条形代表轻杆,黄色的条形代表中杆,红色的条形代表鱼王杆 / 重杆。

在[此链接](./FAQ-Troubleshooting.md#fisher-module)中可以找到 fisher 模块的常见问题解答。

### [dps](../../ui/dps) 统计模块

cactbot 可以与为 OverlayPlugin 的数据统计功能设计的任何 DPS 统计悬浮窗共同使用,并可以选择通过 cactbot 附加的 Javascript API 扩展更多功能。cactbot 还可以在团灭时自动停止统计,因此您可以将 ACT 的战斗时间配置为无限。
Expand Down
1 change: 0 additions & 1 deletion plugin/CactbotEventSource/CactbotEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -660,7 +660,6 @@ private void RegisterPresets() {
RegisterPreset("Raidboss", width:320, height:220, Strings.PresetRaidbossTimelineOnly, "raidboss_timeline_only");
RegisterPreset("Jobs", width:600, height:300, Strings.PresetJobs);
RegisterPreset("Eureka", width:400, height:400, Strings.PresetEureka);
RegisterPreset("Fisher", width:500, height:500, Strings.PresetFisher);
RegisterPreset("OopsyRaidsy", width:400, height:400, Strings.PresetOopsyRaidsy);
RegisterPreset("PullCounter", width:200, height:200, Strings.PresetPullCounter);
RegisterPreset("Radar", width:300, height:400, Strings.PresetRadar);
Expand Down
5 changes: 4 additions & 1 deletion plugin/CactbotEventSource/CactbotEventSource.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,13 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="loc\Strings.zh.resx" />
<EmbeddedResource Include="loc\Strings.zh.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="loc\Strings.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Expand Down
10 changes: 1 addition & 9 deletions plugin/CactbotEventSource/FFXIVProcess.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ public abstract class FFXIVProcess {
internal IntPtr player_ptr_addr_ = IntPtr.Zero;
internal IntPtr job_data_outer_addr_ = IntPtr.Zero;
internal IntPtr in_combat_addr_ = IntPtr.Zero;
internal IntPtr bait_addr_ = IntPtr.Zero;

// Values found in the EntityStruct's type field.
public enum EntityType : byte {
Expand Down Expand Up @@ -147,7 +146,6 @@ public class EntityData {
public short level = 0;
public string debug_job;
public int shield_value = 0;
public uint bait = 0;

public override bool Equals(object obj) {
return obj is EntityData o &&
Expand All @@ -169,8 +167,7 @@ public override bool Equals(object obj) {
job == o.job &&
level == o.level &&
debug_job == o.debug_job &&
shield_value == o.shield_value &&
bait == o.bait;
shield_value == o.shield_value;
}

public override int GetHashCode() {
Expand All @@ -195,7 +192,6 @@ public override int GetHashCode() {
hash = hash * 31 + level.GetHashCode();
hash = hash * 31 + shield_value.GetHashCode();
hash = hash * 31 + debug_job.GetHashCode();
hash = hash * 31 + bait.GetHashCode();
return hash;
}
};
Expand Down Expand Up @@ -259,10 +255,6 @@ public bool IsActive() {
return active_process_id == process_.Id;
}

internal uint GetBait() {
uint[] jorts = Read32U(bait_addr_, 1);
return jorts[0];
}
public unsafe abstract EntityData GetEntityDataFromByteArray(byte[] source);

public bool GetInGameCombat() {
Expand Down
18 changes: 1 addition & 17 deletions plugin/CactbotEventSource/FFXIVProcessCn.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,6 @@ public FFXIVProcessCn(ILogger logger) : base(logger) { }
// Because this line is a cmp byte line, the signature is not at the end of the line.
private static int kInCombatRipOffset = 1;

// Bait integer.
// Variable is accessed via a cmp eax,[...] line at offset=0.
private static String kBaitSignature = "4883C4305BC3498BC8E8????????3B05";
private static int kBaitBaseOffset = 0;
private static bool kBaitBaseRIP = true;

// A piece of code that reads the job data.
// The pointer of interest is the first ???????? in the signature.
private static String kJobDataSignature = "488B0D????????4885C90F84????????488B05????????3C03";
Expand Down Expand Up @@ -155,13 +149,6 @@ internal override void ReadSignatures() {
} else {
in_combat_addr_ = p[0];
}

p = SigScan(kBaitSignature, kBaitBaseOffset, kBaitBaseRIP);
if (p.Count != 1) {
logger_.Log(LogLevel.Error, Strings.BaitSignatureFoundMultipleMatchesErrorMessage, p.Count);
} else {
bait_addr_ = p[0];
}
}

public unsafe override EntityData GetEntityDataFromByteArray(byte[] source) {
Expand Down Expand Up @@ -229,10 +216,7 @@ public override EntityData GetSelfData() {
IntPtr entity_ptr = ReadIntPtr(player_ptr_addr_);
if (entity_ptr == IntPtr.Zero)
return null;
var data = GetEntityData(entity_ptr);
if (data.job == EntityJob.FSH)
data.bait = GetBait();
return data;
return GetEntityData(entity_ptr);
}

public unsafe override JObject GetJobSpecificData(EntityJob job) {
Expand Down
18 changes: 1 addition & 17 deletions plugin/CactbotEventSource/FFXIVProcessIntl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,6 @@ public FFXIVProcessIntl(ILogger logger) : base(logger) { }
// Because this line is a cmp byte line, the signature is not at the end of the line.
private static int kInCombatRipOffset = 1;

// Bait integer.
// Variable is accessed via a cmp eax,[...] line at offset=0.
private static String kBaitSignature = "4883C4305BC3498BC8E8????????3B05";
private static int kBaitBaseOffset = 0;
private static bool kBaitBaseRIP = true;

// A piece of code that reads the job data.
// The pointer of interest is the first ???????? in the signature.
private static String kJobDataSignature = "488B0D????????4885C90F84????????488B05????????3C03";
Expand Down Expand Up @@ -155,13 +149,6 @@ internal override void ReadSignatures() {
} else {
in_combat_addr_ = p[0];
}

p = SigScan(kBaitSignature, kBaitBaseOffset, kBaitBaseRIP);
if (p.Count != 1) {
logger_.Log(LogLevel.Error, Strings.BaitSignatureFoundMultipleMatchesErrorMessage, p.Count);
} else {
bait_addr_ = p[0];
}
}

public unsafe override EntityData GetEntityDataFromByteArray(byte[] source) {
Expand Down Expand Up @@ -229,10 +216,7 @@ public override EntityData GetSelfData() {
IntPtr entity_ptr = ReadIntPtr(player_ptr_addr_);
if (entity_ptr == IntPtr.Zero)
return null;
var data = GetEntityData(entity_ptr);
if (data.job == EntityJob.FSH)
data.bait = GetBait();
return data;
return GetEntityData(entity_ptr);
}

public unsafe override JObject GetJobSpecificData(EntityJob job) {
Expand Down
18 changes: 1 addition & 17 deletions plugin/CactbotEventSource/FFXIVProcessKo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,6 @@ public FFXIVProcessKo(ILogger logger) : base(logger) { }
// Because this line is a cmp byte line, the signature is not at the end of the line.
private static int kInCombatRipOffset = 1;

// Bait integer.
// Variable is accessed via a cmp eax,[...] line at offset=0.
private static String kBaitSignature = "4883C4305BC3498BC8E8????????3B05";
private static int kBaitBaseOffset = 0;
private static bool kBaitBaseRIP = true;

// A piece of code that reads the job data.
// The pointer of interest is the first ???????? in the signature.
private static String kJobDataSignature = "488B0D????????4885C90F84????????488B05????????3C03";
Expand Down Expand Up @@ -155,13 +149,6 @@ internal override void ReadSignatures() {
} else {
in_combat_addr_ = p[0];
}

p = SigScan(kBaitSignature, kBaitBaseOffset, kBaitBaseRIP);
if (p.Count != 1) {
logger_.Log(LogLevel.Error, Strings.BaitSignatureFoundMultipleMatchesErrorMessage, p.Count);
} else {
bait_addr_ = p[0];
}
}

public unsafe override EntityData GetEntityDataFromByteArray(byte[] source) {
Expand Down Expand Up @@ -229,10 +216,7 @@ public override EntityData GetSelfData() {
IntPtr entity_ptr = ReadIntPtr(player_ptr_addr_);
if (entity_ptr == IntPtr.Zero)
return null;
var data = GetEntityData(entity_ptr);
if (data.job == EntityJob.FSH)
data.bait = GetBait();
return data;
return GetEntityData(entity_ptr);
}

public unsafe override JObject GetJobSpecificData(EntityJob job) {
Expand Down
Loading