Postado Dezembro 5, 2012 12 anos Eae galera blz. Hoje eu vim trazer para vocês um NPC que Anuncia o que o Player quer. Este NPC é como o comando /b Só que para o Player. Bom vamos lá.... 1º- Vá em: data/npc/scripts Crie o arquivo Anunciante.lua e cole isso dentro: ]-- NPC Broadcaster by Alreth, v1.40, 2008-09-22 17:50 CET -- Idea by souhlen (Anel) -- Thanks to Qwerty| for helping fix the spambug -- Thanks to Colandus for providing changes for compability with Tibia 8.21/22. focus = 0 next_focus = 0 talk_start = 0 msgHi = 'Oi! Quer Anunciar algo para todo o mundo? Meu Slowbro faz isso muito bem...' msgBye = 'Peace!' price = 200000 <<----- Preço inConvo = 0 broadcast = '' cast = '' target = 0 following = false attacking = false function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if (focus == cid) then selfSay(msgBye) distFocus = getDistanceToCreature(next_focus) if (distFocus ~= nil and distFocus < 4) then selfSay(msgHi) talk_start = os.clock() focus = next_focus next_focus = 0 inConvo = 1 else focus = 0 talk_start = 0 inConvo = 0 end end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg2 = msg msg = string.lower(msg) if (cast ~= '') then selfSay('does nothing') -- do nothing, wait until message has been broadcasted and npc has replied elseif (getDistanceToCreature(cid) >= 4 and focus == cid) then selfSay('Chegue mais perto, '..getCreatureName(cid)..'. nao posso te ouvir dai.') elseif (type == 1) then if ((string.find(msg, '(%a*)hi(%a*)') or string.find(msg, '(%a*)hello(%a*)') or string.find(msg, '(%a*)oi(%a*)') or string.find(msg, '(%a*)greetings(%a*)')) and (focus == 0) and getDistanceToCreature(cid) < 4) then selfSay(msgHi) focus = cid talk_start = os.clock() inConvo = 1 elseif ((string.find(msg, '(%a*)hi(%a*)') or string.find(msg, '(%a*)hello(%a*)') or string.find(msg, '(%a*)oi(%a*)') or string.find(msg, '(%a*)greetings(%a*)')) and (focus ~= cid) and getDistanceToCreature(cid) < 4) then if (next_focus > 0 and getDistanceToCreature(next_focus) < 4) then selfSay('Por favor aguarde, ' .. getCreatureName(cid) .. '.') else selfSay('Calma, ' .. getCreatureName(cid) .. '.') next_focus = cid end elseif (focus == cid) then talk_start = os.clock() if ((msgcontains(msg, 'broadcast') or msgcontains(msg, 'say')) and inConvo == 0) then if (getPlayerLevel(cid) >= 30) then selfSay('Quer que eu anuncie algo para voce?') inConvo = 1 else selfSay('Volte quando vc crescer!') end elseif ((msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) and inConvo == 1) then selfSay('Digame oque quer anunciar.') inConvo = 2 elseif ((msgcontains(msg, 'no') or msgcontains(msg, 'nao')) and inConvo == 1) then selfSay('Perhaps tomorrow then..') if (next_focus > 0 and getDistanceToCreature(next_focus) < 4) then selfSay(msgHi) talk_start = os.clock() focus = next_focus next_focus = 0 inConvo = 1 else focus = 0 talk_start = 0 inConvo = 0 end broadcast = '' elseif (inConvo == 2 and (msg ~= 'stop')) then if (string.len(msg) > 90) then selfSay('Desculpe mais sua mensagem tem mais de 90 caracteres incluindo os espacos. Diga uma nova mensagem ou diga STOP para parar no caracter 90.') else broadcast = msg2 selfSay('Vc quer pagar '..price..' Dollars para eu anunciar sua mensagem "'..broadcast..'"') inConvo = 3 end elseif ((msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) and inConvo == 3) then if (doPlayerRemoveItem(cid, 2152, 100) or doPlayerRemoveItem(cid, 2160, 1)) == TRUE then doPlayerBroadcastMessage(cid, broadcast) saycast = os.clock() inConvo = 1 io.output(io.open("broadcast.log", "a")) io.write("["..os.date("%y.%m.%d %X").."] <"..getCreatureName(cid).."> "..broadcast.."\n") io.close() cast = broadcast else selfSay('Voce nao pode pagar pelo servico, por favor volte mais tarde com o dinheiro!') if (next_focus > 0) then distFocus = getDistanceToCreature(next_focus) if (distFocus ~= nil and distFocus < 4) then selfSay(msgHi) talk_start = os.clock() focus = next_focus next_focus = 0 inConvo = 1 else focus = 0 talk_start = 0 inConvo = 0 end broadcast = '' end end elseif ((msgcontains(msg, 'no') or msgcontains(msg, 'nao')) and inConvo == 3) then selfSay('Ok then.') inConvo = 0 broadcast = '' elseif (string.find(msg, '(%a*)offer(%a*)')) then selfSay('Eu tenho a voz mais potento do mundo! Pessoas me pagam para eu anunciar coisas para elas.') inConvo = 0 elseif (string.find(msg, '(%a*)bye(%a*)')) then selfSay(msgBye) if (next_focus > 0) then distFocus = getDistanceToCreature(next_focus) if (distFocus ~= nil and distFocus < 4) then selfSay(msgHi) talk_start = os.clock() focus = next_focus next_focus = 0 inConvo = 1 else focus = 0 talk_start = 0 inConvo = 0 end broadcast = '' end end end end end function onCreatureChangeOutfit(creature) end function onThink() if (cast ~= '' and (os.clock() - saycast) > 1) then selfSay('Quer anunciar mais?') cast = '' elseif (os.clock() - talk_start) > 30 then if (focus > 0) then selfSay(msgBye) if (next_focus > 0) then distFocus = getDistanceToCreature(next_focus) if (distFocus ~= nil and distFocus < 4) then selfSay(msgHi) talk_start = os.clock() focus = next_focus next_focus = 0 inConvo = 1 else focus = 0 talk_start = 0 inConvo = 0 end else focus = 0 talk_start = 0 inConvo = 0 end broadcast = '' end elseif (focus ~= 0) then distFocus = getDistanceToCreature(focus) if (distFocus ~= nil and distFocus > 5) then selfSay(msgBye) if (next_focus > 0) then distFocus = getDistanceToCreature(next_focus) if (distFocus ~= nil and distFocus < 4) then selfSay(msgHi) talk_start = os.clock() focus = next_focus next_focus = 0 inConvo = 1 end else focus = 0 talk_start = 0 inConvo = 0 end broadcast = '' end end end Agora vá em: data/npc e crie um arquivo: Anunciante.xml E cole isso dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Anunciante" script="data/npc/scripts/anunciante.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="167" head="114" body="0" legs="114" feet="0" addons="2"/> </npc> Gostou ? REP + Não custa nada hehe'
Postado Dezembro 5, 2012 12 anos Não testei mas ficou meu rep+, gostei da ideia. Skype @kaiquegabriel__ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Atenciosamente, kaiquegabriel. Não dou suporte via pm. Em caso de dúvidas, crie um tópico e espere o suporte.
Postado Dezembro 30, 2013 11 anos Testei Aqui , Porém Na Hora Que Falo /n Anunciante Ele Não Apareçe..
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.