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!


info
Grupo: Campones
Registrado: 11/12/17
Posts: 24
Reputação: +1
Gênero: Masculino
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