Ir para conteúdo

Featured Replies

Postado

alguem poderia me ajudar com esse erro?
sempre que o item quebra e aparece essa mensagem

Your Crystal of refinament has failed and destroy your"

e vem o erro


data/actions/scripts/upgrade.luaimage.gif.fa5b61cea28c10480ff1bf71973a0b4d.gifnUse
Description:
(luaGetThing) Thing not found

 

--- Perfect refine system by Mock the bear (MTB).
--- Email: mock_otnet@hotmail.com
-- &a = weapon attack
-- &d = weapon defense
-- &s = shield defense
-- &p = armor defense
-- # = nivel do item
-- @ = max level
local gain = {
gainArmor='&p+(2)',loseArmor='&p-(2)',
gainShield='&s+(2)',loseShield='&s-(2)',
gainAttack='&a+(2)',loseAttack='&a-(2)',
gainDefense='&d+(2)',loseDefense='&d-(2)',
chance='(100/math.sqrt((((@/4)+(#*2))/@)*#))',
maxlvl = 5,
blocked_ids = {7878, 2454, 7772, 7863, 7753, 7406, 7857, 7872, 7766, 7747, 7415, 7756, 7866, 7881, 7775, 8905, 8909, 8908, 8906, 8907, 8854, 8851, 10313, 2397, 7385, 8209, 9932, 2358, 2455, 8849, 5803, 2456, 8857, 8855, 8851, 8854, 8853, 8856} -- items que nao podem ser aprimorados
}
local it = {
--[itemid] = [percent]
[8300] = 50, -- 50%
}
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

local function isArmor(uid) -- Function by Mock the bear.
if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then
return true
end
return false
end
local 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
local function isShield(uid) -- Function by Mock the bear.
uid = uid or 0
if getItemWeaponType(uid) == 4 then
return true
end
return false
end
local function isBow(uid) -- Function by Mock the bear.
uid = uid or 0
if getItemWeaponType(uid) == 5 then
return true
end
return false
end
local function getWeaponLevel(uid) -- Function by Mock the bear.
uid = uid or 0
local name = getItemName(uid.uid) or getItemInfo(uid.itemid).name or ''
local lvl = string.match(name,'%s%+(%d+)%s*')
return tonumber(lvl) or 0
end
local 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) ~= 0 and getItemAttack(i.uid) or getItemInfo(i.itemid).attack))
local c = string.gsub(c,'&d',(getItemDefense(i.uid) ~= 0 and getItemDefense(i.uid) or getItemInfo(i.itemid).defense))
local c = string.gsub(c,'&s',(getItemDefense(i.uid) ~= 0 and getItemDefense(i.uid) or getItemInfo(i.itemid).defense))
local c = string.gsub(c,'&p',(getItemArmor(i.uid) ~= 0 and getItemArmor(i.uid) or getItemInfo(i.itemid).armor))
local c = string.gsub(c,'#',getWeaponLevel(i))
local q = assert(loadstring('return '..c))
return math.floor(assert(q()))
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if item.uid == 0 or item.itemid == 0 then return false end
toPosition.stackpos = 255
if isInArray(gain.blocked_ids, itemEx.itemid)
or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) 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)
local chance = doTransform(gain.chance,itemEx)
if level == gain.maxlvl then
doSendMagicEffect(toPosition, 2)
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Your item is on max level, you can't upgrade it.")
end
doPlayerSendTextMessage(cid, 24,"Trying refine with "..(chance+it[item.itemid] > 100 and 100 or chance+it[item.itemid]).."% of sucess!")
if chance+it[item.itemid] >= math.random(0,100) then
local nm = getItemName(itemEx.uid)
local slot = nm:match('(%[.+%])') or '' ---If you server use slot system dont change it
slot = slot~='' and ' '..slot or slot
setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level+1)..slot)
addEvent(doPlayerSendTextMessage,500,cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Your item has been upgrated to +"..(level+1)..slot..".")
doSendMagicEffect(toPosition, 28)
if isArmor(itemEx) then
local get = doTransform(gain.gainArmor,itemEx)
setItemArmor(itemEx.uid,get)
elseif isBow(itemEx.uid) then
setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx))
elseif isWeapon(itemEx.uid) then
setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx))
setItemDefense(itemEx.uid, doTransform(gain.gainDefense,itemEx))
elseif isShield(itemEx.uid) then
setItemDefense(itemEx.uid, doTransform(gain.gainShield,itemEx))
end
else
if level == 0 then
addEvent(doPlayerSendTextMessage,500,cid, 24,"No effect.")
doSendMagicEffect(toPosition, 2)
elseif level > 0 then
local nm = getItemName(itemEx.uid)
local slot = nm:match('(%[.+%])') or '' ---If you server use slot system dont change it
slot = slot~='' and ' '..slot or slot
if level == 1 then
doRemoveItem(item.uid, 1)
getItemNameById(item.itemid)
addEvent(doPlayerSendTextMessage,500,cid, MESSAGE_STATUS_CONSOLE_RED,"Your Crystal of refinament has failed and destroyed your " .. getItemNameById(itemEx.itemid) .. " in the process")
else
doRemoveItem(itemEx.uid, 1)
getItemNameById(item.itemid)
addEvent(doPlayerSendTextMessage,500,cid, MESSAGE_STATUS_CONSOLE_RED,"Your Crystal of refinament has failed and destroyed your " .. getItemNameById(itemEx.itemid) .. " in the process")
end
if isArmor(itemEx) then
setItemArmor(itemEx.uid,doTransform(gain.loseArmor ,itemEx))
elseif isWeapon(itemEx.uid) then
setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx))
setItemDefense(itemEx.uid, doTransform(gain.loseDefense,itemEx))
elseif isBow(itemEx.uid) then
setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx))
elseif isShield(itemEx.uid) then
setItemDefense(itemEx.uid, doTransform(gain.loseShield,itemEx))
end
end
doSendMagicEffect(toPosition, 4)
end
doRemoveItem(item.uid,1)
return true
end

 

Postado

@carloos
Olha não sei sua tfs, porem tenho um script aqui que funciona em 0.4, ele é por lib talvez de uma diferenciada:

Em Data/lib crie upgradesystem.lua
dentro ponha:
 

Mostrar conteúdo oculto


Em Data/actions/scripts crie
upgrade.lua e ponha dentro
 

Mostrar conteúdo oculto


Agora por fim adicione a tag no actions.xml e configure o item-id
 

<action itemid="xxx" script="upgrade.lua"/>

 

Editado por Thony D. Serv (veja o histórico de edições)

Postado
  • Autor
  Em 10/12/2022 em 17:21, Thony D. Serv disse:

@carloos
Olha não sei sua tfs, porem tenho um script aqui que funciona em 0.4, ele é por lib talvez de uma diferenciada:

Em Data/lib crie upgradesystem.lua
dentro ponha:
 

Mostrar conteúdo oculto


Em Data/actions/scripts crie
upgrade.lua e ponha dentro
 

Mostrar conteúdo oculto


Agora por fim adicione a tag no actions.xml e configure o item-id
 


<action itemid="xxx" script="upgrade.lua"/>

 

muito obrigado pela atençao, mas preciso desse que estou usando, pois ele funciona junto de outro script de DODGE

Postado
  • Autor
  Em 11/12/2022 em 01:19, FeeTads disse:

essa mensagem não existe nesse script, qual outros scripts de refine vc possui? se puder posta-los

esta menssagem aparece quando o item quebra.

consegui resolver obrigado pela atencao

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo