Postado Outubro 9, 2018 6 anos Diga em poucas palavras a base utilizada (Nome do servidor ou nome do website). Ex. TFS 1.3; Base: TFS 0.7.5 Qual erro está surgindo/O que você procura? Postei a imagem do erro Você tem o código disponível? Se tiver publique-o aqui: ---------- CONFIGURE AQUI ---------- local tempo = 5 -- (1 = 1 minuto) Tempo que o script durará local expinicial = 2 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. local expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. local itemId = 7440 -- Aqui vai o ID do ITEM local texto = "Você receberá " .. expinicial .. "x de xp durante " .. tempo .. " minuto(s)" -- Texto que irá receber ao usar a potion. local textofinal = "Fim do efeito da potion." -- Texto que irá receber quando o efeito da potion acabar. local storage = 171717 -- Storage local level = 8 -- LEVEL para usar o item local rates = getPlayerRates(cid) ---------- FIM DA CONFIGURAÇÃO NÃO ALTERE NADA A BAIXO DISSO ------------- function onUse(cid, item, frompos, item2, topos) tempo = tempo*60*1000 if rates[SKILL__LEVEL] > 1 then rates = rates[SKILL__LEVEL] + expinicial else rates = (rates[SKILL__LEVEL] + expinicial) - 1 end if getPlayerLevel(cid) >= level then if getPlayerStorageValue(cid, storage) <= 0 then if item.itemid == itemId then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid,rates) doSendMagicEffect(frompos,13) doPlayerSendTextMessage(cid,22,texto) addEvent(potion,tempo,cid) setPlayerStorageValue(uid, storage, 1) end else doPlayerSendCancel(cid, "Você já está sob efeito desse item.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end else doPlayerSendCancel(cid, "Você não tem level suficiente, precisa ser level 1500.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end end function potion(pos, cid) if (rates - expinicial) >= 1 then doPlayerSetExperienceRate(pos,rates - expinicial) elseif (rates - expinicial) < 1 then doPlayerSetExperienceRate(pos,expfinal) end setPlayerStorageValue(uid, storage, 0) doPlayerSendTextMessage(pos,22,textofinal) doPlayerSendTextMessage(cid,22,"Bônus de xp: " .. rates .. "x") stopEvent(potion) end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. Editado Outubro 9, 2018 6 anos por kiinho (veja o histórico de edições)
Postado Outubro 9, 2018 6 anos @kiinho, essa variável precisa estar dentro da callback: local rates = getPlayerRates(cid)
Postado Outubro 9, 2018 6 anos Autor 43 minutos atrás, Wakon disse: @kiinho, essa variável precisa estar dentro da callback: local rates = getPlayerRates(cid) Mudei umas coisas: Spoiler function onUse(cid, item, frompos, item2, topos) ---------- CONFIGURE AQUI ---------- local tempo = 5 -- (1 = 1 minuto) Tempo que o script durará local expinicial = 2 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. local expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. local itemId = 7440 -- Aqui vai o ID do ITEM local texto = "Você receberá " .. expinicial .. "x de xp durante " .. tempo .. " minuto(s)" -- Texto que irá receber ao usar a potion. local textofinal = "Fim do efeito da potion." -- Texto que irá receber quando o efeito da potion acabar. local storage = 171717 -- Storage local level = 8 -- LEVEL para usar o item ---------- FIM DA CONFIGURAÇÃO NÃO ALTERE NADA A BAIXO DISSO ------------- tempo = tempo*1000 local rates = getPlayerRates(cid)[SKILL__LEVEL] if getPlayerLevel(cid) >= level then if getPlayerStorageValue(cid, storage) <= 0 then if item.itemid == itemId then doRemoveItem(item.uid,1) if rates > 1 then doPlayerSetExperienceRate(cid,rates+expinicial) else doPlayerSetExperienceRate(cid,(rates+expinicial)-1) end doSendMagicEffect(frompos,13) addEvent(potion,tempo,cid) setPlayerStorageValue(cid, storage, 1) doPlayerSendTextMessage(cid,22,texto) doPlayerSendTextMessage(cid,22,"Bônus de xp: " .. rates .. "x") end else doPlayerSendCancel(cid, "Você já está sob efeito desse item.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end else doPlayerSendCancel(cid, "Você não tem level suficiente, precisa ser level 1500.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end function potion(pos, cid) if (rates - expinicial) >= 1 then doPlayerSetExperienceRate(pos,(rates - expinicial)) else doPlayerSetExperienceRate(pos,expfinal) end doPlayerSendTextMessage(pos,22,textofinal) end end Dai apareceu esse erro
Postado Outubro 9, 2018 6 anos @kiinho, adicione um check na função potion para retornar caso não encontre o player: if (not isPlayer(cid)) then return false end
Postado Outubro 9, 2018 6 anos ---------- CONFIGURE AQUI ---------- local tempo = 5 -- (1 = 1 minuto) Tempo que o script durará local expinicial = 2 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. local expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. local itemId = 7440 -- Aqui vai o ID do ITEM local texto = "Você receberá " .. expinicial .. "x de xp durante " .. tempo .. " minuto(s)" -- Texto que irá receber ao usar a potion. local textofinal = "Fim do efeito da potion." -- Texto que irá receber quando o efeito da potion acabar. local storage = 171717 -- Storage local level = 8 -- LEVEL para usar o item local rates = getPlayerRates(cid) ---------- FIM DA CONFIGURAÇÃO NÃO ALTERE NADA A BAIXO DISSO ------------- function onUse(cid, item, frompos, item2, topos) tempo = tempo*60*1000 if rates[SKILL__LEVEL] > 1 then rates = rates[SKILL__LEVEL] + expinicial else rates = (rates[SKILL__LEVEL] + expinicial) - 1 end if getPlayerLevel(cid) >= level then if getPlayerStorageValue(cid, storage) <= 0 then if item.itemid == itemId then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid,rates) doSendMagicEffect(frompos,13) doPlayerSendTextMessage(cid,22,texto) addEvent(potion,tempo,cid) setPlayerStorageValue(uid, storage, 1) end else doPlayerSendCancel(cid, "Você já está sob efeito desse item.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end else doPlayerSendCancel(cid, "Você não tem level suficiente, precisa ser level 1500.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end end function potion(pos, cid) if not isCreature(cid) then return LUA_ERROR end if (rates - expinicial) >= 1 then doPlayerSetExperienceRate(pos,rates - expinicial) elseif (rates - expinicial) < 1 then doPlayerSetExperienceRate(pos,expfinal) end setPlayerStorageValue(uid, storage, 0) doPlayerSendTextMessage(pos,22,textofinal) doPlayerSendTextMessage(cid,22,"Bônus de xp: " .. rates .. "x") stopEvent(potion) end
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.