Ir para conteúdo

Resolvendo Problemas 8.5+


joaohd

Posts Recomendados

Bom, como sabem os ot's 8.5+ estão vindo com alguns bugs como por exemplo o save travando, podendo ser derrubado pela porta 7172, aol infinito, spell sem exausted. Então esse tutorial te guiará para consertar todos esses problemas no seu ot. Mãos à massa:

 

Arrumando o aol

Abra o arquivo itens.xml do seu ot e localize o amulet of loss. Ele estará assim:
<item id="2173" article="an" name="amulet of loss">

<attribute key="weight" value="420"/>

<attribute key="slotType" value="necklace"/>

<attribute key="charges" value="1"/>

<attribute key="preventDrop" value="1"/>

</item>

 

Simplesmente substitua isto por:

 

<item id="2173" article="an" name="amulet of loss">

<attribute key="weight" value="420"/>

<attribute key="slotType" value="necklace"/>

<attribute key="preventDrop" value="1"/>

</item>

 

Salve e veja que funciona!

 

Arrumando o clean

Abra o config.lua do seu ot e localize:
storeTrash = "no"

 

Substitua por:

 

storeTrash = "yes"

 

Salve e veja que funciona!

 

Arrumando crash pela porta 7172

Abra o arquivo config.lua do seu ot e localize:
gamePort = 7172

 

Simplesmente troque o 7172 por um número de 4 dígitos à sua escolha. Exemplo:

gamePort = 1313

 

Assim, quando tentarem derrubar seu ot pela porta 7172 aparecerá que o servidor está offline. Porém, é uma solução paleativa, uma vez que se o jogador descobrir o número que você escolheu este poderá dar crash em seu ot por esta porta. (NUNCA COLOQUE O NUMERO 7171 NO LUGAR DO 7172 NEM DEIXE EM BRANCO)

 

Spells sem exausted

Um problema comum que causa crash nos ot's é este. A solução também é simples. Localize o arquivo da magia que está sem exausted e adicione
return TRUE

antes do último

end

 

Exemplo (magia exevo san condition do slayer yurots e snowz):

local combat1 = createCombatObject()

local combat2 = createCombatObject()

local combat3 = createCombatObject()

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.4, -1)

local condition1 = createConditionObject(CONDITION_PARALYZE)

setConditionParam(condition1, CONDITION_PARAM_TICKS, 20000)

--setConditionParam(condition1, CONDITION_PARAM_SPEED, -500)

setConditionFormula(condition1, -0.8, 0, -0.8, 0)

setCombatCondition(combat1, condition1)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.4, -1)

local condition2 = createConditionObject(CONDITION_CURSED)

setConditionParam(condition2, CONDITION_PARAM_DELAYED, 1)

addDamageCondition(condition2, 10, 2000, -250)

setCombatCondition(combat2, condition2)

 

local combat3 = createCombatObject()

setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)

setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)

setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.4, -1)

local condition3 = createConditionObject(CONDITION_DAZZLED)

setConditionParam(condition3, CONDITION_PARAM_DELAYED, 1)

addDamageCondition(condition3, 10, 2000, -250)

setCombatCondition(combat3, condition3)

 

arr1 = {

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

}

 

arr2 = {

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

}

 

arr3 = {

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

}

 

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

local area3 = createCombatArea(arr3)

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

setCombatArea(combat3, area3)

 

local function onCastSpell1(parameters)

doCombat(parameters.cid, parameters.combat1, parameters.var)

end

 

local function onCastSpell2(parameters)

doCombat(parameters.cid, parameters.combat2, parameters.var)

end

 

local function onCastSpell3(parameters)

doCombat(parameters.cid, parameters.combat3, parameters.var)

end

 

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3 }

addEvent(onCastSpell1, 1, parameters)

addEvent(onCastSpell2, 2, parameters)

addEvent(onCastSpell3, 3, parameters)

 

end

 

local combat1 = createCombatObject()

local combat2 = createCombatObject()

local combat3 = createCombatObject()

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.4, -1)

local condition1 = createConditionObject(CONDITION_PARALYZE)

setConditionParam(condition1, CONDITION_PARAM_TICKS, 20000)

--setConditionParam(condition1, CONDITION_PARAM_SPEED, -500)

setConditionFormula(condition1, -0.8, 0, -0.8, 0)

setCombatCondition(combat1, condition1)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.4, -1)

local condition2 = createConditionObject(CONDITION_CURSED)

setConditionParam(condition2, CONDITION_PARAM_DELAYED, 1)

addDamageCondition(condition2, 10, 2000, -250)

setCombatCondition(combat2, condition2)

 

local combat3 = createCombatObject()

setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)

setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)

setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.5, -1, -0.4, -1)

local condition3 = createConditionObject(CONDITION_DAZZLED)

setConditionParam(condition3, CONDITION_PARAM_DELAYED, 1)

addDamageCondition(condition3, 10, 2000, -250)

setCombatCondition(combat3, condition3)

 

arr1 = {

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

}

 

arr2 = {

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

}

 

arr3 = {

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

}

 

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

local area3 = createCombatArea(arr3)

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

setCombatArea(combat3, area3)

 

local function onCastSpell1(parameters)

doCombat(parameters.cid, parameters.combat1, parameters.var)

end

 

local function onCastSpell2(parameters)

doCombat(parameters.cid, parameters.combat2, parameters.var)

end

 

local function onCastSpell3(parameters)

doCombat(parameters.cid, parameters.combat3, parameters.var)

end

 

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3 }

addEvent(onCastSpell1, 1, parameters)

addEvent(onCastSpell2, 2, parameters)

addEvent(onCastSpell3, 3, parameters)

return TRUE

end

 

 

Bom, espero que esteja bem claro e organizado.

 

Comentem
Editado por apocarai
Link para o comentário
Compartilhar em outros sites

É gostei pena que você citou poucos erros que tem nos ots 8.5.

existem muitos outros erros toscos que podem ser facilmente resolvidos, algums necessitam mecher nas sources outros não.

 

A formatação está otima e o conteudo também, soluções simples e de grande ajuda.

Link para o comentário
Compartilhar em outros sites

Esses são os mais comuns e os que mais geram tópicos perguntando como se arruma. Alguns foram corrigidos já nos ots mais novos como o npc banker que dava dinheiro de graça e nukava o server. Se souber mais algum, me manda ae que tento arrumar soluções para eles.

 

flw

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

Cara, muito obrigado por ter trago este conteúdo ao Fórum...

 

Me ajudou muuuuito, principalmente o Clean, meu server estava bugado... (:

 

:smile_positivo:

Editado por DoidinMapper
Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...
×
×
  • Criar Novo...