Coder Social home page Coder Social logo

landsandboat / server Goto Github PK

View Code? Open in Web Editor NEW
265.0 23.0 524.0 514.03 MB

:sailboat: LandSandBoat - a server emulator for Final Fantasy XI. Just an X-34 landspeeder out for a drive.

Home Page: https://landsandboat.github.io/server/

License: GNU General Public License v3.0

Lua 66.36% CMake 0.33% C++ 23.80% C 8.83% Shell 0.04% Python 0.63% Batchfile 0.01%
c-plus-plus lua ffxi final-fantasy emulator server-emulator mmorpg final-fantasy-xi mmorpg-server landsandboat

server's Introduction

LandSandBoat

Welcome to LandSandBoat, an open source server emulator for FFXI.

Getting Started

A quick start guide, the frequently asked questions, and a table of "what works" are all available on our wiki.

Interacting with LandSandBoat

Crashes, bugs, obvious gameplay issues etc

Please search the issues tab and see if your issue is already logged, or create a new one.

Balance discussion, technical discussion, meta discussions etc

For topics with less direction than issues, a discussion is probably a better fit. Please search the discussions tab and see if your topic has already been discussed, or create a new one.

LICENSE

LandSandBoat is licensed under GNU GPL v3

Thanks

Thanks to all contributors past and present, we wouldn't be here without you!

Thanks to GitHub for hosting us, and for all the CI minutes we use!

Thanks to JetBrains for providing our core contributors with "All Products Pack" licenses for our continued open source work. It's much appreciated, we love ReSharper C++ and CLion!

JetBrains Logo (Main) logo.

server's People

Contributors

apocalypse612 avatar atom0s avatar bendangelo avatar bluekirby0 avatar claywar avatar cocosolos avatar frankie-hz avatar gedads avatar hozu avatar ibm2431 avatar jmcmorris avatar kegsay avatar knowone134 avatar linkandentity avatar maxtherabbit avatar mowford avatar neuromancerxi avatar nfaletra avatar shelbyz avatar takhlaq avatar teotwawki avatar teschnei avatar unknownx7 avatar whasf avatar wiggo32 avatar wintersolstice8 avatar wrenffxi avatar xaver-dared avatar zach2good avatar zynjec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

server's Issues

[build] CMake compiler/platform/settings configuration is a mess

StandardProjectSettings.cmake, Platform.cmake and CompilerWarnings.cmake are all over the place. Stemming from being 1-1 copies of the old makefile builds, me not really knowing what I was doing at the time, and spurious additions and mad-rushes to fix the build etc.

It would be nice to organise things into some sort of structure:

  • General build settings
  • Compiler settings (multiplatform)
  • Linker settings (multiplatform)
  • Build Tools (-SANs, Tracy, ClangTidy, ClangFormat)
  • FindX.cmake modules
  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: All branches

Additional Information (Steps to reproduce/Expected behavior) :

[build] Fix OSX build

TODO:
Flesh out and test these, scraped from my old PR in DSP

  • AppleClang defines nil as a macro for nullptr. This collides with sol pretty badly :(
  • Find/replace:
-               sol::nil;
+               sol::lua_nil;
  • server/src/map/CMakeLists.txt: link_options -> add_link_options
  • FileWatcher doesn't support OSX
  • LuaJIT + Sol = panic on startup... (Update: just LuaJIT)
brew install git pkg-config autoconf make gcc openssl mariadb [email protected] zeromq zmqpp
brew install luajit --HEAD
mkdir build
cd build
cmake ..
make
  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Additional Information (Steps to reproduce/Expected behavior) :

[dbtool] not working in linux

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on: base

Additional Information (Steps to reproduce/Expected behavior) :
server/tools$ python3 dbtool.py
ERROR: Make sure git.exe is available in your system's PATH environment variable.

Automaton Tank/Mage WS DMG is 0. Attachments are also still broken.

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on: EVERYTHING

Sorry to bug you guys again haha! The last fixes did fix the ranged attacks and I apologize for not noticing this issue before.

  • Automaton Tank frames WS deals 0 damage
  • Automaton all Mage frame WS deals 0 damage
  • Automaton Harlequin frames WS deals 0 damage
  • Attachments are broken
    o Tried Several Attachments like Strobe/Shock Absorber/Flashbulb/etc with no luck

Todo: url's in project md files

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on: ALL

Additional Information (Steps to reproduce/Expected behavior) :
Right now, all the links point at files in the old repo...this will be a rare case where the work happens in the topaz branch and then goes out to the other branches.

Add support for ITEM_OBTAINEDX to npcUtil.giveItem()

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on: EDITME

Additional Information (Steps to reproduce/Expected behavior) :
When providing an item quantity of >1, we should default to ITEM_OBTAINEDX message ID, as opposed to ITEM_OBTAINED. Need to add this support into the helper function.

Gates should open when approached in Batallia Down [S]

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: all

Additional Information (Steps to reproduce/Expected behavior) :
When approaching the Rampart Gates and Rampart Doors in Batallia Downs [S], the gates / doors should open automatically. I am certain this happens when using a mount and believe it also happens when not using a mount.
There are similar doors and gates in Rolanberry Fields [S] and Sauromugue Champaign [S].

Balayang link in Fei'Yin

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
Balayang in Fei'Yin do not link nor do they aggro in retail. (It's a very good spot to level up!)
Here, they do not aggro but they do link.

AOE JA's don't generate enmity in PT

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: current

Additional Information (Steps to reproduce/Expected behavior) :
If you use an AOE JA, such a rampart or warcry solo, you get the expected CE/VE enmity listed in the sql database for abiities.

However, if you are in a party and it hits another member, you get 0 CE/VE

Bonus: AoE buff JA's also don't show up in chat log(no msg set).
I'm using rampart everytime after "!reset".
image

Aggro during Survival Guide use & teleporting caused black screen

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
I got aggro'ed by a goblin when interacting with the Survival Guide in Cape Teriggan, so I quickly selected any location (I think I chose Eastern Adoulin if it matters) to escape. Before getting teleporting out, the screen went black, the goblin was still attacking, and it looked like I could still move judging by the position of the arrow above the target goblin. I couldn't attack the goblin but could open the menu to use my warp ring. The shutdown command worked, but was interrupted when the goblin landed a hit.

Several mobs that should drop Beyond Infinity items don't drop them

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: All branches

Additional Information (Steps to reproduce/Expected behavior) :
A number of the mobs that should be dropping the final Limit Break fight's items don't. Either the mob has no droplist or the items are absent from the mob's droplist. The items in question are Seasoning Stone(3541), a Fossilized Bone (3543), and Fossilized Fang (3542).

Quickly researched examples:
Goblin Bushwhacker, Natty Gibbon in Dangruf have no droplist
Kuftal Delvers in Kuftal have a droplist, but missing items.

Item sources on retail:
http://ffxidb.com/items/3541
http://ffxidb.com/items/3542
http://ffxidb.com/items/3543

Ayame trust TP

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
Ayame trust should hold TP until the player reaches 1k TP before doing a weapon skill, unless she reaches 3k TP, at which time she will weaponskill regardless of player TP.

https://ffxiclopedia.fandom.com/wiki/Trust:_Ayame
https://www.bg-wiki.com/ffxi/BGWiki:Trusts#Ayame

[ci] Share build artifacts between jobs

Currently, we have build jobs, and we have run jobs. The run jobs do a build of their own. This is wasteful.
We should be adding a reliance on the run jobs to the build jobs and take the three executables from them.
https://docs.github.com/en/actions/guides/storing-workflow-data-as-artifacts

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: All branches

Additional Information (Steps to reproduce/Expected behavior) :

Problems with High Lvl DNC Flourishes

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: server/Base

Additional Information (Steps to reproduce/Expected behavior) :

Was conducting testing on 05/19/2021 & 05/20/2021 with current Base build files (from 05/18/2021) on a fresh install (using pre-existing DB).

Tested various DNC Job Abilities, including all Flourishes. All seem to be functioning as designed/expected with the exception of the 3 highest under Flourishes III. Abilities in question are as listed below with error messages from map log provided in line...

CLIMACTIC FLOURISH - Showed Animation, Activity in Chat Log, Seems to have affected target, resultant error below...

[20/May] [09:23:53]�[1;37m [Action Info] �[0m �[1;36mCLIENT DarkTannin PERFORMING ACTION 09
�[0m[20/May] [09:23:53]�[1;31m [Error] �[0m luautils::onUseAbility: stack index 2, expected number, received nil: not a numeric type (bad argument into 'int(unsigned short)')
stack traceback:
	[C]: in function 'getMerit'
	./scripts/globals/abilities/climactic_flourish.lua:34: in function <./scripts/globals/abilities/climactic_flourish.lua:31>
[20/May] [09:24:16]�[1;37m [Info] �[0m parse: 01A | 092E 092D 0E from user: DarkTannin

STRIKING FLOURISH - No Animation, Nothing went to Chat Log, Doesn't seem to have affected target, resultant error below...

[20/May] [10:33:55]�[1;37m [Action Info] �[0m �[1;36mCLIENT DarkTannin PERFORMING ACTION 09
�[0m[20/May] [10:33:55]�[1;31m [Error] �[0m luautils::onUseAbility: stack index 2, expected number, received nil: not a numeric type (bad argument into 'int(unsigned short)')
stack traceback:
	[C]: in function 'getMerit'
	./scripts/globals/abilities/striking_flourish.lua:46: in function <./scripts/globals/abilities/striking_flourish.lua:31>
[20/May] [10:33:59]�[1;37m [Info] �[0m parse: 01A | 033F 033E 0E from user: DarkTannin

TERNARY FLOURISH - No Animation, Nothing went to Chat Log, Doesn't seem to have affected target, resultant error below...

[20/May] [09:25:59]�[1;37m [Action Info] �[0m �[1;36mCLIENT DarkTannin PERFORMING ACTION 09
�[0m[20/May] [09:25:59]�[1;31m [Error] �[0m luautils::onUseAbility: stack index 2, expected number, received nil: not a numeric type (bad argument into 'int(unsigned short)')
stack traceback:
	[C]: in function 'getMerit'
	./scripts/globals/abilities/ternary_flourish.lua:35: in function <./scripts/globals/abilities/ternary_flourish.lua:31>
[20/May] [09:26:04]�[1;37m [Info] �[0m parse: 01A | 0A33 0A32 0E from user: DarkTannin

Skillchains occur even when weaponskills miss

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
If a WS misses, another can close with a WS to form a SC.
If a WS hits (or misses), another can close with a missing WS and it does 0 damage.

In retail if either opening or closing WS misses, no SC is triggered.

Soul gem clasp KI is not lost on first attempt, and to reobtain doesn't require 5 high kindred crests

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
The soul gem clasp is not used during the first BCNM entry during the Beyond Infinity quest fight.

Additionally, to replace a soul gem clasp (I lost it when I entered the second time) should cost 1 merit as well as 5 high kindred crest's. Another soul gem clasp can currently be reobtained with just 1 merit point, no high kindred crest's are being required to be traded.

The first entry location I chose was Qu'Bia Arena, the second I chose was Balga's Dais, if it matters.

Source of retail:
https://ffxiclopedia.fandom.com/wiki/Beyond_Infinity

check command giving unexpected results, mob agro and level outside of the expected range

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Additional Information (Steps to reproduce/Expected behavior) :
This has been "reported" in chat many times, but lacked an issues describing it. According to what I was told by the person implementing the change, prior to lv99 there is no such thing as "incredibly easy prey" only easy pray and too weak. But if you run through Xarcabard as a lv75 on a 75 capped server you can draw aggro from lv 46 mobs that check as IEP.

image

This issue shall serve as a cache all for related reporting until we're 100% sure the level ranges for /check are 1:1 retail accurate.

Eruca casting should not occur while asleep due to time of day

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: All

Additional Information (Steps to reproduce/Expected behavior) :

Eruca displaying sleep animation due to daytime are currently casting spells and moving slightly during this period. No action should be taken during this period.

Crystal trade required to increase rank points for mission unlocks

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
The number of crystals required to increase rank points needed to unlock nation missions is much higher than current retail.

Implement `Rafflesia` mob skills, because BLU spell `Seedspray` is not learnable

The skill is not currently in the mob_skills.sql table, although placeholder comments exist for them. (It appears the accurate animation value is not yet known.)

The Lua script for the spell does exist: https://github.com/LandSandBoat/server/blob/094ec9f022916bc86b8d0efee166b626ec560c2c/scripts/globals/mobskills/seedspray.lua

Similarly we should add the rest of the spell implementations for the mob type, so that the BLU spell isn't used 100% of the time on weaponskill.

Map Server Crash [Ubuntu 20.04] [Base Branch] [Commit 0172026]

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: Base

Additional Information (Steps to reproduce/Expected behavior) :

[22/May] [15:04:53] [Info] parse: 05E | 02D1 02CF 0C from user: Sansme
[22/May] [15:04:53] [Info] Zoning from zone 238 to zone 239: Sansme
[22/May] [15:04:53] [Info] parse: 00D | 02D2 02D0 04 from user: Sansme
[22/May] [15:04:53] [Debug] CZone:: Windurst_Waters DecreaseZoneCounter <0> Sansme
[22/May] [15:04:54] [Debug] Message: Received message 9 from message server
[sol3] An error occurred and panic has been invoked: stack index 1, expected number, received table: not a numeric type
terminate called after throwing an instance of 'sol::error'
  what():  lua: error: stack index 1, expected number, received table: not a numeric type

Thread 1 "topaz_game" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) where
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7df3859 in __GI_abort () at abort.c:79
#2  0x00007ffff7b13951 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff7b1f47c in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff7b1f4e7 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff7b1f799 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x0000555555584e78 in sol::default_at_panic (L=0x40020378) at /usr/include/c++/9/ext/new_allocator.h:89
#7  0x00007ffff7c6bee0 in ?? () from /usr/lib/x86_64-linux-gnu/libluajit-5.1.so.2
#8  0x00007ffff7c80d56 in ?? () from /usr/lib/x86_64-linux-gnu/libluajit-5.1.so.2
#9  0x00007ffff7c80e2d in lua_error () from /usr/lib/x86_64-linux-gnu/libluajit-5.1.so.2
#10 0x00005555556896d9 in sol::type_panic_c_str (message=<optimized out>, actual=<optimized out>, expected=<optimized out>, 
    index=<optimized out>, L=<optimized out>) at /server/ext/sol/include/sol/sol.hpp:8638
#11 sol::stack::unqualified_checker<signed char, (sol::type)3, void>::check<int (&)(lua_State*, int, sol::type, sol::type, char const*)> (
    handler=<optimized out>, tracking=..., index=<optimized out>, L=<optimized out>) at /server/ext/sol/include/sol/sol.hpp:11280
#12 sol::stack::unqualified_check<int, int (&)(lua_State*, int, sol::type, sol::type, char const*)> (tracking=..., handler=<optimized out>, 
    index=<optimized out>, L=<optimized out>) at /server/ext/sol/include/sol/sol.hpp:10708
#13 sol::stack::qualified_checker<int, (sol::type)3, void>::check<int (&)(lua_State*, int, sol::type, sol::type, char const*)> (
    tracking=..., handler=<optimized out>, index=<optimized out>, L=<optimized out>) at /server/ext/sol/include/sol/sol.hpp:11812
#14 sol::stack::check<int, int (&)(lua_State*, int, sol::type, sol::type, char const*)> (tracking=..., handler=<optimized out>, 
    index=<optimized out>, L=<optimized out>) at /server/ext/sol/include/sol/sol.hpp:10734
#15 sol::stack::check<int, int (&)(lua_State*, int, sol::type, sol::type, char const*)> (handler=<optimized out>, index=<optimized out>, 
    L=<optimized out>) at /server/ext/sol/include/sol/sol.hpp:10741
#16 sol::stack::qualified_check_getter<int, void>::get<int (&)(lua_State*, int, sol::type, sol::type, char const*)> (
    handler=<optimized out>, tracking=..., index=<optimized out>, L=<optimized out>) at /server/ext/sol/include/sol/sol.hpp:13367
#17 sol::stack::check_get<int, int (&)(lua_State*, int, sol::type, sol::type, char const*)> (tracking=..., handler=<optimized out>, 
    index=<optimized out>, L=<optimized out>, L=<optimized out>, index=<optimized out>, handler=<optimized out>, tracking=...)
    at /server/ext/sol/include/sol/sol.hpp:10812
#18 sol::stack::get<int> (tracking=..., index=<optimized out>, L=<optimized out>, L=<optimized out>, index=<optimized out>, tracking=...)
    at /server/ext/sol/include/sol/sol.hpp:10901
#19 sol::stack::get<int> (index=<optimized out>, L=<optimized out>, L=<optimized out>, index=<optimized out>)
    at /server/ext/sol/include/sol/sol.hpp:10912
#20 sol::protected_function_result::get<int> (this=0x0, index_offset=<optimized out>) at /server/ext/sol/include/sol/sol.hpp:15845
#21 0x00005555557f9563 in sol::proxy_base<sol::protected_function_result>::operator int<int, (sol::meta::enable_t)0>() const (
    this=<optimized out>) at /server/ext/sol/include/sol/sol.hpp:15480
#22 luautils::OnZoneIn (PChar=<optimized out>) at /server/src/map/lua/luautils.cpp:1596
#23 charutils::LoadChar (PChar=<optimized out>) at /server/src/map/utils/charutils.cpp:823
#24 recv_parse (buff=<optimized out>, buffsize=<optimized out>, from=<optimized out>, map_session_data=<optimized out>)
    at /server/src/map/map.cpp:548
#25 0x00005555555c0023 in do_sockets (next=..., rfd=<optimized out>) at /server/src/map/map.cpp:410
#26 main (argc=<optimized out>, argv=<optimized out>) at /server/src/common/kernel.cpp:276

PC sansme is not on discord but will reach out to which action he used that caused map crash.

Navmeshes Repository

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: Topaz. Probably all, by extension

Additional Information (Steps to reproduce/Expected behavior) :
2 different sets of Navmeshes exist.

https://github.com/DerpyProjectGroup/xiNavmeshes - Used in DSP
https://github.com/topaz-next/xiNavmeshes - Used in Topaz and Topaz-Next

After the Job Points merge, we seem to be using 2...

imagen

One is the old DSP navmeshes. The other points to an unknown location.

Interaction: Add helper function for getQuestVar

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Was mulling over this. For separate quests that need to pull variables, would there be value in creating a helper function to provide readability? Since Quest.getVarPrefix is attached to a global, we could implement something like utils.getQuestVar(areaId, questId, value)

This could be useful for Missions as where we need to interact between Zilart/CoP and Apocalypse Nigh chain.

Mission interactions are failing to init in Windows

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: base

Additional Information (Steps to reproduce/Expected behavior) :
Mission interactions are failing to load in windows during the zone init. I believe the issue is in luautils::GetQuestAndMissionFilenamesList. Window's preferred separator is '\' so while looping through the directories and calling entry.path(), your path is actually something like: "scripts/missions\acp\01_A_Crystalline_Prophecy.lua".
In the loop it's checking for the number of '/' to determine depth, which works on linux, but not windows. Since the mission files are not at the correct depth, it doesn't add them to outVec to be returned.

I've included a link to what I hacked together for my personal server. Not sure if there's a more elegant solution.

Hokuten85/Ivalice@3ca4480#diff-eeb9cc690647d9c2f5d1415ca5da922f2bbba9b3d3867d51035264276ac2fc05R359

Players and party UI occasionally don't load when zoning

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: current

Zone into a new area with multiple characters. Occasionally someone around you will not load, forcing you to rezone or run far enough away(50 yalms) to "reload" them.

When zoning, your party UI will occasionally not load as well. This ONLY happens if you are not leader, and >>CANNOT<< happen to you as the party leader. Giving leader to someone else refreshes the party list.

For players:
https://github.com/LandSandBoat/server/blob/base/src/map/zone_entities.cpp#L600
It's due to the code here. It needs to push the packet until it guarantees to load or something.

Not sure about party UI, but it just needs to ReloadParty()

Old Wounds quest

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :

I started have the The General's Secret quest, but talking to Curilla again, even after zoning, she wont give me the Old Wounds quest. On lvl 90 Warrior, above 240 sword skill.

Having Weapons Training Guide key item prevents mission progression

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
The first step after accepting mission Bastok 7-1 is to talk to Cid to get a cutscene. Having the Weapon Training Guide key item prevented the cutscene from occurring.
After quitting the quest and losing the key item (still had the trial weapon in my mog wardrobe), I was able to get the cutscene.

Goliath in Fei'Yin doesn't seem to be accurately placeholdered

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on: base

Additional Information (Steps to reproduce/Expected behavior) :
There are 4 copies of him, we only have 1 implemented at this time. This leaves 3 missing.

Retail game will almost always (with a very few exceptions) use either the mob at the top or bottom of a group for the PH, leading to it being right before the NM in latter case.

That would make his likely correct placeholders what I almost sent up tonight in another branch:

        GOLIATH_PH  =
        {
            -- [17613044] = 17613045,
            -- [17613046] = 17613047,
            -- [17613050] = 17613051,
            -- [17613052] = 17613053,
            -- Todo: verify the above, remove the below entry
            [17613052] = 17613045,
        },

I fubar'd it twice, and that's for the best since I realized it needs verified anyway during my battle with git here so it may as well be correct the 1st time. I don't have time to camp him anytime soon though.

Champion Crawler shouldn't aggro?

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
Champion Crawlers in Rolanberry Fields [S] should not aggro but should link. These do currently aggro.
I've also noticed that they do not move through the fence like objects, but should be able to. They tend to go to the end of the row of fencing. Players can move through the fencing.

Level sync issues

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: current

Level sync to someone ahead of you in exp and same level. Kill mobs until they level, you will still be 1 level behind. Now keep killing mobs until you level, you will still stay at your level and not sync up to theirs despite being same level now.

It's caused by this:

if (PChar->PParty->GetSyncTarget() == PChar)

It doesn't refresh sync when leveling unless you're syncee, it needs to refresh sync if you level AND have level sync status.

Job Point Implementation Tracker

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: jp

Additional Information (Steps to reproduce/Expected behavior) :

Packets

  • Job Point Flag
  • Job Point Menu
  • Job Point Details
  • Job Point Spent
  • BLU Spell Point Increase Support
  • Capacity Points Increase
  • Job Point Animation
  • Add Method for acquiring spells from JP Gifts

Database

  • Character Job Points Table
  • Job Point Gifts Table

Capacity Points

  • Capacity Points Server Multiplier
  • Add Capacity Points
  • Capacity Points Mod Bonus

Job Point Effects

WAR

  • Mighty Strike Effect
  • Brazen Rush Effect (Using Mighty Strikes Animation)
  • Berserk Effect
  • Defender Effect
  • Warcry Effect
  • Aggressor Effect
  • Retaliation Effect
  • Restraint Effect
  • Blood Rage Effect
  • Double Attack Effect

MNK

  • Hundred Fists Effect
  • Inner Strength Effect
  • Dodge Effect
  • Focus Effect
  • Chakra Effect
  • Counterstance Effect
  • Footwork Effect
  • Perfect Counter Effect
  • Impetus Effect
  • Kick Attack Effect

WHM

  • Benediction Effect
  • Asylum Effect
  • Divine Seal Effect
  • Magic Accuracy Bonus
  • Afflatus Solace Effect
  • Afflatus Misery Effect
  • Divine Caress Duration
  • Sacrosanctity Effect
  • Regen Duration
  • Bar Spell Effect

BLM

  • Manafont Effect
  • Subtle Sorcery Effect
  • Elemental Seal Effect
  • Magic Burst Damage Bonus
  • Mana Wall Effect
  • Magic Accuracy Bonus
  • Emnity Douse Recast
  • Manawell Effect
  • Magic Burst Emnity Bonus
  • Magic Damage Bonus

RDM

  • Chainspell Effect
  • Stymie Effect
  • Convert Effect
  • Magic Accuracy Bonus
  • Composure Effect
  • Magic Attack Bonus
  • Saboteur Effect
  • Enfeeble Duration
  • Quick Magic Effect
  • Enhancing Duration

THF

  • Perfect Dodge Effect
  • Larceny Effect
  • Sneak Attack Effect
  • Trick Attack Effect
  • Steal Recast
  • Mug Effect
  • Despoil Effect
  • Conspirator Effect
  • Bully Effect
  • Triple Attack Effect

PLD

  • Invincible Effect
  • Intervene Effect
  • Holy Circle Effect
  • Sentinel Effect
  • Shield Bash Effect
  • Cover Duration
  • Divine Emblem Effect
  • Sepulcher Duration
  • Palisade Effect
  • Enlight Effect

DRK

  • Blood Weapon Effect
  • Soul Enslavement Effect
  • Arcane Circle Effect
  • Last Resort Effect
  • Souleater Duration
  • Weapon Bash Effect
  • Nether Void Effect
  • Arcane Crest Duration
  • Scarlet Delirium Duration
  • Endark Effect

BST

  • Familiar Effect
  • Unleash Effect
  • Pet Accuracy Bonus
  • Charm Success Rate
  • Reward Effect
  • Pet Attack Speed Bonus
  • Ready Effect
  • Spur Effect
  • Run Wild Duration
  • Pet Emnity Bonus

BRD

  • Soul Voice Effect
  • Clarion Call Effect
  • Minne Effect
  • Minuet Effect
  • Pianissimo Effect
  • Song Accuracy Bonus
  • Tenuto Effect
  • Lullaby Duration
  • Marcato Effect
  • Requiem Effect

RNG

  • Eagle Eye Shot Effect
  • Overkill Effect
  • Sharpshot Effect
  • Camouflage Effect
  • Barrage Effect
  • Shadowbind Duration
  • Velocity Shot Effect
  • Double Shot Effect
  • Decoy Shot Effect
  • Unlimited Shot Effect

SAM

  • Meikyo Shisui Effect
  • Yaegasumi Effect
  • Warding Circle Effect
  • Hasso Effect
  • Meditate Effect
  • Seigan Effect
  • Konzen-Ittai Effect
  • Hamanoha Duration
  • Hagakure Effect
  • Zanshin Effect

NIN

  • Mijin Gaukure Effect
  • Mikage Effect
  • Yonin Effect
  • Inin Effect
  • Ninjitsu Accuracy Bonus
  • Ninjitsu Cast Time Bonus
  • Futae Effect
  • Elemental Ninjitsu Effect
  • Issekigan Effect
  • Tactical Parry Effect

DRG

  • Sprit Surge Effect
  • Fly High Effect
  • Ancient Circle Effect
  • Jump Effect
  • Spirit Link Effect
  • Wyvern Max HP Bonus
  • Dragon Breaker Duration
  • Wyvern Breath Effect
  • High Jump Effect
  • Wyvern Attribute Bonus

SMN

  • Astral Flow Effect
  • Astral Conduit Effect
  • Summon Accuracy Bonus
  • Summon Magic Accuracy Bonus
  • Elemental Siphon Effect
  • Summon Physical Attack Bonus
  • Mana Cede Effect
  • Avatars Favor Effect
  • Summon Magic Damage Bonus
  • Blood Pact Damage Bonus

BLU

  • Azure Lore Effect
  • Unbridled Wisdom Effect
  • Blue Magic Point Bonus
  • Burst Affinity Bonus
  • Chain Affinity Effect
  • Blue Physical Add. Effect Bonus
  • Unbridled Learning Effect
  • Unbridled Learning Effect II
  • Efflux Effect
  • Blue Magic Accuracy Bonus

COR

  • Wild Card Effect
  • Cutting Cards Effect
  • Phantom Roll Effect
  • Bust Evasion
  • Quick Draw Effect
  • Ammo Consumption
  • Random Deal Effect
  • Ranged Accuracy Bonus
  • Triple Shot Effect
  • Optimal Range Bonus

PUP

  • Overdrive Effect
  • Heady Artifice Effect
  • Automation HP MP Bonus
  • Activate Effect
  • Repair Effect
  • Deus Ex Automata Recast
  • Tactical Switch Bonus
  • Cooldown Effect
  • Deactivate Effect
  • Martial Arts Effect

DNC

  • Trance Effect
  • Grand Pas Effect
  • Step Duration
  • Samba Duration
  • Waltz Potency Bonus
  • Jig Duration
  • Flourish I Effect
  • Flourish II Effect
  • Flourish III Effect
  • Contradance Effect

SCH

  • Tabula Rasa Effect
  • Caper Emmissarius Effect
  • Light Arts Effect
  • Dark Arts Effect
  • Strategem Effect I
  • Strategem Effect II
  • Strategem Effect III
  • Strategem Effect IV
  • Modus Veritas Effect
  • Sublimation Effect

GEO

  • Skipping. Not Implemented.

RUN

See #1340

Job Gifts

Shared

  • Capacity Points Bonus
  • Superior Levels
  • Master Stars
  • /jobmasterdisp on/off
  • Master Bonus (1hr reduction)
  • Master Titles
  • General Stat Increases

WAR

  • No new traits/spells/abilities

MNK

  • COUNTER_DAMAGE

WHM

  • REGEN_BONUS
  • New Spells

BLM

  • New Spells

RDM

  • New Spells

THF

  • MAX_TREASURE_HUNTER
  • TREASURE_HUNTER_PROC

PLD

  • PROTECT_EFFECT
  • REPRISAL_EFFECT
  • New Spells

DRK

  • DREAD_SPIKES_EFFECT (%Health Increase)
  • New Spells

BST

  • SIC_READY_RECAST
  • PET_ATK_DEF
  • PET_ACC_EVA
  • PET_TP_BONUS

BRD

  • New Spells

RNG

  • VELOCITY_SHOT_DELAY
  • TRUE_SHOT_DMG (also COR)
  • DEAD_AIM_CRIT_DMG
  • BARRAGE_BONUS

SAM

  • HASSO_SEIGAN_ZANSHIN_CAP
  • THIRD_EYE_EVASIONS

NIN

  • NINJUTSU_DURATION (Placeholder, not utilized)
  • Utsusemi: San (100 JP Gift)

DRG

  • WYVERN_ATTR_DBLATK
  • WYVERN_BREATH_DELAY

SMN

  • No new traits/spells/abilities

BLU

  • BLUE_TRAIT_BONUS
  • BLUE_MAGIC_ATTR_POTENCY

COR

  • QUICK_DRAW_DELAY

PUP

  • AUTO_ELEM_CAPACITY

DNC

  • MAX_FINISHING_MOVE_BONUS (Placeholder exists, needs refactoring)

SCH

  • STRATAGEM_RECAST
  • New spells

GEO

-- Skipping. Not Implemented.

  • HANDBELL
  • GEOMANCY

RUN

See #1340

All Pet Jobs

  • PET_ATK_DEF (not for BST)
  • PET_ACC_EVA (not for BST)
  • PET_MAB_MDB
  • PET_MACC_MEVA

[dbtool] Import function now swallows errors

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: all of 'em

Additional Information (Steps to reproduce/Expected behavior) :

def import_file(file):
    print('Importing ' + file + '...')
    result = subprocess.run([
        '{}mysql{}'.format(mysql_bin, exe),
        '-h', host,
        '-P', str(port),
        '-u', login,
        '-p{}'.format(password),
        database,
        '-e', 'SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0; source ../sql/{}; SET unique_checks=1; SET foreign_key_checks=1; COMMIT;'.format(file)],
        capture_output=True, text=True)

    for line in result.stderr.splitlines():
        # Safe to ignore this warning
        if 'Using a password on the command line interface can be insecure' not in line:
            print(Fore.RED + line)

After the InnoDB migration the single import command was expanded (by me!) to add multiple steps. This now means that any errors in import (including that one that we ignore) no longer make it out into python.

This hides broken imports

Throwing darts shows the singing animation

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
Using ranged attack while having darts in the ammo slot shows the singing animation.
I tried using a Long Boomerang (to check another throwing weapon) which shows the correct animation.

Job Point Star,Other Player can‘t show

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Additional Information (Steps to reproduce/Expected behavior) :
image

Cannot currently manipulate ROAMFLAGs via scripting

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: Any

Additional Information (Steps to reproduce/Expected behavior) :
There are some instances where to better emulate retail behavior, the ability to manipulate ROAMFLAGs via scripting would be beneficial. It appears we currently lack this ability. This came up as a sidebar in some talks in regards to improving pathing in some PMs. Was asked to drop an issue as a sort of TODO.

A few quick examples where this may be necessary:
The Mothercrystals BCNM fights for CoP, when a player uses Terroranima https://ffxiclopedia.fandom.com/wiki/The_Mothercrystals
Race Runner from Like the Wind https://ffxiclopedia.fandom.com/wiki/Like_the_Wind

A simple set/delete or add/remove function would probably suffice, I'd imagine.

ROAMFLAG index is located over here, which helps illuminate some of the things we could do with such a function.

enum ROAMFLAG : uint16

[chore] Audit packet sizes

I was looking through the campaign map packet and some of the surrounding packets and noticed their sizes don't match with recent caps. Some packets (entity update packet and action packet) will increase their size depending on what information they're sending; those could do with some love too, but thats out of scope for this issue.

I wrote a small python script to take the incoming.log from packetviewer and print out a list of all the packet types inside, and all the listed sizes (in hex):

import re, mmap
store = {}
with open('incoming.log', 'r+') as f:
    data = mmap.mmap(f.fileno(), 0).read().decode("utf-8")
    itr = re.finditer(r'(?<=(      0 \| ))[A-F0-9]{2} [A-F0-9]{2}', data)
    for entry in itr:
        key, value = entry[0].split(' ')
        try:
            store[key].add(value)
        except KeyError:
            store[key] = {value}

for pair in store.items():
    print(pair)

Output from a recent Ambu cap I did (Ambuscade - V1 V1 - April 2021 - Meebles (fixed messages)):

('0E', {'20', '1C', '2C', '28', '1E', '24', '2A', '22'})
('67', {'0C', '14'})
('F6', {'04'})
('F4', {'0E'})
('DF', {'12'})
('37', {'30'})
('52', {'04'})
('28', {'20', '3A', '1C', '1A', '26', '32', '14', '30', '34', '2C', '1E', '28', '2E', '18', '24', '16', '2A'})
('58', {'08'})
('29', {'0E'})
('50', {'04'})
('51', {'0C'})
('17', {'45'})
('20', {'16'})
('1F', {'08'})
('1D', {'04'})
('AC', {'72'})
('61', {'32'})
('2D', {'0E'})
('11', {'83'})
('D2', {'1E'})
('4F', {'04'})
('D3', {'1E'})
('1E', {'06'})
('63', {'6E', '08', '14', '5A', '64', '4E', '46', '24'})
('38', {'0A'})
('55', {'44'})
('10', {'0B'})
('1B', {'34'})
('44', {'50'})
('0B', {'0E'})
('1C', {'1A'})
('0A', {'82'})
('08', {'1A'})
('B4', {'0C'})
('E2', {'1A', '18'})
('5E', {'5A'})
('71', {'66'})
('62', {'80'})
('19', {'83'})
('56', {'14'})
('12', {'45'})
('AA', {'42'})
('E0', {'04'})
('09', {'08'})
('DE', {'04'})
('8C', {'80', '4E', '30'})
('CA', {'4A'})
('41', {'7C'})
('AB', {'0C'})
('AE', {'06'})
('AD', {'42'})
('0D', {'34', '32', '2E', '30'})
('8D', {'82'})
('2A', {'10'})
('34', {'1A'})
('5C', {'12'})
('5B', {'0E'})
('27', {'38'})
('75', {'56'})
('4B', {'0A'})
('4C', {'1E'})
('C8', {'7C'})
('32', {'0A'})
  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Additional Information (Steps to reproduce/Expected behavior) :

[packets] On zone, there is a chance players by you will not load

From #157

When you zone, there is a chance players by you will not load and remain invisible until you rezone/run far enough away to "reload" them.

I haven't dug into this so take my theorycrafting with a pinch of salt: it seems to me that we're rushing through all of the setup during SmallPacket0x00A, and the spawn packets will come on the next tick after a char is inserted into the zone.
Shouldn't we be doing the "tell everyone I'm here" update as a response to their first update packet once they're in the zone?

EDIT: The client doesn't do any sort of ACK to let the server know that entity-x has spawned and is visible to nearby players, so should we be using their first update request after they've zoned for that?

Old issues:
topaz-next/topaz#805
DarkstarProject/darkstar#2202

Relevant code:

/************************************************************************
* *
* Log Into Zone *
* *
* Update session key and client port between zone transitions. *
* *
************************************************************************/
void SmallPacket0x00A(map_session_data_t* const PSession, CCharEntity* const PChar, CBasicPacket data)

zoneutils::GetZone(destination)->IncreaseZoneCounter(PChar);

server/src/map/zone.cpp

Lines 626 to 649 in 094ec9f

void CZone::IncreaseZoneCounter(CCharEntity* PChar)
{
TracyZoneScoped;
XI_DEBUG_BREAK_IF(PChar == nullptr);
XI_DEBUG_BREAK_IF(PChar->loc.zone != nullptr);
XI_DEBUG_BREAK_IF(PChar->PTreasurePool != nullptr);
PChar->targid = m_zoneEntities->GetNewTargID();
if (PChar->targid >= 0x700)
{
ShowError(CL_RED "CZone::InsertChar : targid is high (03hX)\n" CL_RESET, PChar->targid);
return;
}
m_zoneEntities->InsertPC(PChar);
if (!ZoneTimer && !m_zoneEntities->CharListEmpty())
{
createZoneTimer();
}
CharZoneIn(PChar);
}

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: All branches

Additional Information (Steps to reproduce/Expected behavior) :

[build] CI Style checks mostly useless

For as long as I've been around the project, the CI checks for style (C++, Lua and SQL) have always been pretty much useless.
https://github.com/LandSandBoat/server/blob/base/.github/workflows/build.yml#L89-L122

Wanted:

  • A commandline Lua tool that can be run on Windows and Linux that can enforce our chosen Lua styling and maybe enforce/suggest useful Lua idioms
  • Select a ruleset for clang-tidy to complain about and fail builds on. NOTE: clang-tidy auto-fix is dangerous and I shot us in our collective feet when I ran it in the past. Do not use!
  • Skimming SQL files and detecting bad comments (--A vs -- A). This is kind of redundant, the runtime checks should catch this, but it couldn't hurt.
  • Other metrics we might be interested in: cyclomatic complexity, commit message styling, runtime performance checks (hard to use in crappy CI machines)
  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: All branches

Additional Information (Steps to reproduce/Expected behavior) :

abyssea.lua ‘s bug

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Additional Information (Steps to reproduce/Expected behavior) :
in xi.abyssea.qmOnTrade = function(player, npc, trade) this code:

if #reqTrade == 0 or trade:getItemCount() ~= #reqTrade then
end

#reqTrade is always 8,It's not real. It's length ,so i think should check reqTrade'size
like this:

**local tablesize = 0 for k, v in pairs(reqTrade) do -- v is itemID if(v ~= 0)then tablesize = tablesize + 1 end end**
tablesize is real reqTrade'size

and then validate traded items should avoid judgment of item 0
for k, v in pairs(reqTrade) do **if v == 0 then break end** if not trade:hasItemQty(v, 1) then return false end end
when trade in keyitem to spawnmob should do this
-- validate kis local validKis = true for k, v in pairs(kis) do **if v == 0 then break end** if not player:hasKeyItem(v) then validKis = false break end end

Murrain Chigoe should be targetable by default

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Additional Information (Steps to reproduce/Expected behavior) :

Mob does not follow standard mixins, and is currently not targetable.

Shield, parry and guard skill up even when not facing the mob that is attacking

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
Shield should only skill up while facing the enemy (weapon drawn or not).
Guard and parry should only skill up while facing the enemy while having weapon drawn.

Although a few years since last updated (according to history dates), the following guide states this:
https://ffxiclopedia.fandom.com/wiki/Skill_Ups:_A_Guide_by_Kyrial

[chore] Audit packet construction

While investigating my last issue, I noticed there are two different ways of assigning packet type and size.
We should be using this way, due to id actually being 9 bits.
We should also be assigning larger-than-8-bit numbers to really hammer this point home.
Perhaps also logging if we try to assign something too big to size.
Part of this could also be making the raw id and size fields be inaccessible etc.

    // Set the first 9 bits to the ID. The highest bit overflows into the second byte.
    void id(unsigned int new_id)
    {
        ref<uint16>(0) &= ~0x1FF;
        ref<uint16>(0) |= new_id & 0x1FF;
    }

    // The length "byte" is actually just the highest 7 bits.
    // Need to preserve the lowest bit for the ID.
    void length(std::size_t new_size)
    {
        ref<uint8>(1) &= 1;
        ref<uint8>(1) |= ((new_size + 3) & ~3) / 2;
    }
  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Additional Information (Steps to reproduce/Expected behavior) :

Bastok Rank7-1 Cid Bug

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Additional Information (Steps to reproduce/Expected behavior) :
image

Some missing SC on skills properties

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: freedom

Additional Information (Steps to reproduce/Expected behavior) :
As was recently mentioned in the Discord channel, some skillchain properties appear to be missing from certain skills.

The linked file may be useful (from the skillchains addon).
https://github.com/Ivaar/Ashita-addons/blob/master/Skillchains/skills.lua

npcUtil Trade functions do not account for future space available

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: EDITME

Additional Information (Steps to reproduce/Expected behavior) :

If player inventory is full on trade, a failure will occur if an item is awarded on trade complete.

Example:
Inventory Full, required trade is 5 items, onTrade complete awards one item.

Trade 5, and after trade there should be sufficient space to receive one, but failure is still returned.

Common DRG mobs aren't summoning their pets

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: base

Additional Information (Steps to reproduce/Expected behavior) :

They don't summon their pets on spawn, while roaming, or while in combat.

This only seems to affect DRG mobs. BST, SMN, and PUP mobs all have their pets following them around.

Examples:

16990386 Mamool_Ja_Stabler (BST) has its Mamool_Jas_Raptor
16990396 Mamool_Ja_Pikeman (DRG) does not have its Mamool_Jas_Wyvern

16912405 Ulaern (BST) has its Aerns_Xzomit
16912418 Ulaern (SMN) has its Aerns_Elemental
16912406 Ulaern (DRG) does not have its Aerns_Wynav

Pets are correctly entered in mob_pets.sql for these example mobs.

Puppetmaster automaton is not really working

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: FREEDOM

When using any maneuver for said attachment it just doesn't work or do anything.

Ranged Automaton does ranged damage for 0 damage.

EDIT: Edited to clarify better of what's happening!

Carpenters' Landing Barge does not function correctly

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • I have searched existing issues to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • I have read the Contributing Guide
  • I have specified what branch this happens on branch: Any

Additional Information (Steps to reproduce/Expected behavior) :

The Carpenters' Landing Barge that takes players to the Phanauet Channel zone appears to be missing its instructions, so it's likely lost somewhere despite Chauie's or Felourie's insistence that it's now arriving. In fact, the random dock NPCs may be hollow shells needing work as well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.