Version 1.6 represents our latest stable protocol 13.10 release.
What's Changed
- fix Items::getItemIdByName by @yamaken93 in #3588
- Reduce broadcast range for container updates by @Erza in #3664
- Optimize IOLoginData::saveItems by reducing number of allocations by @marksamman in #3176
- new method: itemType:getRuneSpellName() by @Zbizu in #3666
- Server save script improvements by @omarcopires in #3192
- Remove 'else' from last return by @ramon-bernardo in #3678
- Create ring attribute for monster spells by @soul4soul in #3691
- RevScriptSys Monster enhanced attack conditions by @soul4soul in #3499
- Use client viewport in hardcode-range by @ramon-bernardo in #3706
- Fix white and double spaces by @ramon-bernardo in #3711
- Fix copyright year by @ramon-bernardo in #3710
- Fix level and condition check for yell by @ramon-bernardo in #3690
- Sync monster can see with client viewport by @ramon-bernardo in #3708
- Sync creature say with client viewport by @ramon-bernardo in #3709
- Add missing separator in deathlist talkaction by @ramon-bernardo in #3715
- Add Wand combat origin type by @EPuncker in #3683
- added isKey itemtype by @emil92b in #3679
- Add minimum level to send private by @ramon-bernardo in #3689
- critical problem in revscriptsys globalevent think by @lyuz1n in #3674
- Move minimum skill level by @ramon-bernardo in #3721
- Fix summons always spawning by @ramon-bernardo in #3724
- Fix reload log order by @ramon-bernardo in #3728
- Lock vcpkg & cmake workflow actions at commits by @marmichalski in #3743
- add notepad++ backups to gitignore by @Zbizu in #3682
- Replace boost::adaptors::reverse with std::vector::reverse by @ramon-bernardo in #3738
- Send distance effect to spectators on other floors by @ramon-bernardo in #3723
- Move player task-delay by @ramon-bernardo in #3717
- Show atk and def for dist weapons without ammo by @ramon-bernardo in #3751
- gm access doors by @emil92b in #3716
- added fluid enums by @emil92b in #3726
- fix potential crash by @Diego-OT in #3732
- Use TFS code style on comparison and boolean check by @ramon-bernardo in #3725
- Improve Monster::getDanceStep cache by @ramon-bernardo in #3733
- Improve Npc::getRandomStep cache by @ramon-bernardo in #3734
- Move party exp-share range by @ramon-bernardo in #3720
- Fix memory leak on luaPlayerShowTextDialog - double ref by @ramon-bernardo in #3752
- fixed levitate and parcel walking accuracy by @Zbizu in #3681
- Minor map and loot fixes by @BahamutxD in #3764
- Use min skill level on Vocation::getReqSkillTries by @ramon-bernardo in #3730
- updating login message time format by @Zbizu in #3769
- fix disappearing backpack during trade by @Zbizu in #3750
- Fix appveyor builds by @Znote in #3777
- Fix invalid NPC items on trade by @lucasgrizante in #3782
- #3768 - Fixing use of item on the house door by @ArturKnopik in #3786
- Update modules.lua to use the 'it' variable instead by @EPuncker in #3792
- Added/Removed spaces where needed by @EPuncker in #3796
- Remove trailing whitespace by @omarcopires in #3800
- Change default value to NULL for conditions by @nekiro in #3799
- More Readable EventCallback Lib by @MillhioreBT in #3697
- Bumped engine version to 1.5 by @EPuncker in #3749
- Reset idle time on reconnect by @nekiro in #3805
- Don't allow ammo to be dressed in weapon slot by @Zbizu in #3806
- The equivalent of #3609 but for the onItemMoved event by @MillhioreBT in #3804
- Protocol 12.72 update by @EPuncker in #3797
- [12.00] Adding support for colored loot by @omarcopires in #3771
- [12.30] Increase the carpet pile limit by @omarcopires in #3775
- [12.70] Premium players can store 15,000 in depot by @omarcopires in #3774
- [12.20] The cooldown for shooting Paralyse Runes was changed from 2 to 6 seconds by @omarcopires in #3773
- [12.31] The duration of the Stamina bonus hours was increased from 2 to 3 hours by @omarcopires in #3772
- [12.20] The maximum Market fee has been raised from 1,000 to 100,000 gold. by @omarcopires in #3770
- Show OTB version on loading by @EPuncker in #3808
- Added beginner-friendly methods for ItemType by @Zbizu in #3807
- Set default values on initialization instead of constructor body by @ranisalt in #3776
- Add config for length player name by @ramon-bernardo in #3760
- Fixed wrong const at isBoots() by @EPuncker in #3814
- Possibility of defining currencies by @MillhioreBT in #3699
- new methods: itemType:isTwoHanded(), itemType:isMissile() by @Zbizu in #3813
- Fix condition update stats by @ArturKnopik in #3826
- Send world light level only when it has changed by @marmichalski in #3832
- Fix hungry condition by @omarcopires in #3827
- Fix parameters count check in luaPlayerAddItem by @marmichalski in #3831
- Use nextUseStaminaTime only on gain experience by @ramon-bernardo in #3779
- Remove dead code (loadAccount) by @nekiro in #3841
- Update to game protocol 12.81 by @omarcopires in #3840
- Fix the client crash when you open the missions window by @MillhioreBT in #3844
- feat: special magic level by @ArturKnopik in #3843
- Miscellaneous datapack related changes/additions by @EPuncker in #3810
- Update clay_lump.lua by @EPuncker in #3802
- Updated Visual Studio project file by @EPuncker in #3794
- send cooldown to action bars when using items by @EPuncker in #3823
- Fixed capacity display for GMs by @EPuncker in #3849
- Added missing ammoTypeNames by @EPuncker in #3741
- [11.80] Added new monster 'ink' race and fluid type by @EPuncker in #3795
- Updated message types to match client settings by @EPuncker in #3839
- Add missing message to warn the player that he can't accept his own offer by @Diego-OT in #3702
- New lua functions for houses by @ramon-bernardo in #3753
- Adding haze mount by @omarcopires in #3846
- Adding addon items from the Poltergeist Outfit by @omarcopires in #3847
- feature: kill tracking by @ArturKnopik in #3860
- Make two-factor auth optional by @omarcopires in #3835
- usableOutfitItems optimizations by @Znote in #3862
- bugfix and optimizations: kill tracking by @Znote in #3861
- feature: itemType:isBed() by @Zbizu in #3867
- Added missing food to actions.xml by @EPuncker in #3852
- Fixed ultimate spirit potion values by @EPuncker in #3853
- Fix ProtocolGame::sendModalWindow by @EPuncker in #3854
- Fix int_fast16_t overflow by @ramon-bernardo in #3740
- Golden Outfit features by @omarcopires in #3820
- Added Game.getOutfits(playerSex) and Game.getMounts() by @EPuncker in #3868
- Quest Tracker feature by @MillhioreBT in #3845
- Feat: Weapons of destruction by @omarcopires in #3873
- moved Player:getTotalMoney() to more accessible place by @omarcopires in #3875
- Fix market information by @omarcopires in #3877
- Add summon max count in MonsterType:addSummon by @marmichalski in #3883
- Fix respawn taking twice as long as expected by @marmichalski in #3886
- Added 12.85 protocol support by @EPuncker in #3890
- Fixing mistake when removing charm item by @andremiles1 in #3891
- Fixing The Pale Count's looktype and corpse ID by @andremiles1 in #3894
- Fixed double declared variable at bank NPC by @Diego-OT in #3897
- Golden Outfit Quest: writing correction by @omarcopires in #3899
- Adding new backpacks and creature items by @omarcopires in #3900
- fix 'worlds' spelling typo by @amatria in #3902
- Fixed party loot message type by @EPuncker in #3870
- Small update to channel requirements by @EPuncker in #3859
- Move notify depot-box range by @ramon-bernardo in #3722
- Adding new depot box by @omarcopires in #3906
- Skip search for C compiler by @ranisalt in #3907
- Added Player.addAllMounts and Player.addAllAddons by @EPuncker in #3893
- Magicwall shouldn't disappear on forced step-in by @omarcopires in #3836
- Fix incorrect argument to Player:onItemMoved event by @Erza in #3913
- Fix containers not decaying in houses after server startup by @Erza in #3911
- FIXED: Item::equals issue with custom attributes by @MillhioreBT in #3803
- Fix unused function warning on Linux by @Erza in #3908
- Fixes to MoveItem & OnItemMoved events by @Erza in #3916
- Fix OnItemMoved event when the last item of a stackable stack is move… by @Erza in #3918
- Fix coding style in Player.updateKillTracker by @nekiro in #3919
- Adding features from #998 by @nekiro in #2807
- prevent ATTR conflict with OTBM by @Zbizu in #3921
- Fix whereever slot bugs by @nekiro in #3923
- Fix certain scenarios where the house protection would fail to apply by @Erza in #3904
- Add Player:getIdleTime and Player:isNearDepotBox Lua functions by @Erza in #3912
- Actions cleanup by @DSpeichert in #3915
- Dont hardcode size of 3 for depot locker by @nekiro in #3924
- Say without echo in onHear event by @MillhioreBT in #3031
- Additional checks for unsigned integers to avoid underflow and overflow by @nekiro in #3197
- Fixed bug in #3197 by @DSpeichert in #3926
- Check if item has been removed before firing OnItemMoved events by @Erza in #3925
- Ability to customize Appearance Effect for Game.createMonster, Game.createNpc & Player.setGhostMode by @dbjorkholm in #3914
- ci: Run
apt-get update
before installing packages by @kornholi in #3929 - fix update magic level percentage after spending mana by @ArturKnopik in #3930
- ci: fix multiple commands by @DSpeichert in #3932
- Fix missing green skull on current character by @EPuncker in #3931
- more detailed shared exp messages by @EPuncker in #3934
- fix c++ exception by @nekiro in #3928
- Fix trade stacking items by @nekiro in #3248
- Moved market description to Lua by @EPuncker in #3863
- build: Update alpine to 3.15 by @kornholi in #3937
- onLookInMarket update by @EPuncker in #3939
- More party fixes by @EPuncker in #3938
- Update default_onDropLoot.lua by @EPuncker in #3941
- Fix magic level update after wearing items by @ArturKnopik in #3945
- ci: exclude some build types to cut CI time by @DSpeichert in #3943
- Fix crash issue by @nekiro in #3948
- rsa: tolerate whitespaces better by @DSpeichert in #3940
- Merge ioguild into guild by @ranisalt in #3949
- Added missing getStatName function by @EPuncker in #3953
- Add Player:onInventoryUpdate(item, slot, equip) by @EPuncker in #3944
- Fix compiler error on MSVC with c++latest by @EPuncker in #3954
- EventCallback Lib a more modern and easy way to configure by @MillhioreBT in #3834
- Slightly update to event_callbacks.lua style by @EPuncker in #3960
- Fix summon memory leak by @ramon-bernardo in #3736
- Added Podium feature by @EPuncker in #3858
- A new way to manage player storages by @MillhioreBT in #3956
- Update missing style change on onLookInMarket by @EPuncker in #3961
- Add AUTHORS file and remade source header by @EPuncker in #3969
- AUTHORS pt 2 by @EPuncker in #3970
- Add missing 'self' parameter to Player:onItemMoved by @EPuncker in #3972
- Add player check to pitfall holes by @EPuncker in #3968
- Fix #3965 by @EPuncker in #3971
- Use modern bool comparator on lua by @ramon-bernardo in #3962
- Updated forgotten map by @EPuncker in #3978
- Monster Storages from Lua by @MillhioreBT in #3973
- Removed draw well from teleport action by @EPuncker in #3966
- Fix expression parenthesizing to avoid confusion by @ranisalt in #3991
- Replace LuaVariant with std::variant by @ranisalt in #3981
- Drop boost::filesystem in favor of std::filesystem by @ranisalt in #3990
- Fix misleading indentation and add brackets by @ranisalt in #3992
- Normalize include guards to FS__H by @ranisalt in #3993
- Use single list as waiting queue by @ranisalt in #3712
- Replace slower boost::lexical_cast with stdlib conversions by @ranisalt in #3997
- add additional range check when pushing creature by @Fridza in #3989
- Exp tracker by @ArturKnopik in #3999
- Removed unnecessary config by @EPuncker in #4003
- No need to use pugi::cast let's just use as_string by @MillhioreBT in #4004
- Fixed variable type in npc.cpp by @EPuncker in #3996
- fully moved item desc to Lua by @EPuncker in #3869
- Fix #3951 Bank NPC transfer errors by @Znote in #3955
- Updated to 12.86 by @EPuncker in #3986
- Improve Npc:setSpeechBubble with param/bubble checks by @ramon-bernardo in #4009
- Fix Player initialization order by @ranisalt in #4020
- Add missing method in MonsterSpell for outfits by @MillhioreBT in #4014
- Replace usages of str*cmp with C++ functions by @ranisalt in #4018
- Refactor getHoldingPlayer method by @nekiro in #4015
- Update AUTHORS by @EPuncker in #3994
- Fix issue with item decay by @MillhioreBT in #4013
- Cleanup & organize includes and PCH by @ranisalt in #4019
- Replace std::bind with lambdas by @ranisalt in #4017
- Move all system headers to PCH by @ranisalt in #4022
- Supply tracker by @ArturKnopik in #4000
- Add root condition by @omarcopires in #4023
- fix for first NPC detection in Lua interface by @Zbizu in #4033
- Use existing boost algorithms for strings by @ranisalt in #4032
- enums: fixed conversion warning by @DSpeichert in #4025
- Fix spaces/tabulation from code on data folder by @ramon-bernardo in #4024
- Remove useless item transform constructors by @Kamenuvol in #3669
- Fix incosistency with lua reflect by @nekiro in #4037
- Simplify addDamagePoints code by @nekiro in #4038
- Remove custom boost/reflect items from market search by @Zbizu in #4039
- push boost and reflect to ItemType:getAbilities() by @Zbizu in #4040
- fix console warning for boost/reflect by @Zbizu in #4041
- bugfix: text color in Windows cmd/powershell by @Zbizu in #4044
- Cherry-pick: updated vocation clientId by @omarcopires in #4046
- Ignore potions checks if group has access by @ramon-bernardo in #4049
- Use built-in traceback lua method by @nekiro in #4051
- Fix addEvent scheduler values being passed by reference not value by @nekiro in #4053
- Happy 15th anniversary! by @Zbizu in #4050
- Remove else after returning branch by @ramon-bernardo in #4048
- Re-add missing playerAccountType variable to help.lua by @EPuncker in #4059
- Added new checks to disintegrate rune by @EPuncker in #4011
- Removed MOTD by @EPuncker in #4057
- monster loot charges by @emil92b in #4067
- player:sendSupplyUsed - return true if successful by @Zbizu in #4066
- Revert to explicit comparation of nil on eventcallback system by @ramon-bernardo in #4071
- Quarter-hourly update to client clock by @EPuncker in #4069
- npc:setSpeechBubble - return true if successful by @ramon-bernardo in #4072
- correcting misspelled comment for weapon:wieldUnproperly by @Zbizu in #4073
- Use combat_ptr in combat:getParameter by @nekiro in #4074
- New Depot Boxes by @nekiro in #3766
- Add clang-format to cmake and workflows by @ranisalt in #4029
- Reformat according to .clang-format by @DSpeichert in #4082
- Fix checksum mode for new Qt client ids by @ranisalt in #4088
- Code cleanup in protocolgame by @omarcopires in #4094
- Changing filename to underscore by @omarcopires in #4093
- Spells update by @EPuncker in #4095
- Tie NEEDEXCHANGE to classicEquipmentSlots config by @EPuncker in #4097
- Add monsters and bosses from 12.20 update by @omarcopires in #4096
- Adding cobra flask usability by @omarcopires in #4091
- Moved special doors registration to Lua by @EPuncker in #4100
- Removed unused return values by @EPuncker in #4106
- A few Lua fixes by @EPuncker in #4111
- Add XML parsing bindings for Lua by @ranisalt in #4108
- Add Quivers by @EPuncker in #4105
- Add isStoreItem() check to disintegrate rune by @EPuncker in #4092
- Renamed a few files to keep a default naming style by @EPuncker in #4099
- Registered missing weapons to destroy action by @EPuncker in #4098
- door id correction by @torresmon in #4117
- Add monsters and bosses from 11.02 update by @omarcopires in #4112
- Update table size of ItemTypeGetAbilities by @EPuncker in #4120
- Damage tracker by @ArturKnopik in #4034
- small monster fixes by @torresmon in #4114
- Removing trailing spaces by @omarcopires in #4129
- updated items by @EPuncker in #4016
- Use explicit bool values instead of int in items.xml by @ramon-bernardo in #4130
- Fixing lowercase letters in monster names by @omarcopires in #4132
- Fix: spacing by @torresmon in #4131
- Add all doors and fix system by @torresmon in #4104
- Updating: demonic blood item name by @torresmon in #4134
- General monsters updates by @EPuncker in #3540
- Added two missing magic effects by @EPuncker in #4137
- Fixing plasma rings and necklaces by @torresmon in #4140
- Removed duplicated door ids at items.xml by @EPuncker in #4142
- Updated to 12.87 and fixed items.otb attributes by @EPuncker in #4154
- fix an issue when setting a boolean type flag on a monster by @danyelvarejao in #4155
- Add missing monsters by @omarcopires in #4153
- Fix: Dawnfire Asura by @omarcopires in #4159
- Replaced hardcoded player vocation id by @omarcopires in #4151
- fix error on look (only in bows) by @danyelvarejao in #4166
- stupid IF, loginStr never is empty by @lyuz1n in #4165
- link to mehah's otclient by @amatria in #4163
- Randomize Mount (12.80) by @reyaleman in #4169
- randomize mount fix by @reyaleman in #4171
- Fix to Party:onLeave() by @Jacqen in #4168
- SpecialContainersAvailable feature (11.8) by @reyaleman in #4172
- Stamina regeneration times configurable by @Piotr3k1447 in #4170
- minor fixes to outfits.xml by @BahamutxD in #4173
- add all heart/soul/mind armors to movements.xml by @BahamutxD in #4174
- Fix monsters by @omarcopires in #4175
- Adds missing ZONE_NOLOGOUT in Tile:getZone by @ramon-bernardo in #4178
- Avoid sending none magic effect by @ramon-bernardo in #4177
- Fix: not being able to login with latest client due to incorrect max client version by @EPuncker in #4179
- Reset rent warnings upon successful house payment by @dcsee7 in #4185
- Fixed rare crash on clean map by @EPuncker in #4189
- Update party.cpp by @EPuncker in #4190
- fix variable scope in npc.lua by @Zbizu in #4187
- Possibility to cancel LookDescription by returning an empty string by @MillhioreBT in #4176
- functions Game.getNpcs() & Game.getMonsters() by @EvilHero90 in #4195
- Update alpine to 3.16.2 by @marmichalski in #4196
- IPv6 support by @ranisalt in #3952
- Update clang-format to reflect changes in recent version by @ranisalt in #4208
- prevent double call to equipFunction inside MoveEvent::fireEquip by @yamaken93 in #4214
- fix io.write not writing to console after logging a command by @Zbizu in #4209
- Refresh speed on vocation change. by @Tofame in #4215
- Logging code improvements by @Zbizu in #4218
- Fix formatting issue by @ranisalt in #4221
- Fix schema version by @omarcopires in #4227
- Fixed argument order on luaDoAreaCombat by @EPuncker in #4212
- Add creature isDead function by @ramon-bernardo in #4231
- Change vocation map to unordered_set and improve weapons.cpp code format by @ramon-bernardo in #4226
- Allow addTask to receive a task function as param by @ramon-bernardo in #4184
- Missing creature internal removed check by @ramon-bernardo in #4235
- Field pathfinding by @nekiro in #4229
- call onItemMove and Moved from Game:playerEquipItem by @MillhioreBT in #4238
- Handle ctrl+map click packet (GM teleport) by @MillhioreBT in #4239
- Move hangable check to move action by @nekiro in #4242
- Code style by @ramon-bernardo in #4245
- Replace virtual functions with static_cast by @ramon-bernardo in #4060
- Add getSpectators method to Npc by @ramon-bernardo in #4247
- Fix static_cast conversion by @ramon-bernardo in #4252
- Fix npc spectator method by @ramon-bernardo in #4256
- Refactor formatDate and formatDateShort by @nekiro in #4249
- weapon problems introduced in #4226 fixed. by @MillhioreBT in #4262
- Fixed a typo in depot tile by @omarcopires in #4266
- c-clang-format to all files that need by @MillhioreBT in #4267
- Update actions/checkout to v3 by @ranisalt in #4225
- [Fix] God players light by @omarcopires in #4271
- Fix bug in Map::placeCreature when using extended positions by @Mkalo in #4270
- Missing Achievement: Interior Decorator by @omarcopires in #4276
- Random item: Unrealized Dream by @omarcopires in #4272
- [Action] Correction in folder name by @omarcopires in #4273
- Fix login into field issue by @nekiro in #4285
- Add monsters and bosses from 11.40 update by @omarcopires in #4286
- Modal window helper by @MillhioreBT in #4223
- Adding all missing ramps by @omarcopires in #4291
- Fix: Price of NPC's items by @omarcopires in #4293
- Add monsters and bosses from 11.50 update by @omarcopires in #4289
- fix invalid argument in spell:group by @Zbizu in #4305
- Changing spaces to tabs by @omarcopires in #4307
- Add Player.addBankBalance function by @omarcopires in #4318
- Missing teleport ladder by @omarcopires in #4321
- Add missing HOUSE_DOOR_SHOW_PRICE into configKeys by @xmish in #4325
- Add getMonster function to Creature class by @omarcopires in #4322
- Player.isPromoted() by @xmish in #4324
- Add monsters and bosses from 11.80 update by @omarcopires in #4308
- Libs: warn user about duplicate storage value by @omarcopires in #4309
- Trigger blockHit for healing by @nekiro in #4284
- Cherry Pick: Monster overspawn by @omarcopires in #4328
- Cherry-pick: Make players ignore no-pvp fields damage by @omarcopires in #4329
- Fix code formatting by @omarcopires in #4330
- Change copyright year by @omarcopires in #4331
- Move doAddContainerItem to compat, improve container:addItem by @ranisalt in #4220
- correcting a typo by @Zbizu in #4336
- remove pagezero_size deprecation warning on macos version >=13.0 by @amatria in #4338
- Avoid extra copy in PropStream::readString() by @ranisalt in #4341
- Fix seeds script by @MillhioreBT in #4344
- Use string views to avoid copying strings by @ranisalt in #4079
- Fix reload global by @MillhioreBT in #4343
- Fix migrations versions by @omarcopires in #4346
- Support charges and bulk item creation by talkaction by @omarcopires in #4350
- Fix issue with position calculation in move function by @omarcopires in #4323
- A better check for getNumber/getBoolean with defaultRet by @MillhioreBT in #4348
- Fixes some spell bugs by @omarcopires in #4354
- Add unknown packet handling in Lua by @ranisalt in #4043
- Fix type for filename in load*XML functions by @ArturKnopik in #4357
- Moved "teleport click" to lua by @reyaleman in #4361
- Remove unused function Player::getHelpers by @ranisalt in #4367
- Move toggle mount to Lua by @ranisalt in #4364
- moved npc greet to lua by @reyaleman in #4368
- Remove 15th anniversary banner by @EPuncker in #4369
- Hide unknow packet warning by @omarcopires in #4362
- Update compat.lua by @EPuncker in #4118
- Remove usages of Game.convertIpToString and mark as deprecated by @ranisalt in #4283
- Reverting PR by @tornadia in #4264
- Addition of option to preview items for sale by @omarcopires in #4372
- Fix monster warnings by @omarcopires in #4373
- Add unit testing framework by @ranisalt in #4219
- Add parentheses around ‘&&’ within ‘||’ by @ranisalt in #4374
- Perform gameworld authentication using character ID by @ranisalt in #4366
- Set uninitialized item ID in market active offers by @ranisalt in #4375
- Updating werewolf helmet and necklace by @torresmon in #4141
- New function [sendCreatureSquare] by @moviebr in #4349
- [Feature] Breakable mana shield by @ArturKnopik in #3848
- Minor fixes related to Magic Shield by @omarcopires in #4381
- Add: Spell Keyword by @omarcopires in #4290
- Improve monsters turning to target behaviour by @omarcopires in #4363
- Optimization EventCallback by @MillhioreBT in #4237
- Revscript MonsterType Spell Fixes by @theshibbies in #3903
- added 3 party events by @reyaleman in #4326
- Optimized EventCallback for the new party events by @omarcopires in #4384
- Fix MatrixArea rotations and add tests by @ranisalt in #4378
- Fix bugs in mount system by @omarcopires in #4387
- Fix black square on healing spells by @ArturKnopik in #4393
- fix windows build after MatrixArea fix (commit a3e45c3) by @ArturKnopik in #4392
- Fixing: missing attributes on writeable/readable items by @torresmon in #4135
- Raise C++ standard to C++20 by @ranisalt in #4380
- Use CMake presets and vcpkg manifest in workflows by @ranisalt in #4376
- Fixed exp stages ignoring last stage by @EPuncker in #4351
- fix: NPC System Greetword+Keyword bug by @tornadia in #4398
- protocolOutfits Gamemaster name fixed by @MillhioreBT in #4400
- ModalWindow default buttons issue fixed. by @MillhioreBT in #4399
- Fix wrong case for Bragrumol's xml in monsters.xml by @gurka in #4403
- Bestiary in Lua by @MillhioreBT in #4402
- Update stamina regeneration according to update 12.31 by @omarcopires in #4404
- Quest moved to lua (Part 2) by @MillhioreBT in #4388
- Add missing methodName to onUpdateStorage event by @omarcopires in #4407
- Update default_onDropLoot.lua by @EPuncker in #4406
- Added all possible raceId to monsters by @MillhioreBT in #4410
- Remove duplicate entry from monsters.xml by @omarcopires in #4411
- Fix for Correct Functioning of Mount in Outfit Window by @MillhioreBT in #4413
- fix(npc): #4110 - remove useless params in some methods by @romulowspp in #4414
- Remove leftover quests C++ code by @ranisalt in #4419
- Trigger onInventoryUpdate/onEquip on login by @MillhioreBT in #4415
- fix: droptracker by @reyaleman in #4423
- Fix monster load with forceLoad by @MillhioreBT in #4424
- fix ProtocolOutfit const reference by @MillhioreBT in #4425
- Add missing tiles to drowning by @EPuncker in #4426
- fix: togglemount by @reyaleman in #4431
- Extract get killer method in Player:onDeath by @ranisalt in #4427
- Convert indentation to tabs by @omarcopires in #4432
- Update lua-syntax action to latest version by @EPuncker in #4437
- Move Position methods to Lua by @ranisalt in #4334
- Map converted to 12.87 protocol by @omarcopires in #4439
- Changed folder path to keep consistency by @omarcopires in #4438
- Cleanup GitHub workflows using CMake presets by @ranisalt in #4435
- Created lua-check.yml file by @shabbir23ah in #4440
- Update Dockerfile to Alpine 3.17 by @ranisalt in #4445
- Move player login/logout message to Lua by @ranisalt in #4441
- Update lua-check.yml with proper version by @EPuncker in #4446
- Fix preset name in Dockerfile by @ranisalt in #4447
- fix: login-logout by @reyaleman in #4448
- Fix missing Luarocks in actions by @ranisalt in #4449
- feature: in-game highscores by @reyaleman in #4421
- Feat: client exp display by @omarcopires in #4442
- feat: client stamina display by @omarcopires in #4454
- fix: Convert indentation to tabs on Lua scripts by @omarcopires in #4451
- Cyclopedia Character: Send Basic Info by @omarcopires in #4456
- Fix weapon charges not working by @EPuncker in #4471
- notify the client about NPC speechbubble update by @MillhioreBT in #4464
- better load_quests_xml.lua by @MillhioreBT in #4474
- Fix closing door by @MillhioreBT in #4468
- Fix default value in Game.getStorageValue by @omarcopires in #4473
- Cyclopedia Character: Send Achievements by @omarcopires in #4461
- Fix DeEquip for decay items by @MillhioreBT in #4455
- Cyclopedia Character: Send Combat Stats by @omarcopires in #4460
- feat: client take screenshot by @omarcopires in #4459
- Fix double initialization of Database class by @ArturKnopik in #4482
- Bestiary Info for each monster by @MillhioreBT in #4476
- Revert "fix Database double init (#4482)" by @ArturKnopik in #4484
- Reset idle timer by Lua by @ArturKnopik in #4477
- Update vcpkg in workflows and add builtin-baseline by @ranisalt in #4487
- Remove unused extern by @ranisalt in #4492
- Fix Memory Leak from Npc events by @MillhioreBT in #4483
- Remove unused include by @omarcopires in #4494
- Add extra & pedantic warnings and fix the code by @ranisalt in #4491
- Add player functions for account storage value manipulation by @omarcopires in #4488
- feat: client low level bonus display by @omarcopires in #4457
- Fix bestiary when summon is killed by @ArturKnopik in #4496
- Add storage values to creatures by @ranisalt in #4495
- Update onGainExperience event by @joseluis2g in #4504
- Separate onGainExperience logic into its own file by @MillhioreBT in #4505
- Actions cleanup by @DSpeichert in #4502
- Add more warnings to catch bugs by @ranisalt in #4509
- Remove .c_str() where string_view is expected by @ranisalt in #4508
- Load MySQL variables from environment by @ranisalt in #4518
- Possibility of tracking the text window by @MillhioreBT in #4444
- Fix damage tracker on mana shield by @ArturKnopik in #4525
- [Modal Window Helper] Return botton / choice by @MillhioreBT in #4529
- Bye Warning C4266 by @MillhioreBT in #4453
- Removed unnecessary null checks by @DSpeichert in #4532
- Configurable stack size by @ArturKnopik in #4528
- Support for hundredths after the decimal point by @ArturKnopik in #4524
- add: Player.onRotateItem event by @omarcopires in #4541
- Remove unused attribute targetTicks from Monster by @ranisalt in #4547
- Fix normal random skew towards mean by @ranisalt in #4539
- Creature.addSummon - Only notify if the master is a player by @MillhioreBT in #4550
- add Creature removeStorageValue by @MillhioreBT in #4552
- Move getDirection from tools to items.cpp by @ranisalt in #4553
- Fix normal_random behavior on negative parameters by @ranisalt in #4555
- Monster.getId in onSpawn event by @MillhioreBT in #4557
- Check and return in addChildLoot Method by @MillhioreBT in #4558
- Send 0/1 as value in quest completion check by @rookgaard in #4563
- Set writer and date in setItemText method by @rookgaard in #4562
- Replace hardcoded values with MAX_STACKPOS by @ramon-bernardo in #4565
- fix: MAX_STACKPOS type to resolve comparison warning by @omarcopires in #4570
- Effects support for summons by @reyaleman in #4146
- Micro optimization to Npcs by @MillhioreBT in #4564
- refactor: replace nil checks with not in conditions by @omarcopires in #4578
- Added Creature:onChangeZone event by @reyaleman in #4145
- Update vcpkg by @ranisalt in #4584
- Move world time and light to lua by @ramon-bernardo in #4583
- Update to game protocol 12.91 by @omarcopires in #4568
- feat: cyclopedia general stats and badges by @omarcopires in #4540
- add missing achievements by @omarcopires in #4593
- refactor: unrealized dream table and item use logic by @omarcopires in #4566
- New global event: OnSave by @ramon-bernardo in #4588
- Database transaction & row insert in lua by @ramon-bernardo in #4589
- Fix save event by @ramon-bernardo in #4595
- Add missing lua gc in DB Insert by @ramon-bernardo in #4596
- Improve IO ban information by @ramon-bernardo in #4544
- Enable unity build to speed up compilation by @ranisalt in #4545
- Move raid system to globalevents by @ranisalt in #1813
- fix: unresolved 'main' symbol and external linking errors by @omarcopires in #4598
- Adding missing mounts and outfits by @omarcopires in #4600
- feat: auto switch hotkey presets by @omarcopires in #4572
- fix: close parcel send thru mail system to other player by @omarcopires in #4538
- update to game protocol 13.10 by @omarcopires in #4591
- Fix: errors in the new raids system by @omarcopires in #4599
- add: missing screenshots by @omarcopires in #4574
- Fix: getWorldTime a nil value by @omarcopires in #4606
- Move account storage to lua by @ramon-bernardo in #4590
- Remove unused stages map from game by @ramon-bernardo in #4609
- Networkmessage methods by @ramon-bernardo in #4543
- fix 4612 by @ArturKnopik in #4613
- fix: update client on advance by @omarcopires in #4604
- refactor skill advancement event logic by @omarcopires in #4615
- New event Spell Check by @MillhioreBT in #4619
- Fix check vocations in Movements & Spells by @MillhioreBT in #4620
- Add an option to disable CMake Unity builds by @amatria in #4627
- Encode Latin-1 to UTF-8 and vice versa by @amatria in #4628
- Outfit(addons) & Mounts database changes by @EvilHero90 in #4197
- Remove PlayerAutoWalk dead code by @danilopucci in #4635
- Removed unnecessary check in setMonsterOutfit function by @EPuncker in #4633
- Remove
MYSQL_OPT_RECONNECT
deprecation warning by @amatria in #4626 - Obtain the master of summons on death by @MillhioreBT in #4551
- Decay time random by @MillhioreBT in #4531
- Remove condition by Condition parameters (fixes #3544) by @Erza in #3545
- New function isClass by @MillhioreBT in #4640
- Add .env.example file by @NRH-AA in #4642
- Fix tobool function by @MillhioreBT in #4647
- Update vcpkg baseline by @ranisalt in #4649
- onStepOut FIXED by @MillhioreBT in #4650
- EventCallback Improvements, Oops is now called Event by @MillhioreBT in #4395
- Rewrite Position methods in constexpr by @ranisalt in #4648
- Creature/Monster Icons by @MillhioreBT in #4493
- Reformat files with updated clang-format by @ranisalt in #4654
- Run clang-format with updated Ubuntu image by @ranisalt in #4659
- Fix getDirectionTo by @reyaleman in #4657
- Move config manager singleton to namespace by @ranisalt in #4653
- Fix boost unit-test dependency detection by @ranisalt in #4663
- Use OpenSSL instead of crypto++ by @ranisalt in #4655
- onDeEquip properly handled at logout/death by @EvilHero90 in #4664
- Use Ninja multi-config with CMake by @ranisalt in #4517
- Fix string constructor parameter order on SHA1 by @ranisalt in #4665
- Fix summon walk behavior by @NRH-AA in #4643
- mini Refactor inventory update by @MillhioreBT in #4667
- Unhex passwords when reading database by @ranisalt in #4669
- Fix possible crash by @kygov in #4673
- Fix inverted positions introduced in #4648 by @MillhioreBT in #4674
- Fix classicAttackSpeed makes server lag (#4676) by @gesior in #4677
- TextWindow interactive by @MillhioreBT in #4668
- Bank.lua fix on transfer if params are shifted #4680 by @EvilHero90 in #4683
- Replace deprecated ASIO functions and raise minimum Boost version by @ranisalt in #4686
- Added request resource balance by @reyaleman in #4646
- Update workflow actions by @ranisalt in #4685
- Run unit tests workflow with vcpkg by @ranisalt in #4695
- Docker Build failing (workflow) by @EvilHero90 in #4696
- Revert "Docker Build failing (workflow)" by @ranisalt in #4700
- Fix Dockerfile copying executable by @ranisalt in #4699
- Refactor Docker image workflow with docker actions by @ranisalt in #4701
- Fix docker registry in workflow by @ranisalt in #4702
- Add package write permission to docker-image job by @ranisalt in #4703
- Annotations & Linter including luascript.cpp functions by @EvilHero90 in #4672
- Use repository name when uploading Docker image by @ranisalt in #4704
- Simplify logic to select Lua interpreter by @ranisalt in #4576
- Fix bank NPC overflow protection being bypassed by @glecko in #4693
- Use Guild shared_ptr instead of raw pointers by @ramon-bernardo in #4682
- Split game core into different files by @ramon-bernardo in #4705
- Remove Ubuntu build workflow by @ranisalt in #4707
- Fix LuaJIT flag in CMake configuration by @ranisalt in #4711
- Move static LuaScriptInterface methods to namespace by @ranisalt in #4675
- actions: Add CodeQL back by @DSpeichert in #4712
- Add vcpkg baseline update workflow on cron schedule by @ranisalt in #4679
- Event callbacks fixes by @reyaleman in #4713
- [Revscriptsys] RevNpcSys version 1.0 (lua npcs / NpcType / new npc system) by @EvilHero90 in #4671
- Templates Update (Bug, Feature, Compilation Error) by @EvilHero90 in #4715
- Minimal HTTP login server by @ranisalt in #4706
- Http login missing VS Project Include files and login problem when on localhost by @EvilHero90 in #4716
- Set correct minimum dependency versions by @ranisalt in #4720
- Fix CodeQL to run only once per workflow by @ranisalt in #4721
- Workflow syntax fix introduced in #4721 by @EvilHero90 in #4723
- [bugfix] default duration on decaying items with no min or maxvalue set by @Coldensjo in #4725
- [bugfix] fixes bug when player asks to withdraw a string ex; "withdraw" "x" by @Coldensjo in #4732
- Fix use-after-free in creature conditions by @diath in #4726
- [bugfix] make it so that 1% resistance correctly reduces damage taken by 1 by @Coldensjo in #4733
- Fix MySQL handle leak by @ranisalt in #4722
- Compilation Error issue template update by @EvilHero90 in #4736
- [Revnpcsys] Revisioned Npc System v1.1 by @EvilHero90 in #4724
- Fix default database version by @ranisalt in #4737
- The Forgotten Server 1.6 by @EvilHero90 in #4718
New Contributors
- @Diego-OT made their first contribution in #3732
- @ArturKnopik made their first contribution in #3786
- @Fridza made their first contribution in #3989
- @torresmon made their first contribution in #4117
- @Jacqen made their first contribution in #4168
- @Piotr3k1447 made their first contribution in #4170
- @dcsee7 made their first contribution in #4185
- @Tofame made their first contribution in #4215
- @xmish made their first contribution in #4325
- @tornadia made their first contribution in #4264
- @moviebr made their first contribution in #4349
- @gurka made their first contribution in #4403
- @romulowspp made their first contribution in #4414
- @shabbir23ah made their first contribution in #4440
- @danilopucci made their first contribution in #4635
- @NRH-AA made their first contribution in #4642
- @glecko made their first contribution in #4693
- @Coldensjo made their first contribution in #4725
Full Changelog: v1.4...v1.6