Ir para conteúdo
  • Cadastre-se

(Ajuda) Como Colocar Tempo No Npc


Posts Recomendados

  Em 31/05/2015 em 06:40, TopllDanStar disse:
local focus = 0
local talk_start = 0
local target = 0
local days = 0
local tempo = 10 -- em segundos
local strg = 12980 -- Storage onde salvará o tempo (Não Mexa)
 
function onThingMove(creature, thing, oldpos, oldstackpos)
 
end
 
 
function onCreatureAppear(creature)
 
end
 
 
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
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)
msg = string.lower(msg)
 
if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. getCreatureName(cid) .. '! Oi eu lhe dou 1 nivel por 10 Gold')
focus = cid
talk_start = os.clock()
 
elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk to you in a minute.')
 
elseif focus == cid then
talk_start = os.clock()
 
if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then
if getPlayerVocation(cid) > 4 then
selfSay('Sorry, you are already promoted.')
talk_state = 0
elseif not isPremium(cid) then
selfSay('Sorry, you must be premium to buy promotion.')
talk_state = 0
else
selfSay('Do you want to buy promotion for 20k?')
talk_state = 1
end
 
elseif msgcontains(msg, 'desbug') or msgcontains(msg, 'desbugar') then
selfSay('Quer Desbugar por 10 Gold?')
talk_state = 2
 
elseif talk_state == 1 then
if msgcontains(msg, 'yes') then
if pay(cid,200000000) then
doPlayerSetVocation(cid, getPlayerVocation(cid)+4)
selfSay('You are now promoted!')
else
selfSay('Sorry, you do not have enough money.')
end
end
talk_state = 0

if not exhaustion.check(cid, strg) then
exhaustion.set(cid, strg, tempo)
 else
        doPlayerSendCancel(cid, "Voce precisa aguardar "..exhaustion.get(cid, strg).." segundos para usar novamente.")
    end
 
 
 
                elseif talk_state == 2 then
if msgcontains(msg, 'yes') then
                 if doPlayerRemoveItem(cid,2160,10) == 0 then
  selfSay('Voce Nao Tem Golds Suficiente.')
                 else  
selfSay('Voce Foi Desbugado.')
 
                  addLevel(cid, 1)
     
        end
        end
        talk_state = 0
 
elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. getCreatureName(cid) .. '!')
focus = 0
talk_start = 0
end
end
end
 
function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 45 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end

end
Mostrar mais  

olha tem certeza que ta certo cara o meu e um dbo 8.0 ainda deu certo nao ele permite de o cara falar hi desbug toda hora ainda

Editado por anthonyx22 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Respostas 19
  • Created
  • Última resposta

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Popular Posts

Modifiquei uma parte, testa ai:   Eu testei na base do Tibia e está normal, porém as funções podem ser diferentes, se der erro verifique se aparece algum erro na distro ao dar /reload npcs ou durante o carregamento da distro.

Tente assim:

ainda continua a mesma coisa, ele repeti desbug quantas vezes quiser e ainda continua sem o tempo

Meu olho quase fechando huehue

local focus = 0
local talk_start = 0
local target = 0
local days = 0
local waittime = 300 -- (300 seconds)
local storage = 5560
 
function onThingMove(creature, thing, oldpos, oldstackpos)
 
end
 
 
function onCreatureAppear(creature)
 
end
 
 
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
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)
msg = string.lower(msg)
 
if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. getCreatureName(cid) .. '! Oi eu lhe dou 1 nivel por 10 Gold')
focus = cid
talk_start = os.clock()
 
elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk to you in a minute.')
 
elseif focus == cid then
talk_start = os.clock()
 
if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then
if getPlayerVocation(cid) > 4 then
selfSay('Sorry, you are already promoted.')
talk_state = 0
elseif not isPremium(cid) then
selfSay('Sorry, you must be premium to buy promotion.')
talk_state = 0
else
selfSay('Do you want to buy promotion for 20k?')
talk_state = 1
end
 
elseif msgcontains(msg, 'desbug') or msgcontains(msg, 'desbugar') then
selfSay('Quer Desbugar por 10 Gold?')
talk_state = 2
 
 if exhaustion.get(cid, storage) == FALSE then
exhaustion.set(cid, storage, waittime)
doSendMagicEffect(getPlayerPosition(cid), 180)
else
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You must wait another " .. exhaustion.get(cid, storage) .. " seconds.")
        end     return true
end
 
elseif talk_state == 1 then
if msgcontains(msg, 'yes') then
if pay(cid,200000000) then
doPlayerSetVocation(cid, getPlayerVocation(cid)+4)
selfSay('You are now promoted!')
else
selfSay('Sorry, you do not have enough money.')
end
end
talk_state = 0
 
 
                elseif talk_state == 2 then
if msgcontains(msg, 'yes') then
                 if doPlayerRemoveItem(cid,2160,10) == 0 then
  selfSay('Voce Nao Tem Golds Suficiente.')
                 else  
selfSay('Voce Foi Desbugado.')
 
 
                  addLevel(cid, 1)
     
        end
        end
        talk_state = 0
 
elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. getCreatureName(cid) .. '!')
focus = 0
talk_start = 0
end
end
end
 
function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 45 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end

dar algum erro na distro?

Editado por TopllDanStar (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  Em 31/05/2015 em 07:11, TopllDanStar disse:

Meu olho quase fechando huehue

local focus = 0
local talk_start = 0
local target = 0
local days = 0
local waittime = 300 -- (300 seconds)
local storage = 5560
 
function onThingMove(creature, thing, oldpos, oldstackpos)
 
end
 
 
function onCreatureAppear(creature)
 
end
 
 
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
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)
msg = string.lower(msg)
 
if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. getCreatureName(cid) .. '! Oi eu lhe dou 1 nivel por 10 Gold')
focus = cid
talk_start = os.clock()
 
elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk to you in a minute.')
 
elseif focus == cid then
talk_start = os.clock()
 
if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then
if getPlayerVocation(cid) > 4 then
selfSay('Sorry, you are already promoted.')
talk_state = 0
elseif not isPremium(cid) then
selfSay('Sorry, you must be premium to buy promotion.')
talk_state = 0
else
selfSay('Do you want to buy promotion for 20k?')
talk_state = 1
end
 
elseif msgcontains(msg, 'desbug') or msgcontains(msg, 'desbugar') then
selfSay('Quer Desbugar por 10 Gold?')
talk_state = 2
 
 if exhaustion.get(cid, storage) == FALSE then
exhaustion.set(cid, storage, waittime)
doSendMagicEffect(getPlayerPosition(cid), 180)
else
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You must wait another " .. exhaustion.get(cid, storage) .. " seconds.")
        end     return true
end
 
elseif talk_state == 1 then
if msgcontains(msg, 'yes') then
if pay(cid,200000000) then
doPlayerSetVocation(cid, getPlayerVocation(cid)+4)
selfSay('You are now promoted!')
else
selfSay('Sorry, you do not have enough money.')
end
end
talk_state = 0
 
 
                elseif talk_state == 2 then
if msgcontains(msg, 'yes') then
                 if doPlayerRemoveItem(cid,2160,10) == 0 then
  selfSay('Voce Nao Tem Golds Suficiente.')
                 else  
selfSay('Voce Foi Desbugado.')
 
 
                  addLevel(cid, 1)
     
        end
        end
        talk_state = 0
 
elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. getCreatureName(cid) .. '!')
focus = 0
talk_start = 0
end
end
end
 
function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 45 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end

dar algum erro na distro?

Mostrar mais  

nao funciono e da um erro sim erro: data/npc/desbug.lua:67:attempt to index global 'exhaustion' <nil value>

Link para o post
Compartilhar em outros sites
  Em 31/05/2015 em 07:16, anthonyx22 disse:

nao funciono e da um erro sim erro: data/npc/desbug.lua:67:attempt to index global 'exhaustion' <nil value>

Mostrar mais  

 

Se tivesse com um servidor aqui já tinha resolvido :( 

  Mostrar conteúdo oculto

Link para o post
Compartilhar em outros sites
  Em 31/05/2015 em 07:36, TopllDanStar disse:

 

Se tivesse com um servidor aqui já tinha resolvido :( 

  Mostrar conteúdo oculto

 

Mostrar mais  

 

  Em 31/05/2015 em 07:36, TopllDanStar disse:

 

Se tivesse com um servidor aqui já tinha resolvido :( 

  Mostrar conteúdo oculto

 

Expand   Mostrar mais  

saio o erro mais ainda continua sem limite de tempo vei arruma um servidor ai so pra test msm pega qual quer um mano ai se faz tudo direito taligado :D

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.

  • Estatísticas dos Fóruns

    96846
    Tópicos
    519606
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo