So, my idea:
Map changes. As you know, Map class - is Singleton class (C++) and all game world based on this (CreateTile, PlaceCreature, and etc etc etc.) But that system is wrong. RL Tibia have a non-singleton map class, and CipSoft servers can create instanced maps for dedicated user/group for quests, events, something else. Yep, here alot of work should be done, and re-write TFS for it - very hard task. But all of that possible to make, and can provide the great features in future.
Features:
1) Possible to create map instances.
a) for quests & dungeons & "scene" - locations for player or paty.
b) for procedure-generated maps with Random.Seed
c) something else?
2) Multiple worlds(maps) support in one server. (allow usage a 2-3-10-1000 otbm files for one server)
Maybe for first look - number of features not great, but, i think all of that can be useful in many variable ways. Possible way to create that - re-write Singleton class, re-write all functions with new params like that:
Tile* Map::getTile(int32_t x, int32_t y, int32_t z)
Tile* Map::getTile(int32_t mapID, int32_t x, int32_t y, int32_t z)
Make World.otbm (from config.lua) as MapID = 1 (them sould be defined by default) and do other things.
So, what do you think about that idea? =)
Map changes. As you know, Map class - is Singleton class (C++) and all game world based on this (CreateTile, PlaceCreature, and etc etc etc.) But that system is wrong. RL Tibia have a non-singleton map class, and CipSoft servers can create instanced maps for dedicated user/group for quests, events, something else. Yep, here alot of work should be done, and re-write TFS for it - very hard task. But all of that possible to make, and can provide the great features in future.
Features:
1) Possible to create map instances.
a) for quests & dungeons & "scene" - locations for player or paty.
b) for procedure-generated maps with Random.Seed
c) something else?
2) Multiple worlds(maps) support in one server. (allow usage a 2-3-10-1000 otbm files for one server)
Maybe for first look - number of features not great, but, i think all of that can be useful in many variable ways. Possible way to create that - re-write Singleton class, re-write all functions with new params like that:
Tile* Map::getTile(int32_t mapID, int32_t x, int32_t y, int32_t z)
Make World.otbm (from config.lua) as MapID = 1 (them sould be defined by default) and do other things.
So, what do you think about that idea? =)