Ir para conteúdo

lordzetros

Membro
  • Registro em

  • Última visita

Tudo que lordzetros postou

  1. 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.
  2. lordzetros respondeu ao post em um tópico de Izzy iss em Suporte Tibia OTServer
    Esses problemas já estão resolvidos no fórum, dê uma pesquisada na próxima, abraço.
  3. Muito bom, cara, darei uma estudada no seu script e tentarei contribuir também. REP +
  4. Bom, como o título já informa, o script faz com que você remova um item do inventário de algum player online. Versão: 8.6 - TFS 0.4 Em data\talkactions\scripts crie um arquivo chamado removerItem (lembrando que deve ser .lua, caso não saiba criar um, copie algum já existente e cole, após isso, mude o nome do arquivo e cole o código dentro) --[[ Script feito por Lordzetros para o fórum Tibia King ]] function onSay(cid, words, param) pos = getPlayerPosition(cid) if (param == '') then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O comando necessita de parametros (nomePlayer,idItem,quantidade). Ex.: /remover Bugador,2160,100") if (not isPlayerGhost(cid)) then doSendMagicEffect(pos, CONST_ME_POFF) end return true end local aux = string.explode(param, ",") local pid = getPlayerByNameWildcard(aux[1]) if (not pid) then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Player " .. aux[1] .. " nao encontrado.") elseif (getPlayerAccess(pid) > getPlayerAccess(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce nao pode remover itens de um superior seu.") doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "O membro da staff " ..getCreatureName(cid).. " tentou remover um item de voce!") return true end aux[1] = aux[1]:lower() local qntd = 1 if(aux[3]) then if (tonumber(aux[3]) <= 0) then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Nao eh permitido valores nulos/negativos! Caso queira remover apenas 1x, use /remover Player,idItem") else qntd = aux[3] end end if (doPlayerRemoveItem(pid, tonumber(aux[2]), qntd) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Removido " ..qntd.. "x " ..getItemNameById(aux[2]).. " do player "..aux[1]) posPlayer = getCreaturePosition(pid) doSendMagicEffect(posPlayer, CONST_ME_PLANTATTACK) doCreatureSay(pid,"O membro da staff " ..getCreatureName(cid).. " removeu " ..qntd.. "x " ..getItemNameById(aux[2]).." de seu inventario!", TALKTYPE_ORANGE_1) return true else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O Player " ..aux[1].. " nao tem o item ou a quantidade do item informada em seu inventario.") end return true end Salve o arquivo no qual colocou o código, após isso navegue até data\talkactions\ e abra o arquivo talkactions.lua, e coloque este trecho de código onde quiser: <talkaction log="yes" access="3" words="/remover" event="script" value="removerItem.lua"/> Feito isso, salve o mesmo e já pode testar no seu servidor. Obs1.: Repare que o acesso está definido como 3, ou seja, GM para cima. (mude se quiser) Comando na prática: /remover nomePlayer,idItem,qntd Imagens: 1 2 3 4 Enfim, é isso pessoal, script simples, porém, pode servir para algum tibiano interessado.
  5. lordzetros respondeu ao post em um tópico de Tchuka em Suporte Tibia OTServer
    local config = { storage = 489061564, tempo = 6000, -- tempo, em segundos que o efeito demorará para sair. } local eggo = { ["Holy Pet"] = {id = 6541, mon = "Holy Pet", cor = TEXTCOLOR_YELLOW, efeito = 21}, ["Fire Pet"] = {id = 6542, mon = "Fire Pet", cor = TEXTCOLOR_RED, efeito = 6}, ["Ice Pet"] = {id = 6543, mon = "Ice Pet", cor = TEXTCOLOR_TEAL, efeito = 43}, ["Terra Pet"] = {id = 6544, mon = "Terra Pet", cor = TEXTCOLOR_LIGHTGREEN, efeito = 45}, ["Phoenix Pet"] = {id = 2695, mon = "Phoenix Pet", cor = TEXTCOLOR_GREY, efeito = 17}, ["Draug Pet"] = {id = 6544, mon = "Draug Pet", cor = TEXTCOLOR_BROWN, efeito = 37}, ["Many Pet"] = {id = 2695, mon = "Many Pet", cor = TEXTCOLOR_TEAL, efeito = 37}, ["Energy Pet"] = {id = 6545, mon = "Energy Pet", cor = TEXTCOLOR_PURPLE, efeito = 22}, ["Jester Pet"] = {id = 9693, mon = "Jester Pet", cor = TEXTCOLOR_DARKPURPLE, efeito = 31}, ["Ferumbras Pet"] = {id = 11715, mon = "Ferumbras Pet", cor = TEXTCOLOR_DARKRED, efeito = 29} } function onThink(cid, interval) local function Macabro(cid) for k, v in pairs(eggo) do if isCreature(cid) and getCreatureName(cid) == k then if getPlayerStorageValue(cid,config.storage) < 0 then -- aqui ele vai verificar se o level do pokemon representado pelo storage vai ta -1, caso sim, seta como 0 setPlayerStorageValue(cid, config.storage, 0) end doSendMagicEffect(getThingPos(cid), v.efeito) doSendAnimatedText(getThingPos(cid), "Level: " ..(getPlayerStorageValue(cid,config.storage)).. "", v.cor) addEvent(function() Macabro(cid) end, 6000) end end end if (getPlayerStorageValue(cid, 70079)) <= 0 then -- storage que guarda o tempo do efeito. Macabro(cid) setPlayerStorageValue(cid, 70079, config.tempo + os.time()) else return true end return TRUE end Teste com essa verificação aí, o colega de cima deu ideia, acredito que isso já resolva o problema, pois como você já falou, quando fez o teste no book, aparentemente estava correto.
  6. lordzetros respondeu ao post em um tópico de Tchuka em Suporte Tibia OTServer
    É porque acontece o seguinte: Todos storages, quando declarados, recebem o valor de -1, e de alguma maneira, em outro script que seta o level do seu pokemon, ao invés de definir como 0, o mesmo permanece como padrão, pois não foi setado como outro valor. Repare nesta parte do código: doSendAnimatedText(getThingPos(cid), "Level: " ..(getPlayerStorageValue(cid,489061564)).. "", v.cor) o storage 489061564 provavelmente é o que guarda o valor do level do pokemon, certo? E por padrão, quando ele foi declarado, recebeu -1, ou seja, se não houver modificação no level do pokemon, ele vai tá sempre com -1 por não ter sido declarado com valor nulo. É por isso que falei que o código que você está postando, aparentemente, está tudo ok (tirando algumas coisas de configurável ao usuário).
  7. lordzetros respondeu ao post em um tópico de Tchuka em Suporte Tibia OTServer
    Essa primeira storage, serve para o quê? O código comenta algumas coisas, mas esqueceu de falar sobre ela. Edit 1: Certamente é pra pegar o level, mas onde ela é trabalhada em outro script? Preciso dá uma olhada, porque aparentemente tá tudo ok no código.
  8. @louco3626 por nada! Claro que tem, aqui o código: -- Script por Lordzetros para o forum Tibia King. local config = { itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca telePosicao = {x=155, y=54, z=7}, -- Local que o player ira se teleportar ao usar a alavanca } function onUse(cid, item, fromPosition, itemEx, toPosition) pos = getPlayerPosition(cid) if item.itemid == 1945 then -- id da alavanca doPlayerAddItem(cid, config.itemNovo,config.qtNova) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de ganhar "..config.qtNova.." "..getItemNameById(config.itemNovo)..".") doTeleportThing(cid,config.telePosicao) doSendMagicEffect(pos, CONST_ME_HOLYAREA) end end Onde tem telePosicao, você irá colocar as coordenadas de onde o player irá se teletransportar.
  9. -- Script por Lordzetros para o forum Tibia King. local config = { itemNovo = 10137, -- ID do item que sera adicionado ao efetuar a troca qtNova = 1, -- Quantidade do item que sera adicionado ao efetuar a troca } function onUse(cid, item, fromPosition, itemEx, toPosition) pos = getPlayerPosition(cid) if item.itemid == 1945 then -- id da alavanca doPlayerAddItem(cid, config.itemNovo,config.qtNova) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce acabou de ganhar "..config.qtNova.." "..getItemNameById(config.itemNovo)..".") doSendMagicEffect(pos, CONST_ME_HOLYAREA) end end @louco3626 acredito que isso resolva o que deseja, :D.
  10. Cara, tem coisa estranha nesse código, além de tá horrível para interpretar... Mas ok, tentarei te ajudar, me informe o que mostra no jogo se o cara digita 1.x (que você quer remover).
  11. Estou de volta, colega, e aí, resolveu?
  12. Aqui também diminuiu, :D. Eu não sei te responder ao certo, colega, pode ser alguma configuração em sua 'distro' ou algo do tipo... Sempre bom ver essa parte, ^~^. Utilizo OTX também e fiz o teste com o do meu servidor: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 6, 12) local area = createCombatArea(AREA_CIRCLE2X2) setCombatArea(combat, area) function onCastSpell(cid, var) if isMonster(cid) then doCreatureSay(cid, "exevo gran mas frigo", TALKTYPE_MONSTER) end return doCombat(cid, combat, var) end
  13. Estranho... O script pra mim tá 100%. Tentarei dá uma pesquisa melhor e darei outra resposta. (editando essa). Qual é a versão do seu servidor?
  14. (AREA_CROSS2X2) não existe, é como se fosse algo pré-definido, e essa definição de (AREA_CROSS2X2) não está na lista, entendeu? Como o colega falou em cima ali, você mudando para AREA_CIRCLE2X2 poderá ter o que deseja, :).
  15. lordzetros respondeu ao post em um tópico de ariiuss em Suporte Tibia OTServer
    Recomendo baixar o Tibia Loader, lá você terá praticamente todas as versões do Tibia disponível pra baixar e jogar em servidores, da 7.1 até 10.99
  16. lordzetros respondeu ao post em um tópico de renaansilvaa em Suporte Tibia OTServer
    Poste aqui o código que tem no arquivo latestnews.php (fica em htdocs/pages/ )
  17. Poste sua config.lua e bless.lua (fica em data/talkactions/scripts/)
  18. Posso tentar analisar o script e testar no meu servidor teste, com isso, vou fazendo alguns ajustes e procurando solucionar, pode ser? Só por conta do tempo, demorarei um pouco, já que tá sendo muito corrido pra mim esses dias.
  19. Algum erro registrado na distro? Seja na hora de abrir ou quando chega no level configurado?
  20. lordzetros respondeu ao post em um tópico de Pepeco em Suporte Tibia OTServer
    Sim, sim, essa parte é ok. O problema é que o NPC ele não reconhece a diferença do ID dos itens, saca? Tipo, levando em consideração apenas o CID, que como é duplicado, é o mesmo. Acredito eu que seja isso, a não ser que a pessoa tenha um client próprio e todo configurado com esses itens, aí pode não causar esse conflito, mas no meu caso, antigamente, foi sem client próprio, portanto, o conflito podia tá atrapalhando na hora da entrega do item.
  21. lordzetros respondeu ao post em um tópico de Pepeco em Suporte Tibia OTServer
    Estranho, ^^. Sinceramente, não sei dizer ao certo, faz tanto tempo, mas foi o mesmo problema comigo.
  22. lordzetros respondeu ao post em um tópico de Pepeco em Suporte Tibia OTServer
    Colega, já tive esse problema antigamente, eu não consegui resolver, mas é por conta que você tá utilizando itens diferentes (ids), porém com a mesma sprite e config na sua .otb. Só não te digo como solucionar 100%, porque isso foi lá em 2014, e era justamente com NPC que vendia itens. A minha solução foi fazer um sistema de compras por alavanca, ou seja, peguei o ID que não ia (no caso o que editou) e coloquei para vender separadamente, já que no NPC não estava chegando ele, mas sim o raiz do servidor.
  23. Em coinImagesURL não é pra colocar o IP do seu servidor, e sim o endereço que o servidor irá buscar as imagens, por exemplo: http://ipdoservidor/images/store/ Apenas isso.
  24. Aê, :). Bom, de qualquer forma, espero que eu tenha ajudado. Qualquer coisa, estamos aí. Edit1: Marque uma resposta como melhor resposta para que assim o tópico passe a ser resolvido e ajudar outras pessoas futuramente.
  25. Você tem que criar, colega, ^^. Abra um bloco de notas qualquer, depois cole o código que está no tópico dentro dele, em seguida vai em Arquivo>Salvar como... e digite o nome do arquivo com a extensão .lua, no caso ficaria assim: summonMonster.lua e no tipo de arquivo (coloque todos tipos de arquivos). obs.: Dê f5 na página, pois alterei algumas coisas no código. Qualquer coisa, baixe o que criei aqui: summonMonster.lua

Informação Importante

Confirmação de Termo