AL
pedido

Systema Refinamento Muito Dificl

Por AlariusOt, 27 de out. de 2012 em Scripts

systema refinamento muito dif
tibia
script
otserv
20
2.8k
AlariusOtA
27 de outubro de 2012 às 22:50

Estou Precisando Urgente Desse Script

 

Fuciona assim:

 

O player usaria a Iron HammerIron_Hammer.gif No item E com isso Gastaria 2 iron ores para cada refinamento...

 

ID 5880 DO IRON ORE

E

2422 DA IRON HAMER

 

E Existiria uma chance de o player errar... caso o player errasse o refinamento o item c quebraria e viraria um metal trash.

 

OBS:apenas uma classe ira podera usar ess sistema por isso quando fazer a script favor deixar a tag ok ?

e outra...Quanto maior ficar o Refinamento mais dificil ira ser...

E fucionaria por skill e por lvl tbm...quanto maior o lvl maior a chance de refinar...

quanto maior o clubfight mais chance ele tem

 

Segue Abaixo O Script Que ja Tenho Com As Voc Configurada

 

QUOTE

local gain = {

gainArmor='&p+1',loseArmor='&p-1',

gainShield='&s+1',loseShield='&s-1',

gainAttack='&a+1',loseAttack='&a-1',

gainDefense='&d+1',loseDefense='&d-1',

chance='40/((#*(1/(@/1)))*(@/1))',

maxlvl = 7,

reqvoc = {20, 21},

blocked_ids = {8881}

}

 

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)

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)

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)

uid = uid or 0

if getItemWeaponType(uid) == 4 then

return TRUE

end

return FALSE

end

 

function getWeaponLevel(uid)

uid = uid or 0

local name = getItemName(uid)

local lvl = string.match(name,'+(%d)')

return tonumber(lvl) or 0

end

function doTransform(s,i)

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,"Esse item nao pode ser refinado.")

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,"Seu item esta no nivel maximo, nao podera refinalo.")

else

setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level+1))

doPlayerSendTextMessage(cid, 24,"Seu item foi refinado para +"..(level+1)..".")

doSendMagicEffect(toPosition, 26)

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,"Sem efeito.")

doSendMagicEffect(toPosition, 2)

elseif level == gain.maxlvl then

doSendMagicEffect(toPosition, 2)

return doPlayerSendTextMessage(cid, 24,"Seu item esta no nivel maximo, nao podera refinalot.")

elseif level > 0 then

if level == 1 then

setItemName(itemEx.uid, getItemNameById(itemEx.itemid))

doPlayerSendTextMessage(cid, 24,"Seu item voltou ao normal.")

else

setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level-1))

doPlayerSendTextMessage(cid, 24,"Seu item voltou para +"..(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

QUOTE

Obrigado !!

Eu Sei Que é Dificil Mais Nao é Impossivel...

Editado Outubro 27 por AlariusOt

LummosL
27 de outubro de 2012 às 22:54

Coloque o script dentro de

 

ou

Para que o tópico fique mais fácil de entender, e mais organizado.

AlariusOtA
27 de outubro de 2012 às 23:12

Obrigado Pela Dica! Sou Novo Aki Ainda

Editado Outubro 27 por AlariusOt

LummosL
28 de outubro de 2012 às 09:47

@AlariusOt

 

Qualquer coisa que precisar de alguma ajuda basta me mandar PM.

 

Que estarei disposto a ajuda-lo.

AlariusOtA
28 de outubro de 2012 às 13:29

Esperando Algum Vodkart Chegar Para Me Salvar KKKK

 

Eu Axo Que O X tibia Tem Potencial Para Fazer Isto

Editado Outubro 28 por AlariusOt

1 mês depois...
AdmJvA
08 de novembro de 2012 às 21:36

Tambem Quero Este Script..

vital900V
09 de novembro de 2012 às 06:09

cara, eu nao sei mecher com script mas se este pedido ngm responde nao vo fazer o meu de refinamento pq a galera chora...

AdmJvA
10 de novembro de 2012 às 15:58

@vital900

Passe Por Favor

vital900V
10 de novembro de 2012 às 16:12

Cara o meu pedido de refinamento é para o meu projeto, então não farei 'em publico'. Nossos scripters já estão o desenvolvendo.

AdmJvA
11 de novembro de 2012 às 09:30

Voce Poderia Me Passar Pro Private?

vital900V
12 de novembro de 2012 às 01:11

voce nao entendeu man, o nosso script e unico.. eu desenvolvi a ideia, so para ser algo unico, visando isto nem rola.

AdmJvA
15 de novembro de 2012 às 15:16

plx

caoticC
15 de novembro de 2012 às 20:01

Olha o flood AdmJv.

Leia as regras

AdmJvA
16 de novembro de 2012 às 18:02

Discupa

HisashiitYamagutiH
16 de novembro de 2012 às 18:18

- ADMJv

Gostaria que lê-se as regras do Xtibia neste link: http://www.xtibia.com/forum/forum/738-regras-do-forum/

 

Tem quatro tópico falando sobre as regras do fórum, seria bom você dar uma lida para você entender que o Xtibia é um fórum e não um forumeiros, pois a forma que você conversou aqui estaria mais apta se fosse na MP.