Resolvendo Problemas 8.5+

joaohd
Por joaohd
em Tutoriais de Scripting

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

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

satan666

Antichrist Superstar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 07/05/08Posts: 612Char no Tibia: leviana luciferiana

É 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.

creationb.jpg

"Um Deus que usasse seu poder para criar seres humanos que de antemão sabia que seriam atormentados eternamente, e que os predestinasse a isso,



não poderia ser sábio, nem justo e tampouco amoroso.

Além de nos submeter a isso vim a nos julgar e condenar por nossos atos aos tormentos do inferno.

pra minha pessoa isso não é um Deus Pai amoroso e bondoso como o chaman, seu padrão seria muito mais inferior do que o de muitos homens."

\Mattheus ~*

Ex Moderador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 11/02/09Posts: 559Char no Tibia: Deep Druid

Gostei bastande retratou alguns erros em apénas um tutórial .

Continue assim trazendo explicações .

 

Abraços .

[/ Construçãao .

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

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

Davizinhu96

GOD Xinxua ~~ Mapper
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/10/09Posts: 22

Muito bom! fácil entendimento e funciona!

 

Por Min está Aprovado :button_ok:

<img src="http://img121.imageshack.us/img121/4734/fanbar.gif" border="0" class="linked-sig-image" />
<img src="http://img14.imageshack.us/img14/7704/fanbarvilden.jpg" border="0" class="linked-sig-image" />

DaNDaNrOxX

oi mosso
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/01/08Posts: 1455Char no Tibia: Saint Claire

:button_ok: Parabéns apocarai, seu tutorial foi aprovado!

Obrigado por trazer conteúdo à comunidade.

 

~> Tópico movido para a seção correta <~

 

 

Atenciosamente,

Daniel Oliveira.

 

 

Entrada na equipe: 23/10/2008 Cargo: Estagiário

Promoção: 25/11/2008 Cargo: Moderador

Promoção: 21/10/2009 Cargo: Coordenador

Remoção: 09/05/2010 Motivo: Estudos

Retorno: 15/11/2010 Cargo: Moderador

Remoção: 20/12/2012.

 

 

Doidin

Delícia
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 25/06/08Posts: 723Gênero: MasculinoChar no Tibia: Diiva

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

 

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

 

:smile_positivo:

Meu site pessoal:
https://devmat.com.br/


dono do um sitezinho qualquer

o lado negro da força, bjs

Joellessa

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/09/07Posts: 3

Ai ótimo tópico, assim posso organizar mais o ot...

Duuk

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/07/08Posts: 2

Gostei muito cara, ajudou bastante.

Aprovado ;P