Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
Hi, you may know my other downgrade to protocol version 8.6, I noticed there is also no 7.6-7.72 version out here, so here I come!
This downgrade supports tibia 7.72, I'm not entirely sure if it does 7.6 but it should.
As always datapack is pretty much default and isnt downgraded. Only items are updated to 7.72 version (credits to othire).
These downgraded servers based on tfs downgraded by @Nekiro 1.x should be attached on Otland GitHub, in order to make PR, report issues or simply improve the code, since otland haven't made it yet and only has support for 10.90 or latest pre 11 protocol.
> Map size: 65000x65000.
[Fatal - Map::loadMap] [x:31982, y:31556, z:7] Failed to load item 2148.
> ERROR: Failed to load map
>> No services running. The server is NOT online.
OBS: IM USING OTB 3 I THINK
i got this error the item is gold coin , my map works perfectly on tfs 1.2 i migrated action/movement/world and nothing else something should be wrong with the distribution as i have told that im using my file son tfs 1.2 without problems
what it could be? could u check if there's something wrong @Nekiro
> Map size: 65000x65000.
[Fatal - Map::loadMap] [x:31982, y:31556, z:7] Failed to load item 2148.
> ERROR: Failed to load map
>> No services running. The server is NOT online.
OBS: IM USING OTB 3 I THINK
i got this error the item is gold coin , my map works perfectly on tfs 1.2 i migrated action/movement/world and nothing else something should be wrong with the distribution as i have told that im using my file son tfs 1.2 without problems
what it could be? could u check if there's something wrong @Nekiro
Well, loading maps from rme is very problematic same with items.otb, there are so many versions out there, I had problems to load my rme map too, because versions differ a lot, you can try loading my map (from the repo) into rme and look the properties to see its version, so you are sure which one server loads.
Regarding your error, you might have some attributes that tfs 1.3 does not have which conflicts and makes the item fail to load which then returns whole loading map process, you can remove the return which will continue to load the map which I dont recommend or convert your map somehow.
Thanks, your problem is a warning for unused variable, I corrected that code already, update your code to the latest commit.
Well, loading maps from rme is very problematic same with items.otb, there are so many versions out there, I had problems to load my rme map too, because versions differ a lot, you can try loading my map (from the repo) into rme and look the properties to see its version, so you are sure which one server loads.
Regarding your error, you might have some attributes that tfs 1.3 does not have which conflicts and makes the item fail to load which then returns whole loading map process, you can remove the return which will continue to load the map which I dont recommend or convert your map somehow.
something should be wrong, i tried adding a missing atribute at the id 2148 which was
Code:
plural="gold coins">
also
i changed this
Code:
if (majorVersion == 0xFFFFFFFF) {
std::cout << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl;
/*} else if (majorVersion != 3) {
std::cout << "Old version detected, a newer version of items.otb is required." << std::endl;
return false;*/
} else if (minorVersion < CLIENT_VERSION_760) {
std::cout << "A newer version of items.otb is required." << std::endl;
return false;
}
to this
Code:
/*if (majorVersion == 0xFFFFFFFF) {
std::cout << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl;
} else if (majorVersion != 3) {
std::cout << "Old version detected, a newer version of items.otb is required." << std::endl;
return false;
} else if (minorVersion < CLIENT_VERSION_760) {
std::cout << "A newer version of items.otb is required." << std::endl;
return false;
}*/
i still can't open my map on this distribution although i can open this map on tfs 0.4 otx2 and otx3, othire
something should be wrong, i tried adding a missing atribute at the id 2148 which was
Code:
plural="gold coins">
also
i changed this
Code:
if (majorVersion == 0xFFFFFFFF) {
std::cout << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl;
/*} else if (majorVersion != 3) {
std::cout << "Old version detected, a newer version of items.otb is required." << std::endl;
return false;*/
} else if (minorVersion < CLIENT_VERSION_760) {
std::cout << "A newer version of items.otb is required." << std::endl;
return false;
}
to this
Code:
/*if (majorVersion == 0xFFFFFFFF) {
std::cout << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl;
} else if (majorVersion != 3) {
std::cout << "Old version detected, a newer version of items.otb is required." << std::endl;
return false;
} else if (minorVersion < CLIENT_VERSION_760) {
std::cout << "A newer version of items.otb is required." << std::endl;
return false;
}*/
i still can't open my map on this distribution although i can open this map on tfs 0.4 otx2 and otx3, othire
Thats problem with your map, not the server. Tfs 1.3 is very different when it comes to item attributes and thats not what I was talking about what you edited. You need to find load map method in map.cpp. You can do as Olddies suggested, that should solve your problems.
Thats problem with your map, not the server. Tfs 1.3 is very different when it comes to item attributes and thats not what I was talking about what you edited. You need to find load map method in map.cpp. You can do as Olddies suggested, that should solve your problems.
yes otx3 why it wont work properly? if it already did on tfs0.4 otx2 othire and otx3 based on tfs 1.2
what is diferent? what needs to be changed can you point it out to me please man? @Olddies
bool Map::loadMap(const std::string& identifier, bool loadHouses)
{
IOMap loader;
if (!loader.loadMap(this, identifier)) {
std::cout << "[Fatal - Map::loadMap] " << loader.getLastErrorString() << std::endl;
return false;
}
if (!IOMap::loadSpawns(this)) {
std::cout << "[Warning - Map::loadMap] Failed to load spawn data." << std::endl;
}
if (loadHouses) {
if (!IOMap::loadHouses(this)) {
std::cout << "[Warning - Map::loadMap] Failed to load house data." << std::endl;
}
IOMapSerialize::loadHouseInfo();
IOMapSerialize::loadHouseItems(this);
}
return true;
}
i will try to do the olddies method again
Post automatically merged:
yes otx3 why it wont work properly? if it already did on tfs0.4 otx2 othire and otx3 based on tfs 1.2
what is diferent? what needs to be changed can you point it out to me please man? @Olddies
Seems to be that the map that comes with this datapack is 830 -820
that's why my map wont open because the server and my map version and otb version doesnt match since my map is otb version 3 protocols 7.7 and 7.6 uses that otbm version isn't it?
the forgotten.otbm is 8.30 so server is loading that otb version which is 5 o 6 and not the otbm version 3 which uses the protocol 7.6 - 7.7
that rme uses version 2 that its for 7.55 and the server is loading otbm 820 * the forgotten.otbm that comes with the0distribution is version otbm 5 or higher anyway at itemloader.h is not apprearing nothing relaterd to version 8.20
really weird
this is another code part related to this at items.cpp
Code:
if (majorVersion == 0xFFFFFFFF) {
std::cout << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl;
/*} else if (majorVersion != 3) {
std::cout << "Old version detected, a newer version of items.otb is required." << std::endl;
return false;*/
} else if (minorVersion < CLIENT_VERSION_760) {
std::cout << "A newer version of items.otb is required." << std::endl;
return false;
}
and this at iomap.cpp
Code:
bool IOMap::loadMap(Map* map, const std::string& fileName)
{
int64_t start = OTSYS_TIME();
OTB::Loader loader{fileName, OTB::Identifier{{'O', 'T', 'B', 'M'}}};
auto& root = loader.parseTree();
PropStream propStream;
if (!loader.getProps(root, propStream)) {
setLastErrorString("Could not read root property.");
return false;
}
OTBM_root_header root_header;
if (!propStream.read(root_header)) {
setLastErrorString("Could not read header.");
return false;
}
uint32_t headerVersion = root_header.version;
/*
if (headerVersion == 0) {
//In otbm version 1 the count variable after splashes/fluidcontainers and stackables
//are saved as attributes instead, this solves alot of problems with items
//that is changed (stackable/charges/fluidcontainer/splash) during an update.
setLastErrorString("This map need to be upgraded by using the latest map editor version to be able to load correctly.");
return false;
}
WARNING: I had to comment that to make the server load my 7.6 rme generated map, read the note ^.
*/
if (headerVersion > 2) {
setLastErrorString("Unknown OTBM version detected.");
return false;
}
/*
if (root_header.majorVersionItems < 3) {
setLastErrorString("This map need to be upgraded by using the latest map editor version to be able to load correctly.");
return false;
}
if (root_header.majorVersionItems > Item::items.majorVersion) {
setLastErrorString("The map was saved with a different items.otb version, an upgraded items.otb is required.");
return false;
}
*/
if (root_header.minorVersionItems < CLIENT_VERSION_760) {
setLastErrorString("This map needs to be updated.");
return false;
}
if (root_header.minorVersionItems > Item::items.minorVersion) {
std::cout << "[Warning - IOMap::loadMap] This map needs an updated items.otb." << std::endl;
}
std::cout << "> Map size: " << root_header.width << "x" << root_header.height << '.' << std::endl;
map->width = root_header.width;
map->height = root_header.height;
if (root.children.size() != 1 || root.children[0].type != OTBM_MAP_DATA) {
setLastErrorString("Could not read data node.");
return false;
}
auto& mapNode = root.children[0];
if (!parseMapDataAttributes(loader, mapNode, *map, fileName)) {
return false;
}
for (auto& mapDataNode : mapNode.children) {
if (mapDataNode.type == OTBM_TILE_AREA) {
if (!parseTileArea(loader, mapDataNode, *map)) {
return false;
}
} else if (mapDataNode.type == OTBM_TOWNS) {
if (!parseTowns(loader, mapDataNode, *map)) {
return false;
}
} else if (mapDataNode.type == OTBM_WAYPOINTS && headerVersion > 1) {
if (!parseWaypoints(loader, mapDataNode, *map)) {
return false;
}
} else {
setLastErrorString("Unknown map node.");
return false;
}
}
std::cout << "> Map loading time: " << (OTSYS_TIME() - start) / (1000.) << " seconds." << std::endl;
return true;
}
i cant find nothing more related to
Code:
CLIENT_VERSION_760
ok i've noticed that all the items that has attribute plural like
is causing the troubles on map first io deleted the item 2148 (which was gold coins)
[Fatal - Map::loadMap] [x:31983, y:31556, z:7] Failed to load item 2666. now im getting issue with meat item,
i got the attribute plural on my remere and on my server
only on this distribution is causing troubles
so. which would the attribute for these kind of items? because the trouble it's obviuosly in there @Nekiro
if i put gold coins or item with the flag or attribute plural on your map , the ones that comes with the distribution and is opening it wont open neither, because of the item with this flag on the map
would you mind to check this or share your remere?
Post automatically merged:
in sources some atributtes comes as plural and other simply with plural name , which one is correct?
that rme uses version 2 that its for 7.55 and the server is loading otbm 820 * the forgotten.otbm that comes with the0distribution is version otbm 5 or higher anyway at itemloader.h is not apprearing nothing relaterd to version 8.20
really weird
this is another code part related to this at items.cpp
Code:
if (majorVersion == 0xFFFFFFFF) {
std::cout << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl;
/*} else if (majorVersion != 3) {
std::cout << "Old version detected, a newer version of items.otb is required." << std::endl;
return false;*/
} else if (minorVersion < CLIENT_VERSION_760) {
std::cout << "A newer version of items.otb is required." << std::endl;
return false;
}
and this at iomap.cpp
Code:
bool IOMap::loadMap(Map* map, const std::string& fileName)
{
int64_t start = OTSYS_TIME();
OTB::Loader loader{fileName, OTB::Identifier{{'O', 'T', 'B', 'M'}}};
auto& root = loader.parseTree();
PropStream propStream;
if (!loader.getProps(root, propStream)) {
setLastErrorString("Could not read root property.");
return false;
}
OTBM_root_header root_header;
if (!propStream.read(root_header)) {
setLastErrorString("Could not read header.");
return false;
}
uint32_t headerVersion = root_header.version;
/*
if (headerVersion == 0) {
//In otbm version 1 the count variable after splashes/fluidcontainers and stackables
//are saved as attributes instead, this solves alot of problems with items
//that is changed (stackable/charges/fluidcontainer/splash) during an update.
setLastErrorString("This map need to be upgraded by using the latest map editor version to be able to load correctly.");
return false;
}
WARNING: I had to comment that to make the server load my 7.6 rme generated map, read the note ^.
*/
if (headerVersion > 2) {
setLastErrorString("Unknown OTBM version detected.");
return false;
}
/*
if (root_header.majorVersionItems < 3) {
setLastErrorString("This map need to be upgraded by using the latest map editor version to be able to load correctly.");
return false;
}
if (root_header.majorVersionItems > Item::items.majorVersion) {
setLastErrorString("The map was saved with a different items.otb version, an upgraded items.otb is required.");
return false;
}
*/
if (root_header.minorVersionItems < CLIENT_VERSION_760) {
setLastErrorString("This map needs to be updated.");
return false;
}
if (root_header.minorVersionItems > Item::items.minorVersion) {
std::cout << "[Warning - IOMap::loadMap] This map needs an updated items.otb." << std::endl;
}
std::cout << "> Map size: " << root_header.width << "x" << root_header.height << '.' << std::endl;
map->width = root_header.width;
map->height = root_header.height;
if (root.children.size() != 1 || root.children[0].type != OTBM_MAP_DATA) {
setLastErrorString("Could not read data node.");
return false;
}
auto& mapNode = root.children[0];
if (!parseMapDataAttributes(loader, mapNode, *map, fileName)) {
return false;
}
for (auto& mapDataNode : mapNode.children) {
if (mapDataNode.type == OTBM_TILE_AREA) {
if (!parseTileArea(loader, mapDataNode, *map)) {
return false;
}
} else if (mapDataNode.type == OTBM_TOWNS) {
if (!parseTowns(loader, mapDataNode, *map)) {
return false;
}
} else if (mapDataNode.type == OTBM_WAYPOINTS && headerVersion > 1) {
if (!parseWaypoints(loader, mapDataNode, *map)) {
return false;
}
} else {
setLastErrorString("Unknown map node.");
return false;
}
}
std::cout << "> Map loading time: " << (OTSYS_TIME() - start) / (1000.) << " seconds." << std::endl;
return true;
}
i cant find nothing more related to
Code:
CLIENT_VERSION_760
ok i've noticed that all the items that has attribute plural like
is causing the troubles on map first io deleted the item 2148 (which was gold coins)
[Fatal - Map::loadMap] [x:31983, y:31556, z:7] Failed to load item 2666. now im getting issue with meat item,
i got the attribute plural on my remere and on my server
only on this distribution is causing troubles
so. which would the attribute for these kind of items? because the trouble it's obviuosly in there @Nekiro
if i put gold coins or item with the flag or attribute plural on your map , the ones that comes with the distribution and is opening it wont open neither, because of the item with this flag on the map
would you mind to check this or share your remere?
Post automatically merged:
in sources some atributtes comes as plural and other simply with plural name , which one is correct?
I used latest RME from github, nothing was changed, used the lowest possible protocol, it is 7.6 I think? Just removed forgotten map cause it was redundant, I forgot to delete it. About your attribute issues. About the plural somethings I still believe your map is old thus has differents structure and tfs 1.3 fails to load it.
I used latest RME from github, nothing was changed, used the lowest possible protocol, it is 7.6 I think? Just removed forgotten map cause it was redundant, I forgot to delete it. About your attribute issues. About the plural somethings I still believe your map is old thus has differents structure and tfs 1.3 fails to load it.
the problem appears in your default map with the name world.otbm
it doesn't have problem to load and save it, but if i add for example any item with these ids it will fail to load
this happens on your map and mine thee items has the atttribute plural , gold coins , fish , food etc
the server will load to fail your map or mine. it doesn't matter ( im using your items.otb and xml and im also using the latest remeres map editor which is 3.6.1 right?
PS:my map is not old at all i have loaded it into tfs 1.2 (otx3) realera map( tfs1.2) othire , otx2 and many other dfistributions.
PS2: so then , did you noticed that there was this issue ?
Post automatically merged:
i found issue with acc creation with latest znoteacc
Code:
string(51) "SELECT `id` FROM `accounts` WHERE `name`='xxxxx';"
(query - SQL error)
Type: select_single (select single row from database)
Unknown column 'name' in 'where clause'
and many errors with the monster that comeswith the datapack