Ir para conteúdo

Npc Bugando


fabioluciopda

Posts Recomendados

Eu Criei 1 NPC Chamado Anunciante Para Mandar Broadcast Para o OT Todo e Quando Eu Abro o OT Aparece Assim:

[29/10/2010 18:54:51] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/broadcaster.lua
[29/10/2010 18:54:51] data/npc/scripts/broadcaster.lua:115: ')' expected near 'Disse'

 

Se Alguem Puder Me Ajuda , Esse e o Script

 

-- 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 = 'Ola! Voce Deseja Mandar Uma Mensagem Para o Tibia Lost?'
msgBye = 'Espero Te Ver Novamente!'
price = 5000
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 onCreature(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)..'. Eu Nao Consigo Ouvir O Que Voce Diz.')

   elseif (type == 1) then
        if ((string.find(msg, '(%a*)hi(%a*)') or string.find(msg, '(%a*)hello(%a*)') or string.find(msg, '(%a*)heylo(%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*)heylo(%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('Tire Uma Soneca Enquanto Eu Ajudo Os Outros, ' .. getCreatureName(cid) .. '.')
            else
                selfSay('Espero Ver Voce em Breve, ' .. getCreatureName(cid) .. '.')
                next_focus = cid
            end

        elseif (focus == cid) then
           talk_start = os.clock()

           if ((msgcontains(msg, 'mensagem') or msgcontains(msg, 'enviar')) and inConvo == 0) then
               if (getPlayerLevel(cid) >= 30) then
                   selfSay('Voce Quer Que Eu Transmita Algo Para Voce?')
                   inConvo = 1
               else
                   selfSay('Volte Aqui Quando Voce Estiver Em Um LvL Mais Alto')
               end

           elseif (msgcontains(msg, 'sim') and inConvo == 1) then
               selfSay('Me Diga O Que Deseja Transmitir.')
               inConvo = 2

           elseif (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 ~= 'parar')) then
               if (string.len(msg) > 90) then
                   selfSay('Sinto Muito Mas Sua Mensagem Nao Pode Ter Mais de 90 Letras, Incluindo Espaco e Outros Caracteres. Diga "mensagem" ou Diga "parar" Para Terminar Nossa Conversa.')
               else
                   broadcast = msg2
                   selfSay('Voce Quer Pagar '..price..' gold Para Eu Mandar Esta Mensagem? "'..broadcast..'"')
                   inConvo = 3
               end

           elseif (msgcontains(msg, 'sim') and inConvo == 3) then
               if (doPlayerRemoveMoney(cid, price) == 1) then
                   doSendBroadcast ("..getCreatureName(cid).." Disse: "..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 Usar Este Servico. Por Favor Volte Quando Tiver Mais 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, 'nao') and inConvo == 3) then
               selfSay('Ok then.')
               inConvo = 0
               broadcast = ''

           elseif (string.find(msg, '(%a*)trabalho(%a*)')) then
               selfSay('Eu Tenho a Maior Voz do Mundo! Pessoas Me Pagam Para Enviar Mensagens 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('Voce Quer Que Eu Transmita Algo Para Voce?')
       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
end

 

Vlws Ai

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

Caro amigo, por favor olhe antes de criar um post, essa é a área de Design, e o que você posta é um Pedido (ajuda de Script?

Atenção caro amigo, Abraços!!!

Reportado para que movam seu tópico!!!

Link para o comentário
Compartilhar em outros sites

Reportado para moverem a área certa...

enquanto ao erro:

 

Tente colocar esse:

 

-- 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 = 'Ola! Voce Deseja Mandar Uma Mensagem Para o Tibia Lost?'
msgBye = 'Espero Te Ver Novamente!'
price = 5000
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 onCreature(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)..'. Eu Nao Consigo Ouvir O Que Voce Diz.')

elseif (type == 1) then
    	if ((string.find(msg, '(%a*)hi(%a*)') or string.find(msg, '(%a*)hello(%a*)') or string.find(msg, '(%a*)heylo(%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*)heylo(%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('Tire Uma Soneca Enquanto Eu Ajudo Os Outros, ' .. getCreatureName(cid) .. '.')
        	else
            	selfSay('Espero Ver Voce em Breve, ' .. getCreatureName(cid) .. '.')
            	next_focus = cid
        	end

    	elseif (focus == cid) then
       	talk_start = os.clock()

       	if ((msgcontains(msg, 'mensagem') or msgcontains(msg, 'enviar')) and inConvo == 0) then
           	if (getPlayerLevel(cid) >= 30) then
               	selfSay('Voce Quer Que Eu Transmita Algo Para Voce?')
               	inConvo = 1
           	else
               	selfSay('Volte Aqui Quando Voce Estiver Em Um LvL Mais Alto')
           	end

       	elseif (msgcontains(msg, 'sim') and inConvo == 1) then
           	selfSay('Me Diga O Que Deseja Transmitir.')
           	inConvo = 2

       	elseif (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 ~= 'parar')) then
           	if (string.len(msg) > 90) then
               	selfSay('Sinto Muito Mas Sua Mensagem Nao Pode Ter Mais de 90 Letras, Incluindo Espaco e Outros Caracteres. Diga "mensagem" ou Diga "parar" Para Terminar Nossa Conversa.')
           	else
               	broadcast = msg2
               	selfSay('Voce Quer Pagar '..price..' gold Para Eu Mandar Esta Mensagem? "'..broadcast..'"')
               	inConvo = 3
           	end

       	elseif (msgcontains(msg, 'sim') and inConvo == 3) then
           	if (doPlayerRemoveMoney(cid, price) == 1) then
               	selfSay('"..getCreatureName(cid).." Disse: "..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 Usar Este Servico. Por Favor Volte Quando Tiver Mais 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, 'nao') and inConvo == 3) then
           	selfSay('Ok then.')
           	inConvo = 0
           	broadcast = ''

       	elseif (string.find(msg, '(%a*)trabalho(%a*)')) then
           	selfSay('Eu Tenho a Maior Voz do Mundo! Pessoas Me Pagam Para Enviar Mensagens 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('Voce Quer Que Eu Transmita Algo Para Voce?')
   	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
end

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...