Ir para conteúdo
  • Cadastre-se

Pedido Item que heala e da buff


Ir para solução Resolvido por FeeTads,

Posts Recomendados

Será que alguém conseguiria fazer o seguinte script para mim?
Funciona assim, seria uma "food" mas  que lembra uma potion, que vai dar heal por segundo e buff. Exemplo:
O player usa o item e por x tempo em segundos ele se cura em x% de vida e ganha um buff de x em fishing skill, fica um effect constante nele e o item some como se fosse uma food

e so pode ser usado novamente quando acabar o tempo do primeiro uso.
No caso preciso restringir o uso para apenas algumas vocations!

Desde já agradeço.

 

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
  • 4 weeks later...
Em 15/06/2022 em 15:49, daviscript disse:

Quando o player relogar ele perderá esse buff?

Desculpe a demora, sim, ao relogar ou morrer ele vai perder o buff e a cura

Link para o post
Compartilhar em outros sites
  • Moderador
Em 21/05/2022 em 15:20, Nother disse:

Será que alguém conseguiria fazer o seguinte script para mim?
Funciona assim, seria uma "food" mas  que lembra uma potion, que vai dar heal por segundo e buff. Exemplo:
O player usa o item e por x tempo em segundos ele se cura em x% de vida e ganha um buff de x em fishing skill, fica um effect constante nele e o item some como se fosse uma food

e so pode ser usado novamente quando acabar o tempo do primeiro uso.
No caso preciso restringir o uso para apenas algumas vocations!

Desde já agradeço.

 

 

fiz aqui meu bom, mas creio que será necessário você testar antes de por em prática kkkkkk, caso tenha algum bug, manda print do erro no console que aparecer PF.

colocar em qualquer arquivo action.lua ex:

data > actions > scripts > foodBuff.lua

 

colocar no actions.xml

data > actions > actions.xml

<action itemid="9998 script="foodBuff.lua"/> 

 

TROCAR O 9998 PELO ID DO SEU FOOD/ITEM

 

local itemID = 9998    				 -- id do item
local tempoDeBuff = 60      		 -- em segundos
local porcentagemDeCura = 2 		 -- vai curar 2% por [tempo entre curas] durante [tempo de buff]
local qtdDeSkill = 10				 -- quantidade de skill que dará
local efeito = 4					 -- efeito que sairá do player
local removerItem = true      		 -- remover o item? true = remove, false = não remove
local tempoEntreCuras = 1 * 1000	 -- tempo entre o efeito da cura, 1 * 1000 = 1000ms logo //1 segundo
local need_vocation = {1,2,3,4,5}	 -- IDs da vocações QUE PODEM usar o food
local buff = SKILL_FISHING			 -- qual skill vai aumentar //pra saber qual skill vc quer aumentar procure por "skill" em "lib/000-constant.lua"
local storage = 5474767				 -- pode ser qualquer numero //não pode repetir numero de outra storage existente
local storage_buff_ativo = 5474768

local function CuraFoodBuff(cid, flag)
	
	if isCreature(cid)  then		--se estiver logado entra, se não termina o loop, ou seja, se deslogar/morrer perde o efeito do food
		if flag > 0 then
			doCreatureAddHealth(cid, (getCreatureMaxHealth(cid) * (porcentagemDeCura/100)))		-- n mexer :P
			doSendMagicEffect(getThingPos(cid), efeito)					  				-- efeito que vai sair do player
			flag = getPlayerStorageValue(cid, storage) - os.time()
			addEvent(CuraFoodBuff, tempoEntreCuras, cid, flag)		  					-- chama de novo a função passando -1 segundo pro tempo
		else
			doPlayerAddSkill(cid, buff, -qtdDeSkill, true)    		     		  -- quando acabar o efeito seta o fishing pro normal
      		setPlayerStorageValue(cid, storage_buff_ativo, -1)
			return true
		end
	else
		return true
	end
end


function onUse(cid, item, frompos, item2, topos)

	local msg_no_vocation = "Sua Vocação não pode usar esse item!"									-- mensagem caso não tenha a voc necessária
	local msg_sucess = "Você usou o Heal Food, o efeito irá durar"..tempoDeBuff.." segundos"		-- mensagem de sucesso
	local no_have_voc = true
	
	if item.itemid == itemID then
		local tempo = getPlayerStorageValue(cid, storage) - os.time()		-- tempo recebe o tempo restante pra usar a potion de novo
		if tempo > 0 then													-- se tempo for maior que 0, significa que está em uso
			if tempo > 60 then												-- só pra mostrar bonitinho
				doPlayerSendCancel(cid,"Você precisa esperar "..math.floor(tempo/60).." minutos e "..(tempo%60).." segundos.")
			else
				doPlayerSendCancel(cid,"Você precisa esperar "..(tempo%60).." segundos.")
			end
			return true
		end

		for i=1, #need_vocation do										-- checa as vocações que podem usar o food //setadas no cabeçalho
			if getPlayerVocation(cid) == need_vocation[i] then			-- se for, aparece msg de sucesso na tela
				doPlayerSendTextMessage(cid, 22, msg_sucess)
				no_have_voc = false										-- seta a variavel de não ter voc pra false, ou seja tem a voc necessaria
				break													-- quebra o for depois disso //necessario deixar o BREAK
			end
		end
		
		if no_have_voc then
			doPlayerSendTextMessage(cid, 22, msg_no_vocation)		-- se não tiver a vocação necessaria, manda msg avisando
			return true												-- e sai da função
		end
		
		setPlayerStorageValue(cid, storage, os.time() + tempoDeBuff)		-- storage pra salvar o tempo de buff, apenas pra tirar o skill de fishing caso o player deslogue/morra
		doPlayerAddSkill(cid, buff, qtdDeSkill, true)						-- aumenta o skill setado no cabeçalho
		setPlayerStorageValue(cid, storage_buff_ativo, 1)
    	if removerItem then													-- se removerItem no cabeçalho for true REMOVE O ITEM, se não, não remove
			doRemoveItem(item.uid, 1)										-- função de remover o item, não precisa mexer
		end
		CuraFoodBuff(cid, tempoDeBuff)									-- chama a função
	end
	return true
end

 

 

coloquei como exemplo no script > 2% de cura por segundo, durante 60 segundos, OU SEJA, o player vai curar 100% (na vdd ele irá curar 120%) de life (PORÉM não irá bugar pq caso o tibia reconheça que o player está com 100% de vida, ele não extrapola esse limite de 100%, só ignora a cura).

 

obviamente vc pode alterar como quiser no script

 

tempoDebuff = 30  (durante 30 segundos)

tempoEntreCuras = 1 * 500 (a cada meio segundo)

 

e o MAIS IMPORTANTE, itemID = 9998 (trocar o 9998 pro id do item)

 

PS: caso o player morra/deslogue, irá perder o buff de cura da potion, PORÉM não perderá o skill

 

**OBRIGATÓRIAMENTE** você precisará checar isso em algum creaturescript de login

ex: data > creaturescripts > scripts > login.lua  (login.lua é um arquivo padrão que existe em todo ot)

 

procura por:

function onLogin(cid)

 

e logo abaixo adicione isso:

 

if getPlayerStorageValue(cid, 5474768) == 1 then
  local buff = SKILL_FISHING					-- PRECISA SER O MESMO do colocado no script do actions
  local qtdDeSkill = 10							-- PRECISA SER O MESMO do colocado no script do actions
  local liberar_food_pra_uso_apos_morte = true	--Liberar o uso do food após o player morrer com ele ativo? true = libera o uso / false = o player tem que esperar o cooldown do uso acabar
  
  if liberar_food_pra_uso_apos_morte then    
    setPlayerStorageValue(cid, 5474767, 0)
  end
  doPlayerAddSkill(cid, buff, -qtdDeSkill, true)   
  setPlayerStorageValue(cid, 5474768, -1)
end

 

assim que ele logar, após ter deslogado/morrido com o food la ativo, irá tirar o buff de skill que foi adicionado.

 

 

CASO queira mudar o EFEITO que sai do player, vai no teu GOD, e digita /z e o numero

ex: /z 5

vai sair no GOD um efeito

existem 69 efeitos (em tibia normal)

ai vc procura um legal, e coloca no lugar de

local efeito = 10

Editado por FeeTads
AJUSTES no for de checagem de vocação (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 16/07/2022 em 07:20, FeeTads disse:

 

fiz aqui meu bom, mas creio que será necessário você testar antes de por em prática kkkkkk, caso tenha algum bug, manda print do erro no console que aparecer PF.

colocar em qualquer arquivo action.lua ex:

data > actions > scripts > foodBuff.lua

 

colocar no actions.xml

data > actions > actions.xml

<action itemid="9998 script="foodBuff.lua"/> 

 

TROCAR O 9998 PELO ID DO SEU FOOD/ITEM

 


local itemID = 9998    				 -- id do item
local tempoDeBuff = 60      		 -- em segundos
local porcentagemDeCura = 2 		 -- vai curar 2% por [tempo entre curas] durante [tempo de buff]
local qtdDeSkill = 10				 -- quantidade de skill que dará
local efeito = 4					 -- efeito que sairá do player
local removerItem = true      		 -- remover o item? true = remove, false = não remove
local tempoEntreCuras = 1 * 1000	 -- tempo entre o efeito da cura, 1 * 1000 = 1000ms logo //1 segundo
local need_vocation = {1,2,3,4,5}	 -- IDs da vocações QUE PODEM usar o food
local buff = SKILL_FISHING			 -- qual skill vai aumentar //pra saber qual skill vc quer aumentar procure por "skill" em "lib/000-constant.lua"
local storage = 5474767				 -- pode ser qualquer numero //não pode repetir numero de outra storage existente
local storage_buff_ativo = 5474768

local function CuraPorSegundo(cid, n)

	if isCreature(cid) then		--se estiver logado entra, se não termina o loop, ou seja, se deslogar/morrer perde o efeito do food
		if n > 0 then
			doCreatureAddHealth(cid, (getCreatureMaxHealth(cid) * (porcentagemDeCura/100)))		-- n mexer :P
			doSendMagicEffect(getThingPos(cid), efeito)							  -- efeito que vai sair do player
		else
			doPlayerAddSkill(cid, buff, -qtdDeSkill, true)    		     		  -- quando acabar o efeito seta o fishing pro normal
      		setPlayerStorageValue(cid, storage_buff_ativo, -1)
		end
		addEvent(CuraPorSegundo, tempoEntreCuras, cid, n-1)						  -- chama de novo a função passando -1 segundo pro tempo
	else
		return true
	end
end


function onUse(cid, item, frompos, item2, topos)

	local msg_no_vocation = "Sua Vocação não pode usar esse item!"									-- mensagem caso não tenha a voc necessária
	local msg_sucess = "Você usou o Heal Food, o efeito irá durar"..tempoDeBuff.." segundos"		-- mensagem de sucesso
	
	if item.itemid == itemID then
		local tempo = getPlayerStorageValue(cid, storage) - os.time()		-- tempo recebe o tempo restante pra usar a potion de novo
		if tempo > 0 then													-- se tempo for maior que 0, significa que está em uso
			if tempo > 60 then												-- só pra mostrar bonitinho
				doPlayerSendCancel(cid,"Você precisa esperar "..math.floor(tempo/60).." minutos e "..(tempo%60).." segundos.")
			else
				doPlayerSendCancel(cid,"Você precisa esperar "..(tempo%60).." segundos.")
			end
			return true
		end

		for i=1 #need_vocation do										-- checa as vocações que podem usar o food //setadas no cabeçalho
			if getPlayerVocation(cid) == need_vocation[i] then			-- se for, aparece msg de sucesso na tela
				doPlayerSendTextMessage(cid, 22, msg_sucess)
			else
				doPlayerSendTextMessage(cid, 22, msg_no_vocation)		-- se não tiver a vocação necessaria, manda msg avisando
				return true												-- e sai da função
			end
		end
		
		setPlayerStorageValue(cid, storage, os.time() + tempoDeBuff)		-- storage pra salvar o tempo de buff, apenas pra tirar o skill de fishing caso o player deslogue/morra
		doPlayerAddSkill(cid, buff, qtdDeSkill, true)						-- aumenta o skill setado no cabeçalho
		setPlayerStorageValue(cid, storage_buff_ativo, 1)
    	if removerItem then													-- se removerItem no cabeçalho for true REMOVE O ITEM, se não, não remove
			doRemoveItem(item.uid, 1)										-- função de remover o item, não precisa mexer
		end
		CuraPorSegundo(cid, tempoDeBuff)									-- chama a função
	end
	return true
end

 

 

coloquei como exemplo no script > 2% de cura por segundo, durante 60 segundos, OU SEJA, o player vai curar 100% (na vdd ele irá curar 120%) de life (PORÉM não irá bugar pq caso o tibia reconheça que o player está com 100% de vida, ele não extrapola esse limite de 100%, só ignora a cura).

 

obviamente vc pode alterar como quiser no script

 

tempoDebuff = 30  (durante 30 segundos)

tempoEntreCuras = 1 * 500 (a cada meio segundo)

 

e o MAIS IMPORTANTE, itemID = 9998 (trocar o 9998 pro id do item)

 

PS: caso o player morra/deslogue, irá perder o buff de cura da potion, PORÉM não perderá o skill

 

**OBRIGATÓRIAMENTE** você precisará checar isso em algum creaturescript de login

ex: data > creaturescripts > scripts > login.lua  (login.lua é um arquivo padrão que existe em todo ot)

 

procura por:


function onLogin(cid)

 

e logo abaixo adicione isso:

 


if getPlayerStorageValue(cid, 5474768) == 1 then
  local buff = SKILL_FISHING					-- PRECISA SER O MESMO do colocado no script do actions
  local qtdDeSkill = 10							-- PRECISA SER O MESMO do colocado no script do actions
  local liberar_food_pra_uso_apos_morte = true	--Liberar o uso do food após o player morrer com ele ativo? true = libera o uso / false = o player tem que esperar o cooldown do uso acabar
  
  if liberar_food_pra_uso_apos_morte then    
    setPlayerStorageValue(cid, 5474767, 0)
  end
  doPlayerAddSkill(cid, buff, -qtdDeSkill, true)   
  setPlayerStorageValue(cid, 5474768, -1)
end

 

assim que ele logar, após ter deslogado/morrido com o food la ativo, irá tirar o buff de skill que foi adicionado.

 

 

CASO queira mudar o EFEITO que sai do player, vai no teu GOD, e digita /z e o numero

ex: /z 5

vai sair no GOD um efeito

existem 69 efeitos (em tibia normal)

ai vc procura um legal, e coloca no lugar de

local efeito = 10

Cara muito bem explicado, script incrivel, vc colocou oque cada linha faz praticamente, isso vai ajudar demais para alguém leigo como eu kkk So que ocorreu o seguinte erro na distro. Editei apenas o item e o efeito, ainda não alterei nada no script

Capturar.PNG

Link para o post
Compartilhar em outros sites
  • Moderador
  • Solução
6 horas atrás, Nother disse:

o seguinte erro na distro.

 a distro deixou o erro ali kkkkkk

" ' , ' expected near '#' " ?
kkkkkk faltou uma virgula no for da linha 46

aki nesse for i=1 #need_vocation

for i=1 #need_vocation do										-- checa as vocações que podem usar o food //setadas no cabeçalho
			if getPlayerVocation(cid) == need_vocation[i] then			-- se for, aparece msg de sucesso na tela
				doPlayerSendTextMessage(cid, 22, msg_sucess)
			else
				doPlayerSendTextMessage(cid, 22, msg_no_vocation)		-- se não tiver a vocação necessaria, manda msg avisando
				return true												-- e sai da função
			end
		end

 

coloca assim 
 

for i=1, #need_vocation do

 

só uma virgula após o i=1

de qualquer maneira, atualizei a linha 46 no código ali em cima, qualquer coisa só copiar e colar kkk
e caso funcione 100%, deixa o REP+ e o Mark as Solution ?
tmj meu mano

Em 16/07/2022 em 07:20, FeeTads disse:

local tempoDeBuff = 60

 po mano e percebi um "mini erro" meu aqui, quando estava chamando a função, caso fosse diferente de 1 segundo, iria bugar

 

deixando o código arrumado aki pra baixo

fix: GARANTE que o buff vai durar exatamente o tempo descrito no cabeçalho, independente de quantas curas executar.

fix2: arrumei a checagem de vocação do for também, da outra maneira ia checar apenas a primeira vocação e sair.

 

sugiro muito que copie esse script \/

 

local itemID = 9998    				 -- id do item
local tempoDeBuff = 60      		 -- em segundos
local porcentagemDeCura = 2 		 -- vai curar 2% por [tempo entre curas] durante [tempo de buff]
local qtdDeSkill = 10				 -- quantidade de skill que dará
local efeito = 4					 -- efeito que sairá do player
local removerItem = true      		 -- remover o item? true = remove, false = não remove
local tempoEntreCuras = 1 * 1000	 -- tempo entre o efeito da cura, 1 * 1000 = 1000ms logo //1 segundo
local need_vocation = {1,2,3,4,5}	 -- IDs da vocações QUE PODEM usar o food
local buff = SKILL_FISHING			 -- qual skill vai aumentar //pra saber qual skill vc quer aumentar procure por "skill" em "lib/000-constant.lua"
local storage = 5474767				 -- pode ser qualquer numero //não pode repetir numero de outra storage existente
local storage_buff_ativo = 5474768

local function CuraFoodBuff(cid, flag)
	
	if isCreature(cid)  then		--se estiver logado entra, se não termina o loop, ou seja, se deslogar/morrer perde o efeito do food
		if flag > 0 then
			doCreatureAddHealth(cid, (getCreatureMaxHealth(cid) * (porcentagemDeCura/100)))		-- n mexer :P
			doSendMagicEffect(getThingPos(cid), efeito)					  				-- efeito que vai sair do player
			flag = getPlayerStorageValue(cid, storage) - os.time()						-- garante que execute a função pelo [tempo de buff]
			addEvent(CuraFoodBuff, tempoEntreCuras, cid, flag)		  					-- chama de novo a função passando -1 segundo pro tempo
		else
			doPlayerAddSkill(cid, buff, -qtdDeSkill, true)    		     		  -- quando acabar o efeito seta o fishing pro normal
      		setPlayerStorageValue(cid, storage_buff_ativo, -1)
			return true
		end
	else
		return true
	end
end


function onUse(cid, item, frompos, item2, topos)

	local msg_no_vocation = "Sua Vocação não pode usar esse item!"									-- mensagem caso não tenha a voc necessária
	local msg_sucess = "Você usou o Heal Food, o efeito irá durar"..tempoDeBuff.." segundos"		-- mensagem de sucesso
	
	if item.itemid == itemID then
		local tempo = getPlayerStorageValue(cid, storage) - os.time()		-- tempo recebe o tempo restante pra usar a potion de novo
		if tempo > 0 then													-- se tempo for maior que 0, significa que está em uso
			if tempo > 60 then												-- só pra mostrar bonitinho
				doPlayerSendCancel(cid,"Você precisa esperar "..math.floor(tempo/60).." minutos e "..(tempo%60).." segundos.")
			else
				doPlayerSendCancel(cid,"Você precisa esperar "..(tempo%60).." segundos.")
			end
			return true
		end

		for i=1, #need_vocation do										-- checa as vocações que podem usar o food //setadas no cabeçalho
			if getPlayerVocation(cid) == need_vocation[i] then			-- se for, aparece msg de sucesso na tela
				doPlayerSendTextMessage(cid, 22, msg_sucess)
				no_have_voc = false										-- seta a variavel de não ter voc pra false, ou seja tem a voc necessaria
				break													-- quebra o for depois disso //necessario deixar o BREAK
			end
		end
		
		if no_have_voc then
			doPlayerSendTextMessage(cid, 22, msg_no_vocation)		-- se não tiver a vocação necessaria, manda msg avisando
			return true												-- e sai da função
		end
		
		setPlayerStorageValue(cid, storage, os.time() + tempoDeBuff)		-- storage pra salvar o tempo de buff, apenas pra tirar o skill de fishing caso o player deslogue/morra
		doPlayerAddSkill(cid, buff, qtdDeSkill, true)						-- aumenta o skill setado no cabeçalho
		setPlayerStorageValue(cid, storage_buff_ativo, 1)
    	if removerItem then													-- se removerItem no cabeçalho for true REMOVE O ITEM, se não, não remove
			doRemoveItem(item.uid, 1)										-- função de remover o item, não precisa mexer
		end
		CuraFoodBuff(cid, tempoDeBuff)									-- chama a função
	end
	return true
end

 

Editado por FeeTads
ajuste no for (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
1 hora atrás, FeeTads disse:

 a distro deixou o erro ali kkkkkk

" ' , ' expected near '#' " ?
kkkkkk faltou uma virgula no for da linha 46

aki nesse for i=1 #need_vocation


for i=1 #need_vocation do										-- checa as vocações que podem usar o food //setadas no cabeçalho
			if getPlayerVocation(cid) == need_vocation[i] then			-- se for, aparece msg de sucesso na tela
				doPlayerSendTextMessage(cid, 22, msg_sucess)
			else
				doPlayerSendTextMessage(cid, 22, msg_no_vocation)		-- se não tiver a vocação necessaria, manda msg avisando
				return true												-- e sai da função
			end
		end

 

coloca assim 
 


for i=1, #need_vocation do

 

só uma virgula após o i=1

de qualquer maneira, atualizei a linha 46 no código ali em cima, qualquer coisa só copiar e colar kkk
e caso funcione 100%, deixa o REP+ e o Mark as Solution ?
tmj meu mano

 po mano e percebi um "mini erro" meu aqui, quando estava chamando a função, caso fosse diferente de 1 segundo, iria bugar

 

deixando o código arrumado aki pra baixo

fix: GARANTE que o buff vai durar exatamente o tempo descrito no cabeçalho, independente de quantas curas executar.

fix2: arrumei a checagem de vocação do for também, da outra maneira ia checar apenas a primeira vocação e sair.

 

sugiro muito que copie esse script \/

 


local itemID = 9998    				 -- id do item
local tempoDeBuff = 60      		 -- em segundos
local porcentagemDeCura = 2 		 -- vai curar 2% por [tempo entre curas] durante [tempo de buff]
local qtdDeSkill = 10				 -- quantidade de skill que dará
local efeito = 4					 -- efeito que sairá do player
local removerItem = true      		 -- remover o item? true = remove, false = não remove
local tempoEntreCuras = 1 * 1000	 -- tempo entre o efeito da cura, 1 * 1000 = 1000ms logo //1 segundo
local need_vocation = {1,2,3,4,5}	 -- IDs da vocações QUE PODEM usar o food
local buff = SKILL_FISHING			 -- qual skill vai aumentar //pra saber qual skill vc quer aumentar procure por "skill" em "lib/000-constant.lua"
local storage = 5474767				 -- pode ser qualquer numero //não pode repetir numero de outra storage existente
local storage_buff_ativo = 5474768

local function CuraFoodBuff(cid, flag)
	
	if isCreature(cid)  then		--se estiver logado entra, se não termina o loop, ou seja, se deslogar/morrer perde o efeito do food
		if flag > 0 then
			doCreatureAddHealth(cid, (getCreatureMaxHealth(cid) * (porcentagemDeCura/100)))		-- n mexer :P
			doSendMagicEffect(getThingPos(cid), efeito)					  				-- efeito que vai sair do player
			flag = getPlayerStorageValue(cid, storage) - os.time()						-- garante que execute a função pelo [tempo de buff]
			addEvent(CuraFoodBuff, tempoEntreCuras, cid, flag)		  					-- chama de novo a função passando -1 segundo pro tempo
		else
			doPlayerAddSkill(cid, buff, -qtdDeSkill, true)    		     		  -- quando acabar o efeito seta o fishing pro normal
      		setPlayerStorageValue(cid, storage_buff_ativo, -1)
			return true
		end
	else
		return true
	end
end


function onUse(cid, item, frompos, item2, topos)

	local msg_no_vocation = "Sua Vocação não pode usar esse item!"									-- mensagem caso não tenha a voc necessária
	local msg_sucess = "Você usou o Heal Food, o efeito irá durar"..tempoDeBuff.." segundos"		-- mensagem de sucesso
	
	if item.itemid == itemID then
		local tempo = getPlayerStorageValue(cid, storage) - os.time()		-- tempo recebe o tempo restante pra usar a potion de novo
		if tempo > 0 then													-- se tempo for maior que 0, significa que está em uso
			if tempo > 60 then												-- só pra mostrar bonitinho
				doPlayerSendCancel(cid,"Você precisa esperar "..math.floor(tempo/60).." minutos e "..(tempo%60).." segundos.")
			else
				doPlayerSendCancel(cid,"Você precisa esperar "..(tempo%60).." segundos.")
			end
			return true
		end

		for i=1, #need_vocation do										-- checa as vocações que podem usar o food //setadas no cabeçalho
			if getPlayerVocation(cid) == need_vocation[i] then			-- se for, aparece msg de sucesso na tela
				doPlayerSendTextMessage(cid, 22, msg_sucess)
				no_have_voc = false										-- seta a variavel de não ter voc pra false, ou seja tem a voc necessaria
				break													-- quebra o for depois disso //necessario deixar o BREAK
			end
		end
		
		if no_have_voc then
			doPlayerSendTextMessage(cid, 22, msg_no_vocation)		-- se não tiver a vocação necessaria, manda msg avisando
			return true												-- e sai da função
		end
		
		setPlayerStorageValue(cid, storage, os.time() + tempoDeBuff)		-- storage pra salvar o tempo de buff, apenas pra tirar o skill de fishing caso o player deslogue/morra
		doPlayerAddSkill(cid, buff, qtdDeSkill, true)						-- aumenta o skill setado no cabeçalho
		setPlayerStorageValue(cid, storage_buff_ativo, 1)
    	if removerItem then													-- se removerItem no cabeçalho for true REMOVE O ITEM, se não, não remove
			doRemoveItem(item.uid, 1)										-- função de remover o item, não precisa mexer
		end
		CuraFoodBuff(cid, tempoDeBuff)									-- chama a função
	end
	return true
end

 

Ficou perfeito, obrigado mesmo, não sabia que a distro tbm me falava oque falta no script kkkk achei que era so onde estava os erros, tava igual doido procurando essa virgula no script kk vlw mesmo

Link para o post
Compartilhar em outros sites
  • Moderador
1 minuto atrás, Nother disse:

Ficou perfeito, obrigado mesmo, não sabia que a distro tbm me falava oque falta no script kkkk achei que era so onde estava os erros, tava igual doido procurando essa virgula no script kk vlw mesmo

GG mano, testa certinho, faz varios tipos de testes que os players podem tentar fazer, tipo usar e deslogar, usar varios, etc.. e ve se da algum bug, se der volta aki kkkkkkkk, tmj mano

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo