Ir para conteúdo

Featured Replies

Postado
  • 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

Screenshot_78.png

Screenshot_79.png

Mostrar conteúdo oculto

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

 

Screenshot_81.png

Editado por kiinho (veja o histórico de edições)

  • Respostas 7
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @kiinho, adicione um check na função potion para retornar caso não encontre o player: if (not isPlayer(cid)) then return false end  

  • @kiinho, essa variável precisa estar dentro da callback: local rates = getPlayerRates(cid)

  • ---------- 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 d

Posted Images

Postado
---------- 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
  • 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

Screenshot_82.png

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
 

Screenshot_83.png

  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 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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo