Ir para conteúdo

Featured Replies

Postado

Queria Colocar Tempo No Meu Npc Para Ele Dar Level Ao Player De 5 Em 5 Minutos Alguem Pode Me Ajudar Olha Vou Deixa o Script Do Npc Ae

 

local focus = 0
local talk_start = 0
local target = 0
local days = 0
 
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
 
 
                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
  • Respostas 19
  • Visualizações 613
  • Created
  • Última resposta

Top Posters In This Topic

Most 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

  • Tente assim:

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

Postado

Teste ai

 

local focus = 0
local talk_start = 0
local target = 0
local days = 0
local limitedeuso = 49002
 
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 (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then
setPlayerStorageValue(cid, limitedeuso, os.time() + 600)
else
doPlayerSendTextMessage(cid, 22, "Espere " ..(getPlayerStorageValue(cid, limitedeuso) - os.time()).. " segundos para usar o comando novamente.")
end
 
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
 
 
                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


alterando os segundos ali > local limitedeuso = 49002

Postado
  • Autor

Teste ai

 

local focus = 0
local talk_start = 0
local target = 0
local days = 0
local limitedeuso = 49002
 
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 (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then
setPlayerStorageValue(cid, limitedeuso, os.time() + 600)
else
doPlayerSendTextMessage(cid, 22, "Espere " ..(getPlayerStorageValue(cid, limitedeuso) - os.time()).. " segundos para usar o comando novamente.")
end
 
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
 
 
                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

alterando os segundos ali > local limitedeuso = 49002

olha funciono nao aki so aparece em verde o tempo que tem que esperar mais quando eu volto no npc ele ainda permite que eu consiga falar desbug

Postado

olha funciono nao aki so aparece em verde o tempo que tem que esperar mais quando eu volto no npc ele ainda permite que eu consiga falar desbug

 

Esqueci de setar uma storage :P

 

local focus = 0
local talk_start = 0
local target = 0
local days = 0
storage = 19400 -- storage em que será salvo o tempo
tempo = 5 -- em minutos
 
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 getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then
setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*1)) 
else
doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.")
return true
end
 
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
 
 
                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

Editado por TopllDanStar (veja o histórico de edições)

Postado
  • Autor

Esqueci de setar uma storage :P

 

local focus = 0
local talk_start = 0
local target = 0
local days = 0
storage = 19400 -- storage em que será salvo o tempo
tempo = 5 -- em minutos
 
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 getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then
setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*1)) 
else
doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.")
return true
end
 
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
 
 
                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

olha agr quando eu vou falar HI ele nem responde ele fica mudo qualquer coisa desbug hi ele nao ta respondendo mais

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo