Ir para conteúdo
  • Cadastre-se

(Resolvido)[BUG] Quantidade de frags para Red Skull


Ir para solução Resolvido por amora murder,

Posts Recomendados

Diga em poucas palavras a base utilizada (Nome do servidor ou nome do website).

OTX 3.0

 

Qual erro está surgindo/O que você procura?

Meu config.lua está configurado para pegar redskull com 6 frags/dia. Porém, no jogo, ao pegar 3 frags já fica redskull.

 

Você tem o código disponível? Se tiver publique-o aqui:

-- Combat settings
-- NOTE: valid values for worldType are: "pvp", "no-pvp" and "pvp-enforced"
worldType = "pvp"
hotkeyAimbotEnabled = true
protectionLevel = 50
pzLocked = 60 * 1000
removeChargesFromRunes = true
timeToDecreaseFrags = 24 * 60 * 60 * 1000
whiteSkullTime = 10 * 60 * 1000
stairJumpExhaustion = 2 * 1000
experienceByKillingPlayers = false
expFromPlayersLevelRange = 75
dayKillsToRedSkull = 6
weekKillsToRedSkull = 10
monthKillsToRedSkull = 20
redSkullDuration = 30
blackSkullDuration = 45
orangeSkullDuration = 7

 

 

Editado por amora murder (veja o histórico de edições)

Otserver Global - Open Tibia

angera.servegame.com

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
DayKillsToRedSkull = 6
WeekKillsToRedSkull = 6 * 7
MonthKillsToRedSkull = 6 * 7 * 28
RedSkullDuration = 4 * 60 * 60 * 1000

-- Combat settings
-- NOTE: valid values for worldType are: "pvp", "no-pvp" and "pvp-enforced"
worldType = "pvp"
hotkeyAimbotEnabled = true
protectionLevel = 50
pzLocked = 60 * 1000
removeChargesFromRunes = true
timeToDecreaseFrags = 24 * 60 * 60 * 1000
whiteSkullTime = 10 * 60 * 1000
stairJumpExhaustion = 2 * 1000
experienceByKillingPlayers = false
expFromPlayersLevelRange = 75
dayKillsToRedSkull = 6
WeekKillsToRedSkull = 6 * 7
MonthKillsToRedSkull = 6 * 7 * 28
RedSkullDuration = 4 * 60 * 60 * 1000
blackSkullDuration = 45
orangeSkullDuration = 7

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
 



redSkullLength = 24 * 60 * 60
blackSkullLength = 48 * 60 * 60
dailyFragsToRedSkull = 10
weeklyFragsToRedSkull = 30
monthlyFragsToRedSkull = 70
dailyFragsToBlackSkull = dailyFragsToRedSkull
weeklyFragsToBlackSkull = weeklyFragsToRedSkull
monthlyFragsToBlackSkull = monthlyFragsToRedSkull
dailyFragsToBanishment = dailyFragsToRedSkull
weeklyFragsToBanishment = weeklyFragsToRedSkull
monthlyFragsToBanishment = monthlyFragsToRedSkull
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 0
useBlackSkull = true
useFragHandler = true
advancedFragList = true

notationsToBan = 3
warningsToFinalBan = 4
warningsToDeletion = 5
banLength = 1 * 24 * 60 * 60
killsBanLength = 1 * 24 * 60 * 60
finalBanLength = 1 * 24 * 60 * 60
ipBanishmentLength = 1 * 24 * 60 * 60
broadcastBanishments = true
maxViolationCommentSize = 200
violationNameReportActionType = 2
autoBanishUnknownBytes = false


pzLocked = 1 * 60 * 1000
huntingDuration = 1 * 60 * 1000
whiteSkullTime = 5 * 60 * 1000

 

 

 

@Vodkart o meu é OTX 2 (8.60), conseguiria adaptar também? Obrigado!

Editado por BobStylle1020
config.lua errado (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

Infelizmente não funcionou com a alteração do @Vodkart.

Mas já havia contornado essa situação há alguns dias. Não consegui resolver 100%, mas deu pra amenizar o problema. Pra quem está precisando da solução, é o seguinte:

 

killsToRedSkull = 7
killsToBlackSkull = 10

Ficando assim o script:

Spoiler

-- Combat settings
-- NOTE: valid values for worldType are: "pvp", "no-pvp" and "pvp-enforced"
worldType = "pvp"
hotkeyAimbotEnabled = true
protectionLevel = 80
pzLocked = 60 * 1000
removeChargesFromRunes = true
timeToDecreaseFrags = 24 * 60 * 60 * 1000
whiteSkullTime = 10 * 60 * 1000
stairJumpExhaustion = 2 * 1000
experienceByKillingPlayers = false
expFromPlayersLevelRange = 75
killsToRedSkull = 7
killsToBlackSkull = 10
redSkullDuration = 30
blackSkullDuration = 45
orangeSkullDuration = 7

 

Eu não sou nenhum expert no assunto, mas ACREDITO (posso estar enganado) que seja algo relacionado à Source. Então, pelo que percebi, não foi possível colocar frags por mês e por semana, somente por dia. Depois que coloquei dessa maneira que descrevi passou a funcionar normalmente.

Mas como disse, o único problema msm é não ser possível definir frags mensais e semanais...

Tenta aí @BobStylle1020

Editado por amora murder (veja o histórico de edições)

Otserver Global - Open Tibia

angera.servegame.com

Link para o post
Compartilhar em outros sites
15 minutos atrás, BobStyle10 disse:

@amora murder Cara, arrumei como você disse e nada ainda! Tá osso @Vodkart será na source?

Qual base vc está utilizando?
 

Posta aí seu config.lua e configmanager.cpp <- Na pasta da source esse segundo

Otserver Global - Open Tibia

angera.servegame.com

Link para o post
Compartilhar em outros sites

Tá ai @amora murder

Config.Lua




accountManager = "no"
namelockManager = "yes"
newPlayerChooseVoc = "yes"
newPlayerSpawnPosX = 1156
newPlayerSpawnPosY = 1048
newPlayerSpawnPosZ = 7
newPlayerTownId = 1
newPlayerLevel = 8
newPlayerMagicLevel = 1
generateAccountNumber = "no"
skipItemsVersionCheck = true
enableCast = true

redSkullLength = 24 * 60 * 60
blackSkullLength = 48 * 60 * 60
dailyFragsToRedSkull = 15
weeklyFragsToRedSkull = 30
monthlyFragsToRedSkull = 70
dailyFragsToBlackSkull = dailyFragsToRedSkull
weeklyFragsToBlackSkull = weeklyFragsToRedSkull
monthlyFragsToBlackSkull = monthlyFragsToRedSkull
dailyFragsToBanishment = dailyFragsToRedSkull
weeklyFragsToBanishment = weeklyFragsToRedSkull
monthlyFragsToBanishment = monthlyFragsToRedSkull
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 0
useBlackSkull = true
useFragHandler = true
advancedFragList = false

notationsToBan = 3
warningsToFinalBan = 4
warningsToDeletion = 5
banLength = 1 * 24 * 60 * 60
killsBanLength = 1 * 24 * 60 * 60
finalBanLength = 1 * 24 * 60 * 60
ipBanishmentLength = 1 * 24 * 60 * 60
broadcastBanishments = true
maxViolationCommentSize = 200
violationNameReportActionType = 2
autoBanishUnknownBytes = false

worldType = "open"
protectionLevel = 50
pvpTileIgnoreLevelAndVocationProtection = true
pzLocked = 1 * 60 * 1000
huntingDuration = 1 * 60 * 1000
criticalHitChance = 7
criticalHitMultiplier = 1
displayCriticalHitNotify = true
removeWeaponAmmunition = false
removeWeaponCharges = false
removeRuneCharges = false
whiteSkullTime = 5 * 60 * 1000
noDamageToSameLookfeet = false
showHealingDamage = true
showHealingDamageForMonsters = true
fieldOwnershipDuration = 5 * 1000
stopAttackingAtExit = false
oldConditionAccuracy = false
loginProtectionPeriod = 10 * 1000
deathLostPercent = 10
stairhopDelay = 2 * 1000
pushCreatureDelay = 2 * 1000
deathContainerId = 1987
gainExperienceColor = 215
addManaSpentInPvPZone = true
squareColor = 0
allowFightback = true

worldId = 0
ip = "127.0.0.1"
bindOnlyConfiguredIpAddress = false
loginPort = 7171
gamePort = 7172
adminPort = 7171
statusPort = 7171
loginTries = 10
retryTimeout = 5 * 1000
loginTimeout = 60 * 1000
maxPlayers = 1000
motd = "Bem vindo ao Server"
displayOnOrOffAtCharlist = false
onePlayerOnlinePerAccount = true
allowClones = false
serverName = "FoxStyller"
loginMessage = "Bem vindo ao Server!"
statusTimeout = 5 * 60 * 1000
replaceKickOnLogin = true
forceSlowConnectionsToDisconnect = false
loginOnlyWithLoginServer = false
premiumPlayerSkipWaitList = false

sqlType = "mysql"
sqlHost = "localhost"
sqlPort = 3306
sqlUser = "root"
sqlPass = "xxxx"
sqlDatabase = "xxxx"
sqlFile = "mysql.sql"
sqlKeepAlive = 0
mysqlReadTimeout = 10
mysqlWriteTimeout = 10
encryptionType = "sha1"

deathListEnabled = false
deathListRequiredTime = 1 * 60 * 1000
deathAssistCount = 19
maxDeathRecords = 5

ingameGuildManagement = true
levelToFormGuild = 30
premiumDaysToFormGuild = 0
guildNameMinLength = 4
guildNameMaxLength = 20

highscoreDisplayPlayers = 15
updateHighscoresAfterMinutes = 2

useAntiPush = true
antiPushDelay = 800
antiPushItems = "2148,2152,2160,3976"

buyableAndSellableHouses = true
houseNeedPremium = true
bedsRequirePremium = true
levelToBuyHouse = 50
housesPerAccount = 0
houseRentAsPrice = false
housePriceAsRent = false
housePriceEachSquare = 1000
houseRentPeriod = "never"
houseCleanOld = 0
guildHalls = false

timeBetweenActions = 200
timeBetweenExActions = 1000
checkCorpseOwner = true
hotkeyAimbotEnabled = true
maximumDoorLevel = 500

mapName = "EliteStyller.otbm"
mapAuthor = "MRamos"
randomizeTiles = true
useHouseDataStorage = false
storeTrash = true
cleanProtectedZones = true
mailboxDisabledTowns = "-1"

defaultPriority = "high"
niceLevel = 5
coresUsed = "-1"
optimizeDatabaseAtStartup = true
removePremiumOnInit = true
confirmOutdatedVersion = false

maxMessageBuffer = 4
bufferMutedOnSpellFailure = false

dataDirectory = "data/"
allowChangeOutfit = true
allowChangeColors = true
allowChangeAddons = true
disableOutfitsForPrivilegedPlayers = false
bankSystem = true
saveGlobalStorage = true
displaySkillLevelOnAdvance = false
spellNameInsteadOfWords = false
emoteSpells = true
promptExceptionTracerErrorBox = true
storePlayerDirection = false
monsterLootMessage = 3
monsterLootMessageType = 25
separateViplistPerCharacter = false

ghostModeInvisibleEffect = false
ghostModeSpellEffects = true

idleWarningTime = 14 * 60 * 1000
idleKickTime = 15 * 60 * 1000
expireReportsAfterReads = 1
playerQueryDeepness = 2
maxItemsPerPZTile = 0
maxItemsPerHouseTile = 0

freePremium = true
premiumForPromotion = true

blessingOnlyPremium = true
blessingReductionBase = 30
blessingReductionDecreament = 5
eachBlessReduction = 8

experienceStages = "yes"
rateExperience = 200
rateExperienceFromPlayers = 0
rateSkill = 15
rateMagic = 7
rateLoot = 2
rateSpawn = 1

rateMonsterHealth = 1.0
rateMonsterMana = 1.0
rateMonsterAttack = 1.0
rateMonsterDefense = 1.0

minLevelThresholdForKilledPlayer = 0.9
maxLevelThresholdForKilledPlayer = 1.1

rateStaminaLoss = 1
rateStaminaGain = 3
rateStaminaThresholdGain = 12
staminaRatingLimitTop = 41 * 60
staminaRatingLimitBottom = 14 * 60
rateStaminaAboveNormal = 1.5
rateStaminaUnderNormal = 0.5
staminaThresholdOnlyPremium = true

experienceShareRadiusX = 30
experienceShareRadiusY = 30
experienceShareRadiusZ = 1
experienceShareLevelDifference = 2 / 3
extraPartyExperienceLimit = 20
extraPartyExperiencePercent = 5
experienceShareActivity = 2 * 60 * 1000

globalSaveEnabled = false
globalSaveHour = 1
shutdownAtGlobalSave = false
cleanMapAtGlobalSave = false

deSpawnRange = 2
deSpawnRadius = 50

maxPlayerSummons = 2
teleportAllSummons = false
teleportPlayerSummons = false

ownerName = "Styller Original"
ownerEmail = "[email protected]"
url = ""
location = "Brazil"
displayGamemastersWithOnlineCommand = false

adminLogsEnabled = false
displayPlayersLogging = true
prefixChannelLogs = ""
runFile = ""
outLogName = ""
errorLogName = ""
truncateLogsOnStartup = false
 

 

 

 

ConfigManager.cpp



////////////////////////////////////////////////////////////////////////
// OpenTibia - an opensource roleplaying game
////////////////////////////////////////////////////////////////////////
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////
#include "otpch.h"
#include <iostream>

#include "configmanager.h"
#include "house.h"
#include "tools.h"
#include "resources.h"

ConfigManager::ConfigManager()
{
    L = NULL;
    m_loaded = false;
    m_startup = true;

    m_confNumber[ENCRYPTION] = ENCRYPTION_SHA1;
    m_confString[CONFIG_FILE] = getFilePath(FILE_TYPE_CONFIG, "config.lua");

    m_confNumber[LOGIN_PORT] = m_confNumber[ADMIN_PORT] = m_confNumber[MANAGER_PORT] = m_confNumber[STATUS_PORT] = 0;
    m_confString[DATA_DIRECTORY] = m_confString[LOGS_DIRECTORY] = m_confString[IP] = m_confString[RUNFILE] = m_confString[OUTPUT_LOG] = "";
    m_confBool[LOGIN_ONLY_LOGINSERVER] = m_confBool[START_CLOSED] = m_confBool[DAEMONIZE] = false;
    m_confBool[SCRIPT_SYSTEM] = true;
}

bool ConfigManager::load()
{
    if(L)
        lua_close(L);

    L = luaL_newstate();
    if(!L)
        return false;

    luaL_openlibs(L);
    if(luaL_dofile(L, m_confString[CONFIG_FILE].c_str()))
    {
        lua_close(L);
        L = NULL;
        return false;
    }

    if(!m_loaded) //info that must be loaded one time- unless we reset the modules involved
    {
        if(m_confString[DATA_DIRECTORY] == "")
            m_confString[DATA_DIRECTORY] = getGlobalString("dataDirectory", "data/");

        if(m_confString[LOGS_DIRECTORY] == "")
            m_confString[LOGS_DIRECTORY] = getGlobalString("logsDirectory", "logs/");

        if(m_confString[IP] == "")
            m_confString[IP] = getGlobalString("ip", "127.0.0.1");

        if(m_confNumber[LOGIN_PORT] == 0)
            m_confNumber[LOGIN_PORT] = getGlobalNumber("loginPort", 7171);

        if(m_confString[GAME_PORT] == "")
            m_confString[GAME_PORT] = getGlobalString("gamePort", "7172");

        if(m_confNumber[ADMIN_PORT] == 0)
            m_confNumber[ADMIN_PORT] = getGlobalNumber("adminPort", 7171);

        if(m_confNumber[MANAGER_PORT] == 0)
            m_confNumber[MANAGER_PORT] = getGlobalNumber("managerPort", 7171);

        if(m_confNumber[STATUS_PORT] == 0)
            m_confNumber[STATUS_PORT] = getGlobalNumber("statusPort", 7171);

        if(m_confString[RUNFILE] == "")
            m_confString[RUNFILE] = getGlobalString("runFile", "");

        if(m_confString[OUTPUT_LOG] == "")
            m_confString[OUTPUT_LOG] = getGlobalString("outputLog", "");

        m_confBool[TRUNCATE_LOG] = getGlobalBool("truncateLogOnStartup", true);
        #ifdef MULTI_SQL_DRIVERS
        m_confString[SQL_TYPE] = getGlobalString("sqlType", "sqlite");
        #endif
        m_confString[SQL_HOST] = getGlobalString("sqlHost", "localhost");
        m_confNumber[SQL_PORT] = getGlobalNumber("sqlPort", 3306);
        m_confString[SQL_DB] = getGlobalString("sqlDatabase", "theotxserver");
        m_confString[SQL_USER] = getGlobalString("sqlUser", "root");
        m_confString[SQL_PASS] = getGlobalString("sqlPass", "");
        m_confString[SQL_FILE] = getGlobalString("sqlFile", "otxserver.s3db");
        m_confNumber[SQL_KEEPALIVE] = getGlobalNumber("sqlKeepAlive", 0);
        m_confNumber[MYSQL_READ_TIMEOUT] = getGlobalNumber("mysqlReadTimeout", 10);
        m_confNumber[MYSQL_WRITE_TIMEOUT] = getGlobalNumber("mysqlWriteTimeout", 10);
        m_confBool[OPTIMIZE_DATABASE] = getGlobalBool("startupDatabaseOptimization", true);
        m_confString[MAP_NAME] = getGlobalString("mapName", "forgotten.otbm");
        m_confBool[GLOBALSAVE_ENABLED] = getGlobalBool("globalSaveEnabled", true);
        m_confNumber[SERVICE_THREADS] = getGlobalNumber("serviceThreads", 1);
        m_confNumber[GLOBALSAVE_H] = getGlobalNumber("globalSaveHour", 8);
        m_confNumber[GLOBALSAVE_M] = getGlobalNumber("globalSaveMinute", 0);
        m_confString[HOUSE_RENT_PERIOD] = getGlobalString("houseRentPeriod", "monthly");
        m_confNumber[WORLD_ID] = getGlobalNumber("worldId", 0);
        m_confBool[RANDOMIZE_TILES] = getGlobalBool("randomizeTiles", true);
        m_confBool[STORE_TRASH] = getGlobalBool("storeTrash", true);
        m_confString[DEFAULT_PRIORITY] = getGlobalString("defaultPriority", "high");
        m_confBool[BIND_ONLY_GLOBAL_ADDRESS] = getGlobalBool("bindOnlyGlobalAddress", false);
        m_confBool[GUILD_HALLS] = getGlobalBool("guildHalls", false);
        #ifndef __LOGIN_SERVER__
        m_confBool[LOGIN_ONLY_LOGINSERVER] = getGlobalBool("loginOnlyWithLoginServer", false);
        #endif
        m_confString[ENCRYPTION_TYPE] = getGlobalString("encryptionType", "sha256");
        m_confString[RSA_PRIME1] = getGlobalString("rsaPrime1", "14299623962416399520070177382898895550795403345466153217470516082934737582776038882967213386204600674145392845853859217990626450972452084065728686565928113");
        m_confString[RSA_PRIME2] = getGlobalString("rsaPrime2", "7630979195970404721891201847792002125535401292779123937207447574596692788513647179235335529307251350570728407373705564708871762033017096809910315212884101");
        m_confString[RSA_PUBLIC] = getGlobalString("rsaPublic", "65537");
        m_confString[RSA_MODULUS] = getGlobalString("rsaModulus", "109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413");
        m_confString[RSA_PRIVATE] = getGlobalString("rsaPrivate", "46730330223584118622160180015036832148732986808519344675210555262940258739805766860224610646919605860206328024326703361630109888417839241959507572247284807035235569619173792292786907845791904955103601652822519121908367187885509270025388641700821735345222087940578381210879116823013776808975766851829020659073");
    }

    m_confString[MAP_AUTHOR] = getGlobalString("mapAuthor", "Unknown");
    m_confNumber[LOGIN_TRIES] = getGlobalNumber("loginTries", 3);
    m_confNumber[RETRY_TIMEOUT] = getGlobalNumber("retryTimeout", 30000);
    m_confNumber[LOGIN_TIMEOUT] = getGlobalNumber("loginTimeout", 5000);
    m_confNumber[MAX_MESSAGEBUFFER] = getGlobalNumber("maxMessageBuffer", 4);
    m_confNumber[MAX_PLAYERS] = getGlobalNumber("maxPlayers", 1000);
    m_confNumber[DEFAULT_DESPAWNRANGE] = getGlobalNumber("deSpawnRange", 2);
    m_confNumber[DEFAULT_DESPAWNRADIUS] = getGlobalNumber("deSpawnRadius", 50);
    m_confNumber[PZ_LOCKED] = getGlobalNumber("pzLocked", 60000);
    m_confNumber[HUNTING_DURATION] = getGlobalNumber("huntingDuration", 60000);
    m_confString[SERVER_NAME] = getGlobalString("serverName");
    m_confString[OWNER_NAME] = getGlobalString("ownerName");
    m_confString[OWNER_EMAIL] = getGlobalString("ownerEmail");
    m_confString = getGlobalString("url");
    m_confString[LOCATION] = getGlobalString("location");
    m_confString[MOTD] = getGlobalString("motd");
    m_confNumber[ALLOW_CLONES] = getGlobalNumber("allowClones", 0);
    m_confBool[EXPERIENCE_STAGES] = getGlobalBool("experienceStages", false);
    m_confDouble[RATE_EXPERIENCE] = getGlobalDouble("rateExperience", 1);
    m_confDouble[RATE_SKILL] = getGlobalDouble("rateSkill", 1);
    m_confDouble[RATE_SKILL_OFFLINE] = getGlobalDouble("rateSkillOffline", 0.5);
    m_confDouble[RATE_MAGIC] = getGlobalDouble("rateMagic", 1);
    m_confDouble[RATE_MAGIC_OFFLINE] = getGlobalDouble("rateMagicOffline", 0.5);
    m_confDouble[RATE_LOOT] = getGlobalDouble("rateLoot", 1);
    m_confNumber[RATE_SPAWN_MIN] = getGlobalNumber("rateSpawnMin", 1);
    m_confNumber[RATE_SPAWN_MAX] = getGlobalNumber("rateSpawnMax", 1);
    m_confNumber[PARTY_RADIUS_X] = getGlobalNumber("experienceShareRadiusX", 30);
    m_confNumber[PARTY_RADIUS_Y] = getGlobalNumber("experienceShareRadiusY", 30);
    m_confNumber[PARTY_RADIUS_Z] = getGlobalNumber("experienceShareRadiusZ", 1);
    m_confDouble[PARTY_DIFFERENCE] = getGlobalDouble("experienceShareLevelDifference", (double)2 / 3);
    m_confNumber[SPAWNPOS_X] = getGlobalNumber("newPlayerSpawnPosX", 100);
    m_confNumber[SPAWNPOS_Y] = getGlobalNumber("newPlayerSpawnPosY", 100);
    m_confNumber[SPAWNPOS_Z] = getGlobalNumber("newPlayerSpawnPosZ", 7);
    m_confNumber[SPAWNTOWN_ID] = getGlobalNumber("newPlayerTownId", 1);
    m_confString[WORLD_TYPE] = getGlobalString("worldType", "open");
    m_confBool[ACCOUNT_MANAGER] = getGlobalBool("accountManager", true);
    m_confBool[NAMELOCK_MANAGER] = getGlobalBool("namelockManager", false);
    m_confNumber[START_LEVEL] = getGlobalNumber("newPlayerLevel", 1);
    m_confNumber[START_MAGICLEVEL] = getGlobalNumber("newPlayerMagicLevel", 0);
    m_confBool[START_CHOOSEVOC] = getGlobalBool("newPlayerChooseVoc", false);
    m_confNumber[HOUSE_PRICE] = getGlobalNumber("housePriceEachSquare", 1000);
    m_confNumber[WHITE_SKULL_TIME] = getGlobalNumber("whiteSkullTime", 900000);
    m_confBool[ON_OR_OFF_CHARLIST] = getGlobalBool("displayOnOrOffAtCharlist", false);
    m_confBool[ALLOW_CHANGEOUTFIT] = getGlobalBool("allowChangeOutfit", true);
    m_confBool[ONE_PLAYER_ON_ACCOUNT] = getGlobalBool("onePlayerOnlinePerAccount", true);
    m_confBool[CANNOT_ATTACK_SAME_LOOKFEET] = getGlobalBool("noDamageToSameLookfeet", false);
    m_confBool[AIMBOT_HOTKEY_ENABLED] = getGlobalBool("hotkeyAimbotEnabled", true);
    m_confNumber[ACTIONS_DELAY_INTERVAL] = getGlobalNumber("timeBetweenActions", 200);
    m_confNumber[EX_ACTIONS_DELAY_INTERVAL] = getGlobalNumber("timeBetweenExActions", 1000);
    m_confNumber[CUSTOM_ACTIONS_DELAY_INTERVAL] = getGlobalNumber("timeBetweenCustomActions", 500);
    m_confNumber[CRITICAL_HIT_CHANCE] = getGlobalNumber("criticalHitChance", 5);
    m_confBool[REMOVE_WEAPON_AMMO] = getGlobalBool("removeWeaponAmmunition", true);
    m_confBool[REMOVE_WEAPON_CHARGES] = getGlobalBool("removeWeaponCharges", true);
    m_confBool[REMOVE_RUNE_CHARGES] = getGlobalBool("removeRuneCharges", true);
    m_confDouble[RATE_PVP_EXPERIENCE] = getGlobalDouble("rateExperienceFromPlayers", 0);
    m_confDouble[EFP_MIN_THRESHOLD] = getGlobalDouble("minLevelThresholdForKilledPlayer", 0.9f);
    m_confDouble[EFP_MAX_THRESHOLD] = getGlobalDouble("maxLevelThresholdForKilledPlayer", 1.1f);
    m_confBool[SHUTDOWN_AT_GLOBALSAVE] = getGlobalBool("shutdownAtGlobalSave", false);
    m_confBool[CLEAN_MAP_AT_GLOBALSAVE] = getGlobalBool("cleanMapAtGlobalSave", true);
    m_confBool[FREE_PREMIUM] = getGlobalBool("freePremium", false);
    m_confNumber[PROTECTION_LEVEL] = getGlobalNumber("protectionLevel", 1);
    m_confNumber[STATUSQUERY_TIMEOUT] = getGlobalNumber("statusTimeout", 300000);
    m_confBool[BROADCAST_BANISHMENTS] = getGlobalBool("broadcastBanishments", true);
    m_confBool[GENERATE_ACCOUNT_NUMBER] = getGlobalBool("generateAccountNumber", false);
    m_confBool[GENERATE_ACCOUNT_SALT] = getGlobalBool("generateAccountSalt", false);
    m_confBool[INGAME_GUILD_MANAGEMENT] = getGlobalBool("ingameGuildManagement", true);
    m_confBool[EXTERNAL_GUILD_WARS_MANAGEMENT] = getGlobalBool("externalGuildWarsManagement", false);
    m_confNumber[LEVEL_TO_FORM_GUILD] = getGlobalNumber("levelToFormGuild", 8);
    m_confNumber[MIN_GUILDNAME] = getGlobalNumber("guildNameMinLength", 4);
    m_confNumber[MAX_GUILDNAME] = getGlobalNumber("guildNameMaxLength", 20);
    m_confNumber[LEVEL_TO_BUY_HOUSE] = getGlobalNumber("levelToBuyHouse", 1);
    m_confNumber[HOUSES_PER_ACCOUNT] = getGlobalNumber("housesPerAccount", 0);
    m_confBool[HOUSE_BUY_AND_SELL] = getGlobalBool("buyableAndSellableHouses", true);
    m_confBool[REPLACE_KICK_ON_LOGIN] = getGlobalBool("replaceKickOnLogin", true);
    m_confBool[HOUSE_NEED_PREMIUM] = getGlobalBool("houseNeedPremium", true);
    m_confBool[HOUSE_RENTASPRICE] = getGlobalBool("houseRentAsPrice", false);
    m_confBool[HOUSE_PRICEASRENT] = getGlobalBool("housePriceAsRent", false);
    m_confString[HOUSE_STORAGE] = getGlobalString("houseDataStorage", "binary");
    m_confNumber[RED_SKULL_LENGTH] = getGlobalNumber("redSkullLength", 2592000);
    m_confNumber[MAX_VIOLATIONCOMMENT_SIZE] = getGlobalNumber("maxViolationCommentSize", 60);
    m_confNumber[BLACK_SKULL_LENGTH] = getGlobalNumber("blackSkullLength", 3888000);
    m_confNumber[NOTATIONS_TO_BAN] = getGlobalNumber("notationsToBan", 3);
    m_confNumber[WARNINGS_TO_FINALBAN] = getGlobalNumber("warningsToFinalBan", 4);
    m_confNumber[WARNINGS_TO_DELETION] = getGlobalNumber("warningsToDeletion", 5);
    m_confNumber[BAN_LENGTH] = getGlobalNumber("banLength", 604800);
    m_confNumber[KILLS_BAN_LENGTH] = getGlobalNumber("killsBanLength", 604800);
    m_confNumber[FINALBAN_LENGTH] = getGlobalNumber("finalBanLength", 2592000);
    m_confNumber[IPBAN_LENGTH] = getGlobalNumber("ipBanLength", 86400);
    m_confBool[BANK_SYSTEM] = getGlobalBool("bankSystem", true);
    m_confBool[PREMIUM_FOR_PROMOTION] = getGlobalBool("premiumForPromotion", true);
    m_confBool[INIT_PREMIUM_UPDATE] = getGlobalBool("updatePremiumStateAtStartup", true);
    m_confBool[SHOW_HEALTH_CHANGE] = getGlobalBool("showHealthChange", true);
    m_confBool[SHOW_MANA_CHANGE] = getGlobalBool("showManaChange", true);
    m_confBool[TELEPORT_SUMMONS] = getGlobalBool("teleportAllSummons", false);
    m_confBool[TELEPORT_PLAYER_SUMMONS] = getGlobalBool("teleportPlayerSummons", false);
    m_confBool[PVP_TILE_IGNORE_PROTECTION] = getGlobalBool("pvpTileIgnoreLevelAndVocationProtection", true);
    m_confBool[DISPLAY_CRITICAL_HIT] = getGlobalBool("displayCriticalHitNotify", false);
    m_confBool[CLEAN_PROTECTED_ZONES] = getGlobalBool("cleanProtectedZones", true);
    m_confBool[SPELL_NAME_INSTEAD_WORDS] = getGlobalBool("spellNameInsteadOfWords", false);
    m_confBool[EMOTE_SPELLS] = getGlobalBool("emoteSpells", false);
    m_confNumber[MAX_PLAYER_SUMMONS] = getGlobalNumber("maxPlayerSummons", 2);
    m_confBool[SAVE_GLOBAL_STORAGE] = getGlobalBool("saveGlobalStorage", true);
    m_confBool[SAVE_PLAYER_DATA] = getGlobalBool("savePlayerData", true);
    m_confBool[FORCE_CLOSE_SLOW_CONNECTION] = getGlobalBool("forceSlowConnectionsToDisconnect", false);
    m_confBool[BLESSINGS] = getGlobalBool("blessings", true);
    m_confBool[BLESSING_ONLY_PREMIUM] = getGlobalBool("blessingOnlyPremium", true);
    m_confBool[BED_REQUIRE_PREMIUM] = getGlobalBool("bedsRequirePremium", true);
    m_confNumber[FIELD_OWNERSHIP] = getGlobalNumber("fieldOwnershipDuration", 5000);
    m_confBool[ALLOW_CHANGECOLORS] = getGlobalBool("allowChangeColors", true);
    m_confBool[STOP_ATTACK_AT_EXIT] = getGlobalBool("stopAttackingAtExit", false);
    m_confNumber[EXTRA_PARTY_PERCENT] = getGlobalNumber("extraPartyExperiencePercent", 5);
    m_confNumber[EXTRA_PARTY_LIMIT] = getGlobalNumber("extraPartyExperienceLimit", 20);
    m_confBool[DISABLE_OUTFITS_PRIVILEGED] = getGlobalBool("disableOutfitsForPrivilegedPlayers", false);
    m_confBool[TRACER_BOX] = getGlobalBool("promptExceptionTracerErrorBox", true);
    m_confNumber[LOGIN_PROTECTION] = getGlobalNumber("loginProtectionPeriod", 10000);
    m_confBool[STORE_DIRECTION] = getGlobalBool("storePlayerDirection", false);
    m_confNumber[PLAYER_DEEPNESS] = getGlobalNumber("playerQueryDeepness", -1);
    m_confDouble[CRITICAL_HIT_MUL] = getGlobalDouble("criticalHitMultiplier", 1);
    m_confNumber[STAIRHOP_DELAY] = getGlobalNumber("stairhopDelay", 2 * 1000);
    m_confNumber[RATE_STAMINA_LOSS] = getGlobalNumber("rateStaminaLoss", 1);
    m_confDouble[RATE_STAMINA_GAIN] = getGlobalDouble("rateStaminaGain", 3);
    m_confDouble[RATE_STAMINA_THRESHOLD] = getGlobalDouble("rateStaminaThresholdGain", 12);
    m_confDouble[RATE_STAMINA_ABOVE] = getGlobalDouble("rateStaminaAboveNormal", 1.5f);
    m_confDouble[RATE_STAMINA_UNDER] = getGlobalDouble("rateStaminaUnderNormal", 0.5f);
    m_confNumber[STAMINA_LIMIT_TOP] = getGlobalNumber("staminaRatingLimitTop", 2460);
    m_confNumber[STAMINA_LIMIT_BOTTOM] = getGlobalNumber("staminaRatingLimitBottom", 840);
    m_confBool[DISPLAY_LOGGING] = getGlobalBool("displayPlayersLogging", true);
    m_confBool[STAMINA_BONUS_PREMIUM] = getGlobalBool("staminaThresholdOnlyPremium", true);
    m_confNumber[BLESS_REDUCTION_BASE] = getGlobalNumber("blessingReductionBase", 30);
    m_confNumber[BLESS_REDUCTION_DECREMENT] = getGlobalNumber("blessingReductionDecrement", 5);
    m_confBool[ALLOW_CHANGEADDONS] = getGlobalBool("allowChangeAddons", true);
    m_confNumber[BLESS_REDUCTION] = getGlobalNumber("eachBlessReduction", 8);
    m_confDouble[FORMULA_LEVEL] = getGlobalDouble("formulaLevel", 5.0);
    m_confDouble[FORMULA_MAGIC] = getGlobalDouble("formulaMagic", 1.0);
    m_confString[PREFIX_CHANNEL_LOGS] = getGlobalString("prefixChannelLogs", "");
    m_confBool[GHOST_INVISIBLE_EFFECT] = getGlobalBool("ghostModeInvisibleEffect", false);
    m_confString[CORES_USED] = getGlobalString("coresUsed", "-1");
    m_confNumber[NICE_LEVEL] = getGlobalNumber("niceLevel", 5);
    m_confNumber[EXPERIENCE_COLOR] = getGlobalNumber("gainExperienceColor", COLOR_WHITE);
    m_confBool[SHOW_HEALTH_CHANGE_MONSTER] = getGlobalBool("showHealthChangeForMonsters", true);
    m_confBool[SHOW_MANA_CHANGE_MONSTER] = getGlobalBool("showManaChangeForMonsters", true);
    m_confBool[CHECK_CORPSE_OWNER] = getGlobalBool("checkCorpseOwner", true);
    m_confBool[BUFFER_SPELL_FAILURE] = getGlobalBool("bufferMutedOnSpellFailure", false);
    m_confNumber[GUILD_PREMIUM_DAYS] = getGlobalNumber("premiumDaysToFormGuild", 0);
    m_confNumber[PUSH_CREATURE_DELAY] = getGlobalNumber("pushCreatureDelay", 2000);
    m_confNumber[DEATH_CONTAINER] = getGlobalNumber("deathContainerId", 1987);
    m_confBool[PREMIUM_SKIP_WAIT] = getGlobalBool("premiumPlayerSkipWaitList", false);
    m_confNumber[MAXIMUM_DOOR_LEVEL] = getGlobalNumber("maximumDoorLevel", 500);
    m_confBool[DEATH_LIST] = getGlobalBool("deathListEnabled", true);
    m_confNumber[DEATH_ASSISTS] = getGlobalNumber("deathAssistCount", 1);
    m_confNumber[FRAG_LIMIT] = getGlobalNumber("fragsLimit", 86400);
    m_confNumber[FRAG_SECOND_LIMIT] = getGlobalNumber("fragsSecondLimit", 604800);
    m_confNumber[FRAG_THIRD_LIMIT] = getGlobalNumber("fragsThirdLimit", 2592000);
    m_confNumber[RED_LIMIT] = getGlobalNumber("fragsToRedSkull", 3);
    m_confNumber[RED_SECOND_LIMIT] = getGlobalNumber("fragsSecondToRedSkull", 5);
    m_confNumber[RED_THIRD_LIMIT] = getGlobalNumber("fragsThirdToRedSkull", 10);
    m_confNumber[BLACK_LIMIT] = getGlobalNumber("fragsToBlackSkull", m_confNumber[RED_LIMIT]);
    m_confNumber[BLACK_SECOND_LIMIT] = getGlobalNumber("fragsSecondToBlackSkull", m_confNumber[RED_SECOND_LIMIT]);
    m_confNumber[BLACK_THIRD_LIMIT] = getGlobalNumber("fragsThirdToBlackSkull", m_confNumber[RED_THIRD_LIMIT]);
    m_confNumber[BAN_LIMIT] = getGlobalNumber("fragsToBanishment", m_confNumber[RED_LIMIT]);
    m_confNumber[BAN_SECOND_LIMIT] = getGlobalNumber("fragsSecondToBanishment", m_confNumber[RED_SECOND_LIMIT]);
    m_confNumber[BAN_THIRD_LIMIT] = getGlobalNumber("fragsThirdToBanishment", m_confNumber[RED_THIRD_LIMIT]);
    m_confNumber[BLACK_SKULL_DEATH_HEALTH] = getGlobalNumber("blackSkulledDeathHealth", 40);
    m_confNumber[BLACK_SKULL_DEATH_MANA] = getGlobalNumber("blackSkulledDeathMana", 0);
    m_confNumber[DEATHLIST_REQUIRED_TIME] = getGlobalNumber("deathListRequiredTime", 60000);
    m_confNumber[EXPERIENCE_SHARE_ACTIVITY] = getGlobalNumber("experienceShareActivity", 120000);
    m_confBool[GHOST_SPELL_EFFECTS] = getGlobalBool("ghostModeSpellEffects", true);
    m_confBool[PVPZONE_ADDMANASPENT] = getGlobalBool("addManaSpentInPvPZone", true);
    m_confBool[PVPZONE_RECOVERMANA] = getGlobalBool("recoverManaAfterDeathInPvPZone", false);
    m_confNumber[TILE_LIMIT] = getGlobalNumber("tileLimit", 0);
    m_confNumber[PROTECTION_TILE_LIMIT] = getGlobalNumber("protectionTileLimit", 0);
    m_confNumber[HOUSE_TILE_LIMIT] = getGlobalNumber("houseTileLimit", 0);
    m_confNumber[TRADE_LIMIT] = getGlobalNumber("tradeLimit", 100);
    m_confString[MAILBOX_DISABLED_TOWNS] = getGlobalString("mailboxDisabledTowns", "");
    m_confNumber[SQUARE_COLOR] = getGlobalNumber("squareColor", 0);
    m_confBool[USE_BLACK_SKULL] = getGlobalBool("useBlackSkull", false);
    m_confBool[USE_FRAG_HANDLER] = getGlobalBool("useFragHandler", true);
    m_confNumber[LOOT_MESSAGE] = getGlobalNumber("monsterLootMessage", 3);
    m_confNumber[LOOT_MESSAGE_TYPE] = getGlobalNumber("monsterLootMessageType", 19);
    m_confNumber[NAME_REPORT_TYPE] = getGlobalNumber("violationNameReportActionType", 2);
    m_confNumber[HOUSE_CLEAN_OLD] = getGlobalNumber("houseCleanOld", 0);
    m_confBool[VIPLIST_PER_PLAYER] = getGlobalBool("separateVipListPerCharacter", false);
    m_confDouble[RATE_MONSTER_HEALTH] = getGlobalDouble("rateMonsterHealth", 1);
    m_confDouble[RATE_MONSTER_MANA] = getGlobalDouble("rateMonsterMana", 1);
    m_confDouble[RATE_MONSTER_ATTACK] = getGlobalDouble("rateMonsterAttack", 1);
    m_confDouble[RATE_MONSTER_DEFENSE] = getGlobalDouble("rateMonsterDefense", 1);
    m_confBool[MANAGER_LOCALHOST_ONLY] = getGlobalBool("managerLocalhostOnly", true);
    m_confNumber[MANAGER_CONNECTIONS_LIMIT] = getGlobalNumber("managerConnectionsLimit", 1);
    m_confString[MANAGER_PASSWORD] = getGlobalString("managerPassword", "");
    m_confBool[MANAGER_LOGS] = getGlobalBool("managerLogs", false);
    m_confBool[ADMIN_LOGS] = getGlobalBool("adminLogs", false);
    m_confString[ADMIN_PASSWORD] = getGlobalString("adminPassword", "");
    m_confNumber[ADMIN_CONNECTIONS_LIMIT] = getGlobalNumber("adminConnectionsLimit", 1);
    m_confBool[ADMIN_LOCALHOST_ONLY] = getGlobalBool("adminLocalhostOnly", true);
    m_confBool[ADMIN_REQUIRE_LOGIN] = getGlobalBool("adminRequireLogin", true);
    m_confString[ADMIN_ENCRYPTION] = getGlobalString("adminEncryption", "");
    m_confString[ADMIN_ENCRYPTION_DATA] = getGlobalString("adminEncryptionData", "");
    m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true);
    m_confBool[UNIFIED_SPELLS] = getGlobalBool("unifiedSpells", true);
    m_confBool[OPTIONAL_WAR_ATTACK_ALLY] = getGlobalBool("optionalWarAttackableAlly", false);
    m_confNumber[VIPLIST_DEFAULT_LIMIT] = getGlobalNumber("vipListDefaultLimit", 20);
    m_confNumber[VIPLIST_DEFAULT_PREMIUM_LIMIT]    = getGlobalNumber("vipListDefaultPremiumLimit", 100);
    m_confNumber[STAMINA_DESTROY_LOOT] = getGlobalNumber("staminaLootLimit", 840);
    m_confNumber[FIST_BASE_ATTACK] = getGlobalNumber("fistBaseAttack", 7);
    m_confBool[MONSTER_SPAWN_WALKBACK] = getGlobalBool("monsterSpawnWalkback", true);
    m_confNumber[PVP_BLESSING_THRESHOLD] = getGlobalNumber("pvpBlessingThreshold", 40);
    m_confNumber[FAIRFIGHT_TIMERANGE] = getGlobalNumber("fairFightTimeRange", 60);
    m_confNumber[DEFAULT_DEPOT_SIZE_PREMIUM] = getGlobalNumber("defaultDepotSizePremium", 2000);
    m_confNumber[DEFAULT_DEPOT_SIZE] = getGlobalNumber("defaultDepotSize", 2000);
    m_confBool[USE_CAPACITY] = getGlobalBool("useCapacity", true);
    m_confBool[DAEMONIZE] = getGlobalBool("daemonize", false);
    m_confBool[TIBIA_SLOTS] = getGlobalBool("tibiaClassicSlots", true);
    m_confBool[SKIP_ITEMS_VERSION] = getGlobalBool("skipItemsVersionCheck", false);
    m_confBool[SILENT_LUA] = getGlobalBool("disableLuaErrors", false);
    m_confNumber[MAIL_ATTEMPTS] = getGlobalNumber("mailMaxAttempts", 20);
    m_confNumber[MAIL_BLOCK] = getGlobalNumber("mailBlockPeriod", 3600000);
    m_confNumber[MAIL_ATTEMPTS_FADE] = getGlobalNumber("mailAttemptsFadeTime", 600000);
    m_confBool[ROOK_SYSTEM] = getGlobalBool("useRookSystem", false);
    m_confNumber[ROOK_TOWN] = getGlobalNumber("rookTownId", 1);
    m_confNumber[ROOK_LEVELTO] = getGlobalNumber("rookLevelToGetRooked", 5);
    m_confNumber[ROOK_TOLEVEL] = getGlobalNumber("rookLevelToLeaveRook", 8);
    m_confBool[HOUSE_SKIP_INIT_RENT] = getGlobalBool("houseSkipInitialRent", true);
    m_confBool[HOUSE_PROTECTION] = getGlobalBool("houseProtection", true);
    m_confBool[FAIRFIGHT_REDUCTION] = getGlobalBool("useFairfightReduction", true);
    m_confNumber[MYSQL_RECONNECTION_ATTEMPTS] = getGlobalNumber("mysqlReconnectionAttempts", 3);
    m_confBool[ALLOW_BLOCK_SPAWN] = getGlobalBool("allowBlockSpawn", true);
    m_confNumber[FOLLOW_EXHAUST] = getGlobalNumber("playerFollowExhaust", 2000);
    m_confBool[MULTIPLE_NAME] = getGlobalBool("multipleNames", false);
    m_confNumber[PACKETS_PER_SECOND] = getGlobalNumber("packetsPerSecond", 50);
    m_confBool[SAVE_STATEMENT] = getGlobalBool("logPlayersStatements", true);
    m_confNumber[GUI_PREMIUM_DAYS] = getGlobalNumber("premiumDaysToAddByGui", 30);
    m_confBool[MANUAL_ADVANCED_CONFIG] = getGlobalBool("manualVersionConfig", false);
    m_confNumber[VERSION_MIN] = getGlobalNumber("versionMin", CLIENT_VERSION_MIN);
    m_confNumber[VERSION_MAX] = getGlobalNumber("versionMax", CLIENT_VERSION_MAX);
    m_confString[VERSION_MSG] = getGlobalString("versionMsg", "Only clients with protocol " CLIENT_VERSION_STRING " allowed!");
    m_confBool[USE_RUNE_REQUIREMENTS] = getGlobalBool("useRunesRequirements", true);
    m_confNumber[HIGHSCORES_TOP] = getGlobalNumber("highscoreDisplayPlayers", 10);
    m_confNumber[HIGHSCORES_UPDATETIME] = getGlobalNumber("updateHighscoresAfterMinutes", 60);
    m_confBool[ATTACK_IMMEDIATELY_AFTER_LOGGING_IN] = getGlobalBool("attackImmediatelyAfterLoggingIn", false);

    m_loaded = true;
    return true;
}

bool ConfigManager::reload()
{
    if(!m_loaded)
        return false;

    uint32_t tmp = m_confNumber[HOUSE_PRICE];
    if(!load())
        return false;

    if((uint32_t)m_confNumber[HOUSE_PRICE] == tmp)
        return true;

    for(HouseMap::iterator it = Houses::getInstance()->getHouseBegin();
        it != Houses::getInstance()->getHouseEnd(); ++it)
    {
        uint32_t price = it->second->getTilesCount() * m_confNumber[HOUSE_PRICE];
        if(m_confBool[HOUSE_RENTASPRICE])
        {
            uint32_t rent = it->second->getRent();
            if(!m_confBool[HOUSE_PRICEASRENT] && it->second->getPrice() != rent)
                price = rent;
        }

        it->second->setPrice(price);
        if(m_confBool[HOUSE_PRICEASRENT])
            it->second->setRent(price);

        if(!it->second->getOwner())
            it->second->updateDoorDescription();
    }

    return true;
}

const std::string& ConfigManager::getString(uint32_t _what) const
{
    if((m_loaded && _what < LAST_STRING_CONFIG) || _what <= CONFIG_FILE)
        return m_confString[_what];

    if(!m_startup)
        std::clog << "[Warning - ConfigManager::getString] " << _what << std::endl;

    return m_confString[DUMMY_STR];
}

bool ConfigManager::getBool(uint32_t _what) const
{
    if(m_loaded && _what < LAST_BOOL_CONFIG)
        return m_confBool[_what];

    if(!m_startup)
        std::clog << "[Warning - ConfigManager::getBool] " << _what << std::endl;

    return false;
}

int64_t ConfigManager::getNumber(uint32_t _what) const
{
    if(m_loaded && _what < LAST_NUMBER_CONFIG)
        return m_confNumber[_what];

    if(!m_startup)
        std::clog << "[Warning - ConfigManager::getNumber] " << _what << std::endl;

    return 0;
}

double ConfigManager::getDouble(uint32_t _what) const
{
    if(m_loaded && _what < LAST_DOUBLE_CONFIG)
        return m_confDouble[_what];

    if(!m_startup)
        std::clog << "[Warning - ConfigManager::getDouble] " << _what << std::endl;

    return 0;
}

bool ConfigManager::setString(uint32_t _what, const std::string& _value)
{
    if(_what < LAST_STRING_CONFIG)
    {
        m_confString[_what] = _value;
        return true;
    }

    std::clog << "[Warning - ConfigManager::setString] " << _what << std::endl;
    return false;
}

bool ConfigManager::setNumber(uint32_t _what, int64_t _value)
{
    if(_what < LAST_NUMBER_CONFIG)
    {
        m_confNumber[_what] = _value;
        return true;
    }

    std::clog << "[Warning - ConfigManager::setNumber] " << _what << std::endl;
    return false;
}

bool ConfigManager::setBool(uint32_t _what, bool _value)
{
    if(_what < LAST_BOOL_CONFIG)
    {
        m_confBool[_what] = _value;
        return true;
    }

    std::clog << "[Warning - ConfigManager::setBool] " << _what << std::endl;
    return false;
}

 

Link para o post
Compartilhar em outros sites
2 minutos atrás, BobStyle10 disse:

Tá ai @amora murder

Config.Lua

 

  Mostrar conteúdo oculto

 

 

 


accountManager = "no"
namelockManager = "yes"
newPlayerChooseVoc = "yes"
newPlayerSpawnPosX = 1156
newPlayerSpawnPosY = 1048
newPlayerSpawnPosZ = 7
newPlayerTownId = 1
newPlayerLevel = 8
newPlayerMagicLevel = 1
generateAccountNumber = "no"
skipItemsVersionCheck = true
enableCast = true

redSkullLength = 24 * 60 * 60
blackSkullLength = 48 * 60 * 60
dailyFragsToRedSkull = 15
weeklyFragsToRedSkull = 30
monthlyFragsToRedSkull = 70
dailyFragsToBlackSkull = dailyFragsToRedSkull
weeklyFragsToBlackSkull = weeklyFragsToRedSkull
monthlyFragsToBlackSkull = monthlyFragsToRedSkull
dailyFragsToBanishment = dailyFragsToRedSkull
weeklyFragsToBanishment = weeklyFragsToRedSkull
monthlyFragsToBanishment = monthlyFragsToRedSkull
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 0
useBlackSkull = true
useFragHandler = true
advancedFragList = false

notationsToBan = 3
warningsToFinalBan = 4
warningsToDeletion = 5
banLength = 1 * 24 * 60 * 60
killsBanLength = 1 * 24 * 60 * 60
finalBanLength = 1 * 24 * 60 * 60
ipBanishmentLength = 1 * 24 * 60 * 60
broadcastBanishments = true
maxViolationCommentSize = 200
violationNameReportActionType = 2
autoBanishUnknownBytes = false

worldType = "open"
protectionLevel = 50
pvpTileIgnoreLevelAndVocationProtection = true
pzLocked = 1 * 60 * 1000
huntingDuration = 1 * 60 * 1000
criticalHitChance = 7
criticalHitMultiplier = 1
displayCriticalHitNotify = true
removeWeaponAmmunition = false
removeWeaponCharges = false
removeRuneCharges = false
whiteSkullTime = 5 * 60 * 1000
noDamageToSameLookfeet = false
showHealingDamage = true
showHealingDamageForMonsters = true
fieldOwnershipDuration = 5 * 1000
stopAttackingAtExit = false
oldConditionAccuracy = false
loginProtectionPeriod = 10 * 1000
deathLostPercent = 10
stairhopDelay = 2 * 1000
pushCreatureDelay = 2 * 1000
deathContainerId = 1987
gainExperienceColor = 215
addManaSpentInPvPZone = true
squareColor = 0
allowFightback = true

worldId = 0
ip = "127.0.0.1"
bindOnlyConfiguredIpAddress = false
loginPort = 7171
gamePort = 7172
adminPort = 7171
statusPort = 7171
loginTries = 10
retryTimeout = 5 * 1000
loginTimeout = 60 * 1000
maxPlayers = 1000
motd = "Bem vindo ao Server"
displayOnOrOffAtCharlist = false
onePlayerOnlinePerAccount = true
allowClones = false
serverName = "FoxStyller"
loginMessage = "Bem vindo ao Server!"
statusTimeout = 5 * 60 * 1000
replaceKickOnLogin = true
forceSlowConnectionsToDisconnect = false
loginOnlyWithLoginServer = false
premiumPlayerSkipWaitList = false

sqlType = "mysql"
sqlHost = "localhost"
sqlPort = 3306
sqlUser = "root"
sqlPass = "xxxx"
sqlDatabase = "xxxx"
sqlFile = "mysql.sql"
sqlKeepAlive = 0
mysqlReadTimeout = 10
mysqlWriteTimeout = 10
encryptionType = "sha1"

deathListEnabled = false
deathListRequiredTime = 1 * 60 * 1000
deathAssistCount = 19
maxDeathRecords = 5

ingameGuildManagement = true
levelToFormGuild = 30
premiumDaysToFormGuild = 0
guildNameMinLength = 4
guildNameMaxLength = 20

highscoreDisplayPlayers = 15
updateHighscoresAfterMinutes = 2

useAntiPush = true
antiPushDelay = 800
antiPushItems = "2148,2152,2160,3976"

buyableAndSellableHouses = true
houseNeedPremium = true
bedsRequirePremium = true
levelToBuyHouse = 50
housesPerAccount = 0
houseRentAsPrice = false
housePriceAsRent = false
housePriceEachSquare = 1000
houseRentPeriod = "never"
houseCleanOld = 0
guildHalls = false

timeBetweenActions = 200
timeBetweenExActions = 1000
checkCorpseOwner = true
hotkeyAimbotEnabled = true
maximumDoorLevel = 500

mapName = "EliteStyller.otbm"
mapAuthor = "MRamos"
randomizeTiles = true
useHouseDataStorage = false
storeTrash = true
cleanProtectedZones = true
mailboxDisabledTowns = "-1"

defaultPriority = "high"
niceLevel = 5
coresUsed = "-1"
optimizeDatabaseAtStartup = true
removePremiumOnInit = true
confirmOutdatedVersion = false

maxMessageBuffer = 4
bufferMutedOnSpellFailure = false

dataDirectory = "data/"
allowChangeOutfit = true
allowChangeColors = true
allowChangeAddons = true
disableOutfitsForPrivilegedPlayers = false
bankSystem = true
saveGlobalStorage = true
displaySkillLevelOnAdvance = false
spellNameInsteadOfWords = false
emoteSpells = true
promptExceptionTracerErrorBox = true
storePlayerDirection = false
monsterLootMessage = 3
monsterLootMessageType = 25
separateViplistPerCharacter = false

ghostModeInvisibleEffect = false
ghostModeSpellEffects = true

idleWarningTime = 14 * 60 * 1000
idleKickTime = 15 * 60 * 1000
expireReportsAfterReads = 1
playerQueryDeepness = 2
maxItemsPerPZTile = 0
maxItemsPerHouseTile = 0

freePremium = true
premiumForPromotion = true

blessingOnlyPremium = true
blessingReductionBase = 30
blessingReductionDecreament = 5
eachBlessReduction = 8

experienceStages = "yes"
rateExperience = 200
rateExperienceFromPlayers = 0
rateSkill = 15
rateMagic = 7
rateLoot = 2
rateSpawn = 1

rateMonsterHealth = 1.0
rateMonsterMana = 1.0
rateMonsterAttack = 1.0
rateMonsterDefense = 1.0

minLevelThresholdForKilledPlayer = 0.9
maxLevelThresholdForKilledPlayer = 1.1

rateStaminaLoss = 1
rateStaminaGain = 3
rateStaminaThresholdGain = 12
staminaRatingLimitTop = 41 * 60
staminaRatingLimitBottom = 14 * 60
rateStaminaAboveNormal = 1.5
rateStaminaUnderNormal = 0.5
staminaThresholdOnlyPremium = true

experienceShareRadiusX = 30
experienceShareRadiusY = 30
experienceShareRadiusZ = 1
experienceShareLevelDifference = 2 / 3
extraPartyExperienceLimit = 20
extraPartyExperiencePercent = 5
experienceShareActivity = 2 * 60 * 1000

globalSaveEnabled = false
globalSaveHour = 1
shutdownAtGlobalSave = false
cleanMapAtGlobalSave = false

deSpawnRange = 2
deSpawnRadius = 50

maxPlayerSummons = 2
teleportAllSummons = false
teleportPlayerSummons = false

ownerName = "Styller Original"
ownerEmail = "[email protected]"
url = ""
location = "Brazil"
displayGamemastersWithOnlineCommand = false

adminLogsEnabled = false
displayPlayersLogging = true
prefixChannelLogs = ""
runFile = ""
outLogName = ""
errorLogName = ""
truncateLogsOnStartup = false
 
 

 

 

 

 

 

 

ConfigManager.cpp

 

  Mostrar conteúdo oculto

 

 


////////////////////////////////////////////////////////////////////////
// OpenTibia - an opensource roleplaying game
////////////////////////////////////////////////////////////////////////
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////
#include "otpch.h"
#include <iostream>

#include "configmanager.h"
#include "house.h"
#include "tools.h"
#include "resources.h"

ConfigManager::ConfigManager()
{
    L = NULL;
    m_loaded = false;
    m_startup = true;

    m_confNumber[ENCRYPTION] = ENCRYPTION_SHA1;
    m_confString[CONFIG_FILE] = getFilePath(FILE_TYPE_CONFIG, "config.lua");

    m_confNumber[LOGIN_PORT] = m_confNumber[ADMIN_PORT] = m_confNumber[MANAGER_PORT] = m_confNumber[STATUS_PORT] = 0;
    m_confString[DATA_DIRECTORY] = m_confString[LOGS_DIRECTORY] = m_confString[IP] = m_confString[RUNFILE] = m_confString[OUTPUT_LOG] = "";
    m_confBool[LOGIN_ONLY_LOGINSERVER] = m_confBool[START_CLOSED] = m_confBool[DAEMONIZE] = false;
    m_confBool[SCRIPT_SYSTEM] = true;
}

bool ConfigManager::load()
{
    if(L)
        lua_close(L);

    L = luaL_newstate();
    if(!L)
        return false;

    luaL_openlibs(L);
    if(luaL_dofile(L, m_confString[CONFIG_FILE].c_str()))
    {
        lua_close(L);
        L = NULL;
        return false;
    }

    if(!m_loaded) //info that must be loaded one time- unless we reset the modules involved
    {
        if(m_confString[DATA_DIRECTORY] == "")
            m_confString[DATA_DIRECTORY] = getGlobalString("dataDirectory", "data/");

        if(m_confString[LOGS_DIRECTORY] == "")
            m_confString[LOGS_DIRECTORY] = getGlobalString("logsDirectory", "logs/");

        if(m_confString[IP] == "")
            m_confString[IP] = getGlobalString("ip", "127.0.0.1");

        if(m_confNumber[LOGIN_PORT] == 0)
            m_confNumber[LOGIN_PORT] = getGlobalNumber("loginPort", 7171);

        if(m_confString[GAME_PORT] == "")
            m_confString[GAME_PORT] = getGlobalString("gamePort", "7172");

        if(m_confNumber[ADMIN_PORT] == 0)
            m_confNumber[ADMIN_PORT] = getGlobalNumber("adminPort", 7171);

        if(m_confNumber[MANAGER_PORT] == 0)
            m_confNumber[MANAGER_PORT] = getGlobalNumber("managerPort", 7171);

        if(m_confNumber[STATUS_PORT] == 0)
            m_confNumber[STATUS_PORT] = getGlobalNumber("statusPort", 7171);

        if(m_confString[RUNFILE] == "")
            m_confString[RUNFILE] = getGlobalString("runFile", "");

        if(m_confString[OUTPUT_LOG] == "")
            m_confString[OUTPUT_LOG] = getGlobalString("outputLog", "");

        m_confBool[TRUNCATE_LOG] = getGlobalBool("truncateLogOnStartup", true);
        #ifdef MULTI_SQL_DRIVERS
        m_confString[SQL_TYPE] = getGlobalString("sqlType", "sqlite");
        #endif
        m_confString[SQL_HOST] = getGlobalString("sqlHost", "localhost");
        m_confNumber[SQL_PORT] = getGlobalNumber("sqlPort", 3306);
        m_confString[SQL_DB] = getGlobalString("sqlDatabase", "theotxserver");
        m_confString[SQL_USER] = getGlobalString("sqlUser", "root");
        m_confString[SQL_PASS] = getGlobalString("sqlPass", "");
        m_confString[SQL_FILE] = getGlobalString("sqlFile", "otxserver.s3db");
        m_confNumber[SQL_KEEPALIVE] = getGlobalNumber("sqlKeepAlive", 0);
        m_confNumber[MYSQL_READ_TIMEOUT] = getGlobalNumber("mysqlReadTimeout", 10);
        m_confNumber[MYSQL_WRITE_TIMEOUT] = getGlobalNumber("mysqlWriteTimeout", 10);
        m_confBool[OPTIMIZE_DATABASE] = getGlobalBool("startupDatabaseOptimization", true);
        m_confString[MAP_NAME] = getGlobalString("mapName", "forgotten.otbm");
        m_confBool[GLOBALSAVE_ENABLED] = getGlobalBool("globalSaveEnabled", true);
        m_confNumber[SERVICE_THREADS] = getGlobalNumber("serviceThreads", 1);
        m_confNumber[GLOBALSAVE_H] = getGlobalNumber("globalSaveHour", 8);
        m_confNumber[GLOBALSAVE_M] = getGlobalNumber("globalSaveMinute", 0);
        m_confString[HOUSE_RENT_PERIOD] = getGlobalString("houseRentPeriod", "monthly");
        m_confNumber[WORLD_ID] = getGlobalNumber("worldId", 0);
        m_confBool[RANDOMIZE_TILES] = getGlobalBool("randomizeTiles", true);
        m_confBool[STORE_TRASH] = getGlobalBool("storeTrash", true);
        m_confString[DEFAULT_PRIORITY] = getGlobalString("defaultPriority", "high");
        m_confBool[BIND_ONLY_GLOBAL_ADDRESS] = getGlobalBool("bindOnlyGlobalAddress", false);
        m_confBool[GUILD_HALLS] = getGlobalBool("guildHalls", false);
        #ifndef __LOGIN_SERVER__
        m_confBool[LOGIN_ONLY_LOGINSERVER] = getGlobalBool("loginOnlyWithLoginServer", false);
        #endif
        m_confString[ENCRYPTION_TYPE] = getGlobalString("encryptionType", "sha256");
        m_confString[RSA_PRIME1] = getGlobalString("rsaPrime1", "14299623962416399520070177382898895550795403345466153217470516082934737582776038882967213386204600674145392845853859217990626450972452084065728686565928113");
        m_confString[RSA_PRIME2] = getGlobalString("rsaPrime2", "7630979195970404721891201847792002125535401292779123937207447574596692788513647179235335529307251350570728407373705564708871762033017096809910315212884101");
        m_confString[RSA_PUBLIC] = getGlobalString("rsaPublic", "65537");
        m_confString[RSA_MODULUS] = getGlobalString("rsaModulus", "109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413");
        m_confString[RSA_PRIVATE] = getGlobalString("rsaPrivate", "46730330223584118622160180015036832148732986808519344675210555262940258739805766860224610646919605860206328024326703361630109888417839241959507572247284807035235569619173792292786907845791904955103601652822519121908367187885509270025388641700821735345222087940578381210879116823013776808975766851829020659073");
    }

    m_confString[MAP_AUTHOR] = getGlobalString("mapAuthor", "Unknown");
    m_confNumber[LOGIN_TRIES] = getGlobalNumber("loginTries", 3);
    m_confNumber[RETRY_TIMEOUT] = getGlobalNumber("retryTimeout", 30000);
    m_confNumber[LOGIN_TIMEOUT] = getGlobalNumber("loginTimeout", 5000);
    m_confNumber[MAX_MESSAGEBUFFER] = getGlobalNumber("maxMessageBuffer", 4);
    m_confNumber[MAX_PLAYERS] = getGlobalNumber("maxPlayers", 1000);
    m_confNumber[DEFAULT_DESPAWNRANGE] = getGlobalNumber("deSpawnRange", 2);
    m_confNumber[DEFAULT_DESPAWNRADIUS] = getGlobalNumber("deSpawnRadius", 50);
    m_confNumber[PZ_LOCKED] = getGlobalNumber("pzLocked", 60000);
    m_confNumber[HUNTING_DURATION] = getGlobalNumber("huntingDuration", 60000);
    m_confString[SERVER_NAME] = getGlobalString("serverName");
    m_confString[OWNER_NAME] = getGlobalString("ownerName");
    m_confString[OWNER_EMAIL] = getGlobalString("ownerEmail");
    m_confString = getGlobalString("url");
    m_confString[LOCATION] = getGlobalString("location");
    m_confString[MOTD] = getGlobalString("motd");
    m_confNumber[ALLOW_CLONES] = getGlobalNumber("allowClones", 0);
    m_confBool[EXPERIENCE_STAGES] = getGlobalBool("experienceStages", false);
    m_confDouble[RATE_EXPERIENCE] = getGlobalDouble("rateExperience", 1);
    m_confDouble[RATE_SKILL] = getGlobalDouble("rateSkill", 1);
    m_confDouble[RATE_SKILL_OFFLINE] = getGlobalDouble("rateSkillOffline", 0.5);
    m_confDouble[RATE_MAGIC] = getGlobalDouble("rateMagic", 1);
    m_confDouble[RATE_MAGIC_OFFLINE] = getGlobalDouble("rateMagicOffline", 0.5);
    m_confDouble[RATE_LOOT] = getGlobalDouble("rateLoot", 1);
    m_confNumber[RATE_SPAWN_MIN] = getGlobalNumber("rateSpawnMin", 1);
    m_confNumber[RATE_SPAWN_MAX] = getGlobalNumber("rateSpawnMax", 1);
    m_confNumber[PARTY_RADIUS_X] = getGlobalNumber("experienceShareRadiusX", 30);
    m_confNumber[PARTY_RADIUS_Y] = getGlobalNumber("experienceShareRadiusY", 30);
    m_confNumber[PARTY_RADIUS_Z] = getGlobalNumber("experienceShareRadiusZ", 1);
    m_confDouble[PARTY_DIFFERENCE] = getGlobalDouble("experienceShareLevelDifference", (double)2 / 3);
    m_confNumber[SPAWNPOS_X] = getGlobalNumber("newPlayerSpawnPosX", 100);
    m_confNumber[SPAWNPOS_Y] = getGlobalNumber("newPlayerSpawnPosY", 100);
    m_confNumber[SPAWNPOS_Z] = getGlobalNumber("newPlayerSpawnPosZ", 7);
    m_confNumber[SPAWNTOWN_ID] = getGlobalNumber("newPlayerTownId", 1);
    m_confString[WORLD_TYPE] = getGlobalString("worldType", "open");
    m_confBool[ACCOUNT_MANAGER] = getGlobalBool("accountManager", true);
    m_confBool[NAMELOCK_MANAGER] = getGlobalBool("namelockManager", false);
    m_confNumber[START_LEVEL] = getGlobalNumber("newPlayerLevel", 1);
    m_confNumber[START_MAGICLEVEL] = getGlobalNumber("newPlayerMagicLevel", 0);
    m_confBool[START_CHOOSEVOC] = getGlobalBool("newPlayerChooseVoc", false);
    m_confNumber[HOUSE_PRICE] = getGlobalNumber("housePriceEachSquare", 1000);
    m_confNumber[WHITE_SKULL_TIME] = getGlobalNumber("whiteSkullTime", 900000);
    m_confBool[ON_OR_OFF_CHARLIST] = getGlobalBool("displayOnOrOffAtCharlist", false);
    m_confBool[ALLOW_CHANGEOUTFIT] = getGlobalBool("allowChangeOutfit", true);
    m_confBool[ONE_PLAYER_ON_ACCOUNT] = getGlobalBool("onePlayerOnlinePerAccount", true);
    m_confBool[CANNOT_ATTACK_SAME_LOOKFEET] = getGlobalBool("noDamageToSameLookfeet", false);
    m_confBool[AIMBOT_HOTKEY_ENABLED] = getGlobalBool("hotkeyAimbotEnabled", true);
    m_confNumber[ACTIONS_DELAY_INTERVAL] = getGlobalNumber("timeBetweenActions", 200);
    m_confNumber[EX_ACTIONS_DELAY_INTERVAL] = getGlobalNumber("timeBetweenExActions", 1000);
    m_confNumber[CUSTOM_ACTIONS_DELAY_INTERVAL] = getGlobalNumber("timeBetweenCustomActions", 500);
    m_confNumber[CRITICAL_HIT_CHANCE] = getGlobalNumber("criticalHitChance", 5);
    m_confBool[REMOVE_WEAPON_AMMO] = getGlobalBool("removeWeaponAmmunition", true);
    m_confBool[REMOVE_WEAPON_CHARGES] = getGlobalBool("removeWeaponCharges", true);
    m_confBool[REMOVE_RUNE_CHARGES] = getGlobalBool("removeRuneCharges", true);
    m_confDouble[RATE_PVP_EXPERIENCE] = getGlobalDouble("rateExperienceFromPlayers", 0);
    m_confDouble[EFP_MIN_THRESHOLD] = getGlobalDouble("minLevelThresholdForKilledPlayer", 0.9f);
    m_confDouble[EFP_MAX_THRESHOLD] = getGlobalDouble("maxLevelThresholdForKilledPlayer", 1.1f);
    m_confBool[SHUTDOWN_AT_GLOBALSAVE] = getGlobalBool("shutdownAtGlobalSave", false);
    m_confBool[CLEAN_MAP_AT_GLOBALSAVE] = getGlobalBool("cleanMapAtGlobalSave", true);
    m_confBool[FREE_PREMIUM] = getGlobalBool("freePremium", false);
    m_confNumber[PROTECTION_LEVEL] = getGlobalNumber("protectionLevel", 1);
    m_confNumber[STATUSQUERY_TIMEOUT] = getGlobalNumber("statusTimeout", 300000);
    m_confBool[BROADCAST_BANISHMENTS] = getGlobalBool("broadcastBanishments", true);
    m_confBool[GENERATE_ACCOUNT_NUMBER] = getGlobalBool("generateAccountNumber", false);
    m_confBool[GENERATE_ACCOUNT_SALT] = getGlobalBool("generateAccountSalt", false);
    m_confBool[INGAME_GUILD_MANAGEMENT] = getGlobalBool("ingameGuildManagement", true);
    m_confBool[EXTERNAL_GUILD_WARS_MANAGEMENT] = getGlobalBool("externalGuildWarsManagement", false);
    m_confNumber[LEVEL_TO_FORM_GUILD] = getGlobalNumber("levelToFormGuild", 8);
    m_confNumber[MIN_GUILDNAME] = getGlobalNumber("guildNameMinLength", 4);
    m_confNumber[MAX_GUILDNAME] = getGlobalNumber("guildNameMaxLength", 20);
    m_confNumber[LEVEL_TO_BUY_HOUSE] = getGlobalNumber("levelToBuyHouse", 1);
    m_confNumber[HOUSES_PER_ACCOUNT] = getGlobalNumber("housesPerAccount", 0);
    m_confBool[HOUSE_BUY_AND_SELL] = getGlobalBool("buyableAndSellableHouses", true);
    m_confBool[REPLACE_KICK_ON_LOGIN] = getGlobalBool("replaceKickOnLogin", true);
    m_confBool[HOUSE_NEED_PREMIUM] = getGlobalBool("houseNeedPremium", true);
    m_confBool[HOUSE_RENTASPRICE] = getGlobalBool("houseRentAsPrice", false);
    m_confBool[HOUSE_PRICEASRENT] = getGlobalBool("housePriceAsRent", false);
    m_confString[HOUSE_STORAGE] = getGlobalString("houseDataStorage", "binary");
    m_confNumber[RED_SKULL_LENGTH] = getGlobalNumber("redSkullLength", 2592000);
    m_confNumber[MAX_VIOLATIONCOMMENT_SIZE] = getGlobalNumber("maxViolationCommentSize", 60);
    m_confNumber[BLACK_SKULL_LENGTH] = getGlobalNumber("blackSkullLength", 3888000);
    m_confNumber[NOTATIONS_TO_BAN] = getGlobalNumber("notationsToBan", 3);
    m_confNumber[WARNINGS_TO_FINALBAN] = getGlobalNumber("warningsToFinalBan", 4);
    m_confNumber[WARNINGS_TO_DELETION] = getGlobalNumber("warningsToDeletion", 5);
    m_confNumber[BAN_LENGTH] = getGlobalNumber("banLength", 604800);
    m_confNumber[KILLS_BAN_LENGTH] = getGlobalNumber("killsBanLength", 604800);
    m_confNumber[FINALBAN_LENGTH] = getGlobalNumber("finalBanLength", 2592000);
    m_confNumber[IPBAN_LENGTH] = getGlobalNumber("ipBanLength", 86400);
    m_confBool[BANK_SYSTEM] = getGlobalBool("bankSystem", true);
    m_confBool[PREMIUM_FOR_PROMOTION] = getGlobalBool("premiumForPromotion", true);
    m_confBool[INIT_PREMIUM_UPDATE] = getGlobalBool("updatePremiumStateAtStartup", true);
    m_confBool[SHOW_HEALTH_CHANGE] = getGlobalBool("showHealthChange", true);
    m_confBool[SHOW_MANA_CHANGE] = getGlobalBool("showManaChange", true);
    m_confBool[TELEPORT_SUMMONS] = getGlobalBool("teleportAllSummons", false);
    m_confBool[TELEPORT_PLAYER_SUMMONS] = getGlobalBool("teleportPlayerSummons", false);
    m_confBool[PVP_TILE_IGNORE_PROTECTION] = getGlobalBool("pvpTileIgnoreLevelAndVocationProtection", true);
    m_confBool[DISPLAY_CRITICAL_HIT] = getGlobalBool("displayCriticalHitNotify", false);
    m_confBool[CLEAN_PROTECTED_ZONES] = getGlobalBool("cleanProtectedZones", true);
    m_confBool[SPELL_NAME_INSTEAD_WORDS] = getGlobalBool("spellNameInsteadOfWords", false);
    m_confBool[EMOTE_SPELLS] = getGlobalBool("emoteSpells", false);
    m_confNumber[MAX_PLAYER_SUMMONS] = getGlobalNumber("maxPlayerSummons", 2);
    m_confBool[SAVE_GLOBAL_STORAGE] = getGlobalBool("saveGlobalStorage", true);
    m_confBool[SAVE_PLAYER_DATA] = getGlobalBool("savePlayerData", true);
    m_confBool[FORCE_CLOSE_SLOW_CONNECTION] = getGlobalBool("forceSlowConnectionsToDisconnect", false);
    m_confBool[BLESSINGS] = getGlobalBool("blessings", true);
    m_confBool[BLESSING_ONLY_PREMIUM] = getGlobalBool("blessingOnlyPremium", true);
    m_confBool[BED_REQUIRE_PREMIUM] = getGlobalBool("bedsRequirePremium", true);
    m_confNumber[FIELD_OWNERSHIP] = getGlobalNumber("fieldOwnershipDuration", 5000);
    m_confBool[ALLOW_CHANGECOLORS] = getGlobalBool("allowChangeColors", true);
    m_confBool[STOP_ATTACK_AT_EXIT] = getGlobalBool("stopAttackingAtExit", false);
    m_confNumber[EXTRA_PARTY_PERCENT] = getGlobalNumber("extraPartyExperiencePercent", 5);
    m_confNumber[EXTRA_PARTY_LIMIT] = getGlobalNumber("extraPartyExperienceLimit", 20);
    m_confBool[DISABLE_OUTFITS_PRIVILEGED] = getGlobalBool("disableOutfitsForPrivilegedPlayers", false);
    m_confBool[TRACER_BOX] = getGlobalBool("promptExceptionTracerErrorBox", true);
    m_confNumber[LOGIN_PROTECTION] = getGlobalNumber("loginProtectionPeriod", 10000);
    m_confBool[STORE_DIRECTION] = getGlobalBool("storePlayerDirection", false);
    m_confNumber[PLAYER_DEEPNESS] = getGlobalNumber("playerQueryDeepness", -1);
    m_confDouble[CRITICAL_HIT_MUL] = getGlobalDouble("criticalHitMultiplier", 1);
    m_confNumber[STAIRHOP_DELAY] = getGlobalNumber("stairhopDelay", 2 * 1000);
    m_confNumber[RATE_STAMINA_LOSS] = getGlobalNumber("rateStaminaLoss", 1);
    m_confDouble[RATE_STAMINA_GAIN] = getGlobalDouble("rateStaminaGain", 3);
    m_confDouble[RATE_STAMINA_THRESHOLD] = getGlobalDouble("rateStaminaThresholdGain", 12);
    m_confDouble[RATE_STAMINA_ABOVE] = getGlobalDouble("rateStaminaAboveNormal", 1.5f);
    m_confDouble[RATE_STAMINA_UNDER] = getGlobalDouble("rateStaminaUnderNormal", 0.5f);
    m_confNumber[STAMINA_LIMIT_TOP] = getGlobalNumber("staminaRatingLimitTop", 2460);
    m_confNumber[STAMINA_LIMIT_BOTTOM] = getGlobalNumber("staminaRatingLimitBottom", 840);
    m_confBool[DISPLAY_LOGGING] = getGlobalBool("displayPlayersLogging", true);
    m_confBool[STAMINA_BONUS_PREMIUM] = getGlobalBool("staminaThresholdOnlyPremium", true);
    m_confNumber[BLESS_REDUCTION_BASE] = getGlobalNumber("blessingReductionBase", 30);
    m_confNumber[BLESS_REDUCTION_DECREMENT] = getGlobalNumber("blessingReductionDecrement", 5);
    m_confBool[ALLOW_CHANGEADDONS] = getGlobalBool("allowChangeAddons", true);
    m_confNumber[BLESS_REDUCTION] = getGlobalNumber("eachBlessReduction", 8);
    m_confDouble[FORMULA_LEVEL] = getGlobalDouble("formulaLevel", 5.0);
    m_confDouble[FORMULA_MAGIC] = getGlobalDouble("formulaMagic", 1.0);
    m_confString[PREFIX_CHANNEL_LOGS] = getGlobalString("prefixChannelLogs", "");
    m_confBool[GHOST_INVISIBLE_EFFECT] = getGlobalBool("ghostModeInvisibleEffect", false);
    m_confString[CORES_USED] = getGlobalString("coresUsed", "-1");
    m_confNumber[NICE_LEVEL] = getGlobalNumber("niceLevel", 5);
    m_confNumber[EXPERIENCE_COLOR] = getGlobalNumber("gainExperienceColor", COLOR_WHITE);
    m_confBool[SHOW_HEALTH_CHANGE_MONSTER] = getGlobalBool("showHealthChangeForMonsters", true);
    m_confBool[SHOW_MANA_CHANGE_MONSTER] = getGlobalBool("showManaChangeForMonsters", true);
    m_confBool[CHECK_CORPSE_OWNER] = getGlobalBool("checkCorpseOwner", true);
    m_confBool[BUFFER_SPELL_FAILURE] = getGlobalBool("bufferMutedOnSpellFailure", false);
    m_confNumber[GUILD_PREMIUM_DAYS] = getGlobalNumber("premiumDaysToFormGuild", 0);
    m_confNumber[PUSH_CREATURE_DELAY] = getGlobalNumber("pushCreatureDelay", 2000);
    m_confNumber[DEATH_CONTAINER] = getGlobalNumber("deathContainerId", 1987);
    m_confBool[PREMIUM_SKIP_WAIT] = getGlobalBool("premiumPlayerSkipWaitList", false);
    m_confNumber[MAXIMUM_DOOR_LEVEL] = getGlobalNumber("maximumDoorLevel", 500);
    m_confBool[DEATH_LIST] = getGlobalBool("deathListEnabled", true);
    m_confNumber[DEATH_ASSISTS] = getGlobalNumber("deathAssistCount", 1);
    m_confNumber[FRAG_LIMIT] = getGlobalNumber("fragsLimit", 86400);
    m_confNumber[FRAG_SECOND_LIMIT] = getGlobalNumber("fragsSecondLimit", 604800);
    m_confNumber[FRAG_THIRD_LIMIT] = getGlobalNumber("fragsThirdLimit", 2592000);
    m_confNumber[RED_LIMIT] = getGlobalNumber("fragsToRedSkull", 3);
    m_confNumber[RED_SECOND_LIMIT] = getGlobalNumber("fragsSecondToRedSkull", 5);
    m_confNumber[RED_THIRD_LIMIT] = getGlobalNumber("fragsThirdToRedSkull", 10);
    m_confNumber[BLACK_LIMIT] = getGlobalNumber("fragsToBlackSkull", m_confNumber[RED_LIMIT]);
    m_confNumber[BLACK_SECOND_LIMIT] = getGlobalNumber("fragsSecondToBlackSkull", m_confNumber[RED_SECOND_LIMIT]);
    m_confNumber[BLACK_THIRD_LIMIT] = getGlobalNumber("fragsThirdToBlackSkull", m_confNumber[RED_THIRD_LIMIT]);
    m_confNumber[BAN_LIMIT] = getGlobalNumber("fragsToBanishment", m_confNumber[RED_LIMIT]);
    m_confNumber[BAN_SECOND_LIMIT] = getGlobalNumber("fragsSecondToBanishment", m_confNumber[RED_SECOND_LIMIT]);
    m_confNumber[BAN_THIRD_LIMIT] = getGlobalNumber("fragsThirdToBanishment", m_confNumber[RED_THIRD_LIMIT]);
    m_confNumber[BLACK_SKULL_DEATH_HEALTH] = getGlobalNumber("blackSkulledDeathHealth", 40);
    m_confNumber[BLACK_SKULL_DEATH_MANA] = getGlobalNumber("blackSkulledDeathMana", 0);
    m_confNumber[DEATHLIST_REQUIRED_TIME] = getGlobalNumber("deathListRequiredTime", 60000);
    m_confNumber[EXPERIENCE_SHARE_ACTIVITY] = getGlobalNumber("experienceShareActivity", 120000);
    m_confBool[GHOST_SPELL_EFFECTS] = getGlobalBool("ghostModeSpellEffects", true);
    m_confBool[PVPZONE_ADDMANASPENT] = getGlobalBool("addManaSpentInPvPZone", true);
    m_confBool[PVPZONE_RECOVERMANA] = getGlobalBool("recoverManaAfterDeathInPvPZone", false);
    m_confNumber[TILE_LIMIT] = getGlobalNumber("tileLimit", 0);
    m_confNumber[PROTECTION_TILE_LIMIT] = getGlobalNumber("protectionTileLimit", 0);
    m_confNumber[HOUSE_TILE_LIMIT] = getGlobalNumber("houseTileLimit", 0);
    m_confNumber[TRADE_LIMIT] = getGlobalNumber("tradeLimit", 100);
    m_confString[MAILBOX_DISABLED_TOWNS] = getGlobalString("mailboxDisabledTowns", "");
    m_confNumber[SQUARE_COLOR] = getGlobalNumber("squareColor", 0);
    m_confBool[USE_BLACK_SKULL] = getGlobalBool("useBlackSkull", false);
    m_confBool[USE_FRAG_HANDLER] = getGlobalBool("useFragHandler", true);
    m_confNumber[LOOT_MESSAGE] = getGlobalNumber("monsterLootMessage", 3);
    m_confNumber[LOOT_MESSAGE_TYPE] = getGlobalNumber("monsterLootMessageType", 19);
    m_confNumber[NAME_REPORT_TYPE] = getGlobalNumber("violationNameReportActionType", 2);
    m_confNumber[HOUSE_CLEAN_OLD] = getGlobalNumber("houseCleanOld", 0);
    m_confBool[VIPLIST_PER_PLAYER] = getGlobalBool("separateVipListPerCharacter", false);
    m_confDouble[RATE_MONSTER_HEALTH] = getGlobalDouble("rateMonsterHealth", 1);
    m_confDouble[RATE_MONSTER_MANA] = getGlobalDouble("rateMonsterMana", 1);
    m_confDouble[RATE_MONSTER_ATTACK] = getGlobalDouble("rateMonsterAttack", 1);
    m_confDouble[RATE_MONSTER_DEFENSE] = getGlobalDouble("rateMonsterDefense", 1);
    m_confBool[MANAGER_LOCALHOST_ONLY] = getGlobalBool("managerLocalhostOnly", true);
    m_confNumber[MANAGER_CONNECTIONS_LIMIT] = getGlobalNumber("managerConnectionsLimit", 1);
    m_confString[MANAGER_PASSWORD] = getGlobalString("managerPassword", "");
    m_confBool[MANAGER_LOGS] = getGlobalBool("managerLogs", false);
    m_confBool[ADMIN_LOGS] = getGlobalBool("adminLogs", false);
    m_confString[ADMIN_PASSWORD] = getGlobalString("adminPassword", "");
    m_confNumber[ADMIN_CONNECTIONS_LIMIT] = getGlobalNumber("adminConnectionsLimit", 1);
    m_confBool[ADMIN_LOCALHOST_ONLY] = getGlobalBool("adminLocalhostOnly", true);
    m_confBool[ADMIN_REQUIRE_LOGIN] = getGlobalBool("adminRequireLogin", true);
    m_confString[ADMIN_ENCRYPTION] = getGlobalString("adminEncryption", "");
    m_confString[ADMIN_ENCRYPTION_DATA] = getGlobalString("adminEncryptionData", "");
    m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true);
    m_confBool[UNIFIED_SPELLS] = getGlobalBool("unifiedSpells", true);
    m_confBool[OPTIONAL_WAR_ATTACK_ALLY] = getGlobalBool("optionalWarAttackableAlly", false);
    m_confNumber[VIPLIST_DEFAULT_LIMIT] = getGlobalNumber("vipListDefaultLimit", 20);
    m_confNumber[VIPLIST_DEFAULT_PREMIUM_LIMIT]    = getGlobalNumber("vipListDefaultPremiumLimit", 100);
    m_confNumber[STAMINA_DESTROY_LOOT] = getGlobalNumber("staminaLootLimit", 840);
    m_confNumber[FIST_BASE_ATTACK] = getGlobalNumber("fistBaseAttack", 7);
    m_confBool[MONSTER_SPAWN_WALKBACK] = getGlobalBool("monsterSpawnWalkback", true);
    m_confNumber[PVP_BLESSING_THRESHOLD] = getGlobalNumber("pvpBlessingThreshold", 40);
    m_confNumber[FAIRFIGHT_TIMERANGE] = getGlobalNumber("fairFightTimeRange", 60);
    m_confNumber[DEFAULT_DEPOT_SIZE_PREMIUM] = getGlobalNumber("defaultDepotSizePremium", 2000);
    m_confNumber[DEFAULT_DEPOT_SIZE] = getGlobalNumber("defaultDepotSize", 2000);
    m_confBool[USE_CAPACITY] = getGlobalBool("useCapacity", true);
    m_confBool[DAEMONIZE] = getGlobalBool("daemonize", false);
    m_confBool[TIBIA_SLOTS] = getGlobalBool("tibiaClassicSlots", true);
    m_confBool[SKIP_ITEMS_VERSION] = getGlobalBool("skipItemsVersionCheck", false);
    m_confBool[SILENT_LUA] = getGlobalBool("disableLuaErrors", false);
    m_confNumber[MAIL_ATTEMPTS] = getGlobalNumber("mailMaxAttempts", 20);
    m_confNumber[MAIL_BLOCK] = getGlobalNumber("mailBlockPeriod", 3600000);
    m_confNumber[MAIL_ATTEMPTS_FADE] = getGlobalNumber("mailAttemptsFadeTime", 600000);
    m_confBool[ROOK_SYSTEM] = getGlobalBool("useRookSystem", false);
    m_confNumber[ROOK_TOWN] = getGlobalNumber("rookTownId", 1);
    m_confNumber[ROOK_LEVELTO] = getGlobalNumber("rookLevelToGetRooked", 5);
    m_confNumber[ROOK_TOLEVEL] = getGlobalNumber("rookLevelToLeaveRook", 8);
    m_confBool[HOUSE_SKIP_INIT_RENT] = getGlobalBool("houseSkipInitialRent", true);
    m_confBool[HOUSE_PROTECTION] = getGlobalBool("houseProtection", true);
    m_confBool[FAIRFIGHT_REDUCTION] = getGlobalBool("useFairfightReduction", true);
    m_confNumber[MYSQL_RECONNECTION_ATTEMPTS] = getGlobalNumber("mysqlReconnectionAttempts", 3);
    m_confBool[ALLOW_BLOCK_SPAWN] = getGlobalBool("allowBlockSpawn", true);
    m_confNumber[FOLLOW_EXHAUST] = getGlobalNumber("playerFollowExhaust", 2000);
    m_confBool[MULTIPLE_NAME] = getGlobalBool("multipleNames", false);
    m_confNumber[PACKETS_PER_SECOND] = getGlobalNumber("packetsPerSecond", 50);
    m_confBool[SAVE_STATEMENT] = getGlobalBool("logPlayersStatements", true);
    m_confNumber[GUI_PREMIUM_DAYS] = getGlobalNumber("premiumDaysToAddByGui", 30);
    m_confBool[MANUAL_ADVANCED_CONFIG] = getGlobalBool("manualVersionConfig", false);
    m_confNumber[VERSION_MIN] = getGlobalNumber("versionMin", CLIENT_VERSION_MIN);
    m_confNumber[VERSION_MAX] = getGlobalNumber("versionMax", CLIENT_VERSION_MAX);
    m_confString[VERSION_MSG] = getGlobalString("versionMsg", "Only clients with protocol " CLIENT_VERSION_STRING " allowed!");
    m_confBool[USE_RUNE_REQUIREMENTS] = getGlobalBool("useRunesRequirements", true);
    m_confNumber[HIGHSCORES_TOP] = getGlobalNumber("highscoreDisplayPlayers", 10);
    m_confNumber[HIGHSCORES_UPDATETIME] = getGlobalNumber("updateHighscoresAfterMinutes", 60);
    m_confBool[ATTACK_IMMEDIATELY_AFTER_LOGGING_IN] = getGlobalBool("attackImmediatelyAfterLoggingIn", false);

    m_loaded = true;
    return true;
}

bool ConfigManager::reload()
{
    if(!m_loaded)
        return false;

    uint32_t tmp = m_confNumber[HOUSE_PRICE];
    if(!load())
        return false;

    if((uint32_t)m_confNumber[HOUSE_PRICE] == tmp)
        return true;

    for(HouseMap::iterator it = Houses::getInstance()->getHouseBegin();
        it != Houses::getInstance()->getHouseEnd(); ++it)
    {
        uint32_t price = it->second->getTilesCount() * m_confNumber[HOUSE_PRICE];
        if(m_confBool[HOUSE_RENTASPRICE])
        {
            uint32_t rent = it->second->getRent();
            if(!m_confBool[HOUSE_PRICEASRENT] && it->second->getPrice() != rent)
                price = rent;
        }

        it->second->setPrice(price);
        if(m_confBool[HOUSE_PRICEASRENT])
            it->second->setRent(price);

        if(!it->second->getOwner())
            it->second->updateDoorDescription();
    }

    return true;
}

const std::string& ConfigManager::getString(uint32_t _what) const
{
    if((m_loaded && _what < LAST_STRING_CONFIG) || _what <= CONFIG_FILE)
        return m_confString[_what];

    if(!m_startup)
        std::clog << "[Warning - ConfigManager::getString] " << _what << std::endl;

    return m_confString[DUMMY_STR];
}

bool ConfigManager::getBool(uint32_t _what) const
{
    if(m_loaded && _what < LAST_BOOL_CONFIG)
        return m_confBool[_what];

    if(!m_startup)
        std::clog << "[Warning - ConfigManager::getBool] " << _what << std::endl;

    return false;
}

int64_t ConfigManager::getNumber(uint32_t _what) const
{
    if(m_loaded && _what < LAST_NUMBER_CONFIG)
        return m_confNumber[_what];

    if(!m_startup)
        std::clog << "[Warning - ConfigManager::getNumber] " << _what << std::endl;

    return 0;
}

double ConfigManager::getDouble(uint32_t _what) const
{
    if(m_loaded && _what < LAST_DOUBLE_CONFIG)
        return m_confDouble[_what];

    if(!m_startup)
        std::clog << "[Warning - ConfigManager::getDouble] " << _what << std::endl;

    return 0;
}

bool ConfigManager::setString(uint32_t _what, const std::string& _value)
{
    if(_what < LAST_STRING_CONFIG)
    {
        m_confString[_what] = _value;
        return true;
    }

    std::clog << "[Warning - ConfigManager::setString] " << _what << std::endl;
    return false;
}

bool ConfigManager::setNumber(uint32_t _what, int64_t _value)
{
    if(_what < LAST_NUMBER_CONFIG)
    {
        m_confNumber[_what] = _value;
        return true;
    }

    std::clog << "[Warning - ConfigManager::setNumber] " << _what << std::endl;
    return false;
}

bool ConfigManager::setBool(uint32_t _what, bool _value)
{
    if(_what < LAST_BOOL_CONFIG)
    {
        m_confBool[_what] = _value;
        return true;
    }

    std::clog << "[Warning - ConfigManager::setBool] " << _what << std::endl;
    return false;
}

 

 

Muda no seu config.lua só pra fragsToRedSkull/blackskull

Tira o daily, weekly e monthly. Bota assim:

redSkullLength = 24 * 60 * 60
blackSkullLength = 48 * 60 * 60
fragsToRedSkull = 15
fragsToBlackSkull = 20
fragsToBanishment = 40
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 0
useBlackSkull = true
useFragHandler = true
advancedFragList = false 

 

Otserver Global - Open Tibia

angera.servegame.com

Link para o post
Compartilhar em outros sites
2 minutos atrás, BobStyle10 disse:

@amora murder já testei dessa forma, não foi também.

Quando vc testou, ficou daquele jeito ali que coloquei o código?

Porque essas coisas uma vírgula no lugar errado buga um script inteiro.

Experimenta apagar seu paragrafo de frags todo, e colcoar aquele código que postei por último, que só tem 10 linhas.

Otserver Global - Open Tibia

angera.servegame.com

Link para o post
Compartilhar em outros sites
4 minutos atrás, BobStylle1020 disse:

@amora murder @Vodkart Arrumei certinho, beleza!

Porém acontecem duas coisas, no config.lua tá 15 frags red, com 5 o player já pega red.

Segundo é, quando tá red skull, o tempo pra sair é só em 2021!

 

Sabem o que pode ser?

Cara, 90% de certeza que é coisa da sua Source. Pq tava lendo la, tem uns negocios meio esquisitos... Tipo: Red_Seccond_Limite. E o número é justamente 5. Mas o problema é que não to consegundo entender qual o objetivo dessa sua source, tem primeiro limite de frag pra red skull, segundo limite e terceiro limite. Olha que treta?!

Tenta fazer isso pra ver se resolve:

redSkullLength = 24 * 60 * 60
blackSkullLength = 48 * 60 * 60
fragsToRedSkull = 15
fragsSecondToRedSkull = 15
fragsThirdToRedSkull = 15
fragsToBlackSkull = 20
fragsSecondToBlackSkull = 20
fragsThirdToBlackSkull = 20
fragsToBanishment = 40
fragsSecondToBanishment = 40
fragsThirdToBanishment = 40
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 0
useBlackSkull = true
useFragHandler = true
advancedFragList = false 

Agora quanto a duração, não sei muito como resolver. Mas --> DEPOIS <-- que modificar o código colocando da maneira que fiz a cima e verificar se a quantidade de frags está corrigida, tenta colocar isso lá no início pra ver se resolve a duração:

redSkullLength = 24 * 60 * 60 * 1000

 

Otserver Global - Open Tibia

angera.servegame.com

Link para o post
Compartilhar em outros sites
21 horas atrás, BobStylle1020 disse:

@amora murder cara, acredite se quiser. Testei das  duas formas e nada, será que não teria que fazer na source pra que resolvesse?

Ah mano... O fogo é que não manjo de mexer na source. E outra: Se mexer lá, tem que recompilar a source pra fazer efeito.

Otserver Global - Open Tibia

angera.servegame.com

Link para o post
Compartilhar em outros sites
5 horas atrás, BobStylle1020 disse:

@amora murder a pode crê, compilar é tranquilo.. Foda é arrumar kk

Ah vei... Como disse, não manjo de source.

MAS, se pra vc compilar é moleza, e caso vc esteja msm empenhado em resolver isso aí... Pega aquele arquivo com final .cpp que te falei a cima, tira as linhas que falam "secondFragsToRed", "Third..." Tudo relacionado a isso, e só deixa "fragsToRedSkull", "black" e "banishment". Sacou?

Mas é só uma tentativa mesmo, nem sei se vai funcionar.

Aí depois vc deixa o config.lua daquele jeito la que te falei anteriormente mesmo.
 

redSkullLength = 24 * 60 * 60
blackSkullLength = 48 * 60 * 60
fragsToRedSkull = 15
fragsToBlackSkull = 20
fragsToBanishment = 40
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 0
useBlackSkull = true
useFragHandler = true
advancedFragList = false 

 

Otserver Global - Open Tibia

angera.servegame.com

Link para o post
Compartilhar em outros sites

@amora murder achei a solução! Testa ai no teu também, vê se vai. Não vou colocar em spoiler porque as vezes buga.

Meu otx, assim como todos os outros possuem, first, second e third frags, red e blackskull.

 

fragsLimit = 24 * 60 * 60
fragsSecondLimit = 1 * 24 * 60 * 60
fragsThirdLimit = 1 * 24 * 60 * 60

fragsToRedSkull = 15
fragsSecondToRedSkull = 60
fragsThirdToRedSkull = 90
redSkullLength = 1 * 24 * 60 * 60


fragsToBlackSkull = 20
fragsSecondToBlackSkull = 65
fragsThirdToBlackSkull = 95
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 0
blackSkullLength = 2 * 24 * 60 * 60
useBlackSkull = true


notationsToBan = 3
warningsToFinalBan = 4
warningsToDeletion = 5
banLength = 7 * 24 * 60 * 60
killsBanLength = 7 * 24 * 60 * 60
finalBanLength = 30 * 24 * 60 * 60
ipBanLength = 1 * 24 * 60 * 60
fragsToBanishment = 25
fragsSecondToBanishment = 70
fragsThirdToBanishment = 99

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo