Postado Março 10, 2018 7 anos Autor Em 10/03/2018 em 03:40, lordzetros disse: Deixei ele bem longo pela troca de ser fácil configurável, tá tudo comentado no script, espero que ajude-o.Testei na versão 8.6 TFS 0.4 e tá 100% Em data/actions/scripts, crie um arquivo chamado itemUpgrade.lua e coloque o código dentro: --[[ Script feito por Lordzetros para o fórum TibiaKing - pedido do usuario Sotten ]] local configItems = { idItem = 12661, -- Id do item que sera responsavel em clickar em cima do set para transforma-lo amountItem = 1, -- quantidade que sera removida apos ser usada no set para transformar message = "Item transformado com sucesso!" -- mensagem quando o item for transformado } local knight = { -- Itens do knight oldHelmet = 2474, -- Antigo helmet, antes de transformar oldArmor = 2503, -- Antiga armor, antes de transformar oldLegs = 2504, -- Antiga legs, antes de transformar oldBoots = 2641, -- Antiga boots, antes de transformar newHelmet = 9778, -- Novo helmet, apos transformar newArmor = 9776, -- Nova armor, apos transformar newLegs = 9777, -- Nova legs, apos transformar newBoots = 9931 -- Nova boots, apos transformar } local paladin = { -- Itens do paladin oldHelmet = 2474, -- Antigo helmet, antes de transformar oldArmor = 2503, -- Antiga armor, antes de transformar oldLegs = 2504, -- Antiga legs, antes de transformar oldBoots = 2641, -- Antiga boots, antes de transformar newHelmet = 9778, -- Novo helmet, apos transformar newArmor = 9776, -- Nova armor, apos transformar newLegs = 9777, -- Nova legs, apos transformar newBoots = 9931 -- Nova boots, apos transformar } local sorcerer = { -- Itens do sorcerer oldHelmet = 2474, -- Antigo helmet, antes de transformar oldArmor = 2503, -- Antiga armor, antes de transformar oldLegs = 2504, -- Antiga legs, antes de transformar oldBoots = 2641, -- Antiga boots, antes de transformar newHelmet = 9778, -- Novo helmet, apos transformar newArmor = 9776, -- Nova armor, apos transformar newLegs = 9777, -- Nova legs, apos transformar newBoots = 9931 -- Nova boots, apos transformar } local druid = { -- Itens do druid oldHelmet = 2474, -- Antigo helmet, antes de transformar oldArmor = 2503, -- Antiga armor, antes de transformar oldLegs = 2504, -- Antiga legs, antes de transformar oldBoots = 2641, -- Antiga boots, antes de transformar newHelmet = 9778, -- Novo helmet, apos transformar newArmor = 9776, -- Nova armor, apos transformar newLegs = 9777, -- Nova legs, apos transformar newBoots = 9931 -- Nova boots, apos transformar } function onUse(cid, item, fromPosition, item2, toPosition) pos = getCreaturePosition(cid) efeito = CONST_ME_MAGIC_RED if (item2.itemid == knight.oldHelmet) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,knight.newHelmet) elseif (item2.itemid == knight.oldArmor) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,knight.newArmor) elseif (item2.itemid == knight.oldLegs) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,knight.newLegs) elseif (item2.itemid == knight.oldBoots) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,knight.newBoots) elseif (item2.itemid == paladin.oldHelmet) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,paladin.newHelmet) elseif (item2.itemid == paladin.oldArmor) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,paladin.newArmor) elseif (item2.itemid == paladin.oldLegs) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,paladin.newLegs) elseif (item2.itemid == paladin.oldBoots) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,paladin.newBoots) elseif (item2.itemid == sorcerer.oldHelmet) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,sorcerer.newHelmet) elseif (item2.itemid == sorcerer.oldArmor) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,sorcerer.newArmor) elseif (item2.itemid == sorcerer.oldLegs) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,sorcerer.newLegs) elseif (item2.itemid == sorcerer.oldBoots) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,sorcerer.newBoots) elseif (item2.itemid == druid.oldHelmet) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,druid.newHelmet) elseif (item2.itemid == druid.oldArmor) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,druid.newArmor) elseif (item2.itemid == druid.oldLegs) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,druid.newLegs) elseif (item2.itemid == druid.oldBoots) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,druid.newBoots) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Nao eh possivel fazer a transformacao neste item!") doSendMagicEffect(pos, CONST_ME_POFF) return true end return true end Após ter feito isso, vá em data/actions/ e abra o arquivo actions.lua, coloque esse trecho de código em baixo de algum outro do mesmo: <action itemid="12661" script="itemUpgrade.lua"/> Em itemid="12661" será o ID do item que você vai tá utilizando para fazer o upgrade, no meu caso, eu utilizei o 12661, que também está no script, configure nos dois arquivos. Abraço. Cara, eu editei os itens pra fazer, mas de qualquer forma ta apresentando isso: 10:06 Nao eh possivel fazer a transformacao neste item! E não ta mostrando a opção de dar use. Deixa eu te falar, na verdade vai ser apenas 2 sets no OT, não por vocação. Segue os ID dos sets: SET COMUM HELMET 7903 ARMOR 7884 LEGS 7885 BOOTS 7886 VIP SET HELMET 2343 ARMOR 9776 LEGS 9777 BOOTS 9932 Tem mais alguns itens pra eu colocar, coloquei esses ai só pra vc ter uma noção e entender, ai depois eu consigo ir adicionando o restante dos itens?
Postado Março 10, 2018 7 anos Administrador @Sotten me diga os ID dos Itens... ITEM ANTIGO - ITEM NOVO. e me explica uma coisa após usar em 1 item do set ele é removido ai o player tem que comprar outro pra usar em outra parte ? é isso ? E me fala qual o ID do item que vc vai usar para ser o upgrade. lembre-se de escolher um Item com MultipleUSE Editado Março 10, 2018 7 anos por erimyth (veja o histórico de edições)
Postado Março 10, 2018 7 anos @Sotten Aqui: --[[ Script feito por Lordzetros para o fórum TibiaKing - pedido do usuario Sotten ]] local configItems = { idItem = 12661, -- Id do item que sera responsavel em clickar em cima do set para transforma-lo amountItem = 1, -- quantidade que sera removida apos ser usada no set para transformar message = "Item transformado com sucesso!" -- mensagem quando o item for transformado } local set = { -- Sets - antigo e novo oldHelmet = 7903, -- Antigo helmet, antes de transformar oldArmor = 7884, -- Antiga armor, antes de transformar oldLegs = 7885, -- Antiga legs, antes de transformar oldBoots = 7886, -- Antiga boots, antes de transformar newHelmet = 2343, -- Novo helmet, apos transformar newArmor = 9776, -- Nova armor, apos transformar newLegs = 9777, -- Nova legs, apos transformar newBoots = 9932 -- Nova boots, apos transformar } function onUse(cid, item, fromPosition, item2, toPosition) pos = getCreaturePosition(cid) efeito = CONST_ME_MAGIC_RED if (item2.itemid == set.oldHelmet) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,set.newHelmet) elseif (item2.itemid == set.oldArmor) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,set.newArmor) elseif (item2.itemid == set.oldLegs) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,set.newLegs) elseif (item2.itemid == set.oldBoots) and doPlayerRemoveItem(cid,configItems.idItem,configItems.amountItem) then doSendMagicEffect(pos, efeito) doCreatureSay(cid, configItems.message, TALKTYPE_ORANGE_1) return doTransformItem(item2.uid,set.newBoots) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Nao eh possivel fazer a transformacao neste item!") doSendMagicEffect(pos, CONST_ME_POFF) return true end return true end Você DEVE usar um item que permita a interação com outro item, por exemplo, uma pá (shovel) ela permite isso, caso você for adicionar um item para tal, necessita ter a CID de uma pá ou qualquer outro item permitindo essa interação. Caso ficou confuso, teste primeiro com o ID de uma pá, ou seja, onde tem 12661, substitua por 2554 e faça o teste. Estou no aguardo. Editado Março 10, 2018 7 anos por lordzetros (veja o histórico de edições)
Postado Março 10, 2018 7 anos Administrador @Sotten Se funfa nao se esqueça de um like ATENÇÃO: -- onde esta XXXXXXXX substitua pelo ID do item que vai ser usado para upgrade local upgradeID = { [7903] = {2343}, -- COMO EDITAR: [ITEM ANTIGO] = {ITEM NOVO} [7884] = {9776}, -- COMO EDITAR: [ITEM ANTIGO] = {ITEM NOVO} [7885] = {9777}, -- COMO EDITAR: [ITEM ANTIGO] = {ITEM NOVO} [7886] = {9932}, -- COMO EDITAR: [ITEM ANTIGO] = {ITEM NOVO} .... Para adicionar um item novo basta copiar o modelo feito você pode por quantos item quiser } function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerItemCount(cid, XXXXXXXX) >= 1 then -- onde esta XXXXXXXX substitua pelo ID do item que vai ser usado para upgrade for itemid, info in pairs(upgradeID) do if (itemEx.itemid == info[1]) then return doPlayerSendTextMessage(cid, 27, "Nao eh possivel fazer a transformacao aqui.") end if (itemEx.itemid == itemid) then doSetItemSpecialDescription(itemEx.uid, "Special edition. \nEste item foi melhorado por "..getCreatureName(cid)..".") doPlayerSendTextMessage(cid, 4, 'UPGRADE! Item transformado com sucesso!') doSendMagicEffect(getThingPos(cid), 41) doTransformItem(itemEx.uid, info[1]) doPlayerRemoveItem(cid, XXXXXXXX, 1) -- onde esta XXXXXXXX substitua pelo ID do item que vai ser usado para upgrade end end else return doPlayerSendTextMessage(cid, 27, "Nao eh possivel fazer a transformacao! Voce precisa estar com o Upgrade em sua Backpack.") end return true end Editado Março 10, 2018 7 anos por erimyth (veja o histórico de edições)
Postado Março 10, 2018 7 anos Pensei já ter visto gambiarra , mas oq eu vi nesse tópico aqui hoje superou
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.