2 Star 1 Fork 0

牙刷play / cactbot

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

cactbot (ffxiv raiding overlay)

GitHub Workflow Status (branch) GitHub release (latest SemVer)

🌎 [English] [简体中文] [한국어]

  1. About
  2. Installing
  3. Building From Source
  4. UI Module Overview
  5. Troubleshooting
  6. Cactbot Customization
  7. Supported Languages

About

cactbot is an ACT overlay that provides raiding tools for Final Fantasy XIV. This project is an overlay plugin for ngld's OverlayPlugin which itself is a plugin for Advanced Combat Tracker.

cactbot provides these modules:

  • raidboss: built-in timelines and triggers:

timeline screenshot triggers screenshot

  • oopsyraidsy: mistake and death reporting

oopsy screenshot

  • jobs: condensed gauges with buff and proc tracking

rdm jobs screenshot

  • eureka: Eureka NM tracking map

eureka screenshot

  • fisher: Fishing cast time tracking

fisher screenshot

  • radar: hunt mob directions, puller notifications

radar screenshot

  • dps: extra features for dps meters

xephero screenshot

Video Examples

Installing

Dependencies

Install .NET Framework version 4.6.1 or above.

You must have DirectX 11 enabled for Final Fantasy XIV.

Install the 64-bit version of Advanced Combat Tracker, if you have not already.

Install FFXIV ACT Plugin

If you have just installed ACT, then you will be presented with a startup wizard. To get to the startup wizard otherwise, click on Options and then click on Show Startup Wizard.

startup wizard screenshot

In the startup wizard, select FFXIV Parsing Plugin and then click the Download/Enable Plugin button. This will download %APPDATA%Advanced Combat Tracker\Plugins\FFXIV_ACT_Plugin.dll and enable it in the list of plugins.

startup wizard download screenshot

Alternative FFXIV Plugin Guides:

Install ngld OverlayPlugin

At this point, if you select the Plugins tab and go to the Plugin Listing, your list of plugins should look something like this:

blank plugin listing screenshot

Click on Get Plugins to open up the ACT plugin installer.

Select Overlay Plugin and then click Download and Enable.

overlay plugin selection screenshot

This will download the ngld OverlayPlugin into %APPDATA%Advanced Combat Tracker\Plugins\OverlayPlugin and enable OverlayPlugin.dll in the list of plugins.

As a note, you must use the ngld version of OverlayPlugin and not the original RainbowMage version or the hibiyasleep fork.

Installing cactbot

Again, go to the Plugins tab and go to the Plugin Listing, and then select Get Plugins.

Select Cactbot and then click Download and Enable.

cactbot selection screenshot

This will download the cactbot into %APPDATA%Advanced Combat Tracker\Plugins\cactbot-version\cactbot and enable CactbotOverlay.dll in the list of plugins.

Note: Due to a difference in how ACT expects archives to be and how cactbot generates its zip files, there will be something like a cactbot-0.15.2 folder that corresponds to the initial version that you downloaded cactbot. This folder name does not matter and is cosmetic.

Plugin Load Order

Because of cactbot’s dependencies, cactbot must be loaded after both OverlayPlugin and the FFXIV ACT plugin. Verify that your plugins are in this order:

  • FFIXV_ACT_Plugin.dll
  • OverlayPlugin.dll
  • CactbotOverlay.dll

plugin order

Finally, restart ACT.

Adding overlay modules

Here's an example of how to set up the raidboss overlay module. Setting up other cactbot overlays works identically.

  1. Open ACT.

  2. Make sure you've restarted ACT after adding the cactbot plugin.

  3. Navigate to the Plugins tab of ACT and then the OverlayPlugin.dll tab inside it.

  4. Click the "New" button and then pick Cactbot Raidboss in the Preset list.

    new overlay plugin screenshot

  5. At this point, you should see some test UI appear on screen. cactbot provides default test UI, a large dashed red border, and a blue background to help with resizing and placing overlays on screen. These all go away when the overlay is locked in the config panel for the overlay. You should always lock your overlay once you are done resizing and placing it.

    raidboss plugin unlocked

  6. Type in any name you'd like as the name of this overlay, e.g. raidbossy.

  7. Click the OK button to add this as an Overlay. It will now appear in the list of overlays in the Plugins -> OverlayPlugin.dll tab.

  8. Drag and resize the overlay to the location that you want it in.

  9. In the General tab of the Raidboss overlay, click the Lock Overlay and Enable Clickthrough checkboxes. The test bars, debug text, dashed red border, and shaded blue background will disappear once the overlay has been locked.

    raidboss plugin config

  10. If you want to test the raidboss plugin, teleport to Summerford Farms, and do a /countdown 5.

  11. Adding other cactbot overlays is a similar process. Follow the same process but select a different cactbot preset.

Building from source

Follow all the steps above for installing cactbot first. To install dependencies there are 2 methods: per script and manually

Dependencies: Script Method

  1. curl MUST be installed (this is used to download dependencies)
  2. Execute the ./util/fetch_deps.py script
  3. Continue with Steps to build

Dependencies: Manual Method

  1. Please download the latest Zip file from https://github.com/EQAditu/AdvancedCombatTracker/releases/
  2. Extract the Advanced Combat Tracker.exe to cactbot/plugin/ThirdParty/ACT/
  3. Please download the latest SDK Zip file from https://github.com/ravahn/FFXIV_ACT_Plugin/ (make sure the file says SDK in its name)
  4. Extract the SDK folder as well as the FFXIV_ACT_Plugin.dll to cactbot/plugin/ThirdParty/FFXIV_ACT/
  5. Please download the latest Zip file from https://github.com/ngld/OverlayPlugin/releases/
  6. Extract the libs folder as well as the OverlayPlugin.dll to cactbot/plugin/ThirdParty/OverlayPlugin/
  7. Continue with Steps to build

The folder should look something like this (keep in mind files can change with updates in the future):

ThirdParty
|- ACT
|  |- Advanced Combat Tracker.exe
|- FFXIV_ACT
|  |- SDK
|  |  |- FFXIV_ACT_Plugin.Common.dll
|  |  |- FFXIV_ACT_Plugin.Config.dll
|  |  |- FFXIV_ACT_Plugin.LogFile.dll
|  |  |- FFXIV_ACT_Plugin.Memory.dll
|  |  |- FFXIV_ACT_Plugin.Network.dll
|  |  |- FFXIV_ACT_Plugin.Overlay.dll
|  |  |- FFXIV_ACT_Plugin.Parse.dll
|  |  |- FFXIV_ACT_Plugin.Resource.dll
|  |- FFXIV_ACT_Plugin.dll
|- OverlayPlugin
   |- libs
   |  |- HtmlRenderer.dll
   |  |- Markdig.Signed.dll
   |  |- Newtonsoft.Json.dll
   |  |- OverlayPlugin.Common.dll
   |  |- OverlayPlugin.Core.dll
   |  |- OverlayPlugin.Updater.dll
   |  |- SharpCompress.dll
   |  |- System.ValueTuple.dll
   |  |- websocket-sharp.dll
   |- OverlayPlugin.dll

Steps to build plugin

  1. Open the solution in Visual Studio (tested with Visual Studio 2017).
  2. Build for "Release" and "x64".
  3. The plugin will be built as bin/x64/Release/CactbotOverlay.dll.
  4. Add the built plugin directly as an ACT plugin. In the ACT -> Plugins -> Plugin Listing tab, click the Browse button and find the bin/x64/Release/CactbotOverlay.dll where this file was built. Then click Add/Enable Plugin.

npm and webpack

If you are not a cactbot developer and are trying to modify cactbot for your own personal triggers, you should instead refer to the customization documentation instead of changing your local cactbot files.

To install npm and start Webpack, follow these steps:

  1. Install nodejs and npm
  2. Run npm install in the root of the cactbot directory.
  3. Run npm run build or npm start.

See the contributing documentation for more details about using Webpack.

UI module overview

The ui/ directory contains cactbot's ui modules. If you installed cactbot following the instructions above, this will most likely be %APPDATA%Advanced Combat Tracker\Plugins\cactbot-version\cactbot\ui\.

Each cactbot ui module should be added as a separate overlay. See the Adding Overlay Modules section for more details about setup.

raidboss module

To use this module, point cactbot at ui/raidboss/raidboss.html or use the Cactbot Raidboss preset.

This module provides a visual timeline of upcoming events in a fight, as well as text and audio notifications to help increase raid awareness. Text and sound alerts can be based on the fight timeline, or come from log messages that occur in the game, similar to ACT's "Custom Triggers". The module is designed to look and feel similar to the BigWigs Bossmods addon for World of Warcraft.

This page lists the currently supported set of content in cactbot. Support is continually added over time (patches welcome!) but a lot of old content may not be supported yet.

Fight timelines are provided in files designed for the ACT Timeline plugin, documented here with some extensions.

There are three levels of text alerts, in order of escalating importance: info, alert, and alarm. Text messages will be in one of these, and more important levels are larger and more eye grabbing colors. Text-to-speech can be configured if you prefer that over on screen text.

Timeline files and triggers for text and sound alerts are found in ui/raidboss/data, timeline files with .txt extension and trigger files with .js extension.

In this screenshot, the raidboss module is highlighted, with the timeline circled in red, and the text alerts circled in yellow, with an alert-level text message visible.

raidboss screenshot

raidboss emulator

If you are writing triggers or timelines and want to test them, you can use the raidboss emulator: ui/raidboss/raidemulator.html.

This currently can only be loaded in a browser and not as an overlay. This will work in current version of Chrome, and should work in other browsers as well but this is less tested.

If you want the emulator to use your ACT settings and user triggers, you will need to enable the OverlayPlugin WS Server via the following instructions:

  1. Start ACT.
  2. Start the WS Server via Plugins -> OverlayPlugin WSServer -> Stream/Local Overlay.

If you're developing triggers for the cactbot repository, you can start a local development server via npm run start and load the overlay in Chrome via http://127.0.0.1:8080/ui/raidboss/raidemulator.html?OVERLAY_WS=ws://127.0.0.1:10501/ws

If you're developing user triggers, you can load the overlay in Chrome via https://quisquous.github.io/cactbot/ui/raidboss/raidemulator.html?OVERLAY_WS=ws://127.0.0.1:10501/ws

If you're trying to reproduce an issue, you can load the overlay in Chrome via https://quisquous.github.io/cactbot/ui/raidboss/raidemulator.html. You don't need the WS Server running in this case.

Once you've got the overlay loaded, you can follow these instructions to use the emulator.

  1. Drag and drop a network log onto the page.
  2. Select the zone and encounter, and then click Load Encounter.

If the emulator is not working, check the console log in the inspector for errors.

raidboss emulator screenshot

oopsyraidsy module

To use this module, point cactbot at ui/oopsyraidsy/oopsyraidsy.html or use the Cactbot OopsyRaidsy preset.

This module provides mistake tracking and death reporting. Oopsy raidsy is meant to reduce the time wasted understanding what went wrong on fights and how people died. During the fight, only a limited number of mistakes are shown (to avoid clutter), but afterwards a full scrollable list is displayed.

When somebody dies, the last thing they took damage from is listed in the log. For example, if the log specifies: ":skull: Poutine: Iron Chariot (82173/23703)" this means that Poutine most likely died to Iron Chariot, taking 82173 damage and having 23703 health at the time. The health value itself is not perfect and may be slightly out of date by a ~second due to a hot tick or multiple simultaneous damage sources.

When mistakes are made that are avoidable, oopsy logs warning (:warning:) and failure (:no_entry_sign:) messages, explaining what went wrong.

Mistake triggers are specified for individual fights in the ui/oopsyraidsy/data folder.

oopsy screenshot

jobs module

To use this module, point cactbot at ui/jobs/jobs.html or use the Cactbot Jobs preset.

This module provides health and mana bars, as well as icons and timer bars for big raid buffs such as The Balance and Trick Attack. It also features a food buff warning to keep up your food buff when leveling or raiding, and a visual pull countdown.

It has more fleshed out support for some jobs but is strongly a Work In Progress for others.

Supported Jobs (Click to expand)
Job Feature

Paladin
Shows current Oath amount, and atonement stacks. Also tracks Goring Blade DoT.

Warrior
Shows the beast amount, and tracks the remaining Storm's Eye buff time in gcds, and shows combo time remaining.

Dark Knight
Shows the blood amount and darkside time, BloodWeapon&Delirium&LivingShadow duration and cooldown, and shows combo time remaining.

Gunbreaker
Shows No Mercy duration&cooldown, Bloodfest&Gnashing Fang cooldown, Cartridge amount, and shows combo time remaining.

White Mage
Shows Heal&Blood Lily amount, time to next Lily, DoTs remaining time, and shows Assize&Lucid Dreaming cooldown.

Scholar
Shows Aetherflow stacks, Fairy gauge amount/time remaining, DoTs remaining time, and shows Aetherflow&Lucid Dreaming cooldown.

Astrologian
Shows Seals amount, notify who or whether to play the current card, DoTs remaining time, and shows Draw&Lucid Dreaming cooldown.

Monk
Shows chakra count and form time, and tracks monk buffs and debuffs.

Dragoon
Shows blood&eye amount, remaining Disembowel time, jump cooldown, and Lance Charge&Dragon Sight duration/cooldown.

Ninja
Shows Ninki amount, Huton remaining time, Trick Attack duration&cooldown, Bunshin&Mudras cooldown, and shows combo time remaining.

Samurai
Shows Kenki amount, Meditation stacks, Shifu&Jinpu&Higanbana duration, Tsubame-gaeshi cooldown, and shows combo time remaining.

Bard
Shows songs playing and remaining time, Repertoire stack, Soul Voice amount, StraightShotReady track, DoT remaining time, and a bar that show when your DoTs will tick.

Machinist
Shows Heat gauge, Battery gauge, Combo Timer, Drill/Bioblaster&Air Anchor Cooldown, Wild Fire Cooldown&Duration. When Wild Fire is active, there will be a gauge to show how many GCD you have landed.

Dancer
Shows Combo Timer, Feather Guage, Esprit Guage, Standard Step Cooldown, Technical Step&Flourish Cooldown & Duration.

Black Mage
Shows DoTs remaining time, firestarter&thundercloud proc duration, time to next xeno, MP ticker, Fire/Ice stack and umbral heart stack.

Summoner
Shows DoTs remaining time, Energy Drain Cooldown, Trance Cooldown, Aetherflow stack, Demi-Summoning time and FurtherRuin Stack Guage.

Red Mage
Shows white/black mana, tracks procs for Verstone&Verfire and show cooldown of lucid dreaming.

Blue Mage
Shows cooldown of offguard&lucid dreaming, and Song Of Torment DoT remaining time.

In this screenshot, the jobs module is highlighted for the Red Mage job. The health and mana bars, as well as Red Mage white/black mana tracking is circled in purple, with the large raid buff tracking pointed to beside it in orange. The first step of the melee combo has been executed, which is displayed as the yellow box above the health bar. The proc tracking is circled below in green.

jobs screenshot

eureka module

To use this module, point cactbot at ui/eureka/eureka.html or use the Cactbot Eureka preset.

This module provides automatic tracking of NMs that are popped or have been killed. It shows gales/night timers and any local tracker link that has been pasted in chat. Any flags in chat are also temporarily included on the map.

It currently does not read the tracker information directly. However, if you click on the left/red "Copy killed NMs" button in the tracker to copy the list of currently dead NMs, you can paste it in game, e.g. /echo NMs on cooldown: Serket (7m) → Julika (24m) → Poly (54m)

If you do not see the emoji, make sure you have installed this Windows update.

eureka screenshot

radar module

To use this module, point cactbot at ui/radar/radar.html or use the Cactbot Radar preset.

This module lets you know about nearby hunt mobs (S-rank, A-rank, etc). When one pops, it gives you an arrow (based on your character's heading) and a distance to the mob.

There are options to show who pulled the mob, as well as to configure the display of the radar. You can also set up custom options for different ranks (e.g. make noises for S rank, but be silent for B ranks), or set up custom triggers for any mob name you would like.

See the cactbot/user/radar-example.js for more options.

radar screenshot

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

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.

See here for examples of the different tug types.

Check here for common troubleshooting tips.

dps meters

cactbot can be used with any dps meter overlay designed for OverlayPlugin's miniparse addon, with the option to build out more features through cactbot's additional Javascript APIs. cactbot also auto-stops fights on wipes, so you can configure ACT's fight time to infinity.

The xephero dps meter is based on the same dps meter built for miniparse, with the additional ability to do per-phase dps tracking, displayed in additional columns. In the screenshot below the phases are named B1, B2, B3. These autogenerate from dungeon bosses, but could be used to differentiate raid fight phases.

xephero screenshot

The rdmty dps meter is based on the same dps meter for miniparse, and recolored to match fflogs.

rdmty screenshot

pull counter module

This small module sticks the current pull count for raiding bosses on screen. This is primarily for folks who stream a lot and want to review video footage. Having a number on screen makes it easy to scrub through video and find particular pulls to review.

In most cases, you can reset the count for the current boss/zone by typing /echo pullcounter reset. You can also edit the counts directly in your %APPDATA%\Advanced Combat Tracker\Config\RainbowMage.OverlayPlugin.config.json file.

pull counter screenshot

test module

To use this module, point cactbot at ui/test/test.html or use the Cactbot Test preset.

This module is just an onscreen test of cactbot variables and is not meant to be used while playing. It can be useful to try out to make sure everything is working as expected or to use to help debug overlay issues.

test screenshot

Troubleshooting

A general FAQ can be found here containing solutions to common Cactbot issues.

Cactbot Customization

Most common cactbot configuration can be done via the control panel, inside of ACT.

config panel

This can be found by going to Plugins -> OverlayPlugin.dll -> Cactbot Event Source, and then clicking on options there.

In particular, if you want to use text to speech for raidboss alerts, you can change the "Default alert output" to be "TTS Only" or "Text and TTS". You can also change this on a per trigger basis.

Or, if for some reason (???) you don't want the ready check sound alert, you can disable this via the same options panel. Go to Raidboss -> General Triggers -> General -> General Ready Check, and set it to Disabled instead of Defaults.

These options are stored in your %APPDATA%\Advanced Combat Tracker\Config\RainbowMage.OverlayPlugin.config.json file. It is not recommended to edit this file directly, as it must be strict json and ACT might fail to load if the file is written incorrectly.

It is recommended that you do most of your configuration via this control panel rather than with user files. Files in cactbot/user/ are more powerful and can override anything from the control panel. However, this can also be confusing when the control panel doesn't adjust something properly that a cactbot/user/ file is overriding silently.

See this documentation for more details about user javascript and css files.

Supported Languages

cactbot is tested and works with the current international (English, German, French, Japanese) version, the current Chinese version, and the current Korean version. Some translations are still a work in progress.

Licensing, Trademarks, Copyright

cactbot is open source under the Apache License, Version 2.0.

FINAL FANTASY is a registered trademark of Square Enix Holdings Co., Ltd.

Final Fantasy art and icons reused non-commercially under the FINAL FANTASY® XIV Materials Usage License.

See the LICENSE file for more details about other bundled projects.

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2017-2021 https://github.com/quisquous/cactbot Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 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. * resources/sounds/BigWigs: sounds from BigWigs WoW mod (CreativeCommons) see: resources/sounds/BigWigs/LICENSE.txt * resources/sounds/freesound: sounds from freesound.org (Creative Commons) see: resources/sounds/freesound/LICENSE.txt * resources/sounds/Overwatch: sounds from OverWatch (Creative Commons) see: resources/sounds/Overwatch/LICENSE.txt

简介

暂无描述 展开 收起
Apache-2.0
取消

发行版 (8)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/zhu_jun_long/cactbot.git
git@gitee.com:zhu_jun_long/cactbot.git
zhu_jun_long
cactbot
cactbot
main

搜索帮助