LE

Ajuda Com Server Reset E Refinamento!

Por levy1233, 19 de mai. de 2010 em Archived

otserv
tibia
script
8
1.5k
levy1233L
19 de maio de 2010 às 17:42

1º Como faço para resetar todas as casas do ot? tpw... deletar todos items e ela ficar como "Nobody" de novo...

 

2º colokei akele sistema de refinamento do "Azi" e deu algum problema aki:

 

local conf = {}

 

 

-- // config // --

conf.maxItemLevel = 10 -- max item level

conf.successChance = 50 -- succes upgrade chance

 

conf["upgrade"] = { -- how many parcent attributes are rised?

attack = 5, -- attack %

extraAttack = 10, -- extra Attack %

defence = 5, -- defence %

extraDefence = 10, -- extra defence %

armor = 5, -- armor %

attackSpeed = 3, -- attack speed %

hitChance = 5, -- hit chance %

shootRange = 2, -- shoot range %

}

 

--// end // --

 

function getItemInfo(item)

 

local attr = {}

local name = string.explode(getItemName(item), '+');

if #name == 1 then

attr.name = name[1]

attr.level = math.abs(0)

else

attr.level = math.abs(name[2])

attr.name = name[1]

end

attr.attack = (getItemAttack(item) > 0) and getItemAttack(item) or 0

attr.extraAttack = (getItemExtraAttack(item) > 0) and getItemExtraAttack(item) or 0

attr.defence = (getItemDefense(item) > 0) and getItemDefense(item) or 0

attr.extraDefence = (getItemExtraDefense(item) > 0) and getItemExtraDefense(item) or 0

attr.armor = (getItemArmor(item) > 0) and getItemArmor(item) or 0

attr.attackSpeed = (getItemAttackSpeed(item) > 0) and getItemAttackSpeed(item) or 0

attr.hitChance = (getItemHitChance(item) > 0) and getItemHitChance(item) or 0

attr.shootRange = (getItemShootRange(item) > 0) and getItemShootRange(item) or 0

attr.weight = (getItemWeight(item) > 0) and getItemWeight(item) or 0

 

return attr

end

 

function upgradeValue(value, parcent)

local newValue = math.ceil(((value/100)*parcent)+value)

return (newValue > 0) and newValue or 0

end

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

 

if toPosition.x == 65535 then

local upgradingItem = getItemInfo(itemEx.uid)

if (upgradingItem.attack > 0 or upgradingItem.defence > 0 or upgradingItem.armor > 0 or upgradingItem.shootRange > 1) then

if (upgradingItem.level < conf.maxItemLevel) then

if conf.successChance >= math.random(1,100) then

setItemName(itemEx.uid, upgradingItem.name.." + "..(upgradingItem.level+1))

setItemAttack(itemEx.uid, upgradeValue(upgradingItem.attack, conf["upgrade"].attack))

setItemExtraAttack(itemEx.uid, upgradeValue(upgradingItem.extraAttack, conf["upgrade"].extraAttack))

setItemDefense(itemEx.uid, upgradeValue(upgradingItem.defence, conf["upgrade"].defence))

setItemExtraDefense(itemEx.uid, upgradeValue(upgradingItem.extraDefence, conf["upgrade"].extraDefence))

setItemArmor(itemEx.uid, upgradeValue(upgradingItem.armor, conf["upgrade"].armor))

setItemAttackSpeed(itemEx.uid, upgradeValue(upgradingItem.attackSpeed, conf["upgrade"].attackSpeed))

setItemHitChance(itemEx.uid, upgradeValue(upgradingItem.hitChance, conf["upgrade"].hitChance))

setItemShootRange(itemEx.uid, upgradeValue(upgradingItem.shootRange, conf["upgrade"].shootRange))

doSendMagicEffect(toPosition, 30)

doPlayerSendTextMessage(cid, 22, "Upgraded was successful, your item has become stronger!")

else

doRemoveItem(itemEx.uid, itemEx.type)

doSendMagicEffect(toPosition, 2)

doPlayerSendTextMessage(cid, 22, "Upgrading fail... you lost upgraded item!")

end

doRemoveItem(item.uid, 1)

else

doPlayerSendCancel(cid, "This item is on max level!")

end

else

doPlayerSendCancel(cid, "You cannot upgrade this item!")

end

else

doPlayerSendCancel(cid, "You can upgrading items only in inventory!")

end

return TRUE;

end

 

 

E esse foi o erro:

 

uso o servidor 8.54 alissow 3.9.0

 

Error - Action Interface]
data/actions/scripts/upgrade.lua:onUse
Description:
data/lib/050-function.lua:234: attempt to index a boolean value
stack traceback:
data/lib/050-function.lua:234: in function 'getItemName'
data/actions/scripts/upgrade.lua:24: in function 'getItemInfo'
data/lib/050-function.lua:527: in function 'getItemDescriptions'
data/lib/050-function.lua:234: in function 'getItemName'
data/actions/scripts/upgrade.lua:24: in function 'getItemInfo'
data/actions/scripts/upgrade.lua:53: in function  <data/actions/scripts/upgrade.lua:50>

 

oque eu faço para arrumar?

 

obrigado desde já :smile_positivo:

safraS
19 de maio de 2010 às 17:48

na vrs. 8.50 eu dei reload nas houses pelo tfs, depois fui dando !leavehouse em todas =x

 

nem demoro muito, e todas ficarãm nobody! mas ae vai de você.

OneshotO
19 de maio de 2010 às 18:07

- Olá,

 

Sobre a dúvida 2, referente a Refine, os servidores baseados no distro Forgotten Server 0.3.6pl1 não podem rodar esse sistema, porque as funções getItemAttack, getItemDefense, getItemExtraAttack e etc, foram retiradas do sistema, logo se você roda esse script em um servidor baseado nessa distribuição, ocorrerá o não-reconhecimento da função, retornando valores nulos, ocasionando o erro que você passou.

 

Se você quer resetar TODO seu servidor, porque não pegar uma database Sqlite nova, sem contas e sem dados nas houses, e substituir pela velha?

 

Abraços.

Editado Maio 19 por Oneshot

levy1233L
20 de maio de 2010 às 00:54

Olá amigos, primeiramente obrigado pela ajuda...

 

tpw... são umas 400 casas ou mais... (mapa global + area vip)...

 

foda dar leave em todas até pq tem house escondida pra td q é lado...

 

e tpw... tbm n kero resetar todo o ot... saca? só as house...

 

teria como? oq devo fazer?

 

e quanto ao erro do refinamento, não da pra substituir os commands retirados por algum outro? obrigado :smile_positivo:

OneshotO
20 de maio de 2010 às 07:55

Dá sim para substituir os comandos por outro,

O problema é que o pessoal que desenvolve o TheForgotten Server, fez alguma coisa errada, e a

função que eles colocaram, só retorna valores nulos.

levy1233L
21 de maio de 2010 às 02:17

e oque isso quer dizer? ;s

 

obrigado...

levy1233L
26 de maio de 2010 às 04:27

Olá, me falaram pra mudar no meu banco de dados pras casas ficarem nobody... deu certo...

 

porém os items, na hora que o novo jogador compra a casa, ganha os items dentro dela --'...

 

alguem sabe como deletar?

 

PS: quanto ao refinamento, ja resolvi :D

 

obrigado :smile_positivo:

7 meses depois...
megachockM
18 de dezembro de 2010 às 11:37

Eu acho que Gesior Acc tem uma funçao