Postado Outubro 9, 2018 6 anos Autor Em 09/10/2018 em 19:23, Vodkart disse: ---------- 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 Da um erro ao abrir o servidor ou ao dar reload actions, e o outro é quando tento usar Mostrar conteúdo oculto 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 rates > 1 then doPlayerSetExperienceRate(cid,rates+expinicial) else doPlayerSetExperienceRate(cid,(rates+expinicial)-1) end addEvent(potionexp, tempo, cid) doRemoveItem(item.uid,1) setPlayerStorageValue(cid, storage, 1) doSendMagicEffect(frompos,13) doPlayerSendTextMessage(cid,22,texto) doPlayerSendTextMessage(cid,22,"Bônus de xp: " .. rates .. "x") 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 potionexp(pos, cid) if (not isPlayer(cid)) then return false end if (rates - expinicial) >= 1 then doPlayerSetExperienceRate(pos,(rates - expinicial)) else doPlayerSetExperienceRate(pos,expfinal) end doPlayerSetStorage(pos, storage, 0) doPlayerSendTextMessage(pos,22,textofinal) end Melhorei o código, porém o function potion n funciona por causa que ele n acha player Não mostra erro, só não executa o event da function potionexp Quando eu removo if (not isPlayer(cid)) then return false end aparece o seguinte erro Editado Outubro 9, 2018 6 anos por kiinho (veja o histórico de edições)
Postado Outubro 10, 2018 6 anos ---------- CONFIGURE AQUI ---------- local config = { tempo = 5 * 60 * 1000, -- (1 = 1 minuto) Tempo que o script durará expInicial = 2, -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expFinal = 1, --Não mude, isso é para a experiencia voltar ao normal. itemId = 7440, -- Aqui vai o ID do ITEM storage = 171717, -- Storage level = 8 -- LEVEL para usar o item } ---------- FIM DA CONFIGURAÇÃO NÃO ALTERE NADA A BAIXO DISSO ------------- local function potion(cid, rates, expInicial, expFinal, storage) if not isPlayer(cid) then return false end if (rates - expInicial) >= 1 then doPlayerSetExperienceRate(cid, rates - expInicial) elseif (rates - expInicial) < 1 then doPlayerSetExperienceRate(cid, expFinal) end setPlayerStorageValue(cid, storage, 0) doPlayerSendTextMessage(cid, 22, "Fim do efeito da potion.") doPlayerSendTextMessage(cid, 22, "Bônus de xp: " .. rates .. "x") stopEvent(potion) return true end function onUse(cid, item, frompos, item2, topos) if item.itemid ~= config.itemId then return false end if getPlayerLevel(cid) < config.level then doPlayerSendCancel(cid, "Você não tem level suficiente, precisa ser level 1500.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if getPlayerStorageValue(cid, config.storage) > 0 then doPlayerSendCancel(cid, "Você já está sob efeito desse item.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end local rates = getPlayerRates(cid) if rates[SKILL__LEVEL] > 1 then rates = rates[SKILL__LEVEL] + config.expinicial else rates = (rates[SKILL__LEVEL] + config.expinicial) - 1 end doRemoveItem(item.uid, 1) doPlayerSetExperienceRate(cid, rates) doSendMagicEffect(frompos, 13) doPlayerSendTextMessage(cid, 22, "Você receberá " .. config.expInicial .. "x de xp durante " .. config.tempo .. " minuto(s)",) addEvent(potion, config.tempo, cid, getPlayerRates(cid), config.expinicial, config.expFinal, config.storage) setPlayerStorageValue(cid, storage, 1) return true end
Postado Outubro 10, 2018 6 anos Autor Em 10/10/2018 em 02:52, FlavioHulk disse: ---------- CONFIGURE AQUI ---------- local config = { tempo = 5 * 60 * 1000, -- (1 = 1 minuto) Tempo que o script durará expInicial = 2, -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expFinal = 1, --Não mude, isso é para a experiencia voltar ao normal. itemId = 7440, -- Aqui vai o ID do ITEM storage = 171717, -- Storage level = 8 -- LEVEL para usar o item } ---------- FIM DA CONFIGURAÇÃO NÃO ALTERE NADA A BAIXO DISSO ------------- local function potion(cid, rates, expInicial, expFinal, storage) if not isPlayer(cid) then return false end if (rates - expInicial) >= 1 then doPlayerSetExperienceRate(cid, rates - expInicial) elseif (rates - expInicial) < 1 then doPlayerSetExperienceRate(cid, expFinal) end setPlayerStorageValue(cid, storage, 0) doPlayerSendTextMessage(cid, 22, "Fim do efeito da potion.") doPlayerSendTextMessage(cid, 22, "Bônus de xp: " .. rates .. "x") stopEvent(potion) return true end function onUse(cid, item, frompos, item2, topos) if item.itemid ~= config.itemId then return false end if getPlayerLevel(cid) < config.level then doPlayerSendCancel(cid, "Você não tem level suficiente, precisa ser level 1500.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if getPlayerStorageValue(cid, config.storage) > 0 then doPlayerSendCancel(cid, "Você já está sob efeito desse item.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end local rates = getPlayerRates(cid) if rates[SKILL__LEVEL] > 1 then rates = rates[SKILL__LEVEL] + config.expinicial else rates = (rates[SKILL__LEVEL] + config.expinicial) - 1 end doRemoveItem(item.uid, 1) doPlayerSetExperienceRate(cid, rates) doSendMagicEffect(frompos, 13) doPlayerSendTextMessage(cid, 22, "Você receberá " .. config.expInicial .. "x de xp durante " .. config.tempo .. " minuto(s)",) addEvent(potion, config.tempo, cid, getPlayerRates(cid), config.expinicial, config.expFinal, config.storage) setPlayerStorageValue(cid, storage, 1) return true end Não acontece nada e não aparece nenhum erro na distro E aparece isso ao usar Consegui arrumar esse problema, vc tinha esquecido uma , solta por ai e expinicial vc colocou para expInicial, mas deixou alguns como expinicial, agora é que surgiu outro erro coloquei um print Em 10/10/2018 em 02:52, FlavioHulk disse: ---------- CONFIGURE AQUI ---------- local config = { tempo = 5 * 60 * 1000, -- (1 = 1 minuto) Tempo que o script durará expInicial = 2, -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expFinal = 1, --Não mude, isso é para a experiencia voltar ao normal. itemId = 7440, -- Aqui vai o ID do ITEM storage = 171717, -- Storage level = 8 -- LEVEL para usar o item } ---------- FIM DA CONFIGURAÇÃO NÃO ALTERE NADA A BAIXO DISSO ------------- local function potion(cid, rates, expInicial, expFinal, storage) if not isPlayer(cid) then return false end if (rates - expInicial) >= 1 then doPlayerSetExperienceRate(cid, rates - expInicial) elseif (rates - expInicial) < 1 then doPlayerSetExperienceRate(cid, expFinal) end setPlayerStorageValue(cid, storage, 0) doPlayerSendTextMessage(cid, 22, "Fim do efeito da potion.") doPlayerSendTextMessage(cid, 22, "Bônus de xp: " .. rates .. "x") stopEvent(potion) return true end function onUse(cid, item, frompos, item2, topos) if item.itemid ~= config.itemId then return false end if getPlayerLevel(cid) < config.level then doPlayerSendCancel(cid, "Você não tem level suficiente, precisa ser level 1500.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end if getPlayerStorageValue(cid, config.storage) > 0 then doPlayerSendCancel(cid, "Você já está sob efeito desse item.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end local rates = getPlayerRates(cid) if rates[SKILL__LEVEL] > 1 then rates = rates[SKILL__LEVEL] + config.expinicial else rates = (rates[SKILL__LEVEL] + config.expinicial) - 1 end doRemoveItem(item.uid, 1) doPlayerSetExperienceRate(cid, rates) doSendMagicEffect(frompos, 13) doPlayerSendTextMessage(cid, 22, "Você receberá " .. config.expInicial .. "x de xp durante " .. config.tempo .. " minuto(s)",) addEvent(potion, config.tempo, cid, getPlayerRates(cid), config.expinicial, config.expFinal, config.storage) setPlayerStorageValue(cid, storage, 1) return true end Muito obrigado, consertei os erros, rep + Resolvido, podem fechar o tópico! Editado Outubro 10, 2018 6 anos por kiinho (veja o histórico de edições)
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.