Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Boa Tarde Pessoal.

Procurei muito por isso mais não encontro.

Gostaria de um script igual um refine ( Uso o do Mock atualmente ) mas para itens mágicos.

Por exemplo wands, rods e spellbooks, que refinados ficariam +1 / +2 / +3... e add ML ou se possivel até aumentaria o atak da respectiva wand/rod.

Ja testei alguns refines existentes aqui e em outros foruns mas nenhum consegue fazer esse tipo de upgrade ( ou nenhum tipo em itens magicos ).

O OT ficou muito desequilibrado, knights e paladins conseguem dar upgrade em todos os itens ( aumentando atak e def. ) e mages apenas em alguns itens ( específicos p/ mages ) aumentando apenas def.

Se alguem conseguir me ajudar Rep+

Vlw galera. ^^

Link para o post
Compartilhar em outros sites

ixi mano esse script ae vai ser foda e sem falar que duvido qeu alguem faça ele de graça

Servidores sem bug

Servidores em Linux totalmente configurado com site e proteçoes

WebSite sem sqlinjection sem problemas de invasão.

Sistema Pagseguro Automatico.

Servidores DEDICADO E SEMI DEDICADOS DE ALTA PERFOMACE COM PROTEÇÂO DDOS.

evenhost.gif

Link para o post
Compartilhar em outros sites

já tive essa ideia.

porém já conversei com alguns scripters profissionais eles dizem que é possível fazer, porém é uma coisa muito difícil.

Irei dar uma pesquisar em algumas funções aqui, quem sabe eu tento fazer uma bem parecida com seu pedido.

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Link para o post
Compartilhar em outros sites

eu não sou scripter prof nem medio mais sim iniciante e isso é simples de fazer não vou fazer pois estou ocupado...

Ae ajudei? Rep+ :D
 

Link para o post
Compartilhar em outros sites

se tu fizer um script desse ae vc vai ganhar tanto rep que nao vai caber no banco de dados do Forum KKKKKK

Servidores sem bug

Servidores em Linux totalmente configurado com site e proteçoes

WebSite sem sqlinjection sem problemas de invasão.

Sistema Pagseguro Automatico.

Servidores DEDICADO E SEMI DEDICADOS DE ALTA PERFOMACE COM PROTEÇÂO DDOS.

evenhost.gif

Link para o post
Compartilhar em outros sites

Simples? kk bem que podia ser, tambem ja tentei fazer um dia mais fracasei vou tentar de novo

Retirado.

 

Skype: joaoxtibia85.

Link para o post
Compartilhar em outros sites

hehe boa sorte ae

Servidores sem bug

Servidores em Linux totalmente configurado com site e proteçoes

WebSite sem sqlinjection sem problemas de invasão.

Sistema Pagseguro Automatico.

Servidores DEDICADO E SEMI DEDICADOS DE ALTA PERFOMACE COM PROTEÇÂO DDOS.

evenhost.gif

Link para o post
Compartilhar em outros sites

Deve ser muito dificil mesmo ( não entendo muito de script ) pois nunca vi nada nos foruns , nem se quer falam a respeito.. rs

Não precisa ser o script inteiro, pois tbm gosto de fuçar pra aprender, é que nesse caso não faço a menor idéia do que fazer.

Quando alguem acha uma luz ( mesmo que pequena ) posta ae para não só eu, como outros tentarem fazer esse script.

Vlw ^^

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.

  • Conteúdo Similar

    • Por Killua
      Como funciona?
      A cada monstro que vc mata, seus itens equipados ganham 1 de exp. Quando seus itens chegarem às quantidades de exp definidas, eles upam e ficam com o nome assim: Demon Helmet + 1. Helmets, armors, legs, e boots recebem 1 de arm a cada vez que upam. Armas recebem 1 de ataque e escudos 1 de defesa.
       
      Para o monstro contar, ele deve dar um mínimo de exp (definido no script). O número de exp a que me refiro é aquele um presente no arquivo .xml.
       
      Para instalar, crie Killua Items Upgrade.lua em data/creaturescripts/scripts e coloque:
        Em data/creaturescripts/creaturescripts.xml coloque essas duas tags:
      <event type="kill" name="Item level" event="script" value="Killua Items Upgrade.lua"/> <event type="login" name="Item levell" event="script" value="Killua Items Upgrade.lua"/> Configurando: Na tabela table_of_slots, coloque em quais slots os itens upam.
      min_exp é a experiência mínima que o monstro deve ter para contar exp para o item. Se vc colocar 500, somente os monstros que tem exp igual ou superior a 500 no arquivo.xml vão valer.
      exp_levels são os valores de exp que os itens devem atingir para upar. No meu caso, quando o item alcançar 50 de exp, ele upa para o level 1. Quando alcançar 50 de exp, upa para o level 2 e assim por diante.
    • Por Kolisium
      Olá pessoal, eu uso o script abaixo do Mock de Upgrade e eu gostaria de saber como faço para que quando eu usasse o item em uma wand ele aumentasse o dano causado pela wand, alguem pode me ajudar?!
      --- Perfect refine system by Mock the bear (MTB). --- Email: [email protected]<script cf-hash='f9e31' type="text/javascript"> /* */</script> -- &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 = 10, 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, 39) 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, 3) end doRemoveItem(item.uid,1) return true end
    • Por Garou
      Nome: Perfect Upgrade System
      Tipo: Biblioteca, Action, Sistema
      Autor: Oneshot
      Essa é a versão final do Perfect Refine System ou Perfect Upgrade System criado por mim.
      É um sistema construído em cima de funções em POO (orientação a objetos), o que o torna muito versátil, possibilitando a outros programadores/scripters criarem seus próprios sistemas com base na biblioteca.
      A função do sistema é simples. Não passa de um sistema de refino, presente em todos os servidores, onde você usa um item em um equipamento e este fica mais forte e ganha um nome caracterizando o nível de força - bem clichê - mas muito interessante.
      Meu sistema é um pouco diferente dos outros, pois possui algumas características exclusivas, listadas abaixo:
      O nível máximo configurável é praticamente ilimitado O sistema funciona com armas de combate corpo-a-corpo, bows e crossbows. O refino pode falhar, não acontecendo nada, regredindo o nível ou resetando ele. Há um sistema nativo de broadcasts, que são enviados quando um jogador consegue refinar um equipamento até um certo nível ou maior. As chances são configuradas manualmente e sua randomização é muito precisa. Há dois modos de instalar o sistema em seu servidor, o primeiro é baixar a pasta com os scripts necessários e apenas copiar as chaves nos arquivos XMLs ou então seguir o curto tutorial de instalação.
      Crie um arquivo chamado upgradesystem.lua na pasta data/lib e copie o conteúdo abaixo:
        --[[ PERFECT UPGRADE SYSTEM 2.0 Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- UpgradeHandler = { levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true}, [11] = {10, true, true}, [12] = {5, true, true} }, broadcast = 7, attributes = { ["attack"] = 2, ["defense"] = 1, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, }, isEquipment = function(self) local weaponType = self:getItemWeaponType() return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0) end, setItemName = function(self, name) return doItemSetAttribute(self.item.uid, "name", name) end, chance = function(self) local chances = {} chances.upgrade = (self.levels[self.item.level + 1][1] or 100) chances.downgrade = (self.item.level * 5) chances.erase = (self.item.level * 3) return chances end } function UpgradeHandler:new(item) local obj, ret = {} obj.item = {} obj.item.level = 0 obj.item.uid = item.uid for key, value in pairs(getItemInfo(item.itemid)) do obj.item[key] = value end ret = setmetatable(obj, {__index = function(self, index) if _G[index] then return (setmetatable({callback = _G[index]}, {__call = function(self, ...) return self.callback(item.uid, ...) end})) else return UpgradeHandler[index] end end}) if ret:isEquipment() then ret:update() return ret end return false end function UpgradeHandler:update() self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0) end function UpgradeHandler:refine(uid, item) if not self.item then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable) return "miss" end local tool = self.tools[item.itemid] if(tool == nil) then doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool) return "miss" end if(self.item.level > #self.levels) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name)) return "miss" end if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range))) return "miss" end local chance = (self:chance().upgrade + tool.info.chance) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance))) if(tool.info.removeable == true) then doRemoveItem(item.uid, 1) end if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end self:setItemName((self.item.level > 0 and self:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1"))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" else if(self.levels[self.item.level][3] == true and (self:chance().erase * 100) > math.random(1, 10000)) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.erase:format(self.item.name)) self:setItemName(self.item.name) for key, value in pairs(self.attributes) do if self.item[key] > 0 then doItemSetAttribute(self.item.uid, key, self.item[key]) end end elseif(self.levels[self.item.level][2] == true and (self:chance().downgrade * 100) > math.random(1, 10000)) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.downgrade:format(self.item.name, (self.item.level - 1))) self:setItemName((self.item.level == 1 and self.item.name or self:getItemName():gsub("%+(%d+)", "+".. (self.item.level - 1)))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item[key] + value * (self.item.level - 1))) end end else doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.fail:format(self.item.name, (self.item.level + 1))) end return "fail" end end Crie um arquivo chamado upgrade.lua em data/actions/scripts e cole o conteúdo abaixo:
        function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end local obj = UpgradeHandler:new(itemEx) if(obj == false) then return doPlayerSendCancel(cid, UpgradeHandler.message.notupgradeable) end local status = obj:refine(cid, item) if status == "success" then --doSendAnimatedText(toPosition, "Success!", COLOR_GREEN) doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) elseif status == "fail" then --doSendAnimatedText(toPosition, "Fail!", COLOR_RED) doSendMagicEffect(toPosition, CONST_ME_POFF) else doSendMagicEffect(toPosition, CONST_ME_POFF) end return true end No arquivo actions.xml, cole a seguinte linha:
        <action itemid="8306" event="script" value="upgrade.lua"/> Para adicionar mais níveis de refino no sistema, edite a seguinte tabela:
        levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true} }, Por padrão, ela já está configurado como na maioria dos MMORPGs, 10 níveis de refino, com chances de sucesso, regressão e "quebra". Mas se você quiser, por exemplo, adicionar mais dois níveis, siga o modelo, sempre colocando uma vírgula no final com exceção da última linha da tabela:
        levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true}, [11] = {10, true, true}, [12] = {5, true, true} }, O primeiro valor é chance de sucesso, o segundo se o item pode regredir na tentativa e o terceiro é se o item para "quebrar" (perder todo o nível de refino). Para criar novas ferramentas (itens) de refinar, configure a tabela abaixo:
        tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, }, Seguindo o mesmo esquema da tabela anterior, vírgulas em todas as linhas com exceção da última, seguindo o modelo abaixo. Por exemplo, uma ferramenta de ID 8303 que refine do level +6 ao +10, que dê 10% de chance bônus e que seja finita, eu faço assim:
        tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8310] = {range = {6, 10}, info = {chance = 10, removeable = true}} }, Em breve vídeo de demonstração com sistema em funcionamento.
      Perfect Upgrade System.rar
    • Por greeneyzer
      Estou com um problema que já tentei de diversas maneiras corrigir, antes de tudo é bom dizer que no ot que estou desenvolvendo possuo uma classe que usa apenas itens de fist fighting, as garras, e quando tento refinar alguns itens ele refina alguns itens e outros não. O grande problema é que ele não retorna o valor do atributo attack de itens como espadas ou machados, e as proprias garras eu consigo refinar algumas e outras não, por exemplo tenho uma garra que foi refinada, mas se eu tentar refinar o mesmo modelo de garra o script retorna o valor do attack como nil, gostaria de saber onde posso estar errando para melhorar, fora que ainda esta no inicio o script ainda nao fiz o reforço de itens de defesa nem itens magicos. Grato desde já.
      Obs.: para refinar um item é necessário usar uma anvil(bigorna) e colocar o item a ser melhorado no lado direito dela.
      function onUse(cid, item, frompos, item2, topos) if getPlayerItemCount(cid, 2160) < 5 then doPlayerSendTextMessage(cid, 25, "Para que seja possivel o refinamento e necessario 5 cristal coins") doSendMagicEffect(getCreaturePosition(cid), 2) return true end local itemRefine = getThingFromPos({x=4928, y=4957, z=7, stackpos=2}) chance = math.random(0,100) local tipo = getItemWeaponType(itemRefine.uid) if getPlayerItemCount(cid, 2155) >= 1 then chance = chance+25 doPlayerRemoveItem(cid, 2155, 1) end local function isWeapon(uid) uid = uid or 0 if tipo == 1 or tipo == 2 or tipo == 3 or tipo == 8 then return true end return false end function setItemAttack(uid,name) return doItemSetAttribute(uid,'attack',name) end function getItemAttack(uid) return getItemAttribute(uid,'attack') end function getItemArmor(uid) return getItemAttribute(uid,'attack') end function doItemAddAttack(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "attack", getItemAttack(uid) + count) end return false end function doItemRemoveAttack(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "attack", getItemAttack(uid) - count) end return false end function getItemLevel(uid) if uid > 0 then return getItemAttribute(uid, "lvl") or 0 end return false end function doItemAddLevel(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "lvl", getItemLevel(uid) + count) end return false end function doItemRemoveLevel(uid, count) if uid > 0 and tonumber(count) >= 0 then return doItemSetAttribute(uid, "lvl", getItemLevel(uid) - count) end return false end function setItemLevel(uid) if uid > 0 and tonumber(count) >= 0 then return doItemSetAttribute(uid, "lvl",count) end return false end function setItemDesc(uid, lvl) if uid > 0 then return doItemSetAttribute(uid, "description", lvl) end end if isWeapon(itemRefine.uid) then if chance > 75 then doPlayerRemoveItem(cid, 2160, 5) doSendMagicEffect(getCreaturePosition(cid), 12) doItemAddAttack(itemRefine.uid, 1) doItemAddLevel(itemRefine.uid, 1) setItemDesc(itemRefine.uid,"Upgraded +"..getItemLevel(itemRefine.uid)) doPlayerSendTextMessage(cid, 25, "Parabens, seu item foi melhorado com sucesso para o nivel: +"..getItemLevel(itemRefine.uid)) return true end if chance > 25 and chance <=75 then --doPlayerRemoveItem(cid, 2160, 5) doPlayerSendTextMessage(cid, 25, "Que pena, o refinamento nao obteve sucesso +"..getItemLevel(itemRefine.uid)) doSendMagicEffect(getCreaturePosition(cid), 2) return true end if chance <=25 then --doPlayerRemoveItem(cid, 2160, 5) doSendMagicEffect(getCreaturePosition(cid), 2) doItemRemoveAttack(itemRefine.uid, 1) doItemRemoveLevel(itemRefine.uid, 1) doPlayerSendTextMessage(cid, 25, "Que pena, seu refinamento falhou! Retornou ao nivel +"..getItemLevel(itemRefine.uid)) return true end end end  
    • Por nortonsky
      Boa tarde pessoal, sou novo por aqui e não ao certo como montar um tópico bem organizado, mas vamos la.
       
      Eu gostaria de uma ajuda para elaborar 2 scripts (utilizo TFS 1.0 num servidor 8.31).
       
      Primeiro:
       
      -Gostaria que as potions tivessem carga (já pesquisei bastante e infelizmente nenhuma atendeu a minha necessidade ou não possuíram compatibilidade com meu servidor)
      - O máximo de carga seria algo em torno de 3000
      - Ela não some ao acabar as cargas, e que só pudesse utiliza-la com um storage especifico (sendo assim a potion só poderia ser utilizada após concluir uma quest).
      - Para recarregá-las é necessário um talkaction como por exemplo !carregar ghp, 3000
      - O preço para carregar as potions varia de acordo com uma faixa de level ou até mesmo uma fórmula como por exemplo (level/10) seria o preço de cada carga da potion
      - A health tanto das potion de mana como as de vida variam de acordo com uma % da vida ou mana total, ou seja, quanto maior a vida do personagem, maior o health de vida, e assim sucessivamente.
       
      Desde já agradeço, este realmente é o que mais me importa, eu ate encontrei um que se aproximava bastante do que eu precisava porém obtive erros
       
      Nessas linhas
       



       
      e Nessa
       




       
      Meu servidor acusa erro no hasCondition e no getBooleanFromString
       
       O script que estava tentando utilizar era esse:
       


       
       
      SEGUNDA
       
      Eu utilizo o seguinte código
       



       
      Eu gostaria que o item regredisse a última ação caso falhasse ou até mesmo um clear geral, exemplo:
      Eu obtive um update e não era o que esperava, eu poderia criar um outro item que ao usar no item o item voltasse ao normal, como não manjo muito de programação, acredito que um meio seria criar um item que deleta o item no qual foi usado e cria outro igual.
       
      exemplo:
      Tenho uma Magic Sword com um adicional [+hp 1%], um modo de resetar seria utilizar um item em cima da Magic Sword que deleta esta Magic Sword e logo em seguida cria uma outra Magic Sword, assim ela viria zerada.
       
      Espero que tenha sido claro o suficiente, muito obrigado.
       
       
       
      @Edit 23/02....
       
      Com relação ao item para regredir, este não vou mais precisar, já consegui o que queria.


      config.removeOnUse = getBooleanFromString(config.removeOnUse)
      config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
      config.splashable = getBooleanFromString(config.splashable)
      config.realAnimation = getBooleanFromString(config.realAnimation)
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo