E ai galerinha, estou afastado do Tibia após o encerramento das atividades na "chaitosoft" porém nestas férias estou com um projeto de OTServer 8.60 e me deparei com alguns pequenos problemas básicos referentes a revisão 3777 do executável theforgottenserver . Isto consequentemente fez com que fosse necessário efetuar pequenas correção de alguns "maus funcionamentos", lembrando que estes são alguns dos poucos erros que encontrei e estarei atualizando esta source sempre que possível além de estar aberto a sugestões para adição de alguma funcionalidade ou correção.
Alterações Efetuadas
Não irei descrever muito sobre o que foi feito pois pessoas poderão se utilizar disso para trapacear nos servidores.
- Problema: Estouro de memória (house.cpp); - Problema: Estouro de memória (mailbox.cpp); - Função: Sistema de Cast / Live; - Edição: Remoção de "Salt" ao criar contas (permite usar simultaneamente ACC MANAGER & SITE; - Problema: Estouro de memória (game.cpp); - Edição: Sincronia entre CAST ~ ACC MANAGER;
- Edição: Aceitar todas as versões de "items.otb"; - Problema: Compilação em Ubunto 12.04 - 64x bits;
Sistema Operacional Recomendado
Ubunto versões menores ou igual ao 12.04 com arquitetura 64x bits;
Galera irei disponibilizar a distro que uso TFS 0.4 (rev 3777) que retirei o Salt, ele causa um problema onde só é possível criar acc pelo site, como resolvi agora também é possível pelo tibia "1/1", ela acompanha:
System War
Ant-Divulg (Direto na distro)
No-OTBM (Faz aceitar qualquer items.otbm)
No-Salt (que citei a cima)
Caso precise do config.lua. Caso use outra versão da distro e irá usar o mesmo config.lua Mude: worldType para "open", adicione em mapName ao final do nome ".otbm" e ela só aceita criptografia sha1 em "encryptionType" mude para "sha1", visando sua melhor proteção de seus dados.
-- The Forgotten Server Config
-- Account manager
accountManager = true
namelockManager = true
newPlayerChooseVoc = false
newPlayerSpawnPosX = 95
newPlayerSpawnPosY = 117
newPlayerSpawnPosZ = 7
newPlayerTownId = 1
newPlayerLevel = 1
newPlayerMagicLevel = 0
generateAccountNumber = false
-- Unjustified kills
-- NOTE: *Banishment and *BlackSkull variables are >summed up<
-- (dailyFragsToRedSkull + dailyFragsToBanishment) with their
-- *RedSkull equivalents.
-- Auto banishing works only if useBlackSkull set to negative.
-- advancedFragList is not advised if you use huge frags
-- requirements.
useFragHandler = true
redSkullLength = 30 * 24 * 60 * 60
blackSkullLength = 45 * 24 * 60 * 60
dailyFragsToRedSkull = 3
weeklyFragsToRedSkull = 5
monthlyFragsToRedSkull = 10
dailyFragsToBlackSkull = dailyFragsToRedSkull
weeklyFragsToBlackSkull = weeklyFragsToRedSkull
monthlyFragsToBlackSkull = monthlyFragsToRedSkull
dailyFragsToBanishment = dailyFragsToRedSkull
weeklyFragsToBanishment = weeklyFragsToRedSkull
monthlyFragsToBanishment = monthlyFragsToRedSkull
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 0
useBlackSkull = true
advancedFragList = false
-- Banishments
-- violationNameReportActionType 1 = just a report, 2 = name lock, 3 = player banishment
-- killsBanLength works only if useBlackSkull option is disabled.
notationsToBan = 3
warningsToFinalBan = 4
warningsToDeletion = 5
banLength = 7 * 24 * 60 * 60
killsBanLength = 7 * 24 * 60 * 60
finalBanLength = 30 * 24 * 60 * 60
ipBanishmentLength = 1 * 24 * 60 * 60
broadcastBanishments = true
maxViolationCommentSize = 200
violationNameReportActionType = 2
autoBanishUnknownBytes = false
-- Battle
-- NOTE: showHealingDamageForMonsters inheritates from showHealingDamage.
-- loginProtectionPeriod is the famous Tibia anti-magebomb system.
-- deathLostPercent set to nil enables manual mode.
worldType = "open"
protectionLevel = 1
pvpTileIgnoreLevelAndVocationProtection = true
pzLocked = 60 * 1000
huntingDuration = 60 * 1000
criticalHitChance = 7
criticalHitMultiplier = 1
displayCriticalHitNotify = false
removeWeaponAmmunition = true
removeWeaponCharges = true
removeRuneCharges = true
whiteSkullTime = 15 * 60 * 1000
noDamageToSameLookfeet = false
showHealingDamage = false
showHealingDamageForMonsters = false
fieldOwnershipDuration = 5 * 1000
stopAttackingAtExit = false
loginProtectionPeriod = 10 * 1000
deathLostPercent = 10
stairhopDelay = 2 * 1000
pushCreatureDelay = 2 * 1000
deathContainerId = 1987
gainExperienceColor = 215
addManaSpentInPvPZone = true
squareColor = 0
allowFightback = true
fistBaseAttack = 7
-- Connection config
worldId = 0
ip = "127.0.0.1"
loginPort = 7171
gamePort = 7172
loginTries = 10
retryTimeout = 5 * 1000
loginTimeout = 60 * 1000
maxPlayers = 1000
motd = "Welcome to the Forgotten Server!"
displayOnOrOffAtCharlist = false
onePlayerOnlinePerAccount = true
allowClones = false
serverName = "Forgotten"
loginMessage = "Welcome to the Forgotten Server!"
statusTimeout = 5 * 60 * 1000
replaceKickOnLogin = true
forceSlowConnectionsToDisconnect = false
loginOnlyWithLoginServer = false
premiumPlayerSkipWaitList = false
-- Database
-- NOTE: sqlFile is used only by sqlite database, and sqlKeepAlive by mysql database.
-- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value.
-- encryptionType can be plain, md5, sha1, sha256, sha512 or vahash.
sqlType = "sqlite"
sqlHost = "localhost"
sqlPort = 3306
sqlUser = "root"
sqlPass = ""
sqlDatabase = "theforgottenserver"
sqlFile = "theforgottenserver.s3db"
sqlKeepAlive = 0
mysqlReadTimeout = 10
mysqlWriteTimeout = 10
encryptionType = "sha1"
-- Deathlist
deathListEnabled = true
deathListRequiredTime = 1 * 60 * 1000
deathAssistCount = 19
maxDeathRecords = 5
-- Guilds
ingameGuildManagement = true
levelToFormGuild = 8
premiumDaysToFormGuild = 0
guildNameMinLength = 4
guildNameMaxLength = 20
-- Highscores
highscoreDisplayPlayers = 15
updateHighscoresAfterMinutes = 60
-- Houses
buyableAndSellableHouses = true
houseNeedPremium = true
bedsRequirePremium = true
levelToBuyHouse = 1
housesPerAccount = 0
houseRentAsPrice = false
housePriceAsRent = false
housePriceEachSquare = 1000
houseRentPeriod = "never"
houseCleanOld = 0
guildHalls = false
-- Item usage
timeBetweenActions = 200
timeBetweenExActions = 1000
hotkeyAimbotEnabled = true
-- Map
-- NOTE: storeTrash costs more memory, but will perform alot faster cleaning.
mapName = "forgotten.otbm.gz"
mapAuthor = "Komic"
randomizeTiles = true
storeTrash = true
cleanProtectedZones = true
mailboxDisabledTowns = ""
-- Process
-- NOTE: defaultPriority works only on Windows and niceLevel on *nix
-- niceLevel works only on *nix systems
-- coresUsed are seperated by comma cores ids used by server process,
-- default is -1, so it stays untouched (automaticaly assigned by OS).
defaultPriority = "high"
niceLevel = 5
coresUsed = "-1"
-- Startup
startupDatabaseOptimization = true
updatePremiumStateAtStartup = true
confirmOutdatedVersion = false
-- Spells
formulaLevel = 5.0
formulaMagic = 1.0
bufferMutedOnSpellFailure = false
spellNameInsteadOfWords = false
emoteSpells = false
-- Outfits
allowChangeOutfit = true
allowChangeColors = true
allowChangeAddons = true
disableOutfitsForPrivilegedPlayers = false
addonsOnlyPremium = true
-- Miscellaneous
-- NOTE: promptExceptionTracerErrorBox works only with precompiled support feature,
-- called "exception tracer" (__EXCEPTION_TRACER__ flag).
dataDirectory = "data/"
logsDirectory = "data/logs/"
bankSystem = true
displaySkillLevelOnAdvance = false
promptExceptionTracerErrorBox = true
maximumDoorLevel = 500
maxMessageBuffer = 4
-- VIP list
separateVipListPerCharacter = false
vipListDefaultLimit = 20
vipListDefaultPremiumLimit = 100
-- Saving-related
-- useHouseDataStorage usage may be found at README.
saveGlobalStorage = true
useHouseDataStorage = false
storePlayerDirection = false
-- Loot
-- monsterLootMessage 0 to disable, 1 - only party, 2 - only player, 3 - party or player (like Tibia's)
checkCorpseOwner = true
monsterLootMessage = 3
monsterLootMessageType = 25
-- Ghost mode
ghostModeInvisibleEffect = false
ghostModeSpellEffects = true
-- Limits
idleWarningTime = 14 * 60 * 1000
idleKickTime = 15 * 60 * 1000
reportsExpirationAfterReads = 1
playerQueryDeepness = 2
tileLimit = 0
protectionTileLimit = 0
houseTileLimit = 0
-- Premium-related
freePremium = false
premiumForPromotion = true
-- Blessings
-- NOTE: blessingReduction* regards items/containers loss.
-- eachBlessReduction is how much each bless reduces the experience/magic/skills loss.
blessings = true
blessingOnlyPremium = true
blessingReductionBase = 30
blessingReductionDecrement = 5
eachBlessReduction = 8
-- Rates
-- NOTE: experienceStages configuration is located in data/XML/stages.xml.
-- rateExperienceFromPlayers 0 to disable.
experienceStages = false
rateExperience = 5.0
rateExperienceFromPlayers = 0
rateSkill = 3.0
rateMagic = 3.0
rateLoot = 2.0
rateSpawn = 1
-- Monster rates
rateMonsterHealth = 1.0
rateMonsterMana = 1.0
rateMonsterAttack = 1.0
rateMonsterDefense = 1.0
-- Experience from players
-- NOTE: min~Threshold* set to 0 will disable the minimum threshold:
-- player will gain experience from every lower leveled player.
-- max~Threshold* set to 0 will disable the maximum threshold:
-- player will gain experience from every higher leveled player.
minLevelThresholdForKilledPlayer = 0.9
maxLevelThresholdForKilledPlayer = 1.1
-- Stamina
-- NOTE: Stamina is stored in miliseconds, so seconds are multiplied by 1000.
-- rateStaminaHits multiplies every hit done a creature, which are later
-- multiplied by player attack speed.
-- rateStaminaGain is multiplying every second of logged out time, eg:
-- 60 * 1000 / 3 = 20 seconds, what gives 1 stamina minute for 3 being logged off.
-- rateStaminaThresholdGain is dividing in case the normal gain (that is
-- multiplied by rateStaminaGain, btw.) passed above threshold, eg:
-- 60 * 1000 / 3 = 20 / 4 = 5 seconds (3 * 4 = 12 minutes for 1 stamina minute).
-- staminaRatingLimit* is in minutes.
rateStaminaLoss = 1
rateStaminaGain = 3
rateStaminaThresholdGain = 12
staminaRatingLimitTop = 40 * 60
staminaRatingLimitBottom = 14 * 60
staminaLootLimit = 14 * 60
rateStaminaAboveNormal = 1.5
rateStaminaUnderNormal = 0.5
staminaThresholdOnlyPremium = true
-- Party
-- NOTE: experienceShareLevelDifference is float number.
-- experienceShareLevelDifference is highestLevel * value
experienceShareRadiusX = 30
experienceShareRadiusY = 30
experienceShareRadiusZ = 1
experienceShareLevelDifference = 2 / 3
extraPartyExperienceLimit = 20
extraPartyExperiencePercent = 5
experienceShareActivity = 2 * 60 * 1000
-- Global save
-- NOTE: globalSaveHour means like 03:00, not that it will save every 3 hours,
-- if you want such a system please check out data/globalevents/globalevents.xml.
globalSaveEnabled = false
globalSaveHour = 8
globalSaveMinute = 0
shutdownAtGlobalSave = true
cleanMapAtGlobalSave = false
-- Spawns
deSpawnRange = 2
deSpawnRadius = 50
-- Summons
maxPlayerSummons = 2
teleportAllSummons = false
teleportPlayerSummons = false
-- Status
statusPort = 7171
ownerName = ""
ownerEmail = "@otland.net"
url = "http://otland.net/"
location = "Europe"
displayGamemastersWithOnlineCommand = false
-- Logs
-- NOTE: This kind of logging does not work in GUI version.
-- For such, please compile the software with __GUI_LOGS__ flag.
displayPlayersLogging = true
prefixChannelLogs = ""
runFile = ""
outputLog = ""
truncateLogsOnStartup = false
-- Manager
-- NOTE: managerPassword left blank disables manager.
managerPort = 7171
managerLogs = true
managerPassword = ""
managerLocalhostOnly = true
managerConnectionsLimit = 1
-- Admin
-- NOTE: adminPassword left blank disables manager.
-- Set to anything if you set adminRequireLogin to false.
-- adminEncryption available options: rsa1024xtea;
-- remember to set correct data!
adminPort = 7171
adminLogs = true
adminPassword = ""
adminLocalhostOnly = true
adminConnectionsLimit = 1
adminRequireLogin = true
adminEncryption = ""
adminEncryptionData = ""
A Distro não foi feita por min então estarei deixando os créditos dela na distro.
A Compilação foi feita por min e não deu nenhum erro.
Ela está sem as dlls caso precise de alguma procure o nome dela no Google, baixe e coloque na pasta de seu OT, caso tenhas mais problemas deixe comentário.
Se você Esteve com o mesmo problema e te ajudei Rep+
Link Para Download Do Executável: http://www.mediafire.com/download/7l6od8gdkob5572/Baiak-Map.exe
Link Das Sources p/ Quem Queira Compilar: http://www.mediafire.com/download/auib21zd0i3o40o/sources_7.rar
Scan Do Executável: https://www.virustotal.com/pt/url/ec493975bc373285e3fcf30709339c84bcac700bbf66334bdb9108b9628f38e9/analysis/1436509651/
Scan Das Sources: https://www.virustotal.com/pt/url/a3c207f0c2f1b0aea8cc411692f7a8ff40fed5c570bbc60ede6442fdcef11403/analysis/1436511749/
Obs. p/ Mods.: Meu antigo tropico foi poque não conseguia compilar as sources, mas como consegui, sem problemas resolvi compartilhar.
Fala que tem uma dll infectada... Eu uso normalmente aqui e nunca tive problemas com vírus mas é vocês que sabem pois só fala nesse antivirus aqui "Qihoo-360".
- Mudanças:
* Yellow skull arrumado
* Monstros andando em cima de corpos
* War system arrumado
* Anti-divulgação melhorado
* Cast system arrumado
* Crash bugs arrumados
* Adicionado exhaust ao comprar/vender items
* Account manager com opção para cidades
* /ghost stacking arrumado
* !disband arrumado
* Erros no linux arrumado
* Aleta som arrumado
* Bug nos rings arrumado
* Adicionado suporte para Visual Studio
* Remover battle ao entrar em PZ
* Não pode jogar lixo em casas
* Salt removido
- Downloads:
* Distro (x32): https://github.com/Fir3element/binaries/raw/master/x32.rar
* Distro (x64 ~ não tem suporte para SQLite e precisa instalar o Microsoft Visual C++ 2010 Redistributable Package (x64)): https://github.com/Fir3element/binaries/raw/master/x64.rar
* Source + datapack: https://github.com/Fir3element/3777/archive/master.zip
Olá! Após 3 meses sem ter animo para atualizar o tópico, estou cá hoje novamente!
Serei breve, para que possamos ir ao que interessa!
Nova hunt + novo monstro.
Novo sistema, irei explicar em breve, por enquanto a img dá algumas explicações!
Saiba quem utilizou, quando e como utilizou seus coins!
--~--
Sistema em desenvolvimento...
É um sistema de ressuscitar jogadores. Somente uma vocação pode usar essa magia, e o jogador precisa ter os requisitos da magia completos. A magia é adquirida através de uma quest que é dividida em 14 dias. E o jogador somente pode usar a magia à cada 4 horas; e para usa-la ele precisa de um certo item.
Enfim, foi isso, breve trago mais fotos(preguiça de upa-las)