De Refinamento...

truzem
Por truzem
em Lixeira Pública

truzem

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/12/11Posts: 0Char no Tibia: Strongon

Galera ando procurando um script faz tempo alguns eu já testei mais sempre tem algum problema..

 

Queria saber assim se alguem sabe de um que quando falha o refinamento quebra o item.. ou seja ele some... ou um bom pra me indicar.. Obrigado de coração des de já

othereality

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/01/11Posts: 343Char no Tibia: Zodriac

Não da pra quebrar o item mas ele pode não ter efeito ou voltar um nível.

sem que tem dois items um tem a chance maior que outro de de aumentar o nível do item.

ai vai:

 

<action itemid="8306" event="script" value="upgrade.lua"/>
<action itemid="8305" event="script" value="upgrade.lua"/>

 

 

--- Perfect refine system by Mock the bear (MTB).
--- Email: [email]mock_#####@hotmail.com[/email]
-- &a = weapon attack
-- &d = weapon defense
-- &s = shield defense
-- &p = armor defense
-- # = nivel do item
-- @ = max level
local gain = {
gainArmor='&p+(1)',loseArmor='&p-(1)',
gainShield='&s+#',loseShield='&s-(#+1)',
gainAttack='&a+(1*(#))',loseAttack='&a-(1*(#+1))',
gainDefense='&d+(1*(#))',loseDefense='&d-(1*(#+1))',
chance='(100/math.sqrt((((@/4)+(#*2))/@)*#))',
maxlvl = 12,
blocked_ids = {8881}
}
local it = {
--[itemid] = [percent]
[8306] = 0, -- 0% additional
[8305] = 100, -- 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, 24,"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, 24,"Your item has been upgrated to +"..(level+1)..slot..".")
           doSendMagicEffect(toPosition, 12)
           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
setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..slot)
addEvent(doPlayerSendTextMessage,500,cid, 24,"Your item back to normal.")
else
setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level-1)..slot)
addEvent(doPlayerSendTextMessage,500,cid, 24,"Your item back to +"..(level-1)..slot..".")
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, 9)
       end
doRemoveItem(item.uid,1)
return true
end

 

Algumas coisas relevantes:

 

 

da pra editar o level máximo que item pode chegar em:

maxlvl = 12

 

da pra editar também a chance extra que cada item da de aumentar o nível do item em:

--[itemid] = [percent]
[8306] = 0, -- 0% additional
[8305] = 100, -- 50%
}

não me dê rep

apenas leia abaixo

###motivos pra você clicar aqui agora e entrar no Uwnia99 OT###

 

Temos 15 classes e está sempre lançando mais.
A classe Assassin fica invisível até pra
 players :rip:

A classe Cake Guardian tem uma magia de refletir dano

Temos Eventos próprios acontecendo todo momento

Temos várias sprites únicas do OT

 A classe Feral Druid se transforma em vários bichos e tem magias diferentes dependendo da forma que está  :beurk:

Temos um contato muito grande entre desenvolvedor e jogador

 Temos uma classe chamada CAKE GUARDIAN! ELE ATIRA BOLOS!!!!! :love:

Não temos sistema vip e não vamos ter

Não vendemos nenhum tipo de vantagem na loja do site e nem vamos vender (apenas cosméticos)

 24h  :ph34r:

 

Entre no site clicando aqui!

truzem

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/12/11Posts: 0Char no Tibia: Strongon

Valeu ae brow esse ta ótimo

albere

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/07/11Posts: 21Char no Tibia: Alberes

esse script ai quando ele refica pra + almenta quanto o atack da sword axe club bow ?

othereality

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/01/11Posts: 343Char no Tibia: Zodriac

Eu não sei ao certo, mas começa aumentando pouco depois começa a aumentar mais.

um item +3 ainda não é tão mais forte, mas um item +8 já bem mais forte.

não me dê rep

apenas leia abaixo

###motivos pra você clicar aqui agora e entrar no Uwnia99 OT###

 

Temos 15 classes e está sempre lançando mais.
A classe Assassin fica invisível até pra
 players :rip:

A classe Cake Guardian tem uma magia de refletir dano

Temos Eventos próprios acontecendo todo momento

Temos várias sprites únicas do OT

 A classe Feral Druid se transforma em vários bichos e tem magias diferentes dependendo da forma que está  :beurk:

Temos um contato muito grande entre desenvolvedor e jogador

 Temos uma classe chamada CAKE GUARDIAN! ELE ATIRA BOLOS!!!!! :love:

Não temos sistema vip e não vamos ter

Não vendemos nenhum tipo de vantagem na loja do site e nem vamos vender (apenas cosméticos)

 24h  :ph34r:

 

Entre no site clicando aqui!