This repository has been archived by the owner on May 20, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 162
[Compatibility] - Support for Canary (Convert to client id, add npcs revscriptsys and others things) #1
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
11 tasks
11 tasks
…"Player::getClientIcons" function (#2749) Fixes a potential crash by checking if tile is not a null pointer in Player::getClientIcons Co-Authored-By: @dbjorkholm otland/forgottenserver#3662
… dead rune script (#2746) The monster:reload function has already been removed, so this commit resolves some warnings that gave the distro for lack of the function.
… (#2752) Resolves #2657
The function was returning nil, because instead of validating the target (player), it was validating the self (creature), the same for the "playerId", which was facing the "self", and not the "target", causing the event to never run.
4 tasks
Fixes: Warzone 4 Warzone 5 Warzone 6 Resolves #2414 and 1 Item of #726
Costallat
force-pushed
the
canary-engine-compatibility
branch
from
October 6, 2021 20:57
70d98db
to
ebe6088
Compare
Co-Authored-By: Jakub @SaiyansKing jakubkubina@hotmail.com
Rework on exercise weapon. Added tibia global equal behavior Added config key "maxAllowedOnADummy " default is "1" Created table for exercise functions and variables Start training with someone already training on that dummy and the message will be sent that someone is already training. If someone is training and connects to the game, that user appears as Exercise Dummy Training . If someone is training, send request to add this player on vip list, that user appears as Exercise Dummy Training. When are training and disconnect from the game, on reconnect, the training stopped.cise Dummy Training When are training and disconnect from the game, on reconnect, the training stopped
… is nullptr (#2774)
Co-Authored-By: Jakub @SaiyansKing jakubkubina@hotmail.com From: https://github.com/opentibiabr/optimized_forgottenserver/tree/master Reworked the decay, so the problems with the CPU spike are over, as well as other problems with the decay, like some items resetting the duration when equip/deequip. New functions: Game::stopDecay(item) Container::stopDecaying() DepotChest::isRemoved() DepotLocker::isRemoved() Inbox::isRemoved() Item::stopDecaying() From function: decreaseDuration(time) To: setDurationTimestamp(timestamp) New file decay.cpp/h Decay::startDecay(item, duration) Decay::stopDecay(item, timestamp) Decay::checkDecay() New attribute: ITEM_ATTRIBUTE_DURATION_TIMESTAMP
Removal of the source and all its dependencies
dudantas
force-pushed
the
canary-engine-compatibility
branch
from
October 7, 2021 01:18
ebe6088
to
dfaa8cc
Compare
1 task
beats-dh
approved these changes
Jan 5, 2022
1 task
1 task
11 tasks
dudantas
added a commit
to opentibiabr/canary
that referenced
this pull request
Feb 7, 2022
Required for pull request: opentibiabr/otservbr-global#1
dudantas
added a commit
to opentibiabr/canary
that referenced
this pull request
Feb 7, 2022
…m npcs to revscriptsys and rework on jiddo npc lib (#192) Description: NPCS converted to revscriptsys and removed the npcs xml Changed jiddo lib to work with revscriptsys npcs, also making several improvements to the lib. And several other functions that have been improved or rework. We also removed all the code from the lib that parse/handle the npcs xml. Module shop has been removed (a big improvement was made where the shop is now in npcType, more easily and is called directly from source). Added back storage of npcs spawns in the world folder (there was also a reorganization, where npcs and monsters will be in separate files from now on, as it will be possible to see npcs on the map). Several other modifications and adaptations to make compatibility possible. Fix: opentibiabr/otservbr-global#2 NOTE: This commit will work directly with the pull opentibiabr/otservbr-global#1 from the otservbr-global repository. After this commit, the OTServBR-Global will use the Canary Engine, there will no longer be source code in global. NPCS Lib modifications: Added new callbacks: - onCloseChannel (CALLBACK_ON_CLOSE_CHANNEL) - onMove (CALLBACK_ON_MOVE) - FocusModule.tradeCallback - NpcsEvent_t enum: NPCS_EVENT_PLAYER_CLOSE_CHANNEL Lua functions: - NpcHandler:getKeywordHandler() - NpcHandler:getEventDelayedSay(playerId) - NpcHandler:setEventDelayedSay(playerId, newEventDelayedSay) - NpcHandler:getEventSay(playerId) - NpcHandler:setEventSay(playerId, newEventSay) - NpcHandler:getTalkStart(playerId) - NpcHandler:setTalkStart(playerId, newTalkStart) - NpcHandler:getTopic(playerId) - NpcHandler:setTopic(playerId, newTopic) - NpcHandler:checkInteraction(npc, player) - NpcHandler:updateInteraction(npc, player) - NpcHandler:setInteraction(npc, player) - NpcHandler:removeInteraction(npc, player) - NpcHandler:tradeRequest(npc, player, message) - NpcHandler:onMove(npc, player, fromPosition, toPosition) - NpcHandler:sendMessages(message, messageTable, npc, player, useDelay, delay) - FocusModule:setTradeCallback(callback) - Npc:sayWithDelay(npcId, text, messageType, delay, event, playerId) - Npc:sendMessage(player, text) - Npc:isMerchant() - Npc:closeShopWindow(player) - Npc:isInTalkRange(playerPosition) - Npc:move(direction) - Npc:turn(direction) - Npc:follow(player) - Npc:getId() - Npc:sellItem(player, itemid, amount, <optional> subtype, <optional> actionid, <optional: default: 1> canDropOnMap) - Npc:getDistanceTo(uid) - NpcType:getSpeechBubble() - NpcType:setSpeechBubble() - Player:getItemIdByCid(itemId) - Item:getClientId() - LuaFunctionsLoader::getErrorDesc(ErrorCode_t code) new callback: LUA_ERROR_NPC_TYPE_NOT_FOUND CPP functions: - Npc::onPlayerCloseChannel(creature) - Game::loadCustomMap(name) - Iomap: loadMonstersCustom(map), loadNpcsCustom(map), loadHousesCustom(map) Cpp definitions: - ITEM_FILLED_BATH_TUBE, ITEM_SWORD_RING, ITEM_CLUB_RING, ITEM_DWARVEN_RING, ITEM_RING_HEALING, ITEM_STEALTH_RING, ITEM_TIME_RING, ITEM_PAIR_SOFT_BOOTS, ITEM_PAIR_SOFT_BOOTS_ACTIVATED, ITEM_DEATH_RING, ITEM_DEATH_RING_ACTIVATED, ITEM_PRISMATIC_RING, ITEM_PRISMATIC_RING_ACTIVATED. Othes: - Added bank system lib (bank_system.lua) - TalkAction: /addmoney playername, moneycount Modified callbacks: - FROM: CALLBACK_CREATURE_APPEAR, TO: CALLBACK_ON_APPEAR - FROM: CALLBACK_CREATURE_DISAPPEAR, TO: CALLBACK_ON_DISAPPEAR - FROM: CALLBACK_CREATURE_SAY, TO: CALLBACK_ON_SAY - FROM: CALLBACK_ONTHINK, TO: CALLBACK_ON_THINK - FROM: CALLBACK_PLAYER_ENDTRADE, TO: CALLBACK_PLAYER_END_TRADE - FROM: CALLBACK_PLAYER_CLOSECHANNEL, TO: CALLBACK_CLOSE_CHANNEL - FROM: CALLBACK_ONADDFOCUS, TO: CALLBACK_SET_INTERACTION - FROM: CALLBACK_ONRELEASEFOCUS, TO: CALLBACK_REMOVE_INTERACTION - FROM: CALLBACK_ONTRADEREQUEST, TO: CALLBACK_ON_TRADE_REQUEST - FROM: SHOP_TRADEREQUEST, TO: FOCUS_TRADE_MESSAGE Modified functions: - From: player:removeMoneyNpc(), to: player:removeMoneyBank(cost) - From: NpcHandler.eventSay[focus] = nil, to: NpcHandler:setEventSay(playerId, nil) - From: NpcHandler.eventDelayedSay[focus] = nil, to: NpcHandler:setEventDelayedSay(playerId, nil) - From: NpcHandler.talkStart[focus] = nil, to: NpcHandler:setTalkStart(playerId, nil) - From: NpcHandler.topic[focus] = nil, to: NpcHandler:setTopic(playerId, nil) - From: NpcHandler:onCreatureAppear, to: NpcHandler:onAppear - From: NpcHandler:onCreatureDisappear, to: NpcHandler:onDisappear - From: NpcHandler:onCreatureAppear, to: NpcHandler:onAppear - From: NpcHandler:onCreatureSay, to: NpcHandler:onSay - From: NpcHandler:onPlayerCloseChannel, to: NpcHandler:onCloseChannel - From: NpcHandler.topic[playerId] = topicId, to: NpcHandler:setTopic(playerId, topicId) - From: NpcHandler.topic[playerId] == topicId, to: NpcHandler:getTopic(playerId) == topicId - From: Charm:cancelMessage(), to: charm:messageCancel() - From: Charm:logMsg(), to: Charm:messageServerLog() - msgcontains(message, keyword) = It was refactored so that it identifies the entire string and does not read just one word, generating this issue: https://github.com/opentibiabr/otservbr-global/issues/2736 Removed callbacks: - NpcHandler: focuses, idleTime, talkRadius, shopItems, MESSAGE_ONBUY, MESSAGE_BOUGHT, MESSAGE_SELL, MESSAGE_ONSELL, MESSAGE_SOLD, MESSAGE_IDLETIMEOUT - Voice modules - Shop module - NpcSystem (It was used to parse XML npcs information) Removed Lua functions: - NpcHandler:isFocused - NpcHandler:releaseFocus - NpcHandler:onPlayerEndTrade - NpcHandler:onSell - doNpcSellItem - doCreatureSayWithDelay - doPlayerSellItem - doPlayerBuyItemContainer - doPlayerRemoveMoney - getPlayerMoney - closeShopWindow Removed CPP functions: - Npc:getCurrencyTrading() Others modifications: - Changed configkey = From: MAP_CUSTOM_ENABLED, to: TOGGLE_MAP_CUSTOM - Fixed the load of the custom map, which is now directly in the source and works as a complement to the main map. - Removed ConfigKey: MAP_CUSTOM_FILE and MAP_CUSTOM_SPAWN - Some functions are capitalized to indicate that they are global functions, for example: MessageContains(), GetCount(), and others.
Closed
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Description
Special thanks to @dmarszk for providing the conversion script for client id: https://gist.github.com/dmarszk/2fe6ec3b6f4a2f868500858b2174068f
Pull: https://github.com/opentibiabr/otservbr-global/pull/2744
Co-Authored by: Dominik Marszk dmarszk@gmail.com
This pull request will work directly with the pull opentibiabr/canary#192 from the canary repository.
After testing and merging the two pulls, otservbr-global will use the canary engine, there will no longer be source code in global, thus facilitating our work regarding the number of repositories and the separation of source code from the global datapack ( which is too heavy, too many files and too messy).
Pull request modifications
Added:
Npclib:
Callbacks:
Lua functions:
Cpp functions:
Cpp definitions:
Othes:
Modified
Callbacks:
Functions:
Others:
Removed
Npclib:
Callbacks:
Lua functions:
Cpp functions:
Others:
Resume
Added the npcs revscriptsys and removed the npcs xml
Changed jiddo lib to work with revscriptsys npcs, also making several improvements to the lib. And several other functions that have been improved or rework. We also removed all the code from the lib that parse/handle the npcs xml.
Module shop has been removed (a big improvement was made where the shop is now in npcType, more easily and is called directly from source).
Added back storage of npcs spawns in the world folder (there was also a reorganization, where npcs and monsters will be in separate files from now on, as it will be possible to see npcs on the map).
Improvement on register_bestiary_charm and bestiary/charms.lua (formerly modules/bestiary_charms)
The datapack was converted to use the client id instead of the server id, so the map was converted to the client id, the otb was converted to the client id, as well as all the ids that were used in the datapack and the source.
Several other modifications and adaptations to make compatibility possible.
Type of change
How Has This Been Tested
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Test Configuration:
Checklist