Ir para conteúdo

Featured Replies

Postado

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.

Screenshot_74.png

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

  • Respostas 7
  • Visualizações 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
  • 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 

Screenshot_75.png

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

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