Ir para conteúdo
  • 0

[TFS 0.4/8.60] NPC que aumenta a velocidade de upar todas as skill no trainer em 40% durante 7 dias!


BrunoBrilha

Pergunta

Exemplo do pedido:

Player: Hi!

NPC:  "Ola {player}! Deseja  {pegar}  seu  anabolizante, ou ver {informações} sobre os anabolizantes?

Player: pegar

NPC:  Você trouxe com você sua {receita} medica?    -- Receita e um item que será vendido no site --

Player: receita

NPC: Aqui esta, use com responsabilidade!     -- player ganha 1 anabolizante, que da 7 dias de 40% de taxa de upar todas as skill  --

 

Variável {comprar} sem ter a receita na backpak

NPC: Lamento, mas sem receita não poderei vender para você!

 

Variável = {Informações}

Use anabolizantes para upar 40% mais rápidos todas suas skill durante 7 dias em nossa academia! "não se aplica a EXP", compre em nosso WebSHOP!

 

PRECISO DO SCRIPT DO ITEM TAMBEM

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Em data > npc > crie um arquivo chamado Maromba.xml (nome de exemplo) e adicione o código abaixo:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Maromba" script="data/npc/scripts/Maromba.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="160" head="77" body="79" legs="56" feet="115" addons="0"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|! Deseja {pegar} seu anabolizante, ou ver {informações} sobre os anabolizantes?"/>
</parameters>
</npc>

 

em npc > scripts > crie um arquivo chamado Maromba.lua e adicione o código:

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid)         		npcHandler:onCreatureAppear(cid)         			end
function onCreatureDisappear(cid)      		npcHandler:onCreatureDisappear(cid)         		end
function onCreatureSay(cid, type, msg)      npcHandler:onCreatureSay(cid, type, msg:lower())    end
function onThink()                  		npcHandler:onThink()                  				end

local talkState = {}

local receita_ItemID = 6533 -- Aqui você coloca a ID do item Receita (Coloquei um item aleatorio só para testar o script)
local anabolizante_ItemID = 2346 -- ID do Item anabolizante

function creatureSayCallback(cid, type, msg, item)
	if(not npcHandler:isFocused(cid)) then
	   return false
	end
  
	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
	local msg = string.lower(msg)

	if isInArray({"info", "informações", "informacoes"}, msg) then	
		selfSay('Use anabolizantes para upar 40% mais rápidos todas suas skill durante 7 dias em nossa academia! "não se aplica a EXP", compre em nosso WebSHOP!', cid)
	elseif isInArray({"pegar"}, msg) then	
		selfSay('Você trouxe com você sua {receita} medica?', cid)
	elseif isInArray({"receita", "yes", "sim"}, msg) and getPlayerItemCount(cid, receita_ItemID) >= 1 then
		doPlayerRemoveItem(cid, receita_ItemID, 1)
		doPlayerAddItemEx(cid, doCreateItemEx(anabolizante_ItemID, 1))	
		selfSay('Aqui esta, use com responsabilidade!', cid)
		npcHandler:releaseFocus(cid)
	elseif isInArray({"receita"}, msg) and getPlayerItemCount(cid, receita_ItemID) < 1 then	
		selfSay('Lamento, mas sem receita não poderei vender para você! ', cid)
		npcHandler:releaseFocus(cid)
	end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Agora em data > actions > actions.xml adicione a tag:

 

	<!-- Anabolizante  -->
	<action itemid="2346" script="anabolizante.lua" />

 

dica: em itemid você coloca a ID do item anabolizante.

 

em seguida, em actions > scripts > crie um arquivo chamado anabolizante.lua e adicione o código abaixo:

 

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

	local rateSkill = getConfigInfo('rateSkill') -- NAO MEXER
	local rateMagic = getConfigInfo('rateMagic') -- NAO MEXER

	local storage = 62164441555 -- Armazenar o tempo em que o player utilizou o anabolizante
	local timeInMinutes = 2 -- tempo em MINUTOS que o anabolizante terá efeito. 7 dias = 10080 | 24 horas = 1440, etc..
	local porcentagem = 40.0 -- Quantos % vai aumentar de rate na skill?
	local magLevel = true -- Vai aumentar também a porcentagem de treinar magic level?
	local itemID = 2346 -- ID do anabolizante


	if item.itemid == itemID then
	-- function de tempo, by FeeTads - TibiaKing
	local function getTimeString(self)
		local format = {
			{'dia', self / 60 / 60 / 24},
			{'hora', self / 60 / 60 % 24},
			{'minuto', self / 60 % 60},
			{'segundo', self % 60}
		}

		local out = {}
		for k, t in ipairs(format) do
			local v = math.floor(t[2])
			if(v > 0) then
				table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or ''))
			end
		end
		local ret = table.concat(out)
		if ret:len() < 16 and ret:find('segundo') then
			local a, b = ret:find(' e ')
			ret = ret:sub(b+1)
		end
		return ret
	end

	if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
		for skillID = 0, 6 do
			doPlayerSetSkillRate(cid, skillID, getConfigInfo('rateSkill') / 100 * porcentagem + getConfigInfo('rateSkill'))
			addEvent(doPlayerSetSkillRate, cid, skillID, rateSkill, timeInMinutes*60*1000)
		end

		if magLevel == true then 
			doPlayerSetMagicRate(cid, getConfigInfo('rateMagic') / 100 * porcentagem + getConfigInfo('rateMagic'))
			addEvent(doPlayerSetMagicRate, cid, rateMagic, timeInMinutes*60*1000)
		end

		doRemoveItem(item.uid, 1)
		setPlayerStorageValue(cid, storage, os.time() + (timeInMinutes*60))
		doCreatureSay(cid, "Anabolizante usado! PAI TA MONSTRO!", 19) -- Mensagem após usar o anabolizante
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Espere "..getTimeString((getPlayerStorageValue(cid, storage)-os.time())).." para usar novamente o anabolizante")
	end

end 

	return true
end

 

e pronto!

 

Editado por alecrim
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...