Ir para conteúdo
  • Cadastre-se

(Resolvido)Configurar Skulls & Frags.


Ir para solução Resolvido por Smart Maxx,

Posts Recomendados

  • Moderador

Bom eu mechia com servidores da distro 8.0~8.22, resolvi passar meu servidor para 8.54,tá rodando tudo certo, preciso de uma ajuda para configurar o CONFIG.LUA, quero que o White Skull seja 5 minutos e cada frag seja 30 minutos é possivel ?

Config.lua abaixo no Spoiler.

 
accountManager = false
namelockManager = true
newPlayerChooseVoc = false
newPlayerSpawnPosX = 306
newPlayerSpawnPosY = 47
newPlayerSpawnPosZ = 6
newPlayerTownId = 0
newPlayerLevel = 1
newPlayerMagicLevel = 0
generateAccountNumber = false
 
killsToRed = 8
jailFrag = 12
fragTime = 10 * 60 * 1000
 
 
redSkullLength = 60
blackSkullLength = 45 * 24 * 60 * 60
dailyFragsToRedSkull = 300
weeklyFragsToRedSkull = 300
monthlyFragsToRedSkull = 300
dailyFragsToBlackSkull = dailyFragsToRedSkull
weeklyFragsToBlackSkull = weeklyFragsToRedSkull
monthlyFragsToBlackSkull = monthlyFragsToRedSkull
dailyFragsToBanishment = dailyFragsToRedSkull
weeklyFragsToBanishment = weeklyFragsToRedSkull
monthlyFragsToBanishment = monthlyFragsToRedSkull
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 32
useBlackSkull = false
useFragHandler = true
advancedFragList = false
 
 
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
 
 
worldType = "pvp"
protectionLevel = 100
pvpTileIgnoreLevelAndVocationProtection = true
pzLocked = 30 * 1000
huntingDuration = 30 * 1000
criticalHitChance = 15
criticalHitMultiplier = 1.05
displayCriticalHitNotify = false
removeWeaponAmmunition = false
removeWeaponCharges = false
removeRuneCharges = false
whiteSkullTime = 15 * 60 * 1000
noDamageToSameLookfeet = false
showHealingDamage = true
showHealingDamageForMonsters = false
fieldOwnershipDuration = 5 * 1000
stopAttackingAtExit = true
oldConditionAccuracy = false
loginProtectionPeriod = 3 * 1000
deathLostPercent = 10
stairhopDelay = 100
pushCreatureDelay = 1 * 1000
deathContainerId = 1987
gainExperienceColor = 137
addManaSpentInPvPZone = true
squareColor = 0
allowFightback = true
 
 
worldId = 0
ip = "XXXX"
bindOnlyConfiguredIpAddress = false
loginPort = 7171
gamePort = 7172
adminPort = 7171
statusPort = 7171
loginTries = 10
retryTimeout = 5 * 1000
loginTimeout = 60 * 1000
maxPlayers = 100
motd = "XXX"
displayOnOrOffAtCharlist = false
onePlayerOnlinePerAccount = true
allowClones = false
serverName = "XXX"
loginMessage = "XXX"
statusTimeout = 1 * 60 * 1000
replaceKickOnLogin = true
forceSlowConnectionsToDisconnect = false
loginOnlyWithLoginServer = false
premiumPlayerSkipWaitList = true
 
sqlType = "mysql"
sqlHost = "localhost"
sqlPort = 3306
sqlUser = "root"
sqlPass = "MEUPSSW"
sqlDatabase = "MINHADB"
sqlFile = "forgottenserver.s3db"
sqlKeepAlive = 0
mysqlReadTimeout = 10
mysqlWriteTimeout = 10
encryptionType = "sha1"
 
 
deathListEnabled = true
deathListRequiredTime = 1 * 60 * 1000
deathAssistCount = 19
maxDeathRecords = 5
 
 
ingameGuildManagement = false
levelToFormGuild = 8
premiumDaysToFormGuild = 0
guildNameMinLength = 4
guildNameMaxLength = 20
 
 
highscoreDisplayPlayers = 15
updateHighscoresAfterMinutes = 60
 
 
buyableAndSellableHouses = true
houseNeedPremium = false
bedsRequirePremium = true
levelToBuyHouse = 250
housesPerAccount = 1
houseRentAsPrice = false
housePriceAsRent = false
housePriceEachSquare = 10000
houseRentPeriod = "never"
houseCleanOld = 0
guildHalls = true
 
 
timeBetweenActions = 500
timeBetweenExActions = 100
hotkeyAimbotEnabled = true
 
 
mapName = "map"
mapAuthor = "Kramer"
randomizeTiles = true
storeTrash = true
cleanProtectedZones = true
mailboxDisabledTowns = "-1"
 
 
defaultPriority = "high"
niceLevel = 5
coresUsed = "-1"
 
 
optimizeDatabaseAtStartup = false
removePremiumOnInit = true
confirmOutdatedVersion = false
 
 
formulaLevel = 5.0
formulaMagic = 1.0
bufferMutedOnSpellFailure = false
spellNameInsteadOfWords = false
emoteSpells = true
 
allowChangeOutfit = false
allowChangeColors = false
allowChangeAddons = false
disableOutfitsForPrivilegedPlayers = false
addonsOnlyPremium = false
 
 
dataDirectory = "data/"
bankSystem = false
displaySkillLevelOnAdvance = false
promptExceptionTracerErrorBox = true
separateViplistPerCharacter = false
maximumDoorLevel = 900
maxMessageBuffer = 4
 
 
saveGlobalStorage = false
useHouseDataStorage = false
storePlayerDirection = false
 
 
checkCorpseOwner = false
monsterLootMessage = 3
monsterLootMessageType = 25
 
 
ghostModeInvisibleEffect = false
ghostModeSpellEffects = true
 
 
idleWarningTime = 14 * 60 * 1000
idleKickTime = 15 * 60 * 1000
expireReportsAfterReads = 1
playerQueryDeepness = 2
maxItemsPerPZTile = 20
maxItemsPerHouseTile = 20
 
 
freePremium = false
premiumForPromotion = false
 
 
blessingOnlyPremium = false
blessingReductionBase = 30
blessingReductionDecreament = 5
eachBlessReduction = 8
 
 
experienceStages = false
rateExperience = 500.0
rateExperienceFromPlayers = 1.1
rateSkill = 60.0
rateMagic = 20.0
rateLoot = 20.0
rateSpawn = 16
 
 
rateMonsterHealth = 1.0
rateMonsterMana = 1.0
rateMonsterAttack = 0.5
rateMonsterDefense = 1.0
 
 
minLevelThresholdForKilledPlayer = 0
maxLevelThresholdForKilledPlayer = 0
 
 
rateStaminaLoss = 0
rateStaminaGain = 100
rateStaminaThresholdGain = 100
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 = 8
shutdownAtGlobalSave = false
cleanMapAtGlobalSave = false
 
 
deSpawnRange = 2
deSpawnRadius = 50
 
 
maxPlayerSummons = 2
teleportAllSummons = false
teleportPlayerSummons = false
 
 
ownerName = "xxxxx"
ownerEmail = "xxxxx"
url = "xxxxxx"
location = "Europe"
displayGamemastersWithOnlineCommand = false
 
 
adminLogsEnabled = false
displayPlayersLogging = true
prefixChannelLogs = ""
runFile = ""
outLogName = ""
errorLogName = ""
truncateLogsOnStartup = false

Editado por Mago Math (veja o histórico de edições)

function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 

Link para o post
Compartilhar em outros sites
  • Solução

accountManager = false
namelockManager = true
newPlayerChooseVoc = false
newPlayerSpawnPosX = 306
newPlayerSpawnPosY = 47
newPlayerSpawnPosZ = 6
newPlayerTownId = 0
newPlayerLevel = 1
newPlayerMagicLevel = 0
generateAccountNumber = false


killsToRed = 8
jailFrag = 12
fragTime = 5 * 60




redSkullLength = 60
blackSkullLength = 45 * 24 * 60 * 60
dailyFragsToRedSkull = 300
weeklyFragsToRedSkull = 300
monthlyFragsToRedSkull = 300
dailyFragsToBlackSkull = dailyFragsToRedSkull
weeklyFragsToBlackSkull = weeklyFragsToRedSkull
monthlyFragsToBlackSkull = monthlyFragsToRedSkull
dailyFragsToBanishment = dailyFragsToRedSkull
weeklyFragsToBanishment = weeklyFragsToRedSkull
monthlyFragsToBanishment = monthlyFragsToRedSkull
blackSkulledDeathHealth = 40
blackSkulledDeathMana = 32
useBlackSkull = false
useFragHandler = true
advancedFragList = false




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




worldType = "pvp"
protectionLevel = 100
pvpTileIgnoreLevelAndVocationProtection = true
pzLocked = 30 * 1000
huntingDuration = 30 * 1000
criticalHitChance = 15
criticalHitMultiplier = 1.05
displayCriticalHitNotify = false
removeWeaponAmmunition = false
removeWeaponCharges = false
removeRuneCharges = false
whiteSkullTime = 30 * 60
noDamageToSameLookfeet = false
showHealingDamage = true
showHealingDamageForMonsters = false
fieldOwnershipDuration = 5 * 1000
stopAttackingAtExit = true
oldConditionAccuracy = false
loginProtectionPeriod = 3 * 1000
deathLostPercent = 10
stairhopDelay = 100
pushCreatureDelay = 1 * 1000
deathContainerId = 1987
gainExperienceColor = 137
addManaSpentInPvPZone = true
squareColor = 0
allowFightback = true




worldId = 0
ip = "XXXX"
bindOnlyConfiguredIpAddress = false
loginPort = 7171
gamePort = 7172
adminPort = 7171
statusPort = 7171
loginTries = 10
retryTimeout = 5 * 1000
loginTimeout = 60 * 1000
maxPlayers = 100
motd = "XXX"
displayOnOrOffAtCharlist = false
onePlayerOnlinePerAccount = true
allowClones = false
serverName = "XXX"
loginMessage = "XXX"
statusTimeout = 1 * 60 * 1000
replaceKickOnLogin = true
forceSlowConnectionsToDisconnect = false
loginOnlyWithLoginServer = false
premiumPlayerSkipWaitList = true


sqlType = "mysql"
sqlHost = "localhost"
sqlPort = 3306
sqlUser = "root"
sqlPass = "MEUPSSW"
sqlDatabase = "MINHADB"
sqlFile = "forgottenserver.s3db"
sqlKeepAlive = 0
mysqlReadTimeout = 10
mysqlWriteTimeout = 10
encryptionType = "sha1"




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




ingameGuildManagement = false
levelToFormGuild = 8
premiumDaysToFormGuild = 0
guildNameMinLength = 4
guildNameMaxLength = 20




highscoreDisplayPlayers = 15
updateHighscoresAfterMinutes = 60




buyableAndSellableHouses = true
houseNeedPremium = false
bedsRequirePremium = true
levelToBuyHouse = 250
housesPerAccount = 1
houseRentAsPrice = false
housePriceAsRent = false
housePriceEachSquare = 10000
houseRentPeriod = "never"
houseCleanOld = 0
guildHalls = true




timeBetweenActions = 500
timeBetweenExActions = 100
hotkeyAimbotEnabled = true




mapName = "map"
mapAuthor = "Kramer"
randomizeTiles = true
storeTrash = true
cleanProtectedZones = true
mailboxDisabledTowns = "-1"




defaultPriority = "high"
niceLevel = 5
coresUsed = "-1"




optimizeDatabaseAtStartup = false
removePremiumOnInit = true
confirmOutdatedVersion = false




formulaLevel = 5.0
formulaMagic = 1.0
bufferMutedOnSpellFailure = false
spellNameInsteadOfWords = false
emoteSpells = true


allowChangeOutfit = false
allowChangeColors = false
allowChangeAddons = false
disableOutfitsForPrivilegedPlayers = false
addonsOnlyPremium = false




dataDirectory = "data/"
bankSystem = false
displaySkillLevelOnAdvance = false
promptExceptionTracerErrorBox = true
separateViplistPerCharacter = false
maximumDoorLevel = 900
maxMessageBuffer = 4




saveGlobalStorage = false
useHouseDataStorage = false
storePlayerDirection = false




checkCorpseOwner = false
monsterLootMessage = 3
monsterLootMessageType = 25




ghostModeInvisibleEffect = false
ghostModeSpellEffects = true




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




freePremium = false
premiumForPromotion = false




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




experienceStages = false
rateExperience = 500.0
rateExperienceFromPlayers = 1.1
rateSkill = 60.0
rateMagic = 20.0
rateLoot = 20.0
rateSpawn = 16




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




minLevelThresholdForKilledPlayer = 0
maxLevelThresholdForKilledPlayer = 0




rateStaminaLoss = 0
rateStaminaGain = 100
rateStaminaThresholdGain = 100
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 = 8
shutdownAtGlobalSave = false
cleanMapAtGlobalSave = false




deSpawnRange = 2
deSpawnRadius = 50




maxPlayerSummons = 2
teleportAllSummons = false
teleportPlayerSummons = false




ownerName = "xxxxx"
ownerEmail = "xxxxx"
url = "xxxxxx"
location = "Europe"
displayGamemastersWithOnlineCommand = false




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

btn_donate_LG.gif

 
 
 

 

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por FeeTads
      SALVE rapaziada do TK, esses dias vim pensando em novos scripts pro meu OT, e em um deles eu precisava que determinada area não contasse frag pro player que matasse outros, PORÉM eu precisava que os players que morressem nessa area ainda assim tivessem as penalidades da sua morte, procurei por ai, achei alguns scripts que apenas tiravam o SKULL e não realmente o FRAG do player.

      **script atualizado 22/10/2023** - melhorado e otimizado, levei o script pra puxar as infos por .lua / creatureScripts

      vou disponibilizar o code aqui, e o que fazer pra determinada area não contar frag.

      SOURCE OTX 2 / TFS 0.x, Funciona em TFS 1.x mudando as tags e ajeitando as sintaxes.

      vá em creatureevent.cpp

      procure por:
      else if(type == "preparedeath") _type = CREATURE_EVENT_PREPAREDEATH;
      Adiciona abaixo:
      else if(type == "nocountfrag") _type = CREATURE_EVENT_NOCOUNTFRAG;

      procure por:
      case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath";  
      Adicione abaixo: 
      case CREATURE_EVENT_NOCOUNTFRAG: return "noCountFragArea";

      procure por:
      case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList";
      Adicione abaixo:
      case CREATURE_EVENT_NOCOUNTFRAG: return "cid, target";

      agora no mesmo arquivo, vá até o final do arquivo e adicione essa função:
      uint32_t CreatureEvent::executeNoCountFragArea(Creature* creature, Creature* target) { //noCountFragArea(cid, target) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::ostringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; scriptstream << "local target = " << env->addThing(target) << std::endl; if(m_scriptData) scriptstream << *m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ std::ostringstream desc; desc << creature->getName(); env->setEvent(desc.str()); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); lua_pushnumber(L, env->addThing(target)); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::clog << "[Error - CreatureEvent::noCountFragArea] Call stack overflow." << std::endl; return 0; } }

      agora vá em creatureevent.h

      procure por:
      CREATURE_EVENT_PREPAREDEATH
      adicione abaixo:
      CREATURE_EVENT_NOCOUNTFRAG

      procure por:
      uint32_t executePrepareDeath(Creature* creature, DeathList deathList);
      Adicione abaixo:
      uint32_t executeNoCountFragArea(Creature* creature, Creature* target);

      agora vá em player.cpp

      procure por:
      bool Player::onKilledCreature(Creature* target, DeathEntry& entry)
      abaixo de:
      War_t enemy; if(targetPlayer->getEnemy(this, enemy)) { if(entry.isLast()) IOGuild::getInstance()->updateWar(enemy); entry.setWar(enemy); }
      Adicione o seguinte código:
      if (targetPlayer){ CreatureEventList killEvents = getCreatureEvents(CREATURE_EVENT_NOCOUNTFRAG); for (const auto &event : killEvents) { if (!event->executeNoCountFragArea(this, target)) { return true; } } }

      //

      Feito isso, tudo completo na sua source, agora é necessário adicionar o creaturescript dentro do servidor

      vá até creaturescripts/scripts
      crie um arquivo chamado, "noCountFragInArea.lua"
      e dentro dele cole o código:
       
      --[[ script feito por feetads / TibiaKing ]]-- --[[ discord: feetads / FeeTads#0246 ]]-- -- Add positions here for which you do not want to count frags local areas = { [1] = {from = {x = 91, y = 122, z = 7}, to = {x = 98, y = 127, z = 7}}, -- from = area superior esquerda / to = area inferior direita (formando um quadrado) } local onlyKillerInArea = false -- only killer need to be in area? function noCountFragArea(cid, target) if not isCreature(cid) or not isCreature(target) then return true end local posKiller = getPlayerPosition(cid) local posTarget = getPlayerPosition(target) for i = 1, #areas do local area = areas[i] if isInArea(posKiller, area.from, area.to) then if onlyKillerInArea then return false elseif isInArea(posTarget, area.from, area.to) then return false end end end return true end
      agora em creaturescripts.xml
      <event type="nocountfrag" name="fragarea" event="script" value="noCountFragInArea.lua"/>
      agora em creaturescripts/scripts/login.lua
       procure por OU semelhante a esse:
      registerCreatureEvent(cid, "AdvanceSave")
      e abaixo adicione:
      registerCreatureEvent(cid, "fragarea")

      //


      Agora tudo certo, quando quiser adiciona uma area que não pega frag, vá até o script e apenas coloque a area, igual o demonstrado no script

      Exemplo:
      local areas = { [1] = {from = {x = 91, y = 122, z = 7}, to = {x = 98, y = 127, z = 7}}, [2] = {from = {x = 1000, y = 1000, z = 7}, to = {x = 1100, y = 1100, z = 7}}, }
      assim somente colocando a area no script e abrindo o server ou dando /reload, já funcionará a area como não pegar frag.
      Esse sistema pode ser bom pra areas de pvp ativo, onde você ainda quer que o player que morrer perca os atributos, como se fosse uma morte normal, porém não conta frag pra quem matar.
      Bom pra sistemas tipo castle 48h (guild war), onde há diversas mortes e risco de pegar red, atrapalhando a war.

      Façam bom proveito dos scripts, e deixem os créditos no script rsrs

      **Eu fiz as alterações e o simples código por isso vim disponibilizar, créditos meus**
    • Por opfelipedutra
      Preciso de um script que o PK do player sai em 10 segundos Brigado !!!
    • Por Administrador Nysek
      Olá galera!
       
      Venho aqui com uma grande duvida..
       
      Tenho um otserv Poketibia ,venho trabalhando nele a 3 anos e agora em fim graças ao tibiaking.com
      ele está perfeito ,sem bugs para deixar online!
       
      MAIS O SEU PROBLEMA É QUE ,SÓ EU CONSIGO LOGAR MAIS NINGUÉM CONSEGUE :/
      PRECISO DE AJUDA URGENTE A QUEM DESVENDAR ESSE MEU PROBLEMINHA VOU DAR UMA BAITA RESP+
      E TUDO QUE TIVER DE DIREITO!
       
       



    • Por fezeRa
      Eu queria saber se tem como diminuir o tempo de frags no server?
      Não é o tempo de red skull/white skull...
      É o tempo de frags mesmo, tipo se eu matar um cara agora, daqui 1 hora vai sair o frag dele, ou daqui 2 hora, etc, tem como mudar isso?
    • Por jNo
      Preciso de uma talk que remova apenas os FRAGS e que precise de 5kk para o jogador apagar apenas seus frags
      Fulano tem 5 frags, usou a talk, 0 tudo
      Talk ou por item

      UP
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo