Ir para conteúdo
  • 0
Jepart

Scripting Ao da use sem ser o item da tabela da error

Pergunta

Jepart    0
Jepart

Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo:

https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/

https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/

Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.).

Ex: The Forgotten Server 1.3, Versão: 10.98.

Base:

TFS 1.3 - 10.98

Qual é a sua pergunta?

Ele está funcionando perfeitamente ao identificar as pedras porem se usar a picareta sem ser nas pedras da esse error

 

Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo:

Spoiler

local base = 300 -- Expericia Base
local mode = 3 -- Dificuldade
local config ={
    storageSkill = 21001,
    storageSkillXp = 21009,
    skillName = "Gathering",
    skillChance = 20
}
local pickaxe ={
    [27397]={id = 27397, bonusitem = 0, bonusChance = 5},
    [27398]={id = 27398, bonusitem = 1, bonusChance = 10},
    [27399]={id = 27399, bonusitem = 2, bonusChance = 15},
    [27400]={id = 27400, bonusitem = 3, bonusChance = 20}
}
local stone = {
    [27401]={id=27401,tranform=3652, basic = false, xp = 50, drop = 27462, count = 2},
    [27402]={id=27402,tranform=3652, basic = false, xp = 50, drop = 27462, count = 2},
    [27403]={id=27403,tranform=3652, basic = false, xp = 50, drop = 27462, count = 2},
    [27406]={id=27401,tranform=3652, basic = false, xp = 50, drop = 27464, count = 2},
    [27407]={id=27407,tranform=3652, basic = false, xp = 50, drop = 27464, count = 2},
    [27412]={id=27412,tranform=3652, basic = false, xp = 50, drop = 27464, count = 2},
    [27413]={id=27413,tranform=3652, basic = false, xp = 50, drop = 27465, count = 2},
    [27414]={id=27414,tranform=3652, basic = false, xp = 50, drop = 27465, count = 2},
    [27415]={id=27415,tranform=3652, basic = false, xp = 50, drop = 27465, count = 2},
    [27418]={id=27418,tranform=3652, basic = false, xp = 50, drop = 27466, count = 2},
    [27419]={id=27419,tranform=3652, basic = false, xp = 50, drop = 27466, count = 2},
    [27420]={id=27420,tranform=3652, basic = false, xp = 50, drop = 27466, count = 2},
    [27425]={id=27425,tranform=3652, basic = false, xp = 50, drop = 27470, count = 2},
    [27426]={id=27426,tranform=3652, basic = false, xp = 50, drop = 27470, count = 2},
    [27427]={id=27427,tranform=3652, basic = false, xp = 50, drop = 27470, count = 2},
    [27430]={id=27430,tranform=3652, basic = false, xp = 50, drop = 27468, count = 2},
    [27431]={id=27431,tranform=3652, basic = false, xp = 50, drop = 27468, count = 2},
    [27432]={id=27432,tranform=3652, basic = false, xp = 50, drop = 27468, count = 2},
    [27435]={id=27435,tranform=3652, basic = false, xp = 50, drop = 27467, count = 2},
    [27436]={id=27436,tranform=3652, basic = false, xp = 50, drop = 27467, count = 2},
    [27437]={id=27437,tranform=3652, basic = false, xp = 50, drop = 27467, count = 2},
    [27440]={id=27440,tranform=3652, basic = false, xp = 50, drop = 27469, count = 2},
    [27441]={id=27441,tranform=3652, basic = false, xp = 50, drop = 27469, count = 2},
    [27442]={id=27442,tranform=3652, basic = false, xp = 50, drop = 27469, count = 2},
    [27447]={id=27447,tranform=3652, basic = false, xp = 50, drop = 27471, count = 2},
    [27448]={id=27448,tranform=3652, basic = false, xp = 50, drop = 27471, count = 2},
    [27449]={id=27449,tranform=3652, basic = false, xp = 50, drop = 27471, count = 2},
    [27457]={id=27457,tranform=3652, basic = false, xp = 50, drop = 27463, count = 2},
    [27458]={id=27458,tranform=3652, basic = false, xp = 50, drop = 27463, count = 2},
    [27459]={id=27459,tranform=3652, basic = false, xp = 50, drop = 27463, count = 2},
    [1285]={id=1285,tranform=3652, basic = true},
    [1304]={id=1304,tranform=1285, basic = true}
}
local basicReward = {
    [1]={xp = 1, drop = 0,quant = 0},
    [2]={xp = 5, drop = 2145,quant = 2},
    [3]={xp = 10, drop = 2160,quant = 2}
}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)

    function giveItemPlayer(item,count,bonus)
        if item == 0 then
            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "You did not find anything.")
        else
            itemrandom = math.random(1,count+bonus)
            doPlayerAddItem(player,item,itemrandom)
            itemname = getItemName(item)
            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "You've found " .. itemrandom .." " ..itemname..".")
        end
    end
    function LevelUpLS(storagelevel,storagexp,gainxp,name)
        level = player:getStorageValue(storagelevel)
        xp = player:getStorageValue(storagexp)
        local xptotal = level*base+(level*base)/100*mode+base
        xpResult = xp+gainxp
        local baseLevelUp = (level+1)*base+((level+1)*base)/100*mode+base
    
            if level <= 9 then
                skilllevel="Beginner "..level+1
            elseif level <= 19 then
                skilllevel="Apprentice "..level+1-10
            elseif level <= 39 then
                skilllevel="Skillful "..level+1-20
            elseif level <= 59 then
                skilllevel="Qualified "..level+1-40
            elseif level <= 89 then
                skilllevel="Professional "..level+1-60
            elseif level <= 139 then
                skilllevel="Master "..level+1-90
            elseif level <= 199 then
                skilllevel="Epic "..level+1-140
            end
    
        if xpResult >= xptotal then
            player:setStorageValue(storagexp, xp-xptotal+gainxp)
            doCreatureSay(player, name.."+", TALKTYPE_ORANGE_1)
            player:getPosition():sendMagicEffect(29)
            player:sendTextMessage(MESSAGE_EVENT_DEFAULT,"You have risen in level in ".. name.. ". ["..skilllevel.."]")
            player:setStorageValue(storagelevel, level+1)
            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Current Experience: "..xp+gainxp-xptotal.. "/"..baseLevelUp )
        else
            player:setStorageValue(storagexp, xp+gainxp)
            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Current Experience: "..xp+gainxp.. "/"..xptotal )
        end
    end
    if target.itemid == stone[target.itemid].id then
    r = math.random(1,100)
    i = math.random(2, #basicReward)
    doSendMagicEffect(toPosition, 35)
        if stone[target.itemid].basic == true then
            if r >= (100-config.skillChance-pickaxe[item.itemid].bonusChance) then
                giveItemPlayer(basicReward[i].drop,basicReward[i].quant,pickaxe[item.itemid].bonusitem)
                LevelUpLS(config.storageSkill,config.storageSkillXp,basicReward[i].xp,config.skillName)
            else
                giveItemPlayer(basicReward[1].drop , basicReward[1].quant)
                LevelUpLS(config.storageSkill,config.storageSkillXp,basicReward[1].xp,config.skillName)
            end
        else
            giveItemPlayer(stone[target.itemid].drop,stone[target.itemid].count,pickaxe[item.itemid].bonusitem)
            LevelUpLS(config.storageSkill,config.storageSkillXp,stone[target.itemid].xp,config.skillName)
        end
    else
    player:sendTextMessage(MESSAGE_EVENT_DEFAULT, 'You can not mine it.')
    end
 
end

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:

Spoiler

image.thumb.png.8ed221a68bb947d703a6fe4f02fe38fa.png

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

  • 0
Majesty    1755
Majesty

Solução por @Jepart

Substituir:

if target.itemid == stone[target.itemid].id then

Por:

if isInArray(stone[stoneid],target.itemid) then

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×