Code Monkey home page Code Monkey logo

canary's Introduction

OpenTibiaBR - Canary

Discord Channel GitHub issues GitHub pull request Contributors GitHub

GitHub repo size

Quality Gate Status

Builds

Build - Ubuntu Build - Windows - CMake Build - Windows - Solution

Docker

docker pull opentibiabr/canary:latest

Automation Image Size Pulls Build

Project

OpenTibiaBR - Canary is a free and open-source MMORPG server emulator written in C++.

It is a fork of the OTServBR-Global project. You can see the repository history in the releases.

This project was created with the intention of being a base as clean as possible, to work as an MMORPG engine and not necessarily linked to Tibia Global, although it will also work. The OpenTibiaBR - Global was adapted to work with the source of the Canary, so that it will be the first repository to use this engine.

To connect to the server and to take a stable experience, you can use mehah's otclient or tibia client and if you want to edit something, check our customized tools.

If you want edit the map, use the own remere's map editor.

You are subject to our code of conduct, read at this link.

Getting Started

Issues

We use the issue tracker on GitHub. Keep in mind that everyone who is watching the repository gets notified by e-mail when there is an activity, so be thoughtful and avoid writing comments that aren't meant for an issue (e.g. "+1"). If you'd like for an issue to be fixed faster, you should either fix it yourself and submit a pull request, or place a bounty on the issue.

Pull requests

Before creating a pull request please keep in mind:

  • Do not send Pull Request changing the map, as we can't review the changes it's better to use our Discord to talk about or send the map changes to the responsible for updating it.
  • Focus on fixing only one thing, mixing too much things on the same Pull Request make it harder to review, harder to test and if we need to revert the change it will remove other things together.
  • Follow the project indentation, if your editor support you can use the editorconfig to automatic configure the indentation.
  • There are people that doesn't play the game on the official server, so explain your changes to help understand what are you changing and why.
  • Avoid opening a Pull Request to just update one line of an xml file.

Special Thanks

Sponsors

See our donate page

Project supported by JetBrains

We extend our heartfelt gratitude to Jetbrains for generously granting us licenses to collaborate on this and various other open-source initiatives.

JetBrains

Partners

Supported by OTServ Brasil

canary's People

Contributors

aerwix avatar beats-dh avatar carlospess0a avatar costallat avatar dudantas avatar duuh30 avatar elimarcosta avatar elsongabriel avatar gh-action-bump-version avatar glatharth avatar jacksonie avatar lamonato29 avatar leotkbr avatar lgrossi avatar luan avatar luancolombo avatar luanluciano93 avatar majestyotbr avatar marcosvf132 avatar mehah avatar mirkaanks avatar murilo09 avatar omarcopires avatar omeranha avatar peachiedude avatar rcp91 avatar rechdan avatar sebbesiren avatar sorairei avatar valleze 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

canary's Issues

Bug - Canpushcreatures + Pushable

Creatures with "canpushcreatures" set to 1 will stack on top of creatures with "pushable" set to 0

What should really happen is:

Creature A will move creature B if:

- it is pushable
- there's enough free space

And the other will take its place, else:

- creature B will be killed by creature A

Critical damage bug

Critical damage should have minimum damage on like 50-60% of max normal damage as it is on normal tibia.

@edit
I might not described the problem correctly. When you land a critical hit, the critical hit damage should be a critical hit from over 50% of your minimum damage.
For example If you can hit 2 - 1000 normal damage. The critical (with 50% critical damage) should be around 500 - 1500 damage (not 3 - 1500). The value differs on paladin and knight. I mean the values from melee and distance hit.

FEATURE: Database schema versioning

Describe your feature request

Imagine that I have an OTServer up and running with this project on version 12.00 and want to update it to the most recent version (like 12.60) on branch develop. My database contains lot of accounts, players, houses, etc.
If I pull the new version from this repo, build and compile it, I'll need to update the database schema also.
The problem is that a lot of columns and tables have changed from my version to the current one, and I won't be able to update my OTServer unless I manually compare all what have changed in schema, generate an SQL script and run it on my own.

Describe the solution you'd like

You could setup database schema versioning using softwares like Evolve, Flyway or Liquibase to create migrations scripts when necessary to update the schema.
Everytime it makes necessary to add a column, create a new table, remove a column, etc, while development phase, a migration script will be created containing all the SQL of the operation.
This way will be easier for OTServer owners to update their servers, they will just need to pull the project from repo and run the software, so the migration scripts will run in order on their old databases, updating the schema with the new OTServer version and still contain all old data from the server.
The advantage of using a software like this is that the version of the database will be controlled inside it. A version table will be created inside the database and at the time I run the program to update my database, the program will know exactly what migration script it will have to run.

Links

Evolve is open source and available with .NET library. You can find its documentation on GitHub
Flyway and Liquibase are integrated with Java (I've used Flyway on my Java projects), but they can be used with command line also. Here is a link to explain how it works

New moveable beds

New moveable beds in items.xml: https://pastebin.com/hceQcCe5
Adding a check if player is in house if player put a bed on door tile so players won't go sleep outside house, bed.cpp https://pastebin.com/YEvgGRh1
Adding max number of beds to house.h https://pastebin.com/iczVWtkp
Showing max beds count on door, house.cpp: https://pastebin.com/cWdsMTGL
Making beds not being removed from house iomapserialize.cpp: https://pastebin.com/W9D2maFf
lua functions, luascript.h and cpp: https://pastebin.com/pcRfHN0v
putting bed script, needs a list with wrapped beds like :[wrapId] = bedId, : https://pastebin.com/HNg4MnW1

What is missing?

  • wrap back function
  • deleting all beds on map

Paralyze condition is not 100%

On Global Tibia, when you get a Paralyze condition, your speed is fixed in a value, and independent such u have a equipped item, or not, your speed will be that!
This video show that happens when i equip a boh, when i'm paralyzed, my speed not change.
https://imgur.com/XH6qDE2

BUG: Prey

image
image

first look in the windows for the name of the monster after that just select in all windows so the prey will be active for the same monster
note: this will bring the server down

BUG: stack monsters

Hay un bug en los monsters lo cual permite que se stackeen por ejemplo, si hay 8 monsters a tu alrededor y lureas otros, esos otros se puede poner sobre alguno de esos monsters y ya no te estarían pegando solo 8 si no, mas monsters (9, 10 etc) y por lo mismo mueres, sucede en varios monsters por ejemplo drakens

There is a bug in the monsters which allows them to stack for example, if there are 8 monsters around you and you lure others, those others can be put on one of those monsters and they would no longer be hitting you only 8 if not, more monsters ( 9, 10 etc) and for the same you die

happens in various monsters, for example drakens

BUG: Market?

` opentibiabr/otservbr-global-archived#1 0x00005555557789d8 in ProtocolGame::sendMarketEnter(unsigned int) ()
No symbol table info available.
opentibiabr/otservbr-global-archived#2 0x0000555555766e53 in ProtocolGame::parseMarketBrowse(NetworkMessage&) ()
No symbol table info available.
opentibiabr/otservbr-global-archived#3 0x000055555577e52b in ProtocolGame::parsePacket(NetworkMessage&) ()
No symbol table info available.
opentibiabr/otservbr-global-archived#4 0x0000555555824e07 in Connection::parsePacket(boost::system::error_code const&) ()
No symbol table info available.
opentibiabr/otservbr-global-archived#5 0x00005555558269ce in boost::asio::detail::read_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_serviceboost::asio::ip::tcp >, boost::asio::mutable_buffers_1, boost::asio::detail::transfer_all_t, std::_Bind<std::_Mem_fn<void (Connection::)(boost::system::error_code const&)> (std::shared_ptr, std::_Placeholder<1>)> >::operator()(boost::system::error_code const&, unsigned long, int) ()
No symbol table info available.
opentibiabr/otservbr-global-archived#6 0x0000555555826e23 in boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, boost::asio::detail::read_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_serviceboost::asio::ip::tcp >, boost::asio::mutable_buffers_1, boost::asio::detail::transfer_all_t, std::_Bind<std::_Mem_fn<void (Connection::
)(boost::system::error_code const&)> (std::shared_ptr, std::_Placeholder<1>)> > >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) ()
No symbol table info available.
opentibiabr/otservbr-global-archived#7 0x00005555557a7f11 in ServiceManager::run() ()

I still don't understand how this bug is occurring.
using updated version of git without edits

`

Player Exit/Battle/etc Issues;

  • Player ao entrar dentro do pz/ou fora do pz, sem battle <--- ao exitar, deveria cair instantaneamente, mas não, ele só desloga dps de 1 min.
    image

  • Sistema dos monstros saírem (pararem de atacar o player), ao player exitar/perder conexão
    ( não funcionando de maneira correta ):

Depois de fazer a saída, como deve funcionar:
nos 3 casos:
se é paladino X tempo
se for mago X time
se é cavaleiro X tempo

Depois que ele sai, o sistema só deve funcionar após esse horário X ser ativado.
Se as criaturas tentarem voltar à sua "posição convocada", o monstro continuará seguindo o alvo.
image

Pets can attack party members

Describe the bug
If you are in party the pets can attack to party members and if a pet kill boss, we can't get the loot of the boss.

BUG: Issue upon registering creatureEvents

Describe the bug

It seems that all the cults of tibia bosses don't register their creatureevents on spawn. This makes it impossible to kill any of the bosses because none of the events are registering. Saw that the names of some of the creatureevents didn't match but even when you fix that it still doesn't register it.

How to Reproduce?

Put a print or anything to test if a creatureevent is being used.

Give us all details to reproduce the behavior:

  1. Put a print line or anything to see if a creatureevent is running.
  2. Go face the boss where you've added the line.

Expected behavior

The creatureevents should register when facing the bosses.

Environment

  • OS: Windows
  • OTServ Version: Latest
  • Tibia Version: 12.62

Reload Monsters/Spells

The bug:
The bug happens when I use the / reload command. For some reason, when using the command /reload monster and later /reload spells, some monsters change the spells registered in their files.

The way I found to reproduce the bug:

  1. Set a monster to use sd
    {name ="sudden death", interval = 2000, chance = 100, minDamage = -2000, maxDamage = -2300, range = 5, target = true}
  1. Let him use the spell on some player
  2. use /reload monsters and right after use /reload spells
  3. The monster will start using another spell instead of sd, this can cause some crash

Screenshots

The monster is using sd as it should:
image

After using /reload monsters and /reload spells 2x:
image

2021-04-25.03-10-21.mp4

Environment

Using the last version on Windows

No error show up in the distro

FEATURE: (incomplete) Adding tournament coin needs to be removed when buying

I modified the store's init.lua to be reading the tournament coin, the functions were also added but I didn't find out how to remove it when buying something in the store even though it was incomplete I thought it would be cool to share with you and someone to find out how to fix this problem

Search to:
msg:addU32(0) -- Tournament Coins
Change to:
msg:addU32(player:getTournamentCoinsBalance())

Search to:
function Player.getCoinsBalance(self)
Below that function add:

function Player.getTournamentCoinsBalance(self)
	resultId = db.storeQuery("SELECT `tournamentBalance` FROM `accounts` WHERE `id` = " .. self:getAccountId())
	if not resultId then return 0 end
	return result.getDataInt(resultId, "tournamentBalance")
end

Search to:
setCoinsBalance
Below that function add:

function Player.setTournamentCoinsBalance(self, tournamentBalance)
	db.query("UPDATE `accounts` SET `tournamentBalance` = " .. tournamentBalance .. " WHERE `id` = " .. self:getAccountId())
	return true
end

Search to:
canRemoveCoins
Below that function add:

function Player.canRemoveTournamentCoins(self, tournamentBalance)
	if self:getTournamentCoinsBalance() < tournamentBalance then
		return false
	end
	return true
end

Search to:
removeCoinsBalance
Below that function add:

function Player.removeTournamentCoinsBalance(self, tournamentBalance)
	if self:canRemoveTournamentCoins(tournamentBalance) then
		return self:setTournamentCoinsBalance(self:getTournamentCoinsBalance() - tournamentBalance)
	end

	return false
end

Search to:
addCoinsBalance
Below that function add:

function Player.addTournamentCoinsBalance(self, tournamentBalance, update)
	self:setTournamentCoinsBalance(self:getTournamentCoinsBalance() + tournamentBalance)
	if update then sendCoinBalanceUpdating(self, true) end
	return true
end

Question and possible bug.

This may work like this, I don't play RL so I don't know. But someone could confirm.

I want to know if there is any way or if the reward chest is cleaned from time to time? Since when it is full, the new bags are placed inside the others, making it uncomfortable to find your loot.

Desktop (please complete the following information):

  • OS: [e.g. Debian 9]
  • Version: [e.g. 9]

Hireling and cask wrapping upon leaving house

alguem poderia ajudar a resolver os 2 bugs que estão acontecendo por favor:

1 - hireling ao dar leavehouse permanece dentro da house.

2 - casks, qualquer cask com carga por exemplo 1000, ao ser usado 100 flasks ele vai para 900 cargas restantes, ao dar wrap e unwrap ele segue contando as cargas normalmente porém se vc usar as 999 cargas sem dar wrap no item e der leavehouse, ao pegar o item no mailbox e colocar na house novamente ele volta com a carga do ultimo wrap, ou seja, se o cara pega o cask com 1000 cargas e usa 999 e da leavehouse, ao colocar novamente na house ele volta com 1000 cargas. Basicamente a função que transforma ele parcel da store ta pegando a carga do último wrap e não a carga atual.

BUG: player:setBaseXpGain

READ BEFORE PROCEEDING: OUR SERVER IS UPDATED DAILY. IF POSSIBLE MAKE SURE TO UPDATE TO THE LATEST VERSION BEFORE REPORTING.

Describe the bug

File: data/scripts/creaturescripts/others/login.lua line 221
local doubleExp = false --Can change to true if you have double exp on the server
when active it works until first kill or gain experience

How to Reproduce?

Go to file data/scripts/creaturescripts/others/login.lua line 221, change doubleExp = true

Give us all details to reproduce the behavior:

  • Enter game
  • Check XP Gain Rate, double working
  • Gain xp killing monster
  • double turn off

Expected behavior

Double experience active after kill

Screenshots

2021-03-05 12_03_24-Window
2021-03-05 12_03_35-Window

Environment

  • OS (e.g. Windows): Windows 10 / Linux Ubuntu 20
  • OTServ Version (e.g. commit): head (2021-03-05)
  • Tibia Version 12.61

Additional context

File: data/events/scripts/player.lua line 747 -> self:setBaseXpGain(displayRate * 100)

function Player:onGainExperience(source, exp, rawExp)

this function ignore previous changes made with setBaseXpGain.

BUG: reward

image
even if I get it right every day, sometimes it resets

Problems with houses and sub-owners

READ BEFORE PROCEEDING: OUR SERVER IS UPDATED DAILY. IF POSSIBLE MAKE SURE TO UPDATE TO THE LATEST VERSION BEFORE REPORTING.

Describe the bug

Aleta som apparently is not really editing subowners. Chars in this list cant aleta grav, can't unwrap decoration and can't use potion kegs.

How to Reproduce?

Buy a house with one char, add another char to the subowner list (aleta som) and try to do any of those actions /\

Expected behavior

A clear and concise description of what you expected to happen.

Screenshots

If applicable, add screenshots to help explain your problem.

Environment

  • OS (e.g. Windows): N/A
  • OTServ Version (e.g. commit): 2 weeks ago
  • Tibia Version (e.g. 12.52): 12.61

Additional context

This post seems to contain code that helps fix this https://otland.net/threads/tibia-12-store-casks-and-kegs-not-working.266773/

BUG: Iron/Golden/Diamond Servants cellar

Describe the bug:
After clearing some slimes every next slime is spawning raid of iron/golden/diamond servants

How to Reproduce?
Clear cellar from slimes until the monsters spawn. Every next cleared slime would create another raid.

Give us all details to reproduce the behavior:
https://gyazo.com/693086041325a268cbc347c9d5a1cd3d

Expected behavior
Firstly It should work, the raid would spawn after clear whole cellar not only few slimes.
Secondly Slimes should not create another raids.

Environment:

  • OS: Linux (debian 10)
  • OTServ Version: otservbr-global (update from 21.02.2021)
  • Tibia Version: 12.61

BUG: Party Hunt List

Describe the bug

when you kill a monster the list of items appears only for those who killed, it does not show for all players in the group.

How to Reproduce?

create a group, kill an animal and check if the list of items will appear for everyone

Ubuntu 20.04

Last version

FEATURE: Quickloot 12.60

Will be good upgrade the quickloot to got all loots from each sqm when have more than 1 monster, like tibia global feature, looting 2+ loots from sqm.

Now the function only gots 1 loot per time, needing to move monster loot to got other loots.

BUG: PZ Hop malfunction

Bug description:
Whenever you hop between PZ and a non-PZ Area, creatures attack you instantly without any delay.

Reproducing:

  1. Lure a monster next to a PZ zone.
  2. Hop in and out of PZ.
  3. Get crushed.

Expected behavior:
Creatures should have a delay between attacks, and it shouldn't reset if you enter PZ.

Thank you in advance,
from the cutest mapper.

CONTENT: No logg out on death

READ BEFORE PROCEEDING: OUR SERVER IS UPDATED DAILY. IF POSSIBLE MAKE SURE TO UPDATE TO THE LATEST VERSION BEFORE REPORTING.

Describe the wrong or missing content

A clear and concise description of what content is wrong or missing
If you die you logg out, leave party etc.

Describe the correct content

A clear and concise description of what would be the correct content in place
You shouldn't log out on death, Like real tibia, You are still in party, you see how much exp you lost, you have ur analyzers after death

Links

If applicable, add links to help references of how the content

Screenshots

If applicable, add screenshots to help explain the content

Additional context

Add any other context about the problem here

Quests that need to be developed or revised

Quests that need to be developed where NPC's or scripts are present incompletely or nonexistently.
https://tibia.fandom.com/wiki/Quests
https://tibia.fandom.com/wiki/Quests/Version

Newbie Islands Quests:

Newbie Islands Exchange Quests:

Newbie Islands Addon Quests:

Mainland Quests:

Mainland Exchange Quests:

Mainland Addon Quests:

Mainland Outfit Quests:

BUG: Falcon coif

this item is not being possible to imbue ml
in this case only paladin players can imbue with ml

Notes
This is the only helmet that can be worn by Knights which can be imbued with up to Tier 2 Epiphany (Magic Level boost) imbuements. It's also one of the few helmets available for Paladins with this property.

luascript -> Game:createMonster and onSpawn don't register creaturescripts

When we create a monster with Game.createMonster("monsterName", position) the monster doesn't register events with "onSpawn"

function Monster:onSpawn(position)
	self:registerEvent("someRandomCreaturescripts") --reduction of damage received
end

my way to solve this problem is:
in luascripts.cpp add
#include "events.h"
and
extern Events* g_events;
and in function LuaScriptInterface::luaGameCreateMonster(lua_State* L)
after Creature* master = getCreature(L, 5);
add this g_events->eventMonsterOnSpawn(monster, position);

Can't sell stuff to Hirelings.

Describe the bug
Placed a hireling in a house, tried to sell stuff to him (Trade > Equipment) and when I hit the button to sell stuff, nothing happens.

To Reproduce
Steps to reproduce the behavior:

  1. Buy the Hireling and the Trader Skill
  2. Place it inside your house.
  3. Start the dialogs and say: "trade" and then "equipment"
  4. The trade window will open, go to the sell tab and try to sell any of the things he buys. nothing will happen, not even a console bug report. The Item appears in the list as an option, it recognizes that I have the amount in my backpack but it doesnt work.

Expected behavior
I'd like to be able to sell stuff.

Additional context
@jlcvp, @dudantas asked me to create this issue and let you know that this isn't working.

BUG: prey

prey are resetting ahead of time even with offline character
image

Hirelings dialogs not resetting properly.

Describe the bug
If I start the dialog with a hireling and select one of his trade options, whenever I try to use one of his other functions, like bank, switch his outfit or make him go back into his lamp, he opens the last trading option that I used.

To Reproduce
Steps to reproduce the behavior:

  1. Start the dialog
  2. Say Trade
  3. Say Tools
  4. Close the trading window.
  5. Say Outfit.
  6. The Tools trading option will open instead of his outfit selector.

Expected behavior
I should be able to select between his various skills no matter when.

BUG: exp party

I was testing the party system and I noticed that the party system is not calculating the bonuses correctly

wikia:
20% bonus, if the players are of the same vocation;
30% bonus if two different vocations are sharing experience;
60% bonus if three different vocations are sharing experience;
100% bonus if the four different vocations are sharing experience.

Lista de todos BOSS sem quests

Segue lista de todos os boss que não precisam de quests, não consegui analisar se já estão incluidos no projeto ou não, caso esteja, qualquer pessoa poderá reportar e vamos ticando.

Lista feita hoje, dia 11/06/2020.

OBS: cada position representa 1 monstro; quando me refiro a respawn, é um monstro naquele local.

Lisa Lever

Missing action on lever to fight with Boss Lisa.

Position: 33556, 31913, 7

Npc to say - hi - fight - yes

Bug Achievements

O Achievements não estão funcionando todos, exemplos de alguns:

a) Após entrar pela primeira vez no covil dos Deathlings, você ganhará o Achievement "Spectulation".
b) "Do Not Disturb" Obtido fechando janelas 100 vezes.
c) "Number of the beast" Obtido se você conseguir tirar o número "6" três vezes seguidas jogando um Dado.
Spoiler: https://www.tibiawiki.com.br/wiki/Achievements

No caso, para ver se todos funcionam, é muitosss mesmo para testar, esses citados são apenas alguns exemplos, mas caso tenha que testar um a um ai teremos que ver com mais tempo com a finalidade de mapear um a um que tem e não.

BUG: Elemental protection imbuiments not working

We are able to enchant our gear with Elemental Protection Imbuiment, like Dragon Hide (Fire resist), but the elemental % damage reduction is not applied to our character.

Any idea how to fix?

Pets floating and no disappear

Describe the bug
I seen that pets do not disappear when you go swimming and then theys continue to follow you all the time.

Also but it is not very important ... the pet should disappear the some areas for example missiones or quest as for example Lady Tenebris.

To Reproduce
Enter to zone from swimming

Expected behavior
In Cip this does not happen because the pet disappears when you enter the swimming area

Screenshots
image

Desktop (please complete the following information):

  • OS: ANY
  • Version: 10/12

Monsters and Summons can walk Non-Walkable items after set UniqueID

Describe the bug
if you set a uniqueid to an item which is not walkable but movable, the item become "walkable" for summons and monsters

click to see the gif

Steps to reproduce the behavior:

  1. create an object that is not walkable but is movable ex: areca palm,
  2. set a uniqueid
  3. create a summon or monster
  4. make the summon or monster walk over the item

Expected behavior

the summon/monster should dodge the item instead of walking over it

BUG: Exact container positions and order after relog

Auto-open system was introduced in opentibiabr/otservbr-global-archived#904, but it does not assign certain container to its action-bar, and does not open container to its previous size.

Example, before relog:
bp1
after relog:
bp2

On ciptibia it would open containers exactly how it was before relog.
All I have found is that its getting saved in characterdata sidebars.json file:

  • height/maximize:
"containersOptions": {
        "0": {
            "contentHeight": 150,
            "contentMaximized": true
        },
        "1": {
            "contentHeight": 75,
            "contentMaximized": true
        }
    },
  • sidebar assignment:
"sidebarWidgetsMangerOptions": {
        "leftSidebarCount": 1,
        "openWidgetsOrderPerSidebar": [
            [
                {
                    "instance": 1,
                    "type": "container"
                },
                {
                    "instance": 2,
                    "type": "container"
                }
            ],

BUG: crash server

I don't understand why this happens, I have the latest version, can anybody help me?

2021-02-18 23:24:12 - Thread 2 "tfs" received signal SIGSEGV, Segmentation fault.
2021-02-18 23:24:12 - [Switching to Thread 0x7fffef924700 (LWP 21844)]
2021-02-18 23:24:12 - 0x00007fffe8000730 in ?? ()
2021-02-18 23:24:12 -
2021-02-18 23:24:12 - Thread 4 (Thread 0x7fffee710700 (LWP 21846)):
2021-02-18 23:24:12 - #0 0x00007ffff61b3ad3 in futex_wait_cancelable (private=, expected=0, futex_word=0x555555a406ac <g_databaseTasks+140>) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
2021-02-18 23:24:12 - __ret = -512
2021-02-18 23:24:12 - oldtype = 0
2021-02-18 23:24:12 - err =
2021-02-18 23:24:12 - oldtype =
2021-02-18 23:24:12 - err =
2021-02-18 23:24:12 - __ret =
2021-02-18 23:24:12 - resultvar =
2021-02-18 23:24:12 - __arg4 =
2021-02-18 23:24:12 - __arg3 =
2021-02-18 23:24:12 - __arg2 =
2021-02-18 23:24:12 - __arg1 =
2021-02-18 23:24:12 - _a4 =
2021-02-18 23:24:12 - _a3 =
2021-02-18 23:24:12 - _a2 =
2021-02-18 23:24:12 - _a1 =
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#1 __pthread_cond_wait_common (abstime=0x0, mutex=0x555555a40658 <g_databaseTasks+56>, cond=0x555555a40680 <g_databaseTasks+96>) at pthread_cond_wait.c:502
2021-02-18 23:24:12 - spin = 0
2021-02-18 23:24:12 - buffer = {_routine = 0x7ffff61b3770 <_condvar_cleanup_waiting>, __arg = 0x7fffee70fd00, __canceltype = -671088608, __prev = 0x0}
2021-02-18 23:24:12 - cbuffer = {wseq = 111, cond = 0x555555a40680 <g_databaseTasks+96>, mutex = 0x555555a40658 <g_databaseTasks+56>, private = 0}
2021-02-18 23:24:12 - rt =
2021-02-18 23:24:12 - err =
2021-02-18 23:24:12 - g = 1
2021-02-18 23:24:12 - flags =
2021-02-18 23:24:12 - g1_start =
2021-02-18 23:24:12 - signals =
2021-02-18 23:24:12 - result = 0
2021-02-18 23:24:12 - wseq =
2021-02-18 23:24:12 - seq = 55
2021-02-18 23:24:12 - private =
2021-02-18 23:24:12 - maxspin =
2021-02-18 23:24:12 - err =
2021-02-18 23:24:12 - result =
2021-02-18 23:24:12 - wseq =
2021-02-18 23:24:12 - g =
2021-02-18 23:24:12 - seq =
2021-02-18 23:24:12 - flags =
2021-02-18 23:24:12 - private =
2021-02-18 23:24:12 - signals =
2021-02-18 23:24:12 - g1_start =
2021-02-18 23:24:12 - spin =
2021-02-18 23:24:12 - buffer =
2021-02-18 23:24:12 - cbuffer =
2021-02-18 23:24:12 - rt =
2021-02-18 23:24:12 - s =
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#2 __pthread_cond_wait (cond=0x555555a40680 <g_databaseTasks+96>, mutex=0x555555a40658 <g_databaseTasks+56>) at pthread_cond_wait.c:655
2021-02-18 23:24:12 - No locals.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#3 0x00007ffff5a238bc in std::condition_variable::wait(std::unique_lockstd::mutex&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#4 0x000055555572ec5e in DatabaseTasks::threadMain() ()
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#5 0x00007ffff5a296df in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#6 0x00007ffff61ad6db in start_thread (arg=0x7fffee710700) at pthread_create.c:463
2021-02-18 23:24:12 - pd = 0x7fffee710700
2021-02-18 23:24:12 - now =
2021-02-18 23:24:12 - unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737193772800, 1536770807315299821, 140737193770880, 0, 140737085998512, 140737212721760, -1536738981575131667, -1536755664037872147}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
2021-02-18 23:24:12 - not_first_call =
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#7 0x00007ffff7b0371f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
2021-02-18 23:24:12 - No locals.
2021-02-18 23:24:12 -
2021-02-18 23:24:12 - Thread 3 (Thread 0x7fffef123700 (LWP 21845)):
2021-02-18 23:24:12 - #0 0x00007ffff61b4065 in futex_abstimed_wait_cancelable (private=, abstime=0x7fffef122e40, expected=0, futex_word=0x555555a4056c <g_scheduler+108>) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
2021-02-18 23:24:12 - __ret = -516
2021-02-18 23:24:12 - oldtype = 0
2021-02-18 23:24:12 - err =
2021-02-18 23:24:12 - oldtype =
2021-02-18 23:24:12 - err =
2021-02-18 23:24:12 - __ret =
2021-02-18 23:24:12 - resultvar =
2021-02-18 23:24:12 - __arg6 =
2021-02-18 23:24:12 - __arg5 =
2021-02-18 23:24:12 - __arg4 =
2021-02-18 23:24:12 - __arg3 =
2021-02-18 23:24:12 - __arg2 =
2021-02-18 23:24:12 - __arg1 =
2021-02-18 23:24:12 - _a6 =
2021-02-18 23:24:12 - _a5 =
2021-02-18 23:24:12 - _a4 =
2021-02-18 23:24:12 - _a3 =
2021-02-18 23:24:12 - _a2 =
2021-02-18 23:24:12 - _a1 =
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#1 __pthread_cond_wait_common (abstime=0x7fffef122e40, mutex=0x555555a40518 <g_scheduler+24>, cond=0x555555a40540 <g_scheduler+64>) at pthread_cond_wait.c:539
2021-02-18 23:24:12 - spin = 0
2021-02-18 23:24:12 - buffer = {_routine = 0x7ffff61b3770 <_condvar_cleanup_waiting>, __arg = 0x7fffef122dc0, __canceltype = 1437033216, __prev = 0x0}
2021-02-18 23:24:12 - cbuffer = {wseq = 171505163, cond = 0x555555a40540 <g_scheduler+64>, mutex = 0x555555a40518 <g_scheduler+24>, private = 0}
2021-02-18 23:24:12 - err =
2021-02-18 23:24:12 - g = 1
2021-02-18 23:24:12 - flags =
2021-02-18 23:24:12 - g1_start =
2021-02-18 23:24:12 - maxspin = 0
2021-02-18 23:24:12 - signals =
2021-02-18 23:24:12 - result = 0
2021-02-18 23:24:12 - wseq =
2021-02-18 23:24:12 - seq = 85752581
2021-02-18 23:24:12 - private =
2021-02-18 23:24:12 - maxspin =
2021-02-18 23:24:12 - err =
2021-02-18 23:24:12 - result =
2021-02-18 23:24:12 - wseq =
2021-02-18 23:24:12 - g =
2021-02-18 23:24:12 - seq =
2021-02-18 23:24:12 - flags =
2021-02-18 23:24:12 - private =
2021-02-18 23:24:12 - signals =
2021-02-18 23:24:12 - g1_start =
2021-02-18 23:24:12 - spin =
2021-02-18 23:24:12 - buffer =
2021-02-18 23:24:12 - cbuffer =
2021-02-18 23:24:12 - rt =
2021-02-18 23:24:12 - s =
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#2 __pthread_cond_timedwait (cond=0x555555a40540 <g_scheduler+64>, mutex=0x555555a40518 <g_scheduler+24>, abstime=0x7fffef122e40) at pthread_cond_wait.c:667
2021-02-18 23:24:12 - No locals.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#3 0x000055555566f7d7 in Scheduler::threadMain() ()
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#4 0x00007ffff5a296df in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#5 0x00007ffff61ad6db in start_thread (arg=0x7fffef123700) at pthread_create.c:463
2021-02-18 23:24:12 - pd = 0x7fffef123700
2021-02-18 23:24:12 - now =
2021-02-18 23:24:12 - unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737204336384, 1536770807315299821, 140737204334464, 0, 93824997617520, 140737488346160, -1536735946643866131, -1536755664037872147}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
2021-02-18 23:24:12 - not_first_call =
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#6 0x00007ffff7b0371f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
2021-02-18 23:24:12 - No locals.
2021-02-18 23:24:12 -
2021-02-18 23:24:12 - Thread 2 (Thread 0x7fffef924700 (LWP 21844)):
2021-02-18 23:24:12 - #0 0x00007fffe8000730 in ?? ()
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#1 0x000055555562b684 in LuaScriptInterface::luaCreatureGetName(lua_State*) ()
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#2 0x00007ffff71b9e37 in ?? () from /usr/lib/x86_64-linux-gnu/libluajit-5.1.so.2
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#3 0x00007ffff720727c in lua_pcall () from /usr/lib/x86_64-linux-gnu/libluajit-5.1.so.2
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#4 0x000055555577e0f8 in LuaScriptInterface::protectedCall(lua_State*, int, int) ()
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#5 0x00005555557834ef in LuaScriptInterface::callFunction(int) ()
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#6 0x00005555555fe5d0 in LuaEnvironment::executeTimerEvent(unsigned int) ()
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#7 0x00005555556afebf in Dispatcher::threadMain() ()
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#8 0x00007ffff5a296df in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
2021-02-18 23:24:12 - No symbol table info available.
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#9 0x00007ffff61ad6db in start_thread (arg=0x7fffef924700) at pthread_create.c:463
2021-02-18 23:24:12 - pd = 0x7fffef924700
2021-02-18 23:24:12 - now =
2021-02-18 23:24:12 - unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737212729088, 1536770807315299821, 140737212727168, 0, 93824997617120, 140737488346160, -1536734847669109267, -1536755664037872147}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
2021-02-18 23:24:12 - not_first_call =
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#10 0x00007ffff7b0371f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
2021-02-18 23:24:12 - No locals.
2021-02-18 23:24:12 -
2021-02-18 23:24:12 - Thread 1 (Thread 0x7ffff7fd3780 (LWP 21840)):
2021-02-18 23:24:12 - #0 0x00007ffff7b03a47 in epoll_wait (epfd=4, events=0x7fffffffde70, maxevents=128, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
2021-02-18 23:24:12 - resultvar = 18446744073709551612
2021-02-18 23:24:12 - sc_cancel_oldtype = 0
2021-02-18 23:24:12 - sc_ret =
2021-02-18 23:24:12 - opentibiabr/otservbr-global-archived#1 0x000055555559be36 in main ()
2021-02-18 23:24:12 - No symbol table info available.

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.