Postado Junho 15, 2022 3 anos .Qual servidor ou website você utiliza como base? Qual o motivo deste tópico? Olá, tudo bem? Eu tenho um sistema de forja no meu servidor global 12.86. Porem a criação do item forja tier 1,2....10 só pode ser criado com o comando de GOD: "/testtier falcon coif,10" Eu gostaria de criar um script que se o player tiver 100 de qualquer item"ID DO ITEM" e ele clicar no item e depois usar no item que sera forjado, o item tem 50% de receber +1 de forja, ou ele pode ter 50% de chance de falahar e nao acontecer nada. Poderia me ajudar? Obrigado Está surgindo algum erro? Se sim coloque-o aqui. Citar Você tem o código disponível? Se tiver publique-o aqui: local tier = TalkAction("/testtier") -- usage: /testtier item id or name, tier -- example: /testtier falcon coif, 8 -- make sure to move the item at least 1 time to refresh item tier icon function tier.onSay(player, words, param) local split = param:split(",") local itemType = ItemType(split[1]) if itemType:getId() == 0 then itemType = ItemType(tonumber(split[1])) if not tonumber(split[1]) or itemType:getId() == 0 then player:sendCancelMessage("There is no item with that id or name.") return false end end local tier = tonumber(split[2]) if tier <= 0 or tier == nil or tier > 10 then player:sendCancelMessage("Invalid tier count.") return false end player:addItem(itemType:getId(), 1):setTier(tier) return false end tier:separator(" ") tier:register()
Postado Junho 15, 2022 3 anos Primeiramente você deve verificar que a função usada será uma OnUse, ou seja, ela ativará "ao usar" um item (neste caso). Procure a estrutura da função que iremos usar no tutorial abaixo do projeto TFS: https://github.com/otland/forgottenserver/wiki/Revscriptsys Basicamente seu script terá essa composição: funcao AoUsar() - verificação se você tem 100x do item usado - verificação se o target é um item válido - condição para remover o item usado 100x - fazer um random da porcentagem de acerto - se o random por favorável, verificar o nível Tier do item target e somar 1 nível fim Eu poderia fazer para você, mas nenhum de nós dois ganharíamos nada com isso, portanto, procure nos scripts OnUse (actions) exemplos dessas condições, como verificar se o jogador tem X item em certa quantidade, verificar o target do item, função para verificar se tal ITEM ID é realmente um ITEM válido (no caso, creio que seja HELMET, ou ARMOR, ou LEGS, ou BOOTS, ou SHIELD?!, ou o que mais quiser ... ), condição para remover X item em certa quantidade, random de porcentagem de acerto, funções de retornar o valor atual do Tier do item e função para trocar o nível atual ... acho que é isso. STYLLER OT 2022
Postado Junho 15, 2022 3 anos Autor Me ajuda ae por favor. Consegui fazer algumas coisas, só que o script é bem extenso e utiliza algumas funções que nunca utilizei. Falta: 1-Alterar o onuse pro item dar use no item que vai ser forjado. exemplo, clica com direito no item 37110 e usa no item que vai forjar. Ou se possível ser feito por actionID. o cara coloca o item que sera forjado em cima de algum tile e puxa uma alavanca. 2-Depois, verificar se o item é tier=0 ou maior que 0 e menor que 10(tier maximo). Caso nao seja ele mostra a mensagem que este nao é um item forjável. 3-Fazer um random da porcentagem de acerto conforme o tier do item. tier=0 sera 100% acerto. a cada tier a porcentagem cai 15% ate o tier maximo que é 10. 4-se o random por favorável, verificar o nível Tier do item target e somar 1 nível Citar local forge = Action() local craft = { items = { [1] = {item = 37110, count = 100}-- item necessário para forjar } function forget.onUse(player, item, fromPosition, target, itemEx, toPosition) for k, v in pairs(craft.items) do if player:getItemCount(v.item) < v.count then player:sendTextMessage(MESSAGE_STATUS_SMALL, "Voce não tem a quantidade de items necessária para forjar") player:getPosition():sendMagicEffect(CONST_ME_POFF) return true end end for k, v in pairs(craft.items) do player:removeItem(v.item, v.count) end player:addItem(??????????) player:removeItem(item.itemid, 1) player:sendTextMessage(MESSAGE_STATUS_DEFAULT, "Sucesso o item foi forjado") player:getPosition():sendMagicEffect(50) return true end forge:id(37110) forge:register()
Postado Junho 15, 2022 3 anos Em 15/06/2022 em 19:25, Pacera disse: Me ajuda ae por favor. Consegui fazer algumas coisas, só que o script é bem extenso e utiliza algumas funções que nunca utilizei. Falta: 1-Alterar o onuse pro item dar use no item que vai ser forjado. exemplo, clica com direito no item 37110 e usa no item que vai forjar. Ou se possível ser feito por actionID. o cara coloca o item que sera forjado em cima de algum tile e puxa uma alavanca. 2-Depois, verificar se o item é tier=0 ou maior que 0 e menor que 10(tier maximo). Caso nao seja ele mostra a mensagem que este nao é um item forjável. 3-Fazer um random da porcentagem de acerto conforme o tier do item. tier=0 sera 100% acerto. a cada tier a porcentagem cai 15% ate o tier maximo que é 10. 4-se o random por favorável, verificar o nível Tier do item target e somar 1 nível - Você não precisar fazer uma lista dos items usados na forja (local craft.items = {}) pq no caso ele será o item usado: function forget.onUse(player, item, fromPosition, target, itemEx, toPosition) - Você precisa usar um item que abre a opção de "targetar" outro item (aquela setinha quando clica com o botão direito), isso é de cada item e ele fica definido dentro do cliente e só pode ser alterado pelo object builder, caso seu cliente seja customizado. - Antes de remover o item 100x usado na forja, você precisa verificar se o item é válido para forjar. Em 15/06/2022 em 16:38, Pacera disse: player:addItem(itemType:getId(), 1):setTier(tier) Aqui no primeiro script que você colocou não tem a verificação de é um item válido para forjar, e particularmente, não sei como funciona o sistema ... também não sei se as suas sources faz essa verificação ... (faça um teste, tente criar um item "meat" tier 10, por exemplo) STYLLER OT 2022
Postado Junho 15, 2022 3 anos Autor A source faz a verificação se ele te 0 tier. todos os item forjaveis tem tier 0. os nao forjaveis nao tem tier
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.