Ir para conteúdo
  • Cadastre-se

[AJUDA] Sistema de refinamento.


Posts Recomendados

Galera preciso de um Sistema de Refinamento normal só que tem que conter o sistema de refinamento 100%.

No caso o Sistema de Refinamento normal e o Sistema de Refinamento com a pedra que tem 100% de chances de dar certo o Refiner..

 

Pois ja testei alguns scripts daqui mesmo do Tibia King e não funcionaram corretamente o 100%.

 

oque eu estou com problema mesmo é o Refiner de 100% de chance que não está pegando corretamente as vezes ele nem funciona ou as vezes funciona mais não almenta nada do item ou as vezes almenta o item mais não aparece no nome +1,+2,+3 etc...

 

Daaniel me salvaa !!!! :*

Link para o post
Compartilhar em outros sites

De acordo com as regras oficiais, você pode apenas dar UP a cada 24 horas. Ou o Tópico sera deleta e você ainda poderá ser punido por algum moderador.

 

5uaPR.png

 

Estou aqui apenas para aconselhar, eu ja faço o script que você quer. Aguarde um pouco, vou apenas ir ali comer algo.

Link para o post
Compartilhar em outros sites

eu já usei o script abaixo, porém não sei se é o que você precisa (:

 

 

Sistema de Refinamento Perfeito!

Olá pessoal estava andando pelo Otland e me deparei com este script, porem ele está atualizado e os créditos vão inteiramente para o Mock, criador do mesmo.

Este script funciona da seguinte maneira é uma pedra preciosa (o script) e quando você usa ela em alguma arma ela adiciona alguns pontos de ataque e defesa a mais durante algum tempo e depois volta ao normal.

Vamos ao que interessa:

Formulario:
Autor: Mock.
Servidor testado: TFS 0.3.6
Versão: 1.1

Vá ate data/actions/actions.xml e adicione essa tag:

<action itemid="8306" script="upgrade.lua"/>Depois salve e vá na pasta scripts e crie o upgrade.lua e dentro dele coloque isto:
 

--- Perfect refine system by Mock the bear (MTB).
--- Email: [email]mock_#####@hotmail.com[/email]
local gain = {
gainArmor='&p+1',loseArmor='&p-1',
gainShield='&s+#',loseShield='&s-(#+1)',
gainAttack='&a+(2*(#))',loseAttack='&a-(2*(#+1))',
gainDefense='&d+(2*(#))',loseDefense='&d-(2*(#+1))',
chance='100/((#*(1/(@/2)))*(@/2))', -- Eu fiz essa equação para variar de +0 a +7 o item
--- Essa equação deve retornar em % a chance do item se refinar (0-100) 100 = sempre, 0 = nunca
maxlvl = 7,
blocked_ids = {2488,8881}
}
-- &a = weapon attack
-- &d = weapon defense
-- &s = shield defense
-- &p = armor defense
-- # = nivel do item
-- @ = max level
if not setItemName then
function setItemName(uid,name)
return doItemSetAttribute(uid,'name',name)
end
function setItemArmor(uid,name)
return doItemSetAttribute(uid,'armor',name)
end
function setItemDefense(uid,name)
return doItemSetAttribute(uid,'defense',name)
end
function setItemAttack(uid,name)
return doItemSetAttribute(uid,'attack',name)
end
function getItemAttack(uid)
return getItemAttribute(uid,'attack')
end
function getItemDefense(uid)
return getItemAttribute(uid,'defense')
end
function getItemArmor(uid)
if type(uid) == 'number' then
return getItemAttribute(uid,'armor')
else
return getItemInfo(uid.itemid).armor
end
end
end
function isArmor(uid) -- Function by Mock the bear.
if (getItemArmor(uid) and getItemArmor(uid) ~= 0 and not getItemInfo(uid.itemid,'attack') and not getItemInfo(uid.itemid,'defense') and getItemWeaponType(uid.uid) == 0) then
return true
end
return false
end
function isWeapon(uid) -- Function by Mock the bear.
uid = uid or 0
local f = getItemWeaponType(uid)
if f == 1 or f == 2 or f == 3 then
return TRUE
end
return FALSE
end
function isShield(uid) -- Function by Mock the bear.
uid = uid or 0
if getItemWeaponType(uid) == 4 then
return TRUE
end
return FALSE
end

function getWeaponLevel(uid) -- Function by Mock the bear.
uid = uid or 0
local name = getItemName(uid)
local lvl = string.match(name,'+(%d)')
return tonumber(lvl) or 0
end
function doTransform(s,i) -- Function by Mock the bear.
local c = string.gsub(s,'@',gain.maxlvl)
local c = string.gsub(c,'&a',getItemAttack(i.uid) or getItemInfo(i.itemid).attack)
local c = string.gsub(c,'&d',getItemDefense(i.uid) or getItemInfo(i.itemid).defense)
local c = string.gsub(c,'&s',getItemDefense(i.uid) or getItemInfo(i.itemid).defense)
local c = string.gsub(c,'&p',getItemArmor(i.uid) or getItemInfo(i.itemid).armor)
local c = string.gsub(c,'#',getWeaponLevel(i.uid))
local q,err = loadstring('return '..c)
assert(q,err)
return assert(q())
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
toPosition.stackpos = 255
if isInArray(gain.blocked_ids, itemEx.itemid) == TRUE
or getItemWeaponType(itemEx.uid) > 4
or (getItemWeaponType(itemEx.uid) == 0
and isArmor(itemEx) == FALSE)
or itemEx.itemid == 0 then
doPlayerSendTextMessage(cid, 24,"You cant refine this item.")
return TRUE
end
if isCreature(itemEx.uid) == TRUE then
return FALSE
end
local level = getWeaponLevel(itemEx.uid)
local chance = doTransform(gain.chance,itemEx)
if chance >= math.random(0,100) or item.actionid >= 1000 or (item.actionid == 500 and math.random(0,100) <= 25) then
if level+1 > gain.maxlvl then
doSendMagicEffect(toPosition, 2)
return doPlayerSendTextMessage(cid, 24,"Your item is on max level, you can't upgrade it.")
else
setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level+1))
doPlayerSendTextMessage(cid, 24,"Your item has been upgrated to +"..(level+1)..".")
doSendMagicEffect(toPosition, 12)
if isArmor(itemEx) == TRUE then
local get = doTransform(gain.gainArmor,itemEx)
setItemArmor(itemEx.uid,get)
elseif isWeapon(itemEx.uid) == TRUE then
setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx))
setItemDefense(itemEx.uid, doTransform(gain.gainDefense,itemEx))
elseif isShield(itemEx.uid) == TRUE then
setItemDefense(itemEx.uid, doTransform(gain.gainShield,itemEx))
end
end
else

if level == 0 then
doPlayerSendTextMessage(cid, 24,"No effect.")
doSendMagicEffect(toPosition, 2)
elseif level == gain.maxlvl then
doSendMagicEffect(toPosition, 2)
return doPlayerSendTextMessage(cid, 24,"Your item is on max level, you can't upgrade it.")
elseif level > 0 then
if level == 1 then
setItemName(itemEx.uid, getItemNameById(itemEx.itemid))
doPlayerSendTextMessage(cid, 24,"Your item back to normal.")
else
setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level-1))
doPlayerSendTextMessage(cid, 24,"Your item back to +"..(level-1)..".")
end
if isArmor(itemEx) == TRUE then
setItemArmor(itemEx.uid,doTransform(gain.loseArmor ,itemEx))
elseif isWeapon(itemEx.uid) == TRUE then
setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx))
setItemDefense(itemEx.uid, doTransform(gain.loseDefense,itemEx))
elseif isShield(itemEx.uid) == TRUE then
setItemDefense(itemEx.uid, doTransform(gain.loseShield,itemEx))
end
end
doSendMagicEffect(toPosition, 9)
end
doRemoveItem(item.uid,1)
return TRUE
end

Pronto seu server já possui o sistema de refinamento. Basta pegar o item 8306 dar usewith nele em uma arma, armor, shield e pronto! O item irá subir de nivel melhorando seu status, caso você ponha actionid 1000 no item 8306 a chance de falha será 0 ou seja sempre funcionará!

Link para o post
Compartilhar em outros sites

Então daaniel vou testar esse logo logo,mais creio que seja exatamente esse que eu uso e que a pedra de refiner 100% ela da +1 pro item mais n aparece no nome o +1.

ela só vai almentando o Attack,Def,Armor dos items mais não fala quanto que ta !!


Quanto ao UP obrigado por avisar. =D

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo