Skip to content
This repository has been archived by the owner on May 20, 2023. It is now read-only.

Commit

Permalink
[Compatibility] - Support for Canary (Convert to client id, add npcs …
Browse files Browse the repository at this point in the history
…revscriptsys and others things) (#1)

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.

NOTE: This commit will work directly with the commit: opentibiabr/canary@0397d0c, from Canary 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.
- Rework on bestiary_charm script
  • Loading branch information
dudantas authored Feb 7, 2022
1 parent d405eae commit 1ffd9f1
Show file tree
Hide file tree
Showing 4,924 changed files with 365,745 additions and 455,513 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
58 changes: 0 additions & 58 deletions .appveyor.yml

This file was deleted.

80 changes: 0 additions & 80 deletions .github/workflows/build-ubuntu.yml

This file was deleted.

83 changes: 0 additions & 83 deletions .github/workflows/build-windows.yml

This file was deleted.

35 changes: 0 additions & 35 deletions .github/workflows/codacy-analysis.yml

This file was deleted.

64 changes: 0 additions & 64 deletions .github/workflows/codeql-analysis.yml

This file was deleted.

30 changes: 3 additions & 27 deletions .github/workflows/reviewdog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,58 +18,34 @@ jobs:
- name: Setup xmllint
run: sudo apt-get update && sudo apt-get install -y libxml2-utils

- name: Setup cppcheck
run: sudo apt-get install -y cppcheck

- name: Check out code.
uses: actions/checkout@v1

- name: Setup reviewdog
run: |
mkdir -p $HOME/bin && curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh| sh -s -- -b $HOME/bin
- name: cpplint
uses: reviewdog/action-cpplint@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-check
filter: "-whitespace/tab\
,-whitespace/line_length\
,-whitespace/tab\
,-build/include_subdir\
,-whitespace/braces\
"
# flags: --linelength=120

- name: cppcheck
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd ${{ runner.workspace }}/otservbr-global
cppcheck --version
$HOME/bin/reviewdog -reporter=github-pr-check -runners=cppcheck
- name: luacheck
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
luacheck --version
cd ${{ runner.workspace }}/otservbr-global
cd ${{ runner.workspace }}/otservbr-global-datapack
$HOME/bin/reviewdog -reporter=github-pr-check -runners=luacheck
- name: luac
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd ${{ runner.workspace }}/otservbr-global
cd ${{ runner.workspace }}/otservbr-global-datapack
luac -v
$HOME/bin/reviewdog -reporter=github-pr-check -runners=luac
- name: xmllint
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd ${{ runner.workspace }}/otservbr-global
cd ${{ runner.workspace }}/otservbr-global-datapack
xmllint --version
$HOME/bin/reviewdog -reporter=github-pr-check -runners=xmllint
Expand Down
Loading

0 comments on commit 1ffd9f1

Please sign in to comment.