-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create storages.lua #48
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Create talkaction /storage for in-game storage management.
jordanhoare
added a commit
to tibia-oce/server
that referenced
this pull request
Jan 18, 2025
* Add bootstrap script to ease installation on linux platforms. Co-Authored By: Martin Nylind <[email protected]> * Added Augmented Players and Items. (#29) * Augments (WIP) * Fixed issue with imbuements serialization on items with augments * Added Augment & Imbuement Smart Protections Blocking augment of stackables, charged items, non moveables ect. Checking that item is in the slot its assigned to for the augments to count if the config is set to true (default), only a problem for classic slots. Preventing items from decaying and/or transforming if they are imbued or augmented. Imbuement stackables still lack necessary support and protection for unwanted behavior. * Various patches for overlooked things. Added resist with rest of defensive modifiers. Configured stamina to be by seconds. Removed the check to ensure missing health, mana, soul, and stamina which prevented getting the effect. Created more complete leech/steal combat. Enabled crits on condition damage. Strict typing of int32_t for no inconsistencies in damage calculations. Fixed piercing damage healing instead of piercing. Added other enhancements for augment combat code. * Removed dead code, and fixed problems with "steal/leech" combats. * Fix broken flat factor option & soul/stamina not working with numbers bigger than their numeric limit. * Keep from adding pz tiles to list of possible ricochet positions * Huge update with fixes from other systems included. * Fix small issue with percents introduced recently * Add config options, fixed some quirks, numeric conversion issue and others. * Added additional considerations for classic slots users * added some prints for debuggin and fixed some things * Major update to deflect, and some other optimizations and such * more minor updates. deflect had 2 areas that were fixed * many optimizations * latest fixes * switch to recursive iterator to support loading sub folders * Expanded parser some, did some optimizations, applied solution for classic slots problem * Commit to attempt to fix builds on linux, includes classic slots fix * Added missing lua methods * Implement workflow build fix for dependencies. Co-Authored-By: jordanhoare <[email protected]> * Added missing modifier enums. * Pass count for reward container stackables * Adjustments to Monster::death for Reward System -Switched to using game::internalAddItem -Reduced code duplication -Improved Readability -Added error reporting to output stream for failure to add items. * Fix stackables not stacking with themselves for reward container * Fix Syntax Error with queries for Augments Migrations Co-Authored-By: Silba <[email protected]> * Fix for issue #27 - The rearrangement of order of logic execution resulted in an early return for all creatures under the circumstances of stepping on a square with a creature who is not a gm or ghosted, this ensures proper checks all around. - Some logic with player::canWalkThrough needed adjustment as well, it seems the config check was only grouped with pz and level protection previously. * Fixes issue #17 Removed access check * Remove overlooked print * Fixes issue #16 - Code imported on this commit is take from TFS and is therefore under the same license as TFS, GPL. It's an exclusion from other code added by myself for being under the new license, MIT. * Code Cleanup - Removed debug prints from augment testing. * Remove undefined function from default onGainExperience * Implemented Hash Cache for spectators. (#31) Co-authored-by: Sarah Wesker <[email protected]> * Fix syntactical error that allowed walking on occupied depot tiles. * Fix issue #20 - resolves problem of monsters' ownership transferring to a non existent spawn point * Apply changes meant for e7fd326 - Finally completely resolves #16 * Reworked Boss Reward logic a bit, fixes #30 - Added in support for reward items having augments. - Added missing support for config multipliers. - Updated logic for determining loot. - Send "no loot" message under right circumstances. * Cleanup of old debug prints still around. * Fix: Unable to set spell group to 'NONE' (#32) Using the spellgroup("none"), didn't work as below in the code, after it was already loaded, the code: if (group == SPELLGROUP_NONE) {, would have overriden it and set none to either attack or healing group. This successfully fixes it. * Spell Groups: Adapt revscript loading to spell groups (Black-Tek#33) * Adapt revscript loading to spell groups Previous PR should've fixed XML loading, this should fix Revscript loading. * Resolve compilation warnings about truncation * Lua Compatibility Fix for #18 - This changes many cases of lua_pushnumber to lua_pushinteger - This implements new overloads for "setField" method for the lua interface - There were a couple un-needed static_casts cleaned up from imbuement lua api * Cleanup warnings from the console (Black-Tek#34) Had to remove a couple old commits from Evil Hero, that caused the console to fill up with errors, but the underlying problem wasn't resolved anyways. Also cleaned up a leftover debug print. * Changed player:getMaxMana() to use lua_pushinteger for #18 * Resolve Display error in item description for percent based stats. * Resolve error thrown for doing math with a boolean after lua change for #18 * Closes Black-Tek#35 Fix for attribute serialization and reward container saving. - Attributes can't use same stream as Augments because attributes use uint8_t's as indicators, and augments writes a uint32_t directly where an indicator should be, so we give augments their own stream. - Normalized the saving for reward items so they are handled the same way other item saving is done. - Removed 7 day limit as it was causing problems (only items with the attributes for date were showing up in container, but stackables can't have custom attributes like date). * Changed some checks for healing combat during bockhit (imbuements) - Had a private reported bug about healing combat triggering imbuements, this should resolve that. * Implement Windows Edge Builds * Add Bootstrap.bat to ease installation - Also updated readme * Update premake5.lua - Support arm architecture - Add ability to use system libraries - Add options to use custom paths for edge cases - Remove redundant --std=c++20 buildoption * Fix Black-Tek#37 * Remove redundant "names" std::unordered_map from Player::getCorpse() (Black-Tek#38) I've noticed redundant allocation of std::unordered_map together with its unneeded loop. The edited fragment of method, which is about creating corpse's description (Item* Player::getCorpse(Creature* lastHitCreature, Creature* mostDamageCreature)), does not need to check names[lastHitCreature->getName()] == 1 , which is the only place where the names map is actually used. It just serves no visible purpose, maybe it was meant to check if lastHitCreature is in getKillers(), which is a check if the lastHitCreature has hit the dead person in last minute... which is not needed, because lastHitCreature by its definition means that it is true. * Update Server Version (and console information) * Linux Edge Builds * No .exe on linux * Permissions for linux builds * Update windows_build_runner.yml - Changed edge builds to be only 1 at a time - Changed windows edge builds to use same tag - Added a version.info to compressed artifacts to keep record of semantic version by sha. - Added sha to name of compressed artifact as another record of semantic version * Resolve Windows Build Error (workflows) * Properly name linux artifact * Properly name windows artifact (workflows) * Use Buildtype for evaluation in windows workflow * Update bootstrap.sh - Fix some small mistakes - Lower min gcc version to 10 - Some armv7 support by using system libraries - Find premake when .local/bin is not in PATH * Augment events (Black-Tek#39) * Augment Events - Added Player Events (callbacks) onPlayerAugment, onRemovePlayerAugment - Added Item Events (callbacks) onItemAugment, onRemoveItemAugment * Change Event Names * More Responsive Monsters Co-Authored-By: SaiyansKing <[email protected]> * Add Doors lib * Update Licensing * Add Discord to readme * Update Community Link with discord server invite * Fix Black-Tek#42 * Fix Ubuntu builds for bootstrap.sh * Moved Imbuement Combat logic to Combat::doTargetCombat() (Black-Tek#43) Fixes Black-Tek#41 - Rewrote some of the math and logic involving the math - Used more consts and refs - Added defaults, and unlikely attribute, for switches - Checking for only melee and ranged attacks - Excluded all healing and manadrain combat types * Update Discord Link in Readme * Added Server Save Talkaction (Black-Tek#46) * Create storages.lua (Black-Tek#48) Create talkaction /storage for in-game storage management. * Add isRewardBoss to lua. (Black-Tek#49) Add isRewardBoss to lua * Merge remote-tracking branch 'upstream/master' into chore/upstream * Merge remote-tracking branch 'upstream/master' into chore/upstream * chore: remove migrations --------- Co-authored-by: codinablack <[email protected]> Co-authored-by: Codinablack <[email protected]> Co-authored-by: Silba <[email protected]> Co-authored-by: Sarah Wesker <[email protected]> Co-authored-by: Tofame <[email protected]> Co-authored-by: Martin Nylind <[email protected]> Co-authored-by: SaiyansKing <[email protected]> Co-authored-by: LuanGP <[email protected]>
jordanhoare
added a commit
to tibia-oce/server
that referenced
this pull request
Jan 18, 2025
* Add bootstrap script to ease installation on linux platforms. Co-Authored By: Martin Nylind <[email protected]> * Added Augmented Players and Items. (#29) * Augments (WIP) * Fixed issue with imbuements serialization on items with augments * Added Augment & Imbuement Smart Protections Blocking augment of stackables, charged items, non moveables ect. Checking that item is in the slot its assigned to for the augments to count if the config is set to true (default), only a problem for classic slots. Preventing items from decaying and/or transforming if they are imbued or augmented. Imbuement stackables still lack necessary support and protection for unwanted behavior. * Various patches for overlooked things. Added resist with rest of defensive modifiers. Configured stamina to be by seconds. Removed the check to ensure missing health, mana, soul, and stamina which prevented getting the effect. Created more complete leech/steal combat. Enabled crits on condition damage. Strict typing of int32_t for no inconsistencies in damage calculations. Fixed piercing damage healing instead of piercing. Added other enhancements for augment combat code. * Removed dead code, and fixed problems with "steal/leech" combats. * Fix broken flat factor option & soul/stamina not working with numbers bigger than their numeric limit. * Keep from adding pz tiles to list of possible ricochet positions * Huge update with fixes from other systems included. * Fix small issue with percents introduced recently * Add config options, fixed some quirks, numeric conversion issue and others. * Added additional considerations for classic slots users * added some prints for debuggin and fixed some things * Major update to deflect, and some other optimizations and such * more minor updates. deflect had 2 areas that were fixed * many optimizations * latest fixes * switch to recursive iterator to support loading sub folders * Expanded parser some, did some optimizations, applied solution for classic slots problem * Commit to attempt to fix builds on linux, includes classic slots fix * Added missing lua methods * Implement workflow build fix for dependencies. * Added missing modifier enums. * Pass count for reward container stackables * Adjustments to Monster::death for Reward System -Switched to using game::internalAddItem -Reduced code duplication -Improved Readability -Added error reporting to output stream for failure to add items. * Fix stackables not stacking with themselves for reward container * Fix Syntax Error with queries for Augments Migrations * Fix for issue #27 - The rearrangement of order of logic execution resulted in an early return for all creatures under the circumstances of stepping on a square with a creature who is not a gm or ghosted, this ensures proper checks all around. - Some logic with player::canWalkThrough needed adjustment as well, it seems the config check was only grouped with pz and level protection previously. * Fixes issue #17 Removed access check * Remove overlooked print * Fixes issue #16 - Code imported on this commit is take from TFS and is therefore under the same license as TFS, GPL. It's an exclusion from other code added by myself for being under the new license, MIT. * Code Cleanup - Removed debug prints from augment testing. * Remove undefined function from default onGainExperience * Implemented Hash Cache for spectators. (#31) * Fix syntactical error that allowed walking on occupied depot tiles. * Fix issue #20 - resolves problem of monsters' ownership transferring to a non existent spawn point * Apply changes meant for e7fd326 - Finally completely resolves #16 * Reworked Boss Reward logic a bit, fixes #30 - Added in support for reward items having augments. - Added missing support for config multipliers. - Updated logic for determining loot. - Send "no loot" message under right circumstances. * Cleanup of old debug prints still around. * Fix: Unable to set spell group to 'NONE' (#32) Using the spellgroup("none"), didn't work as below in the code, after it was already loaded, the code: if (group == SPELLGROUP_NONE) {, would have overriden it and set none to either attack or healing group. This successfully fixes it. * Spell Groups: Adapt revscript loading to spell groups (Black-Tek#33) * Adapt revscript loading to spell groups Previous PR should've fixed XML loading, this should fix Revscript loading. * Resolve compilation warnings about truncation * Lua Compatibility Fix for #18 - This changes many cases of lua_pushnumber to lua_pushinteger - This implements new overloads for "setField" method for the lua interface - There were a couple un-needed static_casts cleaned up from imbuement lua api * Cleanup warnings from the console (Black-Tek#34) Had to remove a couple old commits from Evil Hero, that caused the console to fill up with errors, but the underlying problem wasn't resolved anyways. Also cleaned up a leftover debug print. * Changed player:getMaxMana() to use lua_pushinteger for #18 * Resolve Display error in item description for percent based stats. * Resolve error thrown for doing math with a boolean after lua change for #18 * Closes Black-Tek#35 Fix for attribute serialization and reward container saving. - Attributes can't use same stream as Augments because attributes use uint8_t's as indicators, and augments writes a uint32_t directly where an indicator should be, so we give augments their own stream. - Normalized the saving for reward items so they are handled the same way other item saving is done. - Removed 7 day limit as it was causing problems (only items with the attributes for date were showing up in container, but stackables can't have custom attributes like date). * Changed some checks for healing combat during bockhit (imbuements) - Had a private reported bug about healing combat triggering imbuements, this should resolve that. * Implement Windows Edge Builds * Add Bootstrap.bat to ease installation - Also updated readme * Update premake5.lua - Support arm architecture - Add ability to use system libraries - Add options to use custom paths for edge cases - Remove redundant --std=c++20 buildoption * Fix Black-Tek#37 * Remove redundant "names" std::unordered_map from Player::getCorpse() (Black-Tek#38) I've noticed redundant allocation of std::unordered_map together with its unneeded loop. The edited fragment of method, which is about creating corpse's description (Item* Player::getCorpse(Creature* lastHitCreature, Creature* mostDamageCreature)), does not need to check names[lastHitCreature->getName()] == 1 , which is the only place where the names map is actually used. It just serves no visible purpose, maybe it was meant to check if lastHitCreature is in getKillers(), which is a check if the lastHitCreature has hit the dead person in last minute... which is not needed, because lastHitCreature by its definition means that it is true. * Update Server Version (and console information) * Linux Edge Builds * No .exe on linux * Permissions for linux builds * Update windows_build_runner.yml - Changed edge builds to be only 1 at a time - Changed windows edge builds to use same tag - Added a version.info to compressed artifacts to keep record of semantic version by sha. - Added sha to name of compressed artifact as another record of semantic version * Resolve Windows Build Error (workflows) * Properly name linux artifact * Properly name windows artifact (workflows) * Use Buildtype for evaluation in windows workflow * Update bootstrap.sh - Fix some small mistakes - Lower min gcc version to 10 - Some armv7 support by using system libraries - Find premake when .local/bin is not in PATH * Augment events (Black-Tek#39) * Augment Events - Added Player Events (callbacks) onPlayerAugment, onRemovePlayerAugment - Added Item Events (callbacks) onItemAugment, onRemoveItemAugment * Change Event Names * More Responsive Monsters * Add Doors lib * Update Licensing * Add Discord to readme * Update Community Link with discord server invite * Fix Black-Tek#42 * Fix Ubuntu builds for bootstrap.sh * Moved Imbuement Combat logic to Combat::doTargetCombat() (Black-Tek#43) Fixes Black-Tek#41 - Rewrote some of the math and logic involving the math - Used more consts and refs - Added defaults, and unlikely attribute, for switches - Checking for only melee and ranged attacks - Excluded all healing and manadrain combat types * Update Discord Link in Readme * Added Server Save Talkaction (Black-Tek#46) * Create storages.lua (Black-Tek#48) Create talkaction /storage for in-game storage management. * Add isRewardBoss to lua. (Black-Tek#49) Add isRewardBoss to lua * Merge remote-tracking branch 'upstream/master' into chore/upstream * Merge remote-tracking branch 'upstream/master' into chore/upstream * chore: remove migrations --------- Co-authored-by: codinablack <[email protected]> Co-authored-by: Codinablack <[email protected]> Co-authored-by: Silba <[email protected]> Co-authored-by: Sarah Wesker <[email protected]> Co-authored-by: Tofame <[email protected]> Co-authored-by: Martin Nylind <[email protected]> Co-authored-by: SaiyansKing <[email protected]> Co-authored-by: LuanGP <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Create talkaction /storage for in-game storage management.