SHARE
TWEET

Untitled

ped_so Dec 9th, 2018 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Achievement adicionado por Venozmat
  2. local ContagemVezesID = { --[Storage de Contagem] = Quantidade de vezes requeridas,
  3.     [3275] = 2, --Besouro
  4.     [3278] = 2, --Escaravelho
  5.     [3281] = 2, --Joaninha
  6.     [4395] = 2, --Giant Spider Champion
  7. }
  8. local AchArthas = 43 -- Id do Achievement
  9. local ContadorQtdTask = 4395 --Storage para quantidade de vezes feita a task de Giant Spider Champion
  10.  
  11. --------------------------------------------------------------------------------------------
  12. ------------------------------------ FEITO POR ADM MASTER VICIADO! ------------------------------------
  13. function getPlayerMoney(cid)
  14.     gold = getPlayerItemCount(cid,2148)
  15.     plat = getPlayerItemCount(cid,2152)*100
  16.     crys = getPlayerItemCount(cid,2160)*10000
  17.     money = gold + plat + crys
  18.     return money
  19. end
  20. local keywordHandler = KeywordHandler:new()
  21. local npcHandler = NpcHandler:new(keywordHandler)
  22. NpcSystem.parseParameters(npcHandler)
  23. local talkState = {}
  24. function onCreatureAppear(cid)              npcHandler:onCreatureAppear(cid)            end
  25. function onCreatureDisappear(cid)           npcHandler:onCreatureDisappear(cid)         end
  26. function onCreatureSay(cid, type, msg)      npcHandler:onCreatureSay(cid, type, msg)    end
  27. function onThink()                          npcHandler:onThink()                        end
  28. function onPlayerEndTrade(cid)              npcHandler:onPlayerEndTrade(cid)            end
  29. function onPlayerCloseChannel(cid)          npcHandler:onPlayerCloseChannel(cid)        end
  30.  
  31.  
  32. local function TaskFuncaoAceitar(cid, msg, id1_jack, id2_jack, nomemonstroplural_jack, quantidadematar_jack)
  33.     if getPlayerStorageValue(cid,id2_jack) < os.time() then
  34.         if getPlayerStorageValue(cid,id1_jack) < 0 then
  35.             --Contagem:
  36.             setPlayerStorageValue(cid,id1_jack,0)
  37.             --Tempo:
  38.             local tempo = os.time() + 604800
  39.             local tempomostra = os.date("%d/%m/%Y %H:%M:%S", tempo)
  40.             setPlayerStorageValue(cid,id2_jack,tempo)
  41.             selfSay('Você já pode começar a matar ' .. nomemonstroplural_jack .. '. Volte aqui quando matar ' .. quantidadematar_jack .. ' ' .. nomemonstroplural_jack .. ' para ser recompensado. O prazo é até ' .. tempomostra .. '.', cid)
  42.             return false
  43.         end
  44.     else
  45.         local tempomostra = os.date("%d/%m/%Y %H:%M:%S", getPlayerStorageValue(cid,id2_jack))
  46.         selfSay('Desculpe, você só pode iniciar uma nova task de ' .. nomemonstroplural_jack .. ' em ' .. tempomostra .. '.', cid)
  47.         return true
  48.     end
  49. end
  50.  
  51. local function TaskFuncao(cid, msg, id1_jack, id2_jack, id3_jack, levelnecessario_jack, nomemonstroplural_jack, quantidadematar_jack, quantidadeexp_jack)
  52.     if getPlayerLevel(cid) >= levelnecessario_jack or getPlayerReset(cid) > 0 then
  53.         if getPlayerStorageValue(cid,id1_jack) < 0 then
  54.             if getPlayerStorageValue(cid,id3_jack) < 0 then
  55.                 selfSay('Ótimo! Você precisa matar pelo menos ' .. quantidadematar_jack .. ' ' .. nomemonstroplural_jack .. ' em um prazo de 1 semana para te dar recompensa. Aceita?', cid)
  56.                 return true
  57.             else
  58.                 selfSay('Gostaria de iniciar a task novamente? Darei um novo prazo e a recompensa será a mesma. Aceita?', cid)
  59.                 return true
  60.             end
  61.         end
  62.        
  63.         if getPlayerStorageValue(cid,id1_jack) >= 0 then
  64.             if getPlayerStorageValue(cid,id2_jack) > os.time() then
  65.                 if getPlayerStorageValue(cid,id1_jack) >= quantidadematar_jack then
  66.                     selfSay('Obrigado! Você matou ' .. quantidadematar_jack .. ' ' .. nomemonstroplural_jack .. ' em menos de 1 semana. Aqui esta sua recompensa! Lembre-se que você pode fazer esta task quantas vezes quiser, desde que tenha concluído 1 semana contado a partir do dia de inicio.', cid)
  67.                     if SERVIDOR ~= 5 then
  68.                         doPlayerAddExpStage(cid,quantidadeexp_jack)
  69.                     end
  70.                     setPlayerStorageValue(cid,id1_jack,-1)
  71.                     if getPlayerStorageValue(cid,id3_jack) < 0 then
  72.                         setPlayerStorageValue(cid,id3_jack,0)
  73.                     end
  74.                     local novovalor = getPlayerStorageValue(cid,id3_jack)+1
  75.                     setPlayerStorageValue(cid,id3_jack,novovalor)
  76.                     if novovalor > 1 then
  77.                         selfSay('Parabéns! Você já concluiu esta task ' .. novovalor .. ' vezes.', cid)
  78.                     end
  79.                     VerificaAch(cid) -- Verificador de Achievement Inicial
  80.                     if getPlayerStorageValue(cid,3275) > 0 and getPlayerStorageValue(cid,3278) > 0 and getPlayerStorageValue(cid,3281) > 0 and not(getPlayerMount(cid, 27)) then
  81.                         doPlayerAddMount(cid, 27)
  82.                         selfSay('Você concluiu todas as minhas tasks pelo menos uma vez, aqui esta meu presente.', cid)
  83.                         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você ganhou uma nova montaria.")
  84.                     end
  85.                     return false
  86.                 else   
  87.                     local resta = quantidadematar_jack - getPlayerStorageValue(cid,id1_jack)
  88.                     local tempomostra = os.date("%d/%m/%Y %H:%M:%S", getPlayerStorageValue(cid,id2_jack))
  89.                     selfSay('Você ainda não matou ' .. quantidadematar_jack .. ' ' .. nomemonstroplural_jack .. ', atualmente você matou ' .. getPlayerStorageValue(cid,id1_jack) .. ', resta ' .. resta .. '. Seu prazo é de até ' .. tempomostra .. '.', cid)
  90.                     return false
  91.                 end
  92.             else
  93.                 local tempomostra = os.date("%d/%m/%Y %H:%M:%S", getPlayerStorageValue(cid,id2_jack))
  94.                 selfSay('Seu tempo expirou, você tinha até ' .. tempomostra .. ' para matar ' .. quantidadematar_jack .. ' ' .. nomemonstroplural_jack .. '. Quer tentar novamente?', cid)
  95.                 setPlayerStorageValue(cid,id1_jack,-1)
  96.                 return true
  97.             end
  98.         end
  99.  
  100.     else
  101.         selfSay('Desculpe, você precisa de pelo menos level ' .. levelnecessario_jack .. '.', cid)
  102.         return false
  103.     end
  104. end
  105.     ----------------------------
  106.     --       Lucas CP         --
  107.     ----------------------------
  108. local function addTaskQuest(cid, msg, str_quest, str_count, str_tempo, qnt_monstro, nome_plural,dia,level)
  109.     local tempo = getPlayerStorageValue(cid,str_tempo)
  110.     if getPlayerLevel(cid) >= level or getPlayerReset(cid) > 0 then
  111.         if getPlayerStorageValue(cid,str_quest) >= 2 then
  112.             selfSay('Eu lhe dou um Spool of Yarn em troca de 10 Spider Silks. Você aceita?', cid)
  113.             negociar = 1
  114.             return true
  115.         elseif getPlayerStorageValue(cid,str_quest) == 1 then
  116.             if tempo > os.time() then
  117.                 if getPlayerStorageValue(cid,str_count) >= qnt_monstro then
  118.                     setPlayerStorageValue(cid,str_quest,2)
  119.                     valor = math.max(getPlayerStorageValue(cid,ContadorQtdTask),0)
  120.                     setPlayerStorageValue(cid,ContadorQtdTask,valor + 1)
  121.                     if valor == 0 then
  122.                         selfSay('Parabéns! Você realmente provou sua coragem. Agora você é digno de negociar um {Spool of Yarn} comigo', cid)
  123.                     else
  124.                         selfSay('Parabéns! Você já concluiu esta task ' .. valor + 1 .. ' vezes.', cid)
  125.                     end
  126.                     papo_spool=1
  127.                     VerificaAch(cid) -- Verificador de Achievement Inicial
  128.                     return true
  129.                 else
  130.                     local tempomostrar = os.date("%d/%m/%Y %H:%M:%S", getPlayerStorageValue(cid,str_tempo))
  131.                     selfSay('Você matou '.. getPlayerStorageValue(cid,str_count) ..' '.. nome_plural ..', restam '.. qnt_monstro - getPlayerStorageValue(cid,str_count) ..' '.. nome_plural ..' serem mortos até '.. tempomostrar ..'.', cid)
  132.                     return true
  133.                 end
  134.             else
  135.                 selfSay('Eu lembro de você... Pensei que as Giant Spider Champion já tinham lhe devorado. Deseja tentar novamente concluir essa missão?', cid)
  136.                 papotask = 1
  137.                 setPlayerStorageValue(cid,str_quest,-1)
  138.                 return true
  139.             end
  140.         else
  141.             setPlayerStorageValue(cid,str_quest,1)
  142.             setPlayerStorageValue(cid,str_count,0)
  143.             tempoT = os.time() + (dia*24*3600)
  144.             setPlayerStorageValue(cid,str_tempo,tempoT)
  145.             tempomostrar = os.date("%d/%m/%Y %H:%M:%S", getPlayerStorageValue(cid,str_tempo))
  146.             selfSay('Então mate as '.. qnt_monstro ..' '.. nome_plural ..' e volte aqui até '.. tempomostrar ..', se você não voltar até essa data considerarei que você desistiu!', cid)    
  147.             return true
  148.         end
  149.     else
  150.         selfSay('Desculpe, mas para continuar essa conversa, você precisa ter o level maior ou igual a '.. level ..'.',cid)
  151.         return true
  152.     end
  153. end
  154.  
  155. local function VerificaAch(cid) -- Função de verificação e adição de Achievement
  156.  
  157.     player = Player(cid)
  158.  
  159.     v = 0
  160.     for stor, qtd in pairs(ContagemVezesID) do
  161.         Tstor = player:getStorageValue(stor)
  162.         if Tstor < qtd then
  163.             v = -1
  164.         end
  165.     end
  166.     if v == 0 and not player:hasAchievement(AchArthas) then
  167.         player:addAchievement(AchArthas)
  168.     end
  169.  
  170.     return true
  171.  
  172. end
  173.  
  174.     ----------------------------
  175.     --       Lucas CP         --
  176.     ----------------------------
  177. function creatureSayCallback(cid, type, msg)
  178. if(not npcHandler:isFocused(cid)) then
  179. return false
  180. end
  181.  
  182.     -- Verificador de Achievement Inicial
  183.     VerificaAch(cid)
  184.  
  185.     --if SERVIDOR == 5 then
  186.         --selfSay('Desculpe, não posso continuar com a conversa agora, volte em breve. Mas podemos negociar {spool of yarn}.', cid)
  187.         --papo_spool=1
  188.         --return true
  189.     --end
  190.  
  191.     --Conversa de inicio
  192.     if (msgcontains(msg:lower(), "insetos") or msgcontains(msg:lower(), "inseto") or msgcontains(msg:lower(), "praga")) then
  193.         selfSay('Estes insetos se chamam {besouro}, {escaravelho} e {joaninha negra}. Você quer me ajudar a caçar um deles? Qual? Também tenho {spool of yarn}.', cid)
  194.         papo_jack=1
  195.         papo_spool=1
  196.         return true
  197.     end
  198.    
  199.     --Conversa de inicio
  200.     if (msgcontains(msg:lower(), "no") or msgcontains(msg:lower(), "não") or msgcontains(msg:lower(), "nao") or msgcontains(msg:lower(), "naum")) then
  201.         selfSay('Ok. Me procure quando mudar de opinião.', cid)
  202.         papo_jack=0
  203.         papo_jackb=0
  204.         papo_spool=0
  205.         return true
  206.     end
  207.     ---------------------
  208.     if (msgcontains(msg:lower(), "spool of yarn") or msgcontains(msg:lower(), "spool") or msgcontains(msg:lower(), "yarn")) and papo_spool == 1 then
  209.         papo_spool = 0
  210.         papo_jackb = 0
  211.         if getPlayerStorageValue(cid,3595) >= 2 then
  212.             selfSay("Eu lhe dou um Spool of Yarn em troca de 10 Spider Silks. Você aceita?",cid)
  213.             negociar = 1
  214.         else
  215.             selfSay('Para negociar esse item você precisa provar sua força matando 600 Giant Spiders Champion. Você tem coragem para isso?',cid)
  216.             papotask = 1
  217.         end
  218.     elseif(msgcontains(msg:lower(), "sim") or msgcontains(msg:lower(), "yes")) and negociar == 1 then
  219.         negociar = 0
  220.         if(getPlayerItemCount(cid, 5879) >= 10) then
  221.             doPlayerRemoveItem(cid,5879, 10)
  222.             doPlayerAddItem(cid, 5886, 1)
  223.             selfSay('Ai está seu Spool of Yarn.', cid)
  224.         else
  225.             selfSay('Você não tem 10 Spider Silks. Volte aqui quanto tiver!', cid)
  226.         end
  227.     elseif(msgcontains(msg:lower(), "sim") or msgcontains(msg:lower(), "yes")) and papotask == 1 then
  228.         papotask = 0
  229.         papo_jackb = 0
  230.         str_quest = 3595
  231.         str_count = 3596
  232.         str_tempo = 3597
  233.         qnt_monstro = 600
  234.         nome_plural = "Giant Spider Champions"
  235.         dia = 7
  236.         level = 300
  237.         addTaskQuest(cid, msg, str_quest, str_count, str_tempo, qnt_monstro, nome_plural,dia,level)
  238.     end
  239.     ---------------------
  240.     if papo_jack==1 then
  241.         if msgcontains(msg:lower(), "besouro") then
  242.             id1_jack=3273
  243.             id2_jack=3274
  244.             id3_jack=3275
  245.             levelnecessario_jack=200
  246.             nomemonstroplural_jack="besouros"
  247.             quantidadematar_jack=2000
  248.             quantidadeexp_jack=400000000
  249.         elseif msgcontains(msg:lower(), "escaravelho") then
  250.             id1_jack=3276
  251.             id2_jack=3277
  252.             id3_jack=3278
  253.             levelnecessario_jack=150
  254.             nomemonstroplural_jack="escaravelhos"
  255.             quantidadematar_jack=3000
  256.             quantidadeexp_jack=219000000
  257.         elseif msgcontains(msg:lower(), "joaninha") then
  258.             id1_jack=3279
  259.             id2_jack=3280
  260.             id3_jack=3281
  261.             levelnecessario_jack=300
  262.             nomemonstroplural_jack="joaninhas negra"
  263.             quantidadematar_jack=900
  264.             quantidadeexp_jack=525600000
  265.         elseif(msgcontains(msg:lower(), "sim") or msgcontains(msg:lower(), "yes")) and papo_jackb==1 then
  266.             TaskFuncaoAceitar(cid, msg, id1_jack, id2_jack, nomemonstroplural_jack, quantidadematar_jack)
  267.             return true
  268.         else
  269.             return true
  270.         end
  271.        
  272.         if(TaskFuncao(cid, msg, id1_jack, id2_jack, id3_jack, levelnecessario_jack, nomemonstroplural_jack, quantidadematar_jack, quantidadeexp_jack)) then
  273.             papo_jackb=1
  274.             return true
  275.         else
  276.             papo_jack=0
  277.             papo_jackb=0
  278.             return true
  279.         end
  280.     end
  281.  
  282.     return true
  283. end
  284. npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
  285. npcHandler:addModule(FocusModule:new())
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top